# Settings and workflow
> Approval process, alerts and notifications, email (SMTP) and e-Document (EDM integrator) settings — what they do and how they relate to each other.
URL: https://erpdocs.corexlogic.com/en/ayarlar
This section describes the setup screens that determine **whose approval** a document goes through, **who is
notified** of events, **which server** email is sent from, and **how** invoices are transmitted to the Turkish
Revenue Administration (GİB). All of them are in the **Yönetim** (Administration) menu and are configured once per
installation; in day-to-day work users see only their results (the approval button, the bell, email, the e-Invoice
status).
## Screens
| Topic | Screen (menu path) | Purpose | Guide |
|---|---|---|---|
| Approval | Yönetim › Onay Süreci › **Onay Şablonları** (Administration › Approval Process › Approval Templates) | Which document is approved, under which condition, through which stages. | [Approvals](https://erpdocs.corexlogic.com/en/ayarlar/onaylar) |
| Approval | Yönetim › Onay Süreci › **Onayımı Bekleyenler** (Administration › Approval Process › Awaiting My Approval) | Documents whose turn has come and that are waiting for your decision. | [Approvals](https://erpdocs.corexlogic.com/en/ayarlar/onaylar#onayimi-bekleyenler) |
| Approval | Yönetim › Onay Süreci › **Onay Vekaletleri** (Administration › Approval Process › Approval Delegations) | A delegate votes on behalf of an approver who is absent. | [Approvals](https://erpdocs.corexlogic.com/en/ayarlar/onaylar#onay-vekaletleri) |
| Notification | Yönetim › Özelleştirme › Genel › **Uyarı ve Bildirim Yönetimi** (Administration › Customization › General › Alert and Notification Management) | Scheduled alerts (due date, delay, minimum stock) and notification rules for document events. | [Notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler) |
| Notification | Top bar › **Bildirimler** (Notifications, the bell) · Profile › **Bildirim Tercihleri** (Notification Preferences) | A person's notifications and channel preference. | [Notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler#bildirim-zili) |
| Email | Yönetim › Özelleştirme › Genel › **E-posta Ayarları** (Administration › Customization › General › Email Settings) | The installation's SMTP server: notification, invitation, password reset and document emails. | [Email (SMTP)](https://erpdocs.corexlogic.com/en/ayarlar/e-posta-smtp) |
| Email | Yönetim › İzleme › **Gönderim Kuyruğu** (Administration › Monitoring › Send Queue) | Emails sent in the background, errors and retries. | [Email (SMTP)](https://erpdocs.corexlogic.com/en/ayarlar/e-posta-smtp#gonderim-kuyrugu) |
| e-Document | Yönetim › Özelleştirme › Finans › **e-Belge Ayarları** (Administration › Customization › Finance › e-Document Settings) | e-Invoice, e-Archive and e-Delivery Note integrator (EDM) connection, series, scheduling, go-live. | [e-Document](https://erpdocs.corexlogic.com/en/ayarlar/e-belge) |
| Data | Yönetim › Araçlar › **Veri Aktarımı** (Administration › Tools › Data Import) | Bulk master data import with Excel workbooks. | [Data Import](https://erpdocs.corexlogic.com/en/veri-aktarimi) |
User, role, permission and module management is described in the **Yönetim** (Administration) section.
## How they connect
```
Document (quotation, order, requisition, journal entry)
│ Send ──► Does an approval template match?
│ ├─ no ──► the document proceeds directly
│ └─ yes ─► "Onay Bekliyor" (Pending Approval) ──► notification to approver ("Onayınız bekleniyor")
│ │ │
│ │ └─► bell (always) + email (if SMTP and preference are on)
│ ├─ final approval ─► document proceeds + "approved" notification to sender
│ └─ rejection ──────► document returns to draft + notification with reason to sender
│
├─ Document event (e.g. goods issue) ──► notification rule ──► recipients (bell, email)
└─ Hourly alert run (due date, delay, pending approval) ──► the alert's recipients (bell, email)
Email: E-posta Ayarları (SMTP) ──► Gönderim Kuyruğu ──► recipient (no SMTP: bell only)
Invoice: Finalize ──► e-Belge Ayarları (EDM) ──► GİB / recipient
```
## Recommended setup order
1. **E-posta Ayarları** (Email Settings) — SMTP first, for notification and invitation emails. Without SMTP
everything works, only no email is sent: notifications appear in the application (in the bell).
2. **Onay Şablonları** (Approval Templates) — conditions and stages for the document types that require approval.
Without a template, documents proceed without approval.
3. **Uyarı ve Bildirim Yönetimi** (Alert and Notification Management) — alerts start disabled; enable the ones
that are useful to you and define event notifications with rules.
4. **e-Belge Ayarları** (e-Document Settings) — credentials, series and connection test in the Test environment;
go live once the checklist is complete.
## Guides
- [Approvals](https://erpdocs.corexlogic.com/en/ayarlar/onaylar) — Approval template, stage, escalation, decision, delegation.
- [Notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler) — Alerts, notification rules, bell, preferences.
- [Email (SMTP)](https://erpdocs.corexlogic.com/en/ayarlar/e-posta-smtp) — Server settings, test, send queue.
- [e-Document](https://erpdocs.corexlogic.com/en/ayarlar/e-belge) — EDM integrator settings, go-live, document lifecycle.
- [Approval flow (process)](https://erpdocs.corexlogic.com/en/surecler/onay-akisi) — A discounted quotation going through approval, step by step.
## Tasks
- [Create an approval template](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-sablonu-olusturma) — Document type, condition, stages.
- [Make an approval decision](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-karari-verme) — Approve, or reject with a reason.
- [Define an approval delegation](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-vekaleti-tanimlama) — A delegate for leave and absence.
- [Enable an alert](https://erpdocs.corexlogic.com/en/ayarlar/islemler/uyari-acma) — Enable an alert and set its threshold.
- [Create a notification rule](https://erpdocs.corexlogic.com/en/ayarlar/islemler/bildirim-kurali-olusturma) — Recipients and channel of a document event.
- [Choose a notification preference](https://erpdocs.corexlogic.com/en/ayarlar/islemler/bildirim-tercihi-secme) — Personal channel: application, email, digest.
- [Define the email server](https://erpdocs.corexlogic.com/en/ayarlar/islemler/e-posta-sunucusu-tanimlama) — SMTP, password, test email.
- [Enable e-Document](https://erpdocs.corexlogic.com/en/ayarlar/islemler/e-belgeyi-etkinlestirme) — Test credentials, test, enable.
---
# Approvals
> Approval templates (document type, condition, stage, decision rule, escalation), approval round, Awaiting My Approval, approval and rejection, delegation, document statuses and notifications.
URL: https://erpdocs.corexlogic.com/en/ayarlar/onaylar
- **Type:** Guide
- **Module:** Administration
- **Menu path:** Yönetim › Onay Süreci › Onay Şablonları · Onayımı Bekleyenler · Onay Vekaletleri (Administration › Approval Process › Approval Templates · Awaiting My Approval · Approval Delegations)
- **Screen route:** `/erp/approvals/templates`
- **Required permission:** `erp-approval-templates.view (şablonları görme) · .create · .edit · .delete`, `Karar: belge türünün onay izni — erp-sales-quotations.approve, erp-procurement-orders.approve, erp-procurement-requisitions.approve, erp-accounting-journal-entries.approve; mühendislik değişikliği talebinde erp-manufacturing-engineering-changes.edit`
The approval process ensures that a document is signed off by authorized people before it moves to the next step:
for example, a purchase order above 50,000 TRY goes to the purchasing manager, and a quotation with a high discount
goes to the sales manager. Approval is **not a mandatory step but a configured one**: if there is no active
template for a document type, documents of that type proceed without approval.
End-to-end example: [Approval flow process](https://erpdocs.corexlogic.com/en/surecler/onay-akisi).
## Concepts
| Concept | Meaning |
|---|---|
| **Approval template** | Which document type goes through which stages under which condition (amount range, discount threshold). |
| **Stage** | A step of the template: who approves (a role or specific people), how many approvals are required, how many rejections reject the document, and to whom it escalates if left unanswered. Stages are asked **in sequence**. |
| **Approval round** | One submission of the document for approval. On submission, the stages of the matching templates are **copied** into the round; even if the template changes later, a running round does not change. A document that is rejected and resubmitted opens a **new round**; the trail of the old round remains as it is. |
| **Approver** | A user who holds the stage's role or is named in the stage, and who has the approval permission for the document type. |
| **Delegate** | A user who votes **on behalf of** an approver within a date range. |
| **Segregation of duties** | **The person who submits the document for approval cannot approve it** (even if their role and permission match). For a sales quotation, the quotation's **sales representative** cannot approve it either. Rejecting is always allowed. |
## Documents that can require approval
| Document type | Condition terms | Permission that enables approval | Status after submission | On final approval | On rejection |
|---|---|---|---|---|---|
| **Satış Teklifi** (Sales Quotation) | Amount and discount | `erp-sales-quotations.approve` | Onay Bekliyor (Pending Approval; locked, not sent to the customer) | Gönderildi (Sent) | Taslak (Draft) |
| **Satın Alma Siparişi** (Purchase Order) | Amount | `erp-procurement-orders.approve` | Onay Bekliyor (Pending Approval; locked, no goods receipt possible) | Sipariş Verildi (Ordered) | Taslak (Draft) |
| **Satın Alma Talebi** (Purchase Requisition) | None (every requisition) | `erp-procurement-requisitions.approve` | Onay Bekliyor (Pending Approval) | Talep Edildi (Requested; on purchasing's agenda) | Taslak (Draft) |
| **Yevmiye Fişi** (Journal Entry) | Amount | `erp-accounting-journal-entries.approve` | Awaits approval | The entry's own flow | The entry's own flow |
| **Mühendislik Değişikliği Talebi** (Engineering Change Request) | None (every request) | `erp-manufacturing-engineering-changes.edit` | Awaits approval | A change number is opened | The request's own flow |
"Amount" is the document's **grand total** — including VAT, after discounts, including additional charges, in the
document's currency. "Discount" is the **highest effective discount** on the document: because line and header
discounts are applied together, the actual reduction of a line is calculated as `1 − (1 − satır%) × (1 − genel%)`;
if only the header discount were considered, the approval could be bypassed with a line discount.
## Approval Templates screen
**Yönetim › Onay Süreci › Onay Şablonları** (Administration › Approval Process › Approval Templates) — "Hangi
belge, hangi koşulda, hangi aşamalardan geçerek onaylanır" (Which document is approved, under which condition,
through which stages).

1. New Template
2. Document type card — does the type go through approval
3. Condition — amount range / discount threshold
4. Stages are asked in order
5. Active / Inactive
At the top there is a **scope card** for each document type: "N etkin şablon — onaydan geçer" (N active templates
— goes through approval), "Şablonlar pasif — onaysız ilerler" (Templates inactive — proceeds without approval) or
"Şablon yok — onaysız ilerler" (No template — proceeds without approval). **Şablon Ekle** (Add Template) on the card
opens the dialog with that type.
| Column | Description |
|---|---|
| **Belge Türü** (Document Type) | The document the template applies to. |
| **Şablon** (Template) | Template name. |
| **Koşul** (Condition) | The readable condition: "50.000,00 TRY ve üzeri" (50,000.00 TRY and above), "… – …", "… ve altı" (… and below), "iskonto %10 ve üzeri" (discount 10% and above); without a condition, **Her zaman** (Always). |
| **Aşamalar (sırayla)** (Stages, in sequence) | The approvers of the stages in order; with escalation, "24 saat sonra 'Yönetici' rolüne yükselir" (escalates to the 'Yönetici' role after 24 hours). |
| **Durum** (Status) | Active or inactive. |
| **İşlem** (Action) | Düzenle (Edit) · Sil (Delete) (depending on permission). |
The table is not paginated: to understand tiered approval, all templates are displayed together. The delete
confirmation reads "Şablon silinsin mi?" (Delete the template?): "Bu şablon bundan sonra onay turu doğurmaz. Geçmiş
turlar şablonu kendi içinde sakladığı için etkilenmez." (This template will no longer create approval rounds. Past
rounds are not affected because they store the template within themselves.) To pause a template temporarily, turn
off the **Etkin** (Active) switch instead of deleting it.
### Template dialog
**Yeni Şablon** (New Template) (or **Düzenle** (Edit) on a row) opens a wide dialog: the form on the left, and on
the right the **Özet** (Summary, a one-sentence reading of the rule) and a **Akış** (Flow) preview.

1. Document Type — fixed after creation
2. Condition — discount threshold
3. Stage 1 — role or named users, decision rule
4. If unanswered — hours and escalation role
5. Add Stage (max 10)
6. Summary — the rule as a sentence
7. Flow preview
#### General
| Field | Required | Description |
|---|---|---|
| **Belge Türü** (Document Type) | Yes | Satış Teklifi (Sales Quotation), Satın Alma Siparişi (Purchase Order), Satın Alma Talebi (Purchase Requisition), Yevmiye Fişi (Journal Entry), Mühendislik Değişikliği Talebi (Engineering Change Request). The selection determines the condition terms and approver lists. **It cannot be changed when editing** (another type has a different permission and condition); to change the type, create a new template. When the document type changes, conditions and stages are reset. |
| **Şablon Adı** (Template Name) | Yes | At most 128 characters. Example: "50.000 TRY üstü sipariş onayı" (Order approval above 50,000 TRY). Shown in the approval history and in Onayımı Bekleyenler (Awaiting My Approval). |
| **Etkin** (Active) | — | Only when editing. On: "Yeni belgeler bu şablona uyar" (New documents follow this template). Off: "Pasif — yeni belgeler bu şablona uymaz" (Inactive — new documents do not follow this template). An inactive template does not start new approval rounds; running rounds are not affected. A new template is created active. |
#### Which documents (condition)
A condition the document type does not offer is not drawn in the dialog. For a type without conditions
(requisition, engineering change), the dialog reads "Bu belge türünde koşul yok — şablon onaya gönderilen **her**
belgeye uygulanır." (This document type has no condition — the template applies to **every** document submitted for
approval.)
| Field | Values | Description |
|---|---|---|
| **Tutar** (Amount) | **Tutarı ne olursa olsun** (Whatever the amount) · **Genel toplam aralıktaysa** (If the grand total is within a range) | Default is "whatever the amount". Selecting a range opens the two fields below. |
| **Para Birimi** (Currency) | The installation's currencies (the default currency is preselected) | **No currency conversion**: the template applies only to documents in this currency. TRY and EUR orders require two separate templates. |
| **Genel toplam** … **ile** … **arası** (Grand total between … and …) | Lower limit (empty = 0) · Upper limit (empty = unlimited) | Including VAT, after discounts; it also matches when **equal** to the limits. For "50,000 and above", leave the upper limit empty. At least one limit must be entered, limits must be zero or positive, and the lower limit cannot be greater than the upper limit. |
| **İskonto** (Discount) | Checkbox: "Yalnız iskontosu belirli bir oranı aşan belgeler" (Only documents whose discount exceeds a given rate) | Sales quotation only. |
| **İskonto eşiği (%)** (Discount threshold, %) | Greater than 0, at most 100 | "Satırlardaki en yüksek iskonto bu orana eşit ya da üstündeyse uyar." (Matches if the highest discount on the lines is equal to or above this rate.) |
If both amount and discount are selected, both must hold.
#### Approval stages — asked in sequence
Each stage is a separate box; its number is its order ("İlk sorulan" (Asked first), "1. aşama kapanınca sorulur"
(Asked when stage 1 closes)). To the right of the box there are **Yukarı taşı** (Move up), **Aşağı taşı** (Move
down) and a button to remove the stage (a single stage cannot be removed). **Aşama Ekle** (Add Stage) adds a new
stage; a template can have at most **10** stages.
| Field | Required | Description |
|---|---|---|
| Stage name | No | "1. aşamanın adı (örn. Bölüm onayı)" (Name of stage 1, e.g. Department approval). At most 128 characters; if empty, "1. aşama" (Stage 1) is written. Shown in the approval history and in Onayımı Bekleyenler (Awaiting My Approval). |
| **Kim onaylar** (Who approves) | Yes | **Bir rol** (A role): "Rol seçin — rolü taşıyan herkes onaylayabilir" (Select a role — anyone holding the role can approve). A role that does not hold the document type's approval permission is marked "— onay izni yok" (— no approval permission) in the list, and if selected the template is not saved ("Bu rol bu belgeyi onaylama iznine sahip değil — aşama hiç kapatılamazdı, şablon kaydedilmez." — This role does not have permission to approve this document — the stage could never be closed, the template is not saved). **Belirli kişiler** (Specific people): only users who hold the document type's approval permission are listed, searchable by name or email; at most 10 people ("daha kalabalık liste bir roldür" — a longer list is a role). Roles and people cannot be mixed in the same stage. |
| **Karar kuralı** (Decision rule) | Yes | "**N** onay gerekli, **M** ret belgeyi reddeder" (**N** approvals required, **M** rejections reject the document) — each 1–10. The sentence below reads the rule: "Biri onaylarsa geçer, biri reddederse belge reddedilir." (Passes if one person approves; the document is rejected if one person rejects.) In a people stage, the number of approvals cannot exceed the number of selected people, and so that the stage does not deadlock when votes are split, approvals + rejections ≤ number of people + 1. |
| **Cevapsız kalırsa** (If unanswered) | No | "**S** saat sonra **[Üst onaycı rolü]** de karar verebilir" (After **S** hours, **[Higher approver role]** can also decide). Duration 1–720 hours; duration and role are entered **together**; the higher approver role cannot be the stage's own role and must hold the approval permission. If left empty ("kimseye aktarılmaz" — not passed to anyone), the stage waits until a decision is made; the "Onay bekleyen hatırlatması" (Pending approval reminder) alert reminds the approvers. |
A person votes **once** in a stage; the same person's vote is not counted twice (a "two of three managers" rule
cannot be passed by a single person).
#### Multiple templates
"Aynı belgeye uyan birden çok şablon varsa hepsinin aşamaları sırayla eklenir." (If several templates match the same
document, the stages of all of them are added in sequence.) Matching templates are ordered by lower amount limit,
smallest to largest. Tiered approval can be set up in two ways:
- **Two templates:** "0 TRY and above → Purchasing Manager" and "50,000 TRY and above → General Manager". For a
60,000 TRY order both templates match; the round has two stages.
- **One template, two stages:** in the "50,000 TRY and above" template, stage 1 is the Purchasing Manager and stage 2
is the Administrator.
#### Validation messages
When a template is saved, the screen and the server apply the same rules: "Belge türünü seçin." (Select the document
type.), "Şablon adı zorunlu." (Template name is required.), "Tutar koşulunda en az bir sınır yazın (alt sınır 0
olabilir)." (Enter at least one limit in the amount condition (the lower limit can be 0).), "Alt tutar sınırı üst
sınırdan büyük olamaz." (The lower amount limit cannot be greater than the upper limit.), "İskonto eşiği 0'dan büyük
ve en fazla 100 olmalı." (The discount threshold must be greater than 0 and at most 100.), "Onaylayacak rolü
seçin." (Select the approving role.), "En az bir onaycı kullanıcı seçin." (Select at least one approver user.),
"Eskalasyon için süre ve üst onaycı rolünü birlikte girin." (Enter the duration and the higher approver role together
for escalation.), "Üst onaycı rolü aşamanın kendi rolüyle aynı olamaz." (The higher approver role cannot be the same
as the stage's own role.). In a multi-stage template, the message carries the stage number ("2. aşama: …" — Stage
2: …).
### Sample templates
| Purpose | Document Type | Condition | Stages |
|---|---|---|---|
| High-value purchasing | Satın Alma Siparişi (Purchase Order) | TRY, grand total between 50,000 and (empty) | 1. Purchasing Manager (unanswered for 24 hours → Administrator) · 2. Administrator |
| Discounted quotation | Satış Teklifi (Sales Quotation) | Discount threshold 10% | 1. Sales Manager |
| Every requisition | Satın Alma Talebi (Purchase Requisition) | — (every requisition) | 1. Purchasing Manager |
| Two signatures | Satın Alma Siparişi (Purchase Order) | TRY, 250,000 and above | 1. Specific people (3 managers), 2 approvals required, 2 rejections reject |
Two templates are defined in the demo installation: **Satış teklifi — iskonto %10 ve üzeri** (Sales quotation —
discount 10% and above; active, single stage: Yönetim onayı (Management approval) · Yönetici (Administrator)) and
**Satın alma siparişi — 50.000 TRY ve üzeri (örnek)** (Purchase order — 50,000 TRY and above (sample); inactive, two
stages).
## How a document goes to approval
On the document's detail page, the submit button learns about the template match **from the server**: if an active
template matches, the button is named **Onaya Gönder** (Submit for Approval) (for a sales quotation: "Bu teklif onay
şablonuna takılıyor (tutar ya da iskonto). **Onaya Gönder** teklifi kilitler; son onayda kendiliğinden gönderildi
olur." — This quotation is caught by an approval template (amount or discount). **Onaya Gönder** locks the quotation;
on final approval it automatically becomes sent).

1. Send for Approval instead of Send
2. Why it needs approval
```
Draft ──Submit for Approval──► Pending Approval ──(stage 1)──►(stage 2)──► final approval ──► next status (e.g. Sent)
▲ │ document LOCKED: cannot be edited, converted, or goods-received
│ ├─ rejection threshold ───────────────► Draft (edited and resubmitted — new round)
│ └─ Cancel ────────────────────────────► Cancelled (open round closes)
└───────────────────── if no template matches, Send advances it directly
```
- On submission, the stages of the matching templates are copied into the round, and a **"Onayınız bekleniyor"**
(Your approval is awaited) notification is sent to the approvers of stage 1 ("ST-… numaralı satış teklifi 1. onay
aşamasında sizi bekliyor." — Sales quotation ST-… is waiting for you at approval stage 1.).
- When a stage is approved, a notification is sent to the approvers of the next stage; the document remains locked.
- When the last stage is approved, the round becomes **Onaylandı** (Approved), the document proceeds, and a
**"… onaylandı"** (… approved) notification is sent to the sender (for a quotation: "… numaralı teklif tüm
onayları aldı ve gönderildi olarak işaretlendi." — Quotation … has received all approvals and was marked as sent.).
Because approval may take days, the document's sending rules (item master, customer, validity) are re-evaluated
at that moment.
- When a stage reaches the rejection threshold, the round becomes **Reddedildi** (Rejected), the remaining stages
close as **Sorulmadı** (Not asked), the document returns to draft, and a **"… reddedildi"** (… rejected)
notification is sent to the sender with the reason.
- If a document pending approval is cancelled, the open round becomes **İptal Edildi** (Cancelled).
### Approvals card on the document detail
Above a document pending approval it says whom it is waiting for ("Teklif onay bekliyor — sırada 1. aşama:
Yönetici. Onaylanınca gönderildi olur; reddedilirse taslağa döner." — Quotation pending approval — next is stage 1:
Administrator. When approved it becomes sent; if rejected it returns to draft.). The **Onaylar** (Approvals) card
lists the rounds with the newest on top: the round's status, sender, submission time and amount; for each stage the
approver, template and stage name, status (**Karar bekleniyor** (Decision pending) · **Onaylandı** (Approved) ·
**Reddedildi** (Rejected) · **Sorulmadı** (Not asked)), and the votes cast (name, "adına" (on behalf of) delegation
note, "(eskalasyonla)" (by escalation), Onayladı/Reddetti (Approved/Rejected), time, note). In a multi-vote stage
it says "Karar bekleniyor — 1/2 onay" (Decision pending — 1/2 approvals); in an escalated stage the escalation time
is shown.

1. Decision buttons — server decides (submitter cannot approve)
2. Who it is waiting for
3. Current round — awaiting decision
4. Previous round — rejection and reason kept
## Approval and rejection
The decision is made **on the document's detail page**: the **Onayla** (Approve) and **Reddet** (Reject) buttons are
drawn if the server answers yes to the question "can this person vote on this stage right now". The rule: holding
the stage's role or being named in the stage (or a delegation valid today), having the document type's approval
permission, and not having voted in this stage yet; for approval, segregation of duties applies as well. The
sender sees only **Reddet** (Reject).
| Dialog | Content |
|---|---|
| **Onay verilsin mi?** (Approve?) | "Oyunuz sıradaki aşamaya yazılır. Aşama gereken onaya ulaşır ve başka aşama yoksa belge onaylanır." (Your vote is recorded in the current stage. If the stage reaches the required approvals and there is no other stage, the document is approved.) **Not (isteğe bağlı)** (Note, optional) — "Onay kaydına düşecek açıklama" (Comment to be recorded with the approval), at most 512 characters. If voting as a delegate, it states on whose behalf. Buttons **Vazgeç** (Cancel) · **Onayla** (Approve). |
| **Reddedilsin mi?** (Reject?) | "Aşama red eşiğine ulaşırsa belge taslağa döner ve yeniden düzenlenebilir." (If the stage reaches the rejection threshold, the document returns to draft and can be edited again.) **Red gerekçesi** (Rejection reason) is required — "Neyin düzeltilmesi gerekiyor?" (What needs to be corrected?); "Gerekçe belgeyi onaya gönderen kişiye bildirim olarak iletilir." (The reason is sent as a notification to the person who submitted the document.) Buttons **Vazgeç** (Cancel) · **Reddet** (Reject). |

1. Rejection reason — sent to the submitter
2. Reject — document returns to draft at the threshold
On the approver's screen (demo: **Demo Onaylayıcı**, ST-2026-000005), the **Onay verilsin mi?** (Approve?) dialog
also shows the document number and amount ("ST-2026-000005 · 50.476,80 TRY"); the note appears under the vote on the
**Onaylar** (Approvals) card.

1. Document and amount being approved
2. Note — saved with the approval
3. Approve — last stage moves the document on
There is **no** bulk approval: an approval is a signature, and its justification lies in the content of the
document. On a phone, the same decision is made from the **Onaylarım** (My Approvals, mobile) screen.
### Decision messages
| Message | Reason |
|---|---|
| Onaya kendiniz gönderdiğiniz belgeyi onaylayamazsınız. Kararı başka bir onaycı vermeli. (You cannot approve a document you submitted for approval yourself. Another approver must decide.) | Segregation of duties. |
| Onaya kendiniz gönderdiğiniz ya da satış temsilcisi olduğunuz teklifi onaylayamazsınız. Kararı başka bir onaycı vermeli. (You cannot approve a quotation you submitted for approval or for which you are the sales representative. Another approver must decide.) | For a quotation, the sales representative cannot approve either. |
| Bu aşamada kararınızı zaten verdiniz — aşama diğer onaycıların oyunu bekliyor. (You have already made your decision in this stage — the stage is waiting for the other approvers' votes.) | One vote per person per stage. |
| Bu aşamayı yalnız '…' rolündeki kullanıcılar kapatabilir. (Only users in the '…' role can close this stage.) | You do not hold the stage's role. For an escalated stage, the time the duration expires is also stated. |
| Bu aşamada vekiliniz sizin adınıza oy verdi — aşama diğer onaycıların oyunu bekliyor. (Your delegate voted on your behalf in this stage — the stage is waiting for the other approvers' votes.) | Your delegate used your vote. |
| Red gerekçesi zorunludur. (A rejection reason is required.) | The reason is empty in the rejection dialog. |
| … onaylama yetkiniz yok. (You do not have permission to approve ….) | No approval permission for the document type. |
| Bu teklif onay beklemiyor. (This quotation is not pending approval.) | The document was approved, rejected or cancelled in the meantime — refresh the page. |
## Awaiting My Approval {#onayimi-bekleyenler}
**Yönetim › Onay Süreci › Onayımı Bekleyenler** (Administration › Approval Process › Awaiting My Approval) —
"Sırası gelmiş ve sizin (ya da vekili olduğunuz onaycının) kararını bekleyen belgeler" (Documents whose turn has
come and that are waiting for your decision, or that of the approver whose delegate you are). All document types are
in a single list, the longest-waiting first; documents you submitted yourself do not appear here. You make the
decision on the document's detail page, not on the row.

1. Document type filter
2. Submitter and date
3. Stage position, template and stage name
4. How long the stage has waited
5. On behalf of
| Column | Description |
|---|---|
| **Belge** (Document) | Document number and type; click to open the document. |
| **Gönderen** (Sender) | The person who submitted it for approval and the submission time. |
| **Tutar** (Amount) | The grand total at the time of submission and the currency; "—" for a document without a condition (requisition). |
| **Aşama** (Stage) | "2. aşama / 3" (Stage 2 / 3) or "Tek aşama" (Single stage); in a multi-vote stage "1/2 onay" (1/2 approvals); below it, the template and stage name. |
| **Bekliyor** (Waiting) | How long the stage has been waiting ("1 saatten az" (less than 1 hour), "5 saat" (5 hours), "2 gün" (2 days)) — the same duration the reminder counts. |
| **Vekalet** (Delegation) | "… adına" (on behalf of …) if waiting as a delegate. |
The **Belge Türü** (Document Type) filter narrows the list to a single type. **Bekleyen İşlerim** (My Pending Tasks)
on the Home page also counts the approval queue.
A document waiting in an approver's list (demo: ST-2026-000005 in Demo Onaylayıcı's queue, "Tek aşama" (Single
stage), "Satış teklifi — iskonto %10 ve üzeri — Yönetim onayı"):

1. Document — click to open
2. Submitter and date
3. Stage, template and stage name
4. How long the stage has waited
## Approval Delegations {#onay-vekaletleri}
**Yönetim › Onay Süreci › Onay Vekaletleri** (Administration › Approval Process › Approval Delegations) — "Onaycı
yokken (izin, hastalık) vekili tarih aralığında onun adına oy verir" (When an approver is absent (leave, illness),
the delegate votes on their behalf within a date range). The vote counts as the approver's; a person casts a single
vote in a stage; a document the approver cannot approve cannot be approved by the delegate either.

1. New Delegation
2. Manager: everyone’s delegations
3. Show ended delegations
4. Validity — both days inclusive
By default the list shows **Vekaletlerim** (My Delegations: delegations I have given and that have been given to
me); an administrator sees all delegations with the **Herkesin vekaletleri** (Everyone's delegations) switch.
**Bitmişleri göster** (Show ended) also lists the expired ones. Columns: **Onaycı** (Approver), **Vekil**
(Delegate), **Tarih Aralığı** (Date Range), **Belge Türü** (Document Type; if empty, "Bütün belge türleri" — All
document types), **Durum** (Status: Geçerli (Valid) · Başlamadı (Not started) · Bitti (Ended)), **Not** (Note);
**Kaldır** (Remove) in the row's Actions menu.

1. Approver — myself or (manager) another approver
2. Document type or all types
3. Substitute — a user with approval permission
4. Date range — up to 366 days
5. Note
| Field | Required | Description |
|---|---|---|
| **Onaycı** (Approver) | Yes | Visible to administrators only: **Kendim** (Myself) or another approver. "Yönetici, sisteme giremeyen onaycının yerine de vekil atayabilir." (An administrator can also assign a delegate for an approver who cannot sign in.) Other users can assign a delegate only for themselves. |
| **Belge Türü** (Document Type) | Yes | A single type or **Bütün belge türleri** (All document types). "Bütün türlerde vekil, onaycının onayladığı her belgenin onay yetkisini taşımalı." (For all types, the delegate must hold the approval permission for every document the approver approves.) |
| **Vekil** (Delegate) | Yes | "Onay yetkisi olan bir kullanıcı seçin" (Select a user with approval permission). The delegate must hold the approval permission for the delegated document types themselves — a delegation does not grant permissions. |
| **Tarih aralığı** (Date range) | Yes | Start — end; "İki gün de dahil; en fazla 366 gün — daha uzunu rol değişikliğidir." (Both days inclusive; at most 366 days — anything longer is a role change.) A delegation that ended in the past cannot be created. |
| **Not** (Note) | No | "Örn. yıllık izin" (e.g. annual leave); at most 512 characters. |
Server messages: "Kişi kendisine vekil olamaz." (A person cannot be their own delegate.), "Bitiş tarihi
başlangıçtan önce olamaz." (The end date cannot be before the start date.), "Geçmişte biten bir vekalet
tanımlanamaz." (A delegation that ended in the past cannot be defined.), "… için … bu tarihlerde zaten vekil." (…
is already the delegate for … on these dates.), "… şu belgeleri onaylama yetkisine sahip değil: …" (… does not have
permission to approve these documents: …). When a delegation is removed ("Vekalet kaldırılsın mı?" — Remove the
delegation?), the delegate can no longer vote on the approver's behalf; votes already cast remain in the trail with
the "adına" (on behalf of) record.
## Notifications and reminders
| Notification | Recipient | When |
|---|---|---|
| **Onayınız bekleniyor** (Your approval is awaited) | Everyone who can approve the stage whose turn has come (delegates included) | On submission and at each stage transition |
| **Onay hatırlatması** (Approval reminder; alert: *Onay bekleyen hatırlatması* — Pending approval reminder) | The same people | If a stage waits longer than the threshold (default 24 hours), once a day until a decision is made — if the alert is enabled |
| *Onay eskalasyonu* (Approval escalation; alert) | The higher approver role in the template | Once, when the stage's escalation duration expires — if the alert is enabled; the decision authority takes effect even when the notification is disabled |
| **Onay tamamlandı** (Approval completed) | Sender | On final approval |
| **Onay reddedildi** (Approval rejected) | Sender | On rejection, with the reason |
The purchase order also has its own notification types: **Satın alma siparişi onay bekliyor** (Purchase order pending
approval), **… onaylandı** (… approved), **… reddedildi** (… rejected). The channel (application, email, daily
digest) is the person's preference: [Notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler).
## Tasks
- [Create an approval template](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-sablonu-olusturma) — Document type, condition, stages.
- [Make an approval decision](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-karari-verme) — Approve, or reject with a reason.
- [Define an approval delegation](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-vekaleti-tanimlama) — A delegate for leave and absence.
- [Approval flow (process)](https://erpdocs.corexlogic.com/en/surecler/onay-akisi) — End-to-end approval of a discounted quotation.
---
# Alerts and notifications
> Notification bell, scheduled alerts (threshold, recipient, channel), notification rules for document events (event, condition, recipient, channel), personal notification preferences and device notifications.
URL: https://erpdocs.corexlogic.com/en/ayarlar/bildirimler
- **Type:** Guide
- **Module:** Administration
- **Menu path:** Yönetim › Özelleştirme › Genel › Uyarı ve Bildirim Yönetimi · Profil › Bildirim Tercihleri (Administration › Customization › General › Alert and Notification Management · Profile › Notification Preferences)
- **Screen route:** `/alerts`
- **Required permission:** `alerts.view (ekranı görme) · alerts.edit (uyarı açma/kapama, eşik, Şimdi Çalıştır, bildirim kuralı yazma)`, `Bildirimi almak için bu ekranın izni gerekmez; alıcı uyarının ya da kuralın kendi tanımından gelir.`
In CoreX ERP, a person is informed in three ways:
| Source | When | Defined by | Example |
|---|---|---|---|
| **System notifications** | When a task directly concerns the person | Fixed in code | "Onayınız bekleniyor" (Your approval is awaited), "Talebiniz siparişe dönüştü" (Your requisition was converted to an order), "Veri aktarımı tamamlandı" (Data import completed) |
| **Alerts** | When a condition holds in the hourly run | The administrator enables them and sets a threshold | Check/promissory note due date, trip delay, pending approval, below minimum stock |
| **Notification rules** | When an event occurs on a document | The administrator writes a rule | Outbound delivery created → warehouse managers |
All of them land in the **bell**. Email is also sent if the person's preference and the installation's email server
(SMTP) are enabled; without SMTP, the notification appears only in the application ([Email
(SMTP)](https://erpdocs.corexlogic.com/en/ayarlar/e-posta-smtp)).
## Notification bell {#bildirim-zili}
**Bildirimler** (Notifications, the bell) on the right of the top bar shows the number of unread notifications with a
red badge ("9+" if more than 9). The count is refreshed every 45 seconds and when the bell is opened.

1. Bell — unread count
2. Mark all as read
- Each row: title, message (single line), date and time; an unread row is bold with a blue dot on its left.
- Clicking a row marks the notification as read and, if it has a link, opens the related screen (e.g. a quotation,
an import result, Onayımı Bekleyenler (Awaiting My Approval)).
- **Tümünü okundu** (Mark all as read) marks all of them as read. If the list is empty it reads "Bildirim yok." (No
notifications.).
- On a phone, the same notifications are in the **Bildirimler** (Notifications) tab of the mobile shell; if device
notifications are enabled, they also arrive on the phone (see below).
## Alert and Notification Management screen
**Yönetim › Özelleştirme › Genel › Uyarı ve Bildirim Yönetimi** (Administration › Customization › General › Alert
and Notification Management). Two tabs: **Uyarılar** (Alerts, scheduled checks) and **Bildirim Kuralları**
(Notification Rules, document events); the tab is kept in the address (`?sekme=kurallar`).
### Alerts tab
"Zamanlanmış kontroller: süresi dolan belge, geciken iş, minimum altı stok — açılan uyarı bulguyu ilgili kişilere
bildirir" (Scheduled checks: expired document, delayed work, stock below minimum — an enabled alert notifies the
relevant people of the finding). The alerts themselves are defined in the system; the screen only **enables/disables**
them and sets the **threshold**. **All alerts start disabled.**

1. Scheduled alerts
2. Document event notification rules
3. On / Off — all start off
4. Threshold — hours or days; empty = default
5. Recipient and channel
6. Run Now — without waiting for the hourly run
| Column | Description |
|---|---|
| **Durum** (Status) | Switch: **Açık** (On) / **Kapalı** (Off). Users without permission see only the status. |
| **Uyarı** (Alert) | The alert's name and what it does. An unsaved row reads "değişti" (changed) and is highlighted. |
| **Eşik** (Threshold) | Number + unit (**saat** (hours) / **gün** (days)). Empty = default ("Varsayılan: 72 saat" — Default: 72 hours). At least 1 hour, at most 30 days (720 hours); whole number. For an alert without a threshold: "Eşik yok — bulgu olunca bildirir" (No threshold — notifies when there is a finding). |
| **Kime gider** (Sent to) | The recipient rule and the channel: **Uygulama** (Application) and, if email is supported, **E-posta** (Email). |
| **Son çalışma** (Last run) | The time of the last run and "N süren bulgu" (N ongoing findings) / "Bulgu yok" (No findings); if it has never run, "Henüz çalışmadı" (Not run yet). Below it, "Değiştiren: …" (Changed by: …). |
Alerts are grouped by area (the group row shows "1 / 2 açık" — 1 / 2 on). The **Ara** (Search) box searches name,
description and area; **Yalnız açık olanlar** (Only enabled ones) filters. In the toolbar: "N uyarı · N açık · N
kaydedilmemiş değişiklik" (N alerts · N on · N unsaved changes), **Şimdi Çalıştır** (Run Now), **Geri Al** (Undo),
**Kaydet (N)** (Save (N)).
| Alert | Area | Default threshold | Recipient | What it does |
|---|---|---|---|---|
| **Çek/senet vadesi** (Check/promissory note due date) | Finance | 72 hours | Those who can process checks/promissory notes | Notifies if the due date of a received check/note awaiting collection or of an unpaid issued check/note falls within the threshold or has passed; once a day while it lasts. |
| **Kalite faaliyeti termini** (Quality task due date) | Quality | 48 hours | The task owner | Notifies if the due date of an incomplete task of an open quality notification falls within the threshold or has passed; once a day until it is completed. |
| **Araç belgesi süresi** (Vehicle document expiry) | Logistics | 30 days | Those who can write fleet data | Notifies of an active vehicle whose inspection, insurance or tachograph validity expires within the threshold or has expired; once a week while it lasts. |
| **Sefer gecikmesi** (Trip delay) | Logistics | 2 hours | Those who can execute the trip | Notifies if the planned arrival of a trip on the road has been exceeded by the threshold and it has undelivered stops; once. |
| **Sürücü belgesi süresi** (Driver document expiry) | Logistics | 30 days | Those who can write fleet data | Notifies of an active driver whose driving licence, SRC or psychotechnical certificate expires within the threshold or has expired; once a week while it lasts. |
| **Onay bekleyen hatırlatması** (Pending approval reminder) | Approval | 24 hours | Everyone who can approve the stage (delegates included) | Reminds if an approval stage whose turn has come has been waiting longer than the threshold; once a day until a decision is made. |
| **Onay eskalasyonu** (Approval escalation) | Approval | No threshold (duration in the template) | The higher approver role defined in the template | If a stage with a defined escalation duration waits that long, notifies the higher approver role once; from that moment the role can also decide. |
| **Minimum stok altı** (Below minimum stock) | Inventory and planning | No threshold | Those who can create requisitions or production orders | Notifies of an item whose stock position (on hand + in transit − demand) falls below the minimum; once, when the item enters the list. |
- An enabled alert is checked **once an hour**; the same finding is not notified repeatedly. A person can turn off
the channel in **Profil › Bildirim Tercihleri** (Profile › Notification Preferences).
- **Şimdi Çalıştır** (Run Now; "Açık uyarıları saatlik turu beklemeden şimdi kontrol eder" — Checks enabled alerts
now without waiting for the hourly run) tries the enabled alerts immediately and lists the result: "N bulgu, N
kişiye bildirim" (N findings, notification to N people), "bulgu yok" (no findings) or an error. If no alert is
enabled: "Açık uyarı yok — tur hiçbir şeyi kontrol etmedi. Önce uyarıyı açıp kaydedin." (No alert is enabled — the
run checked nothing. Enable and save the alert first.) This button produces real notifications (and emails).
- When leaving the screen without saving, the system asks (stay on the page, save and leave, discard changes).
### Notification Rules tab
"Belge olayının bildirimi: kime, hangi koşulda, hangi kanaldan." (Notification of a document event: to whom, under
which condition, through which channel.) The event (created, goods issue, cancellation…) is captured from the
record; the rule says to whom and through which channel the notification goes. Instead of notifications hard-coded
in the software, the installation sets up its own rules.

1. New Rule
2. Document and event
3. Responsibility, role, user
4. In-app / in-app + e-mail
| Column | Description |
|---|---|
| **Kural** (Rule) | The rule's name. |
| **Belge · Olay** (Document · Event) | Name of the document and the event. |
| **Alıcılar** (Recipients) | Responsibilities, roles and people; for a rule with a condition, "Koşullu" (Conditional) below. |
| **Kanal** (Channel) | **Uygulama** (Application) or **Uygulama + e-posta** (Application + email). |
| **Durum** (Status) | **Aktif** (Active) / **Pasif** (Inactive). |
| **Değiştiren** (Changed by) | Last changed by and time. |
Edit and delete are in the row's Actions menu. Delete: "Kural silinsin mi? — "…" kuralı silinir ve bu olay için
bildirim gitmez; kişilerin bu kurala ait tercihleri de silinir. Geçici olarak durdurmak için kuralı pasife
alabilirsiniz." (Delete the rule? — the "…" rule is deleted and no notification is sent for this event; people's
preferences for this rule are deleted as well. To pause it temporarily, you can set the rule to inactive.)
#### Rule dialog
**Yeni Kural** (New Rule) opens the "Yeni Bildirim Kuralı" (New Notification Rule) dialog: "Belgede bir olay
olduğunda kime, hangi koşulda ve hangi kanaldan bildirim gideceğini tanımlayın." (Define to whom, under which
condition and through which channel a notification is sent when an event occurs on a document.) On the right, the
rule's **Özet** (Summary) sentence.

1. 1 · Document
2. Event
3. 2 · Who — responsibility, role, user
4. 3 · Condition — warehouse
5. 4 · How — e-mail, exclude actor, active
6. Summary
| Step | Field | Required | Description |
|---|---|---|---|
| 1 · When | **Kural adı** (Rule name) | Yes | At most 128 characters. "Örn. Mal çıkışı — satış temsilcisine" (e.g. Goods issue — to the sales representative). Appears with this name in the preference list in Profile. |
| | **Belge** (Document) | Yes | "Olay bildirimi tanımlanabilen belgeler. Onay ve süre uyarıları kendi ekranlarından (Onay Şablonları, Uyarılar sekmesi) gelir." (Documents for which event notifications can be defined. Approval and time alerts come from their own screens (Approval Templates, Alerts tab).) When the document changes, the event, responsibility and condition are reset. |
| | **Olay** (Event) | Yes | The document's events (table below). |
| 2 · To whom | **Belgenin sorumlusu** (Document owner) | At least one recipient | "Belgenin kendi kişisi — depo sorumlusu deponun, satış temsilcisi siparişin." (The document's own person — the warehouse manager of the warehouse, the sales representative of the order.) |
| | **Roller** (Roles) | | Role list (Rol ara… — Search role…); "N rol seçili — rolü taşıyan herkes bildirimi alır." (N roles selected — everyone holding the role receives the notification.) |
| | **Kişiler** (People) | | User selection with "Kişi ekle" (Add person); remove with the cross. |
| 3 · Under which condition | A dimension of the document (e.g. **Depo** (Warehouse)) | No | "Hiçbiri seçili değilse her depo için geçerli." (If none is selected, applies to every warehouse.) If selected, the notification is sent only for those values. |
| 4 · How | **E-posta da gönder (uygulama bildirimine ek olarak)** (Also send email, in addition to the application notification) | — | Off = application only. If the person has no preference, this is the default channel. |
| | **Değişikliği yapan kişiye gönderme** (Do not send to the person who made the change) | — | On by default: no notification is sent to the person who performed the event. |
| | **Kural etkin** (Rule active) / **Kural pasif** (Rule inactive) | — | An inactive rule does not produce notifications. |
The server and the screen perform the same validation: "Kural adı zorunlu." (Rule name is required.), "Belge
seçin." (Select a document.), "Olay seçin." (Select an event.), "En az bir alıcı seçin — sorumluluk, rol ya da
kullanıcı." (Select at least one recipient — responsibility, role or user.) "Aynı kişiye birden çok kural aynı
olayı bildirirse tek bildirim gider. Belgeyi görme izni olmayan alıcıya bildirim gitmez." (If several rules notify
the same person of the same event, a single notification is sent. No notification is sent to a recipient without
permission to view the document.)
#### Documents and events that can be defined
| Document | Events | Document owner | Condition dimension |
|---|---|---|---|
| **Giden teslimat** (Outbound delivery) | Teslimat açıldı — mal çıkışı bekliyor (Delivery created — awaiting goods issue) · Mal çıkışı kaydedildi (Goods issue posted) · Teslimat iptal edildi (Delivery cancelled) · Kredi blokesine düştü (Fell into credit block) · Alındı teyidi kaydedildi (Proof of delivery recorded) | Depo sorumluları (Warehouse managers) · Siparişin satış temsilcisi (The order's sales representative) | Depo (Warehouse) |
Four rules are defined in the demo installation: "Giden teslimat açıldı — depo hazırlığı" (Outbound delivery created
— warehouse preparation; warehouse managers, application), "Mal çıkışı kaydedildi — satış temsilcisine" (Goods issue
posted — to the sales representative; application + email), "Teslimat kredi blokesinde — kredi yönetimine" (Delivery
in credit block — to credit management; sales representative + Kredi Yöneticisi (Credit Manager) role, application +
email), "Giden teslimat iptal edildi" (Outbound delivery cancelled; warehouse managers and sales representative).
## Notification preferences
**Profil › Bildirim Tercihleri** (Profile › Notification Preferences; user menu › Profile, `?sekme=bildirimler`).
Each person chooses their own channel; the administrator's setting is the **default** for those without a
preference.

1. Notification Preferences tab
2. Device notification
3. No SMTP — no e-mail or digest
4. Your choice per notification
5. Save Preferences
| Option | Meaning |
|---|---|
| **Varsayılan (…)** (Default (…)) | Follows the channel of the rule or notification type (shown in parentheses). |
| **Yalnız uygulama** (Application only) | Bell only. |
| **Uygulama + e-posta** (Application + email) | Bell and immediate email. |
| **Uygulama + günlük özet** (Application + daily digest) | Bell; the email collects that day's notifications into a single message in the morning (default time 08:00). |
| **Kapalı** (Off) | You never receive this notification. |
The table is divided into groups (outbound delivery rules, Approval, Purchasing, Logistics, Inventory, Quality,
Finance, Service, Data Import); the columns are **Bildirim** (Notification), **Varsayılan kanal** (Default channel),
**Tercihiniz** (Your preference). At the bottom: "N bildirimde kendi seçiminiz var" (You have your own choice for N
notifications), **Tümünü Varsayılana Döndür** (Reset All to Default), **Vazgeç** (Cancel), **Tercihleri Kaydet**
(Save Preferences). If no email server is defined, the card shows the warning "E-posta sunucusu tanımlı değil —
e-posta ve günlük özet gitmez, bildirim uygulamada görünür." (No email server is defined — email and daily digest
are not sent, the notification appears in the application.)
System notification types (default channel): **Onayınız bekleniyor** (Your approval is awaited), **Onay
hatırlatması** (Approval reminder), **Onay tamamlandı** (Approval completed), **Onay reddedildi** (Approval
rejected), **Satın alma siparişi onay bekliyor / onaylandı / reddedildi** (Purchase order pending approval /
approved / rejected), **Yeni satın alma talebi** (New purchase requisition), **Talebiniz teklif aşamasında** (Your
requisition is at the quotation stage), **Talebiniz siparişe dönüştü** (Your requisition was converted to an order),
**Gelen teslimat bildirildi** (Inbound delivery notified), **Mal yolda (e-İrsaliye)** (Goods in transit
(e-Delivery Note)), **Gelen teslimat inceleme bekliyor** (Inbound delivery awaiting review), **Sefer gecikti** (Trip
delayed), **Filo belgesinin süresi doluyor** (Fleet document expiring), **Kalite faaliyetinin termini geldi**
(Quality task due), **e-Belge dikkat istiyor** (e-Document needs attention), **Çek/senet vadesi geldi**
(Check/promissory note due), **Servis çağrısı size atandı** (Service call assigned to you) (these are Application +
email); **Stok minimumun altında** (Stock below minimum), **Veri aktarımı başladı** (Data import started), **Veri
aktarımı kontrolü tamamlandı** (Data import validation completed), **Veri aktarımı tamamlandı** (Data import
completed) (Application only); **Veri aktarımı hata verdi** (Data import failed) (Application + email).
### Device notifications
If **Bu cihaza bildirim gönder** (Send notifications to this device) is turned on in the **Cihaz Bildirimi** (Device
Notification) card at the top of the same tab, every notification that lands immediately in the bell also arrives on
that device (phone or browser notification); disabled and daily-digest types are not sent. The list shows the
person's devices with notifications enabled; **Bildirimi Kaldır** (Remove Notification) on a row, and **Deneme
Bildirimi Gönder** (Send Test Notification) sends a test to all your devices. On an iPhone, notifications arrive only
for the app added to the home screen. When you sign out, notifications for that device are turned off.
## Tasks
- [Enable an alert](https://erpdocs.corexlogic.com/en/ayarlar/islemler/uyari-acma) — Enable an alert, threshold, save.
- [Create a notification rule](https://erpdocs.corexlogic.com/en/ayarlar/islemler/bildirim-kurali-olusturma) — Event, recipient, condition, channel.
- [Choose a notification preference](https://erpdocs.corexlogic.com/en/ayarlar/islemler/bildirim-tercihi-secme) — Personal channel.
---
# Email settings (SMTP)
> The installation's SMTP server — server, connection security, port, credentials, sender; password, test email, where email is used, and the Send Queue.
URL: https://erpdocs.corexlogic.com/en/ayarlar/e-posta-smtp
- **Type:** Guide
- **Module:** Administration
- **Menu path:** Yönetim › Özelleştirme › Genel › E-posta Ayarları · Yönetim › İzleme › Gönderim Kuyruğu (Administration › Customization › General › Email Settings · Administration › Monitoring › Send Queue)
- **Screen route:** `/email-settings`
- **Required permission:** `email-settings.view (görme) · email-settings.edit (kaydetme, parola, deneme gönderimi)`, `outbox.view (Gönderim Kuyruğu) · outbox.edit (Yeniden dene)`
CoreX ERP sends email from the installation's **own SMTP server**. Each installation enters its server on this
screen; the setting is stored in the database and does not ship with the software. "Bildirimler, parola sıfırlama
ve davet iletileri bu sunucudan gider. Sunucu alanını boş kaydetmek e-postayı kapatır." (Notifications, password
reset and invitation messages are sent from this server. Saving the server field empty turns email off.)
## Where email is used
| Use | How it is sent | Without SMTP |
|---|---|---|
| **Notification email** (approval, alert, rule, system notifications) | Through the Gönderim Kuyruğu (Send Queue), in the background | The notification appears in the bell; the queue message waits with the error "SMTP tanımlı değil — … Tanımladıktan sonra yeniden deneyin." (SMTP is not defined — … Retry after defining it.) |
| **Daily digest** (Application + daily digest preference) | A single message every morning | Not sent. |
| **User invitation and password reset** | Directly | The invitation and reset link cannot be sent by email. |
| **Document email** — **Çıktı › E-posta ile Gönder** (Output › Send by Email) on the document detail (quotation, order and other documents with output) | Through the queue (at most 3 attempts, at most 20 recipients) | Sending is refused: "E-posta sunucusu (SMTP) tanımlı değil — Yönetim › Özelleştirme › Genel › E-posta Ayarları." (No email server (SMTP) is defined — Administration › Customization › General › Email Settings.) |
| **Carrier request for quotation** (transport tender invitation) | Through the queue | "E-posta sunucusu (SMTP) tanımlı değil — teklif isteği gönderilemez; e-postasız açın ya da SMTP'yi tanımlayın." (No email server (SMTP) is defined — the request for quotation cannot be sent; create it without email or define SMTP.) |
| **e-Archive invoice email** | Sent by the integrator (e-Belge Ayarları › Belgeler › **e-Arşivi e-postayla ilet** — e-Document Settings › Documents › Send e-Archive by email) | Independent of this setting. |
## Email Settings screen
**Yönetim › Özelleştirme › Genel › E-posta Ayarları** (Administration › Customization › General › Email Settings).
Three panels: server settings, **Parola** (Password), **Deneme gönderimi** (Test send).

1. Status and settings source
2. Server — empty = e-mail off
3. Connection security — suggests the port
4. User name — empty = relay without auth
5. Sender address and name
6. Test — with saved settings
The badge at the top shows the sending status (**Gönderim açık** (Sending on) / **Gönderim kapalı** (Sending off)),
and the sentence next to it states the source of the setting:
| Sentence | Meaning |
|---|---|
| E-posta gönderilmiyor: sunucu tanımlı değil. (Email is not being sent: no server is defined.) | There is neither a record on this screen nor a server configuration. |
| Gönderim bu ekrandaki ayarla yapılıyor. (Sending uses the setting on this screen.) | There is a record on this screen; it applies. |
| Gönderim sunucu yapılandırmasıyla (Smtp) yapılıyor. İlk kayıt ayarı bu ekrana taşır; parolayı burada yeniden girin. (Sending uses the server configuration (Smtp). The first save moves the setting to this screen; re-enter the password here.) | There is no record on the screen; the SMTP in the installation's server configuration is used. The first **Kaydet** (Save) on this screen takes the setting over to the screen. |
If there **is** a record on this screen, **it is authoritative**: a record with an empty server field turns email
off even if SMTP is in the configuration.
### Server fields
| Field | Value | Description |
|---|---|---|
| **Sunucu** (Server) | Host name, e.g. `smtp.sirketiniz.com`; at most 255 characters, no spaces | SMTP server. **Saving it empty turns email off** ("Kaydedildi — sunucu boş olduğu için e-posta kapalı." — Saved — email is off because the server is empty.). |
| **Bağlantı güvenliği** (Connection security) | **STARTTLS (genellikle 587)** (STARTTLS, usually 587) · **SSL/TLS (genellikle 465)** (SSL/TLS, usually 465) · **Şifresiz — yalnız iç ağ rölesi (genellikle 25)** (Unencrypted — internal relay only, usually 25) | Default STARTTLS. The selection also suggests the port: if the port is at its usual value it changes with the security setting; a manually entered port is kept. Unencrypted is used only for an internal relay. |
| **Port** | 1–65535 | Default 587. The port provided by your provider. |
| **Kullanıcı adı** (User name) | At most 256 characters | SMTP authentication. "Boşsa kimlik doğrulamasız gönderim (iç ağ rölesi)." (If empty, sending without authentication (internal relay).) |
| **Gönderen adresi** (Sender address) | Valid email, at most 256 characters | The message's "From" address. "Boşsa kullanıcı adı gönderen olur." (If empty, the user name becomes the sender.) — in that case the user name must also be an email address. |
| **Gönderen adı** (Sender name) | At most 128 characters, e.g. the company name | The sender name the recipient sees. |
At the bottom of the panel: "Son değişiklik: tarih · kişi" (Last change: date · person) (or "Bu ekranda henüz kayıt
yok." — No record on this screen yet.) and **Kaydet** (Save). When leaving with unsaved changes, the system asks.
Save messages: "E-posta ayarları kaydedildi." (Email settings saved.), "Port 1 ile 65535 arasında olmalı." (Port
must be between 1 and 65535.), "Sunucu adı boşluk içeremez." (The server name cannot contain spaces.), "Gönderen
adresi geçerli bir e-posta olmalı (boşsa kullanıcı adı kullanılır)." (The sender address must be a valid email (if
empty, the user name is used).), "E-posta ayarları siz düzenlerken değişti. Sayfayı yenileyip yeniden kaydedin."
(The email settings changed while you were editing. Refresh the page and save again.)
### Password
The password is **not** sent with the form; it is saved separately, stored encrypted, and its value **never**
comes back to the screen. The row shows the saved status: "••••• kayıtlı · tarih · kişi" (••••• saved · date ·
person) or "Parola kayıtlı değil" (No password saved).
| Button | What it does |
|---|---|
| **Parola gir** (Enter password) / **Parolayı değiştir** (Change password) | Opens the password field; **Parolayı kaydet** (Save password) (or Enter) saves it and clears the field ("Parola kaydedildi." — Password saved.), **Vazgeç** (Cancel) closes it. At most 256 characters. |
| **Parolayı kaldır** (Remove password) | Deletes the saved password ("Parola kaldırıldı." — Password removed.). |
The password is not accepted until the server setting is saved on this screen: "Önce sunucu ayarlarını kaydedin;
parola bu ekrandaki ayarla birlikte kullanılır." (Save the server settings first; the password is used together with
the setting on this screen.) If the saved password cannot be decrypted, the test says "Kayıtlı SMTP parolası
çözülemedi; parolayı yeniden girin." (The saved SMTP password could not be decrypted; re-enter the password.)
### Test send
"Kayıtlı ayarla bir deneme iletisi gönderir; sunucunun hatası olduğu gibi gösterilir." (Sends a test message with
the saved setting; the server's error is shown as is.) If the recipient box is empty, the test goes to the address
of the signed-in user. **Deneme e-postası gönder** (Send test email):
- Is disabled while there are unsaved changes — "denenen ayar görünen ayar olmalı" (the tested setting must be the
displayed setting).
- Is disabled while sending is off ("Gönderim kapalı: önce sunucuyu kaydedin." — Sending is off: save the server
first.).
- Does not go through the queue; it is sent immediately. On success: "Deneme iletisi … adresine gönderildi." (Test
message sent to ….); on error, the server's response: "E-posta gönderilemedi: …" (Email could not be sent: …)
(e.g. authentication rejected, connection timeout, certificate error).
- The message subject is "[CoreX ERP] Deneme e-postası" (CoreX ERP test email), and the body states the server and
port.
## Send Queue {#gonderim-kuyrugu}
**Yönetim › İzleme › Gönderim Kuyruğu** (Administration › Monitoring › Send Queue) — the screen for the question
"didn't something that should have been sent go out?". "Arka planda gönderilen e-postalar; gönderim hatası işi geri
almaz, mesaj yeniden denenir. Deneme hakkı bitmiş ya da kalıcı hatalı mesaj "gönderilemedi" olarak burada bekler."
(Emails sent in the background; a sending error does not roll back the transaction, the message is retried. A
message that has used up its attempts or has a permanent error waits here as "gönderilemedi" (could not be sent).)

1. Summary — pending, sending, failed
2. Status filter
3. Attempts
4. Last server error
Summary at the top: **Bekleyen** (Pending) · **Gönderiliyor** (Sending) · **Gönderilemedi** (Could not be sent) ·
**Son 24 saatte gönderilen** (Sent in the last 24 hours). **Durum** (Status) filter: **Açık (bekleyen +
gönderilemeyen)** (Open (pending + not sent); default), **Gönderilemedi** (Could not be sent), **Bekliyor**
(Pending), **Gönderildi** (Sent).
| Column | Description |
|---|---|
| **#** | Message number. |
| **Tür** (Type) | E.g. **Bildirim e-postası** (Notification email). |
| **Durum** (Status) | **Bekliyor** (Pending) · **Gönderiliyor** (Sending) · **Gönderildi** (Sent) · **Gönderilemedi** (Could not be sent; red). |
| **Deneme** (Attempts) | How many times it has been attempted. |
| **Oluşturma** (Created) | When the message entered the queue. |
| **Sonraki deneme / bitiş** (Next attempt / finished) | The next attempt time of a pending message, or the finish time of a completed message. |
| **Son hata** (Last error) | The server's last error. |
| (button) | **Yeniden dene** (Retry) — only on a **Gönderilemedi** (Could not be sent) row and with the `outbox.edit` permission. |
When a notification email fails, it is retried at increasing intervals: 30 s → 2 min → 10 min → 30 min → 2 h → 6 h
→ 12 h → 24 h; when the attempts (default 8) are used up or the error is permanent, it becomes **Gönderilemedi**
(Could not be sent). If SMTP is defined later, pending messages are sent on the next attempt; messages that could
not be sent return to the queue with **Yeniden dene** (Retry). Only a message that could not be sent can be retried
("Yalnız gönderilemeyen mesaj yeniden denenebilir." — Only a message that could not be sent can be retried.).
## Troubleshooting
| Symptom | Where to look |
|---|---|
| Notification in the bell, but no email | Is the badge **Gönderim kapalı** (Sending off)? Is the person's preference **Yalnız uygulama** (Application only)? Is the message **Bekliyor** (Pending) / **Gönderilemedi** (Could not be sent) in the Send Queue, and what does **Son hata** (Last error) say? |
| Test returns "E-posta gönderilemedi: …" (Email could not be sent: …) | Are the server name, port and **Bağlantı güvenliği** (Connection security) the same as the provider's values (587 ↔ STARTTLS, 465 ↔ SSL/TLS)? Are the user name and password correct; does the provider require an app password? |
| The "From" sender is wrong at the recipient | **Gönderen adresi** (Sender address) and **Gönderen adı** (Sender name); the provider may allow sending only from the authenticated address. |
| Document email is refused | "E-posta sunucusu (SMTP) tanımlı değil …" (No email server (SMTP) is defined …) — save this screen first. |
## Related
- [Define the email server](https://erpdocs.corexlogic.com/en/ayarlar/islemler/e-posta-sunucusu-tanimlama)
- [Notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler)
- [Send a quotation (Çıktı › E-posta ile Gönder — Output › Send by Email)](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-gonderme)
---
# e-Document settings (EDM integrator)
> e-Invoice, e-Archive and e-Delivery Note integrator connection — environment, credentials, GİB labels, series, document switches, scheduling, status, go-live checklist and the lifecycle of outgoing/incoming documents.
URL: https://erpdocs.corexlogic.com/en/ayarlar/e-belge
- **Type:** Guide
- **Module:** Administration
- **Menu path:** Yönetim › Özelleştirme › Finans › e-Belge Ayarları (Administration › Customization › Finance › e-Document Settings)
- **Screen route:** `/erp/edocuments/settings`
- **Required permission:** `erp-edocuments-settings.view (görme) · erp-edocuments-settings.edit (kaydetme, parola, Bağlantıyı Sına)`, `erp-edocuments-settings.activate (e-Belgeyi açmak ve Canlı ortama almak — ayrı yetki)`
CoreX ERP sends and receives e-Invoices, e-Archive invoices and e-Delivery Notes through **EDM Bilişim**, a private
integrator authorized by the Turkish Revenue Administration (GİB). **e-Belge Ayarları** (e-Document Settings) is the
single screen for this connection: "e-Fatura, e-Arşiv ve e-İrsaliye entegratör (EDM) bağlantısı. Kurulum kapalı
başlar; kapalıyken hiçbir belge gönderilmez ve entegratöre çağrı yapılmaz" (e-Invoice, e-Archive and e-Delivery Note
integrator (EDM) connection. The installation starts disabled; while disabled, no document is sent and no call is
made to the integrator).
> **Credentials**
The integrator user name and password belong to your organization; they are entered only on this screen, by an
authorized person. The password is stored encrypted and never appears on the screen or in an export. In the
screenshots in this documentation, the credential fields are intentionally empty.
## The screen's seven tabs
**Genel** (General) · **Bağlantı** (Connection) · **Etiketler ve Seriler** (Labels and Series) · **Belgeler**
(Documents) · **Zamanlama** (Scheduling) · **Durum** (Status) · **Canlıya Geçiş** (Go-Live). Switching between tabs
does not lose unsaved fields. **Kaydet** (Save) is at the bottom of the panel and saves all tabs together (except the
password — "Parola bu düğmeyle gitmez — Bağlantı sekmesinde ayrı kaydedilir." — The password is not sent with this
button — it is saved separately on the Connection tab.). The pre-save validation names the tab of the invalid field
("… (Bağlantı sekmesi)" — … (Connection tab)) and takes you to that field with **Alana git** (Go to field).
Two persistent warnings may appear at the top of the screen:
| Warning | Meaning |
|---|---|
| "Acil durdurma açık (sunucu ortam değişkeni). Buradaki şalter ne olursa olsun e-Belge KAPALI çalışır; bayrak kaldırılınca kayıtlı ayar geri gelir." (Emergency stop is on (server environment variable). Regardless of the switch here, e-Document runs DISABLED; when the flag is removed, the saved setting comes back.) | The server administrator has stopped all integrator calls with the `EDocuments__ForceDisabled` flag. **Bağlantıyı Sına** (Test Connection) does not work either: "Acil durdurma açıkken entegratöre çağrı yapılmaz." (No call is made to the integrator while emergency stop is on.) |
| "Bu kurulum TEST ortamı: canlı e-Belge ortamı kapalı. Canlı seçilemez ve canlı parola burada kaydedilmez; entegratöre yalnız Test ortamıyla bağlanılır." (This installation is a TEST environment: the live e-Document environment is disabled. Live cannot be selected and the live password is not saved here; the integrator is connected only with the Test environment.) | The installation is a test installation (a copy of the live database may be loaded here). **Canlı** (Live) is disabled in the environment list. |
The live gate is on the server. If you try to save or enter the live password, the server returns one of these
messages:
- "Bu kurulumda canlı e-Belge ortamı kapalı (EDocuments__LiveAllowed=false): test ortamı canlı entegratöre bağlanmaz."
(The live e-Document environment is disabled in this installation (EDocuments__LiveAllowed=false): a test
environment does not connect to the live integrator.)
- "Bu kurulumun lisansı TEST ortamı için: canlı e-Belge ortamına bağlanılamaz. Test ortamında e-Belge entegratörün
test hesabıyla denenir; canlı fatura için canlı lisans gerekir." (This installation's license is for a TEST
environment: it cannot connect to the live e-Document environment. In the test environment, e-Document is tried
with the integrator's test account; live invoicing requires a live license.)
### General

1. Seven tabs
2. Main switch — enabling needs Activate
3. Environment — Test / Live
4. Integrator
5. e-Invoice start date
| Field | Values | Description |
|---|---|---|
| **e-Belge etkin** (e-Document enabled) | On / Off (default off) | "Ana şalter. Kapalıyken belge gönderilmez, gelen kutusu çekilmez." (Main switch. While off, no document is sent and the inbox is not retrieved.) Turning it on requires the **e-Belge Ayarları · Etkinleştir** (e-Document Settings · Activate) permission; a user without it can turn it off but not on ("Açmak "e-Belge Ayarları · Etkinleştir" yetkisi ister." — Turning on requires the "e-Document Settings · Activate" permission.). Before turning it on, the user name and password of the selected environment must be saved ("e-Belgeyi açmadan önce seçili ortamın parolasını kaydedin." — Save the password of the selected environment before enabling e-Document.). |
| **Ortam** (Environment) | **Test** · **Canlı** (Live) | "Kimlik ve numara sayacı ortam başına ayrı; test gönderimi canlı seriyi tüketmez." (Credentials and number counter are separate per environment; a test submission does not consume the live series.) Switching to live also requires the Activate permission and opens a confirmation dialog (below). |
| **Entegratör** (Integrator) | EDM Bilişim (read-only) | The installation's integrator. |
| **e-Fatura başlangıcı** (e-Invoice start) | Date | "Bu tarihten itibaren fatura CoreX'te kesilir; öncesi fatura referansıyla kapanır." (From this date, invoices are issued in CoreX; earlier ones are closed with an invoice reference.) An external invoice reference cannot be entered for a delivery after this date. This is a blocking item for go-live. |
### Connection
There are two separate sections for Test and Live; the heading of the selected environment shows "· seçili" (·
selected).

1. Separate credentials per environment
2. Service URLs (https)
3. User name
4. Test only: sender tax no.
5. Password saved separately, never shown
| Field | Description |
|---|---|
| **e-Fatura / e-Arşiv adresi** (e-Invoice / e-Archive address) | The integrator's invoice service address. It must start with `https://` ("… https ile başlayan geçerli bir adres olmalı." — … must be a valid address starting with https.). EDM's test and live addresses are pre-filled in the installation. |
| **e-İrsaliye adresi** (e-Delivery Note address) | The integrator's delivery note service address; same rule. |
| **Kullanıcı adı** (User name) | The environment's integrator user. While e-Document is on, the selected environment's user name is required; in the live environment, the live user is required. |
| **Test göndereni VKN** (Test sender tax ID) | Test only: "Yalnız Test ortamında faturada/irsaliyede gönderen VKN. Test hesabının VKN'si; canlıda okunmaz, şirket profili değişmez." (The sender tax ID (VKN) on invoices/delivery notes in the Test environment only. The test account's VKN; it is not read in live, and the company profile does not change.) 10 digits. |
| **Test göndereni unvanı** (Test sender name) | Test only: "Boşsa şirket unvanı kullanılır." (If empty, the company name is used.) Cannot be entered without a VKN. |
| **Parola** (Password) | "••••• kayıtlı · tarih · kişi" (••••• saved · date · person) or "Parola kayıtlı değil" (No password saved). **Parola gir** (Enter password) / **Parolayı değiştir** (Change password) opens the field, **Parolayı kaydet** (Save password) saves and clears it. It is not sent with the form's **Kaydet** (Save). "Parola boş olamaz." (The password cannot be empty.) |
| **Bağlantı** (Connection) › **Bağlantıyı Sına** (Test Connection) | Signs in to the integrator with the saved credentials and queries the remaining credits and the company's GİB registration (labels); it **does not create a document**. If disabled, the reason is shown next to it: "Önce değişiklikleri kaydedin — sınama kayıtlı ayarla yapılır." (Save the changes first — the test uses the saved setting.), "Önce kullanıcı adını girip kaydedin." (Enter and save the user name first.), "Önce parolayı kaydedin." (Save the password first.), "Acil durdurma açıkken entegratöre çağrı yapılmaz." (No call is made to the integrator while emergency stop is on.) On timeout: "EDM … saniye içinde yanıt vermedi." (EDM did not respond within … seconds.) |
A successful **Bağlantıyı Sına** (Test Connection) in the live environment is a blocking item of the go-live
checklist.
### Labels and Series

1. GIB sender aliases (GB)
2. Mailbox alias (PK)
3. Series — 3 letters/digits
| Field | Format | Description |
|---|---|---|
| **e-Fatura gönderici etiketi (GB)** (e-Invoice sender label, GB) | `urn:mail:ad@alan` (e.g. `urn:mail:defaultgb@…`) | The company's invoice sender unit label at GİB. Required in the live environment. |
| **e-İrsaliye gönderici etiketi (GB)** (e-Delivery Note sender label, GB) | `urn:mail:…` | Delivery note sender label. Required in live while e-Delivery Note is on. |
| **Posta kutusu etiketi (PK)** (Mailbox label, PK) | `urn:mail:defaultpk@…` | The mailbox label for incoming documents. |
| **e-Fatura serisi** (e-Invoice series) | 3 uppercase letters or digits (e.g. `KRN`) | Required in live while e-Invoice is on. |
| **e-Arşiv serisi** (e-Archive series) | 3 letters/digits (e.g. `KRA`) | Required in live while e-Archive is on. |
| **e-İrsaliye serisi** (e-Delivery Note series) | 3 letters/digits (e.g. `KRI`) | Required in live while e-Delivery Note is on. |
| **İhracat serisi** (Export series) | 3 letters/digits | Series for export invoices. "Seri 3 büyük harf ya da rakam ve entegratör portalında tanımlı olmalı. Fatura numarasını entegratör verir." (The series must be 3 uppercase letters or digits and defined in the integrator portal. The invoice number is assigned by the integrator.) |
If the label format is wrong: "… 'urn:mail:ad@alan' biçiminde olmalı." (… must be in the format
'urn:mail:ad@alan'.); if the series is wrong: "… 3 büyük harf ya da rakam olmalı (ör. KRN)." (… must be 3 uppercase
letters or digits (e.g. KRN).) The invoice number is assigned on submission to the integrator, not on finalization.
### Documents

1. Document type switches
2. Inbox pull
3. Send on finalize
4. Default scenario — Basic / Commercial
| Switch | Description |
|---|---|
| **e-Fatura** (e-Invoice) | "Kayıtlı mükellefe giden fatura." (Invoice to a registered taxpayer.) |
| **e-Arşiv** (e-Archive) | "Kayıtlı olmayan alıcıya ve nihai tüketiciye fatura." (Invoice to an unregistered recipient and to the end consumer.) |
| **e-Arşivi e-postayla ilet** (Send e-Archive by email) | "Entegratör alıcıya e-posta gönderir." (The integrator sends an email to the recipient.) (Independent of the installation's SMTP.) On by default. |
| **e-İrsaliye** (e-Delivery Note) | "Teslimatta giden irsaliye." (Outgoing delivery note on delivery.) |
| **Gelen e-Faturaları çek** (Retrieve incoming e-Invoices) | Invoices in the inbox are taken into **Gelen e-Faturalar** (Incoming e-Invoices). |
| **Gelen e-İrsaliyeleri çek** (Retrieve incoming e-Delivery Notes) | Supplier delivery notes are taken into **Gelen e-İrsaliyeler** (Incoming e-Delivery Notes) (matched with the inbound delivery). |
| **Gelen kutusu başka yazılımla paylaşılıyor** (Inbox is shared with other software) | "Aynı EDM hesabını eski programınız da çekiyorsa açın: CoreX belgeleri EDM'de okundu işaretlemez ve her turda okunmuşlar dâhil sorar — iki program da her belgeyi alır." (Turn on if your previous software also retrieves from the same EDM account: CoreX does not mark documents as read in EDM and queries including read ones on every run — both programs receive every document.) |
| **Dışarıda kesilen giden belgeleri (e-Fatura, e-Arşiv, e-İrsaliye) arşive çek** (Retrieve outgoing documents issued elsewhere (e-Invoice, e-Archive, e-Delivery Note) into the archive) | "EDM portalında ya da eski programda kesilen faturalar Giden e-Faturalar'da, e-İrsaliyeler Giden e-İrsaliyeler'de salt okunur arşiv olarak görünür; cari hesaba, stoğa ve teslimata işlemez." (Invoices issued in the EDM portal or in the previous software appear in Outgoing e-Invoices, and e-Delivery Notes in Outgoing e-Delivery Notes, as a read-only archive; they are not posted to the business partner account, stock or delivery.) |
| **Kesinleşince gönder** (Send on finalization) | "Kapalıyken kesinleştirilen fatura ayrı bir "Gönder" onayı bekler (önerilen)." (While off, a finalized invoice waits for a separate "Send" confirmation (recommended).) |
| **Varsayılan senaryo** (Default scenario) | **Temel fatura** (Basic invoice) · **Ticari fatura** (Commercial invoice) — "Kayıtlı alıcıya kesilen e-Faturanın senaryosu." (Scenario of the e-Invoice issued to a registered recipient.) For a commercial invoice, the recipient responds with acceptance/rejection. |
### Scheduling

1. Inbox poll interval
2. Initial pull start
3. Credit warning threshold
4. Request header
| Field | Value | Description |
|---|---|---|
| **Yoklama aralığı (dk)** (Polling interval, min) | 5–1440, default 15 | "Gelen kutusu 5–1440 dakikada bir çekilir." (The inbox is retrieved every 5–1440 minutes.) |
| **İlk çekim başlangıcı** (Initial retrieval start) | Date | "Boşsa ilk açık kayıt döneminin başı; hiç dönem kapatılmadıysa yalnız son 7 gün. Daha eski bir tarih seçmek ilk yüklemeyi o tarihten yeniden başlatır." (If empty, the start of the first open posting period; if no period has ever been closed, only the last 7 days. Selecting an earlier date restarts the initial load from that date.) It is the common start for incoming invoices, incoming e-Delivery Notes and the outgoing archive. |
| **Kontör uyarı eşiği** (Credit warning threshold) | 0 or a positive whole number, default 500 | If the remaining credits are below this number, the **Kontör** (Credits) item of the Go-Live list becomes **Uyarı** (Warning). |
| Request header › **Kanal adı** (Channel name) | Text | The channel name of requests to the integrator. "Boşsa şirket unvanı gönderilir." (If empty, the company name is sent.) |
| Request header › **İşlem nedeni** (Operation reason) | Text | The request's operation reason (default "CoreX ERP e-belge işlemi" — CoreX ERP e-document operation). |
| Request header › **Uygulama adı** (Application name) | Read-only | The software's name and version (e.g. "CoreX ERP 4.3.0"). |
In the background, the system also updates the GİB registered user list (whether the recipient is an e-Invoice
taxpayer) in 15-minute runs and queries the status of sent documents once a minute. These runs work only while
e-Document is enabled.
### Status

1. Connection state
2. Remaining credits
| Row | Description |
|---|---|
| **Durum** (Status) | "Etkin" (Enabled) / "Kapalı" (Disabled) · selected environment. |
| **Bağlantı** (Connection) | "Henüz sınanmadı" (Not tested yet) · "Bağlantı çalışıyor" (Connection working) · "Kimlik reddedildi — ayar değişene kadar yeniden denenmez" (Credentials rejected — not retried until the setting changes) · "Entegratöre ulaşılamadı" (Integrator could not be reached). |
| **Son sınama** (Last test) | Time of the last **Bağlantıyı Sına** (Test Connection) and who ran it. |
| **Sınama sonucu** (Test result) | The result of the last test. |
| **Son başarılı çağrı** (Last successful call) | Time of the last successful call to the integrator. |
| **Kalan kontör** (Remaining credits) | The credits last queried and the time. |
### Go-Live
The checklist is re-evaluated each time it is opened; **Yeniden denetle** (Re-check) refreshes it manually. The
summary reads "Engelleyici madde yok — canlıya geçilebilir." (No blocking items — you can go live.) or "N
engelleyici madde var — canlıya geçiş kapalı." (There are N blocking items — go-live is disabled.) Item statuses:
**Tamam** (OK), **Uyarı** (Warning), **Engelleyici** (Blocking), **Elle teyit** (Manual confirmation).

1. Blocking items stop go-live
2. Re-check
| Group | Item | How it is measured |
|---|---|---|
| Contract and account | EDM private integrator contract and financial seal | Manual confirmation |
| Contract and account | GİB label routing | Manual confirmation (GB/PK labels routed to EDM; the previous integrator does not use the same series) |
| Contract and account | Live user and password | Blocking: "e-Belge Ayarları › Bağlantı › Canlı: kullanıcı adı ve parola girilmeli." (e-Document Settings › Connection › Live: the user name and password must be entered.) |
| Contract and account | Connection test in the live environment | Blocking: "Canlı kimlikle "Bağlantıyı Sına" henüz başarılı olmadı (ya da kimlik sonradan değişti)." ("Test Connection" with the live credentials has not succeeded yet (or the credentials changed afterwards).) |
| Contract and account | Labels and series | Blocking: missing labels and series are listed. |
| Contract and account | Credits | Warning: if the remaining credits are below the threshold or have not been queried yet. |
| Data | Company profile | Blocking: valid VKN, tax office, province/district. |
| Data | Identity and address of customer master records | Warning: number of active customers missing an identity type, VKN/TCKN or province/district — "bu kartlara fatura kesinleşmez" (invoices to these records cannot be finalized). |
| Data | UN/ECE codes of units | Warning: active units without a UN/ECE code. |
| Data | Exemption and withholding codes | Warning: the current GİB list must be entered; 0% and withholding lines cannot be finalized without a code. |
| Data | GİB registered user cache (live) | Warning: in the live environment it fills on the first run (15 min); during that time invoices cannot be finalized. |
| Test evidence | Invoice delivered in the test environment | Warning if none. |
| Test evidence | Incoming invoice in the test environment | Warning if none. |
| Test evidence | Financial advisor approval | Manual confirmation |
| Transition | e-Invoice start date | Blocking: "Tanımlı değil — dış platformdan CoreX'e hangi günden geçildiği belirsiz kalır." (Not defined — it remains unclear from which day you moved from the external platform to CoreX.) |
| Transition | Stopping issuance on the external platform | Manual confirmation (ban on double issuance) |
| Transition | Go-live permission | Number of users with the Activate permission — "yalnız yetkili kişide olmalı" (should be held only by the authorized person). |
| Transition | Fallback plan | Manual confirmation: the switch is turned off, pending documents remain in the queue; emergency stop flag. |
When **Ortam: Canlı** (Environment: Live) is selected and **Kaydet** (Save) is clicked, the "Canlı ortama geçilsin
mi?" (Switch to the live environment?) dialog opens: "Canlı ortamda gönderilen her belge GİB'e gerçek belge olarak
gider ve geri alınamaz. Muhasebe programında fatura kesiminin durdurulduğundan ve aynı seri ile etiketin başka bir
yerde kullanılmadığından emin olun (çifte fatura yasağı)." (Every document sent in the live environment goes to GİB
as a real document and cannot be undone. Make sure invoice issuance has been stopped in the accounting software and
that the same series and label are not used elsewhere (ban on double invoicing).) The dialog lists the blocking items
under the heading "Canlıya geçmeden kapatılması gerekenler:" (To be resolved before going live:); while there is a
blocking item, **Canlıya geç ve kaydet** (Go live and save) is disabled.
## Lifecycle of an outgoing invoice
```
Draft ──Finalize──► Finalized ──(Send on finalization on, or Send to GİB)──► In send queue
│ party, scenario, type and totals are FROZEN; │ background worker
│ no GİB number yet ▼
│ At integrator (number assigned)
│ ┌──────────────────────────┼──────────────────────┐
│ ▼ ▼ ▼
│ Reached recipient (final) Awaiting response (commercial) Could not be sent
│ basic invoice, e-Archive ├─► Accepted (schema/data error)
│ └─► Rejected
└─ e-Archive: Cancelled · numbered but dropped document: Voided · Could not be verified
```
| Status | Meaning |
|---|---|
| **Taslak** (Draft) | Editable; nothing has been sent to GİB. |
| **Kesinleşti** (Finalized) | Party data, channel (e-Invoice / e-Archive), scenario, type and totals are frozen. No GİB number yet — the integrator assigns it on submission. A finalized invoice cannot be edited or deleted. |
| **Gönderim kuyruğunda** (In send queue) | The background worker will transmit it to the integrator. |
| **Entegratörde** (At integrator) | The integrator received it and assigned a number; the GİB or recipient result is awaited. |
| **Alıcıya ulaştı** (Reached recipient) | The final status for a basic invoice and e-Archive. |
| **Yanıt bekleniyor** (Awaiting response) | Commercial invoice: the recipient's acceptance/rejection response is awaited (8 days). |
| **Kabul edildi** (Accepted) / **Reddedildi** (Rejected) | The recipient's response. |
| **Gönderilemedi** (Could not be sent) | Schema, data or envelope error. If it has not received a GİB number, it can be reverted to draft and corrected; if it has, it is resent with the same number. |
| **İptal edildi** (Cancelled) | e-Archive cancellation. |
| **Geçersiz sayıldı** (Voided) | A document that received a number but was definitively dropped at the integrator and whose resubmission did not succeed is closed with a reason; the source documents are released and a new invoice is issued. |
| **Doğrulanamadı** (Could not be verified) | The integrator said "already sent", but the status query cannot find the document. It counts as neither sent nor not sent; it is not resent automatically, and the status is queried on a limited schedule. |
A sent e-Invoice cannot be withdrawn: corrections are made with a return invoice, and for e-Archive by
cancellation. To create an invoice: [Create an invoice](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-olusturma).
The **e-Delivery Note** originates from the delivery (**e-İrsaliye Oluştur** (Create e-Delivery Note) on the
delivery detail) and is tracked in **Giden e-İrsaliyeler** (Outgoing e-Delivery Notes). **Incoming** invoices and
delivery notes are retrieved at the polling interval: **Finans › e-Belge › Gelen e-Faturalar** (Finance ›
e-Document › Incoming e-Invoices) and **Gelen e-İrsaliyeler** (Incoming e-Delivery Notes). The work counters of the
four document families are collected in **Finans › e-Belge › e-Belge Kokpiti** (Finance › e-Document › e-Document
Cockpit).
## Recommended setup order
1. **Genel** (General): Environment **Test**, e-Invoice start empty or the planned date.
2. **Bağlantı › Test ortamı** (Connection › Test environment): user name and test sender VKN; **Kaydet** (Save);
**Parola gir** (Enter password) › **Parolayı kaydet** (Save password); **Bağlantıyı Sına** (Test Connection).
3. **Etiketler ve Seriler** (Labels and Series) and **Belgeler** (Documents): the test account's labels, series,
and the document types to enable.
4. **e-Belge etkin** (e-Document enabled; with the Activate permission) › **Kaydet** (Save); test invoices and the
inbox are tried.
5. Once the blocking items in the **Canlıya Geçiş** (Go-Live) list are resolved: credentials in **Bağlantı › Canlı
ortamı** (Connection › Live environment), test, **Ortam: Canlı** (Environment: Live) › **Kaydet** (Save) ›
**Canlıya geç ve kaydet** (Go live and save).
Step by step: [Enable e-Document](https://erpdocs.corexlogic.com/en/ayarlar/islemler/e-belgeyi-etkinlestirme).
## Save messages
| Message | Reason |
|---|---|
| e-Belgeyi açmak ya da canlı ortama almak ayrı yetki ister (e-Belge Ayarları · Etkinleştir). (Enabling e-Document or switching to the live environment requires a separate permission (e-Document Settings · Activate).) | No Activate permission. Other fields can be saved without this change. |
| e-Belgeyi açmadan önce seçili ortamın parolasını kaydedin. (Save the password of the selected environment before enabling e-Document.) | No password when the switch is turned on. |
| e-Belgeyi açmadan önce seçili ortamın kullanıcı adını girin. (Enter the user name of the selected environment before enabling e-Document.) | No user name when the switch is turned on. |
| Canlı ortam için kullanıcı adı zorunlu. · Canlı ortam için e-Fatura gönderici etiketi zorunlu. (User name is required for the live environment. · e-Invoice sender label is required for the live environment.) | Missing field in live. |
| Canlıda e-Fatura açıkken e-Fatura serisi zorunlu. (e-Invoice series is required while e-Invoice is on in live.) (same for e-Archive, e-Delivery Note) | The enabled document type has no series. |
| Gelen kutusu yoklama aralığı 5–1440 dakika olmalı. (The inbox polling interval must be 5–1440 minutes.) | Scheduling field out of range. |
| Ayarlar siz düzenlerken başka biri tarafından değiştirildi. Sayfayı yenileyip yeniden deneyin. (The settings were changed by someone else while you were editing. Refresh the page and try again.) | Concurrent save. |
## Related
- [Enable e-Document](https://erpdocs.corexlogic.com/en/ayarlar/islemler/e-belgeyi-etkinlestirme)
- [Invoicing](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama)
- [Create an invoice](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-olusturma)
---
# Create an approval template
> Define a conditional, multi-stage approval template for a document type — document type, amount or discount condition, approver role, decision rule and escalation.
URL: https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-sablonu-olusturma
- **Type:** Task
- **Module:** Administration
- **Menu path:** Yönetim › Onay Süreci › Onay Şablonları (Administration › Approval Process › Approval Templates)
- **Screen route:** `/erp/approvals/templates`
- **Required permission:** `erp-approval-templates.create`
- **Prerequisites:**
- The approving roles or users hold the document type's approval permission (e.g. erp-sales-quotations.approve for Sales Quotation).
- If an amount condition is used, the currency is one of the installation's currencies.
An approval template states under which condition a document type goes through which approvers. The template
applies to documents submitted for approval after it is saved; approval rounds running at that moment are not
affected.
## Steps
1. Open the **Yönetim › Onay Süreci › Onay Şablonları** (Administration › Approval Process › Approval Templates) screen and click **Yeni Şablon** (New Template). If you are creating a template for a single document type, **Şablon Ekle** (Add Template) on that type's card works too.

1. New Template
2. Document type card — does the type go through approval
3. Condition — amount range / discount threshold
4. Stages are asked in order
5. Active / Inactive
2. Select the **Belge Türü** (Document Type). The selection determines the condition options and approver lists; it cannot be changed after saving.
3. Enter the **Şablon Adı** (Template Name).
4. In the **Hangi belgeler** (Which documents) section, set the condition. For a quotation, check **Yalnız iskontosu belirli bir oranı aşan belgeler** (Only documents whose discount exceeds a given rate) and enter the **İskonto eşiği (%)** (Discount threshold, %). For an amount condition, select **Genel toplam aralıktaysa** (If the grand total is within a range) and enter the **Para Birimi** (Currency) and the lower/upper limit (empty upper limit = and above).
5. Name stage 1; in **Kim onaylar** (Who approves), select the role with **Bir rol** (A role) (or the people with **Belirli kişiler** (Specific people)). The **Karar kuralı** (Decision rule) defaults to '1 onay gerekli, 1 ret belgeyi reddeder' (1 approval required, 1 rejection rejects the document).
6. If you want the stage to escalate when left unanswered, enter the hours and the higher approver role in the **Cevapsız kalırsa** (If unanswered) row.
7. For a second signature, click **Aşama Ekle** (Add Stage) and fill in the same fields. You can change the order of the stages with the arrows.
8. Read the **Özet** (Summary) sentence and the **Akış** (Flow) on the right, then click **Oluştur** (Create).

1. Document Type — fixed after creation
2. Condition — discount threshold
3. Stage 1 — role or named users, decision rule
4. If unanswered — hours and escalation role
5. Add Stage (max 10)
6. Summary — the rule as a sentence
7. Flow preview
**Result:** The template is saved as active and appears in the table; the document type's card reads 'N etkin şablon — onaydan geçer' (N active templates — goes through approval). The submit button of documents matching the condition is now **Onaya Gönder** (Submit for Approval).
## What you need to know
- A role without the approval permission is marked "— onay izni yok" (— no approval permission) in the list; if
selected, the template is not saved. The people list shows only those who hold the approval permission.
- The amount condition has **no currency conversion**: the template applies only to documents in the selected
currency. An amount equal to the limits also matches the template.
- If several active templates match the same document, the stages of all of them are added to the round in sequence
(from the smallest lower limit to the largest).
- To pause a template temporarily, edit it and turn off the **Etkin** (Active) switch; deleting does not affect past
rounds either.
- The person who submits the document for approval cannot approve it. Do not set up a stage whose only approver is
the sender.
## Related
- [Approvals](https://erpdocs.corexlogic.com/en/ayarlar/onaylar)
- [Approval flow process](https://erpdocs.corexlogic.com/en/surecler/onay-akisi)
---
# Make an approval decision
> Open a document awaiting your approval and approve it, or reject it with a reason.
URL: https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-karari-verme
- **Type:** Task
- **Module:** Administration
- **Menu path:** Yönetim › Onay Süreci › Onayımı Bekleyenler (Administration › Approval Process › Awaiting My Approval)
- **Screen route:** `/erp/approvals/pending`
- **Required permission:** `Belge türünün onay izni (ör. erp-sales-quotations.approve, erp-procurement-orders.approve)`
- **Prerequisites:**
- You are an approver of the document's current stage (you hold the role, you are named in the stage, or you are the approver's delegate today).
- You did not submit the document for approval yourself (for approval; rejecting is always allowed).
The decision is always made on the document's detail page: you sign off while seeing the document's content. The
server shows the **Onayla** (Approve) and **Reddet** (Reject) buttons depending on whether you can vote on this stage
right now.
## Steps
1. Open the **Yönetim › Onay Süreci › Onayımı Bekleyenler** (Administration › Approval Process › Awaiting My Approval) screen. The list shows the documents whose turn has come and that are waiting for your decision, the longest-waiting first. The link in the notification also opens the document directly.

1. Document — click to open
2. Submitter and date
3. Stage, template and stage name
4. How long the stage has waited
2. Click the number in the **Belge** (Document) column to open the document. The banner at the top shows which stage is waiting, and the **Onaylar** (Approvals) card shows the previous votes.

1. Decision buttons — server decides (submitter cannot approve)
2. Who it is waiting for
3. Current round — awaiting decision
4. Previous round — rejection and reason kept
3. To approve, click **Onayla** (Approve). The **Onay verilsin mi?** (Approve?) dialog shows the document and its amount; optionally enter a **Not (isteğe bağlı)** (Note, optional) and confirm with **Onayla** (Approve) in the dialog.

1. Document and amount being approved
2. Note — saved with the approval
3. Approve — last stage moves the document on
4. To reject, click **Reddet** (Reject), enter the **Red gerekçesi** (Rejection reason) and confirm with **Reddet** (Reject) in the dialog.

1. Rejection reason — sent to the submitter
2. Reject — document returns to draft at the threshold
**Result:** Your vote is recorded in the stage and appears on the **Onaylar** (Approvals) card with your name, decision, time and note (e.g. "Demo Onaylayıcı · Onayladı · 02.11.2026 01:13"). With the final approval, the document moves to its next status (e.g. Gönderildi (Sent) for a quotation) and a notification is sent to the sender; on rejection it returns to draft.
Demo example: Demo Kullanıcı submitted ST-2026-000005 for approval; **Demo Onaylayıcı** (Administrator) opened it from
**Onayımı Bekleyenler** (Awaiting My Approval) and approved it with a note, and the quotation became **Gönderildi**
(Sent).

1. Sent automatically on final approval
2. Can now be converted to an order
3. Vote: approver, decision, time
4. Approval note
## What you need to know
- If **you** submitted the document for approval, only **Reddet** (Reject) is shown (segregation of duties). For a
sales quotation, the quotation's sales representative cannot approve either.
- You vote once in a stage. If the stage requires several approvals ("2 onay gerekli" — 2 approvals required), the
document waits for the other approvers; the card shows "Karar bekleniyor — 1/2 onay" (Decision pending — 1/2
approvals).
- If you vote as a delegate, the dialog states on whose behalf you are voting; the vote counts as the approver's and
appears in the trail as "(… adına)" (on behalf of …).
- A vote cast by escalation (with the higher approver role) appears in the trail as "(eskalasyonla)" (by
escalation).
- There is no bulk approval. On a phone, the same decision is made from the mobile **Onaylarım** (My Approvals)
screen.
## Related
- [Approvals](https://erpdocs.corexlogic.com/en/ayarlar/onaylar)
- [Approval flow process](https://erpdocs.corexlogic.com/en/surecler/onay-akisi)
---
# Define an approval delegation
> Define, with a date range, a delegate who votes on behalf of an approver during leave or absence.
URL: https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-vekaleti-tanimlama
- **Type:** Task
- **Module:** Administration
- **Menu path:** Yönetim › Onay Süreci › Onay Vekaletleri (Administration › Approval Process › Approval Delegations)
- **Screen route:** `/erp/approvals/delegations`
- **Required permission:** `Bir belge türünün onay izni (kendi vekaletiniz) · erp-approval-templates.edit (başka onaycı için)`
- **Prerequisites:**
- The delegate holds the approval permission for the delegated document types themselves.
A delegation does not grant permissions; it only extends the answer to "who can vote": the delegate must still hold
the document type's approval permission, and a document the approver cannot approve (e.g. one the approver submitted
themselves) cannot be approved by the delegate either.
## Steps
1. Open the **Yönetim › Onay Süreci › Onay Vekaletleri** (Administration › Approval Process › Approval Delegations) screen and click **Yeni Vekalet** (New Delegation).

1. New Delegation
2. Manager: everyone’s delegations
3. Show ended delegations
4. Validity — both days inclusive
2. If you are an administrator, select **Kendim** (Myself) in the **Onaycı** (Approver) field, or the approver for whom you are assigning a delegate (other users do not see this field).
3. Select the **Belge Türü** (Document Type), or leave **Bütün belge türleri** (All document types).
4. Select the **Vekil** (Delegate) — the list contains users with approval permission.
5. Enter the start and end days in **Tarih aralığı** (Date range; both days inclusive, at most 366 days); optionally enter a **Not** (Note) and click **Oluştur** (Create).

1. Approver — myself or (manager) another approver
2. Document type or all types
3. Substitute — a user with approval permission
4. Date range — up to 366 days
5. Note
**Result:** The delegation appears in the list with the status **Başlamadı** (Not started) or **Geçerli** (Valid). Within the date range, the delegate sees the approver's pending stages in Onayımı Bekleyenler (Awaiting My Approval) with the '… adına' (on behalf of …) note and votes on the approver's behalf.
## What you need to know
- A second delegation cannot be created for the same approver on the same dates ("… için … bu tarihlerde zaten
vekil." — … is already the delegate for … on these dates.).
- A person casts a single vote in a stage: the delegate cannot cast two votes in the same stage, one on their own
behalf and one on the approver's; if a vote was cast on the approver's behalf, the approver cannot vote separately
in that stage either.
- The approver or an administrator removes the delegation with **Kaldır** (Remove) in the row's Actions menu; votes
already cast remain in the trail.
- Reminders and "Onayınız bekleniyor" (Your approval is awaited) notifications are also sent to the delegate.
## Related
- [Approvals — Approval Delegations](https://erpdocs.corexlogic.com/en/ayarlar/onaylar#onay-vekaletleri)
---
# Enable an alert and set its threshold
> Enable a scheduled alert that starts disabled (e.g. Pending approval reminder), set its threshold in hours or days, and save.
URL: https://erpdocs.corexlogic.com/en/ayarlar/islemler/uyari-acma
- **Type:** Task
- **Module:** Administration
- **Menu path:** Yönetim › Özelleştirme › Genel › Uyarı ve Bildirim Yönetimi › Uyarılar (Administration › Customization › General › Alert and Notification Management › Alerts)
- **Screen route:** `/alerts`
- **Required permission:** `alerts.edit`
- **Prerequisites:**
- The alert's recipients (e.g. the stage's approvers) are defined in the system.
Alerts are defined in the system and all of them start disabled. An alert you enable is checked once an hour; the
same finding is not notified repeatedly (at the frequency stated in the alert's description: once a day, once a
week, or once).
## Steps
1. Open the **Yönetim › Özelleştirme › Genel › Uyarı ve Bildirim Yönetimi** (Administration › Customization › General › Alert and Notification Management) screen; the **Uyarılar** (Alerts) tab opens.

1. Scheduled alerts
2. Document event notification rules
3. On / Off — all start off
4. Threshold — hours or days; empty = default
5. Recipient and channel
6. Run Now — without waiting for the hourly run
2. Find the alert with the **Ara** (Search) box (e.g. 'onay') and set the switch on the row to **Açık** (On).
3. Enter the number in the **Eşik** (Threshold) box and select **saat** (hours) or **gün** (days) from the list next to it. If left empty, the default threshold applies.
4. Click **Kaydet (N)** (Save (N)) in the toolbar. **Geri Al** (Undo) discards unsaved changes.
**Result:** The alert is enabled and checked in the hourly run; if there is a finding, a notification is sent to the people in the **Kime gider** (Sent to) column. The **Son çalışma** (Last run) column fills after the next run.
## What you need to know
- The threshold is a whole number; at least 1 hour, at most 30 days (720 hours). An invalid threshold is reported
on the row ("Eşik tam sayı ve sıfırdan büyük olmalı." — The threshold must be a whole number greater than zero.,
"Eşik en çok 30 gün (720 saat) olabilir." — The threshold can be at most 30 days (720 hours).) and nothing is
saved.
- Changing only the unit does not count as a change (48 hours = 2 days).
- **Şimdi Çalıştır** (Run Now) tries the enabled alerts immediately and produces real notifications; use it to send
findings immediately, not just to test the setting.
- A person can turn off this notification or change its channel in **Profil › Bildirim Tercihleri** (Profile ›
Notification Preferences).
## Related
- [Alerts and notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler)
---
# Create a notification rule
> Define to whom, under which condition and through which channel a notification is sent on a document event (e.g. the goods issue of an outbound delivery).
URL: https://erpdocs.corexlogic.com/en/ayarlar/islemler/bildirim-kurali-olusturma
- **Type:** Task
- **Module:** Administration
- **Menu path:** Yönetim › Özelleştirme › Genel › Uyarı ve Bildirim Yönetimi › Bildirim Kuralları (Administration › Customization › General › Alert and Notification Management › Notification Rules)
- **Screen route:** `/alerts?sekme=kurallar`
- **Required permission:** `alerts.edit`
- **Prerequisites:**
- The recipient roles or users are defined; the recipient has permission to view the document (otherwise no notification is sent).
A notification rule lets a document event notify people through the installation's own rule instead of a
notification hard-coded in the software. If several rules notify the same person of the same event, the person
receives a single notification.
## Steps
1. On the **Yönetim › Özelleştirme › Genel › Uyarı ve Bildirim Yönetimi** (Administration › Customization › General › Alert and Notification Management) screen, switch to the **Bildirim Kuralları** (Notification Rules) tab and click **Yeni Kural** (New Rule).

1. New Rule
2. Document and event
3. Responsibility, role, user
4. In-app / in-app + e-mail
2. **1 · Ne olunca** (When): enter the **Kural adı** (Rule name), and select the **Belge** (Document) and the **Olay** (Event).
3. **2 · Kime** (To whom): check the **Belgenin sorumlusu** (Document owner) boxes (e.g. **Siparişin satış temsilcisi** — The order's sales representative); if necessary, add roles from **Roller** (Roles) and users from **Kişiler** (People).
4. **3 · Hangi koşulda** (Under which condition): to narrow the notification to specific values (e.g. **Depo** (Warehouse)), check those values. If none is selected, it applies to every value.
5. **4 · Nasıl** (How): if you also want email, check **E-posta da gönder (uygulama bildirimine ek olarak)** (Also send email, in addition to the application notification); **Değişikliği yapan kişiye gönderme** (Do not send to the person who made the change) is on by default. Read the **Özet** (Summary) on the right and click **Oluştur** (Create).

1. 1 · Document
2. Event
3. 2 · Who — responsibility, role, user
4. 3 · Condition — warehouse
5. 4 · How — e-mail, exclude actor, active
6. Summary
**Result:** The rule appears in the table as **Aktif** (Active). Each time the event is recorded, a notification is sent to the recipients; the rule is added under its own name to people's **Bildirim Tercihleri** (Notification Preferences) list.
## What you need to know
- When the document changes, the event, responsibility and condition are reset; roles and people are kept.
- "En az bir alıcı seçin — sorumluluk, rol ya da kullanıcı." (Select at least one recipient — responsibility, role
or user.) — a rule without recipients is not saved.
- The channel selected here is the **default** that applies if the person has no preference; the person can change
their own preference.
- To pause the rule temporarily, set it to **Kural pasif** (Rule inactive) instead of deleting it: deleting also
deletes people's preferences for this rule.
- Approval and time alerts do not come from this tab but from **Onay Şablonları** (Approval Templates) and the
**Uyarılar** (Alerts) tab.
## Related
- [Alerts and notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler)
---
# Choose a notification preference
> Choose the channel (application only, email, daily digest or off) for each notification type you receive.
URL: https://erpdocs.corexlogic.com/en/ayarlar/islemler/bildirim-tercihi-secme
- **Type:** Task
- **Module:** Administration
- **Menu path:** Profil › Bildirim Tercihleri (Profile › Notification Preferences)
- **Screen route:** `/profile?sekme=bildirimler`
- **Required permission:** `Oturum açmış her kullanıcı (izin gerekmez)`
- **Prerequisites:**
- For email and daily digest, the installation's email server (SMTP) is defined.
The administrator sets the default channel of the rule or notification type; you choose your own channel.
"Varsayılan" (Default) follows the channel of the rule or type; the daily digest collects that day's notifications
into a single email in the morning.
## Steps
1. Open **Profil** (Profile) from the user menu at the top right and switch to the **Bildirim Tercihleri** (Notification Preferences) tab.

1. Notification Preferences tab
2. Device notification
3. No SMTP — no e-mail or digest
4. Your choice per notification
5. Save Preferences
2. Find the notification in the table and select the channel in the **Tercihiniz** (Your preference) column: **Varsayılan (…)** (Default (…)), **Yalnız uygulama** (Application only), **Uygulama + e-posta** (Application + email), **Uygulama + günlük özet** (Application + daily digest), **Kapalı** (Off).
3. Click **Tercihleri Kaydet** (Save Preferences).
**Result:** The channel you selected applies to this notification type; at the bottom it reads 'N bildirimde kendi seçiminiz var' (You have your own choice for N notifications).
## What you need to know
- **Tümünü Varsayılana Döndür** (Reset All to Default) removes your own choices (takes effect when saved);
**Vazgeç** (Cancel) discards unsaved changes.
- If no email server is defined, the card says "E-posta sunucusu tanımlı değil — e-posta ve günlük özet gitmez,
bildirim uygulamada görünür." (No email server is defined — email and daily digest are not sent, the notification
appears in the application.)
- For phone or browser notifications, turn on **Bu cihaza bildirim gönder** (Send notifications to this device) in
the **Cihaz Bildirimi** (Device Notification) card at the top of the same tab; disabled and daily-digest types are
not sent to the device.
## Related
- [Alerts and notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler)
---
# Define the email server (SMTP)
> Enter the installation's SMTP server, save the password separately and test it with a test email.
URL: https://erpdocs.corexlogic.com/en/ayarlar/islemler/e-posta-sunucusu-tanimlama
- **Type:** Task
- **Module:** Administration
- **Menu path:** Yönetim › Özelleştirme › Genel › E-posta Ayarları (Administration › Customization › General › Email Settings)
- **Screen route:** `/email-settings`
- **Required permission:** `email-settings.edit`
- **Prerequisites:**
- Your email provider's SMTP server name, port, security type and sending account (user name and password, or an internal relay without authentication).
Each installation uses its own SMTP server. If there is a record on this screen, it applies; if the server field is
saved empty, email is turned off.
## Steps
1. Open the **Yönetim › Özelleştirme › Genel › E-posta Ayarları** (Administration › Customization › General › Email Settings) screen. If the badge shows **Gönderim kapalı** (Sending off), no server is defined.

1. Status and settings source
2. Server — empty = e-mail off
3. Connection security — suggests the port
4. User name — empty = relay without auth
5. Sender address and name
6. Test — with saved settings
2. Enter the SMTP server's name in the **Sunucu** (Server) field.
3. Select the **Bağlantı güvenliği** (Connection security); the **Port** is suggested with its usual value (STARTTLS 587, SSL/TLS 465). If your provider specifies a different port, correct it.
4. If authentication is used, enter the **Kullanıcı adı** (User name); enter the **Gönderen adresi** (Sender address) and **Gönderen adı** (Sender name), then click **Kaydet** (Save).
5. In the **Parola** (Password) panel, click **Parola gir** (Enter password), type the password and click **Parolayı kaydet** (Save password). The password is not sent with the form and never comes back to the screen.
6. In the **Deneme gönderimi** (Test send) panel, enter the recipient (if empty, your own address) and click **Deneme e-postası gönder** (Send test email).
**Result:** Email is turned on: notification emails, the daily digest, invitations and password resets, and document emails are sent from this server. Pending notification emails are sent from the Gönderim Kuyruğu (Send Queue) on the next attempt.
## What you need to know
- The test always uses the **saved** setting: the button is disabled while there are unsaved changes.
- The test does not go through the queue; the error is shown as is ("E-posta gönderilemedi: …" — Email could not be
sent: …). The most common causes: port and security type do not match, wrong password, the provider requires an
app password.
- To remove the password, use **Parolayı kaldır** (Remove password). If the saved password cannot be decrypted
("Kayıtlı SMTP parolası çözülemedi; parolayı yeniden girin." — The saved SMTP password could not be decrypted;
re-enter the password.), enter it again.
- Notification emails that could not be sent return to the queue with **Yeniden dene** (Retry) in **Yönetim ›
İzleme › Gönderim Kuyruğu** (Administration › Monitoring › Send Queue).
## Related
- [Email settings (SMTP)](https://erpdocs.corexlogic.com/en/ayarlar/e-posta-smtp)
---
# Enable e-Document in the Test environment
> Set up the EDM integrator connection in the Test environment — user name, password, connection test, labels and series, document switches and the main switch.
URL: https://erpdocs.corexlogic.com/en/ayarlar/islemler/e-belgeyi-etkinlestirme
- **Type:** Task
- **Module:** Administration
- **Menu path:** Yönetim › Özelleştirme › Finans › e-Belge Ayarları (Administration › Customization › Finance › e-Document Settings)
- **Screen route:** `/erp/edocuments/settings`
- **Required permission:** `erp-edocuments-settings.edit`, `erp-edocuments-settings.activate (ana şalteri açmak için)`
- **Prerequisites:**
- The integrator's Test account (user name, password) and the test VKN (tax ID) of that account.
- A valid VKN, tax office and province/district in Şirket Bilgileri (Company Information).
This task is performed with a real integrator account and requires the organization's credentials; only an
authorized person performs it. A document sent in the Test environment does not go to GİB as a real document and
does not consume the live series.
## Steps
1. Open the **Yönetim › Özelleştirme › Finans › e-Belge Ayarları** (Administration › Customization › Finance › e-Document Settings) screen. On the **Genel** (General) tab, verify that **Ortam** (Environment) is **Test**.

1. Seven tabs
2. Main switch — enabling needs Activate
3. Environment — Test / Live
4. Integrator
5. e-Invoice start date
2. On the **Bağlantı** (Connection) tab, in the **Test ortamı** (Test environment) section, enter the **Kullanıcı adı** (User name) and the **Test göndereni VKN** (Test sender tax ID), then click **Kaydet** (Save) at the bottom of the panel.

1. Separate credentials per environment
2. Service URLs (https)
3. User name
4. Test only: sender tax no.
5. Password saved separately, never shown
3. In the same section, click **Parola gir** (Enter password), type the password and click **Parolayı kaydet** (Save password).
4. Click **Bağlantıyı Sına** (Test Connection). The result is shown below the row; the connection and remaining credits appear on the **Durum** (Status) tab.
5. On the **Etiketler ve Seriler** (Labels and Series) tab, enter the GB/PK labels and the series; on the **Belgeler** (Documents) tab, the document types to enable; then **Kaydet** (Save).

1. GIB sender aliases (GB)
2. Mailbox alias (PK)
3. Series — 3 letters/digits
6. On the **Genel** (General) tab, turn on the **e-Belge etkin** (e-Document enabled) switch and click **Kaydet** (Save).
**Result:** e-Document is enabled in the Test environment: finalized invoices go to the integrator's test account, and the inbox is retrieved at the polling interval. To go live, resolve the blocking items on the **Canlıya Geçiş** (Go-Live) tab.
## What you need to know
- Turning on the main switch and switching to **Canlı** (Live) requires the **Etkinleştir** (Activate)
permission; without it, fields other than this change can still be saved ("Açmak ya da canlıya almak
"Etkinleştir" yetkisi ister; bu değişiklik olmadan kaydedebilirsiniz." — Enabling or going live requires the
"Activate" permission; you can save without this change.).
- **Bağlantıyı Sına** (Test Connection) works with the saved setting; save first.
- If the installation is a test installation, Live cannot be selected and the live password is not saved — the
server says "Bu kurulumda canlı e-Belge ortamı kapalı (EDocuments__LiveAllowed=false): test ortamı canlı
entegratöre bağlanmaz." (The live e-Document environment is disabled in this installation
(EDocuments__LiveAllowed=false): a test environment does not connect to the live integrator.)
- When going live, the confirmation dialog lists the blocking items; while there is an item, **Canlıya geç ve
kaydet** (Go live and save) is disabled.
## Related
- [e-Document settings](https://erpdocs.corexlogic.com/en/ayarlar/e-belge)
---
# Get to know the interface
> Common use of the CoreX ERP menu, screen tabs, list screens, table settings and document forms.
URL: https://erpdocs.corexlogic.com/en/baslarken/arayuz
All CoreX ERP screens follow the same layout. The menu, list and form usage described on this page applies to every
module.

1. Main menu — modules and screens
2. Screen and document search
3. Pending work — approvals and drafts
4. My modules — quick access to screens
## Top menu and screen search
The menu at the top of the screen is divided into modules: **Satış** (Sales), **Satın Alma** (Purchasing), **Stok
Yönetimi** (Inventory Management), **Lojistik Yönetimi** (Logistics Management), **Üretim** (Production), **Ana
Veriler** (Master Data), **Finans** (Finance), **Bakım** (Maintenance), **Servis** (Service) and **Yönetim**
(Administration). Hovering over a module opens its sections and screens.
- The menu shows only the **modules enabled in your installation** and the **screens you are authorized for**.
- The **Ekran ara…** (Search screens…) box at the top right (shortcut **Ctrl K**) finds a screen by name. You can type
with or without Turkish characters: typing "siparis" finds "Satış Siparişleri" (Sales Orders).
- The bell icon shows your notifications. Clicking a notification opens the related document.
## Screen tabs
Every screen you open becomes a **tab** in the strip below the menu. Screens keep their state while you switch between
tabs: you can go back from a sales order's details to the list and look at another sales order. To close a tab, click
the **×** next to it.
## List screens
Screens that list records (sales orders, quotations, products, customer/vendor accounts…) consist of the same parts:

1. New record
2. Search and filters
3. Show / hide columns
4. Click a header to sort; drag its edge to resize
5. Click the document number to open it
| Part | Purpose |
|---|---|
| **Title** | The name of the screen; to its right, the refresh and new record buttons. |
| **Filter bar** | Search box and frequently used filters (status, customer, date range…). When a filter is set, "filtreli" (filtered) appears next to the record count and a button for clearing the filters is displayed. |
| **Table** | The records. Clicking a row opens the record. |
| **Actions** | The menu at the end of the row: open the record, edit it, view its history and screen-specific actions. Actions that delete data or cannot be undone are shown in red at the bottom of the menu. |
| **Pagination** | Below the table: which records are displayed, the number of records per page and the pages. |
Filters are written to the address bar. When you send the URL of a filtered list to a colleague, they see the same
list.
### Customizing the table
The table layout is **personal** and stored on the server: you see the same layout when you sign in from another
computer.
- **Column width:** Drag the separator between two columns in the header with the mouse.
- **Fit column to content:** **Double-click** the separator. The column widens or narrows to fit its header and the
longest value on the page (as in Excel).
- **Column menu:** From the menu on a column with a text header, you can **sort ascending / descending**, **pin to the
left or right** and **move left / right**.
- **Show / hide columns:** Use the **Kolonlar** (Columns) button at the top right of the table. **Varsayılan düzene
dön** (Reset to default layout) in the same menu deletes all your settings and restores the table to its original
state.
> **Sorting**
In paginated lists, sorting is performed on the server, so it sorts all records, not only the visible page. The menu
of a column that cannot be sorted does not offer a sort option.
## Document forms {#belge-formları}
Documents such as quotations, sales orders and requisitions use the same form layout.
| Part | Purpose |
|---|---|
| **Toolbar** | **Kaydet** (Save; shortcut **Ctrl+S**), **Kontrol Et** (Check; validates without saving) and **Kalem Ekle** (Add Item). |
| **Header strip** | The document's identity: document type, business partner (customer or supplier) and date. |
| **Header tabs** | **Teslimat ve Ödeme** (Delivery and Payment) · **Koşullar** (Conditions) · **Metinler** (Texts) · **Adres** (Address) · **Organizasyon** (Organization). The name of a tab that contains an invalid field is shown in red. |
| **Kalemler** (Items) | A spreadsheet-like table. A new document opens with 5 empty rows, and there is always one empty row at the end; empty rows are not saved. |
| **Status bar** | At the bottom of the form: saving, number of errors, check result or an unsaved changes warning. |
### Value help: selecting by code or name
In business partner and product fields, type the code or name and press **Enter**: matching records open in a list;
select one with the arrow keys and press **Enter** again. The **magnifier** at the end of the field or the **F4** key
opens a **selection dialog** with the text you typed; in the dialog, a single click on a row selects it.
When you select a product on an item line, the cursor moves to the quantity; pressing **Enter** in the quantity moves
down to the product field of the next line. This way you can enter a document without leaving the keyboard.
### Leaving without saving
When you try to leave a screen with unsaved changes, a dialog opens:
- **Sayfada kal** (Stay on page) — returns to the form.
- **Taslak olarak kaydet ve ayrıl** (Save as draft and leave) — saves the document as a draft; if saving fails, you
stay on the page.
- **Değişiklikleri sil ve ayrıl** (Discard changes and leave) — the changes are lost.
## Authorizations
The screens and buttons you see are rendered according to the permissions of your role. If you cannot see a button,
your role does not have the permission for that action; contact your system administrator. The permission required
for a screen is shown at the top of each screen page.
---
# Logistics Management
> Logistics Management module — outbound and inbound deliveries, picking and packing, e-Delivery Note, transportation (shipments), carriers and tenders, freight, fleet.
URL: https://erpdocs.corexlogic.com/en/lojistik
Logistics Management manages how goods leave the building and travel to their destination: the **outbound
delivery** created from an approved sales order, **picking** and **packing** in the warehouse, the
**shipment** (transportation document) on which the goods are loaded onto a vehicle, our own fleet or a
**carrier**, the **events** recorded on the road, the **proof of delivery** signed by the customer and the
**freight** payable to the carrier. The notification of goods coming from a supplier (**inbound delivery**)
is also part of this module.
For the end-to-end flow, see [Shipment planning](https://erpdocs.corexlogic.com/en/surecler/sevkiyat-planlama). The basics of delivery and
goods issue from a sales order are described in the Sales section: [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat),
[Quotation to invoice](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya).
## Key concepts
| Concept | Meaning |
|---|---|
| **Outbound delivery** (SV-…) | The document for goods issued from a sales order. It is created as **Açık** (Open) (stock is not reduced); when the **goods issue** is posted, stock is reduced and the document can no longer be changed. |
| **Picking** | Moving the goods from the storage bin to the shipping staging area. It is performed with the waves and warehouse tasks of Inventory Management; on the delivery it appears as **Toplanmadı · Kısmen toplandı · Toplandı** (Not picked · Partially picked · Picked). |
| **Handling unit** (TB-…) | Carton, pallet, crate… Delivery items are packed into a unit, and the unit's label is printed. |
| **Shipment / transportation document** (TSM-…) | The trip of one vehicle. It is executed by **Kendi filomuz** (Our own fleet) or a **Taşıyıcı** (Carrier); deliveries are in stop sequence. Statuses: **Planlandı → Yolda → Tamamlandı** (Planned → In Transit → Completed), or **İptal Edildi** (Cancelled). |
| **Carrier** | A company from which we purchase transportation — the logistics profile of a supplier card. |
| **Freight agreement** | The tariff of a carrier (purchasing) or a customer (sales): per shipment, km, kg, m³, pallet or stop, with tiers. |
| **Freight settlement** (NHS-…) | The freight for a carrier's completed shipments in a single document; the carrier's invoice is matched against it. |
| **Proof of delivery** | The delivery date, the recipient and the accepted quantity on the signed delivery note. |
| **Transport order** (NKS-…) | The order of a customer to whom we sell transportation as a service. |
| **Inbound delivery** | The notification of goods sent by a supplier; the goods receipt is posted from this delivery. |
## Tasks
- [Define a carrier](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-tanimlama) — Carrier profile on a supplier card.
- [Define a vehicle](https://erpdocs.corexlogic.com/en/lojistik/islemler/arac-tanimlama) — License plate, capacity, ownership, document validity.
- [Define a driver](https://erpdocs.corexlogic.com/en/lojistik/islemler/surucu-tanimlama) — Our own driver or a carrier's driver.
- [Create a freight agreement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-anlasmasi-olusturma) — Tiered carrier or customer tariff.
- [Pick a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-toplama) — Waves and picking tasks from an open delivery.
- [Pack a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-birimi-olusturma) — Handling unit (carton, pallet) and label.
- [Create a transportation document](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-belgesi-olusturma) — Shipment: executor, plan, deliveries.
- [Create shipments with load planning](https://erpdocs.corexlogic.com/en/lojistik/islemler/yuk-planlama-ile-sefer-olusturma) — A proposal that distributes deliveries without a shipment across vehicles.
- [Select the carrier for a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme) — Ranking by tariff, assignment, freight.
- [Open a carrier tender](https://erpdocs.corexlogic.com/en/lojistik/islemler/ihale-acma) — Collecting bids and deciding.
- [Dispatch a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-yola-cikarma) — Departure of a planned shipment.
- [Record a shipment event](https://erpdocs.corexlogic.com/en/lojistik/islemler/sefer-olayi-kaydetme) — Loading, arrival, delivery, delay, issue.
- [Complete a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-tamamlama) — Arrival and closing of the shipment.
- [Record proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/alindi-teyidi-kaydetme) — Signed delivery note and accepted quantity.
- [Create a freight settlement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-hesaplasmasi-olusturma) — The freight of a carrier's shipments in a single document.
- [Create a transport order](https://erpdocs.corexlogic.com/en/lojistik/islemler/nakliye-siparisi-olusturma) — Transportation service sold to a customer.
- [Add a fleet record](https://erpdocs.corexlogic.com/en/lojistik/islemler/filo-kaydi-ekleme) — Odometer, fuel, expense.
- [Create a delivery correction](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-duzeltmesi-olusturma) — Reversing an incorrect goods issue.
- [Create an inbound delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/gelen-teslimat-olusturma) — The supplier's shipping notification.
## Menu map
| Section | Screen | Description |
|---|---|---|
| Giden Teslimat (Outbound Delivery) | Teslimatlar · Giden Teslimat Oluştur (Deliveries · Create Outbound Delivery) | [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat) · [Picking, packing and proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/toplama-paketleme-teyit) |
| Giden Teslimat (Outbound Delivery) | Giden e-İrsaliyeler (Outgoing e-Delivery Notes) | [Outgoing e-Delivery Notes](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/giden-e-irsaliyeler) |
| Giden Teslimat (Outbound Delivery) | Teslimat Düzeltmeleri (Delivery Corrections) | [Delivery corrections](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/teslimat-duzeltmeleri) |
| Giden Teslimat (Outbound Delivery) | Teslimat İzleme (Delivery Monitor) | [Delivery monitor](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/teslimat-izleme) |
| Gelen Teslimat (Inbound Delivery) | Gelen Teslimatlar · Gelen Teslimat Oluştur (Inbound Deliveries · Create Inbound Delivery) | [Inbound deliveries](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-teslimatlar) |
| Gelen Teslimat (Inbound Delivery) | Gelen e-İrsaliyeler (Incoming e-Delivery Notes) | [Incoming e-Delivery Notes](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-e-irsaliyeler) |
| Taşıma (Transportation) | Taşıma Belgeleri · Taşıma Belgesi Oluştur (Transportation Documents · Create Transportation Document) | [Transportation documents](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri) |
| Taşıma (Transportation) | Yük Planlama (Load Planning) | [Load planning](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/yuk-planlama) |
| Taşıma (Transportation) | Navlun Hesaplaşmaları · Navlun Hesaplaşması Oluştur (Freight Settlements · Create Freight Settlement) | [Freight settlements](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-hesaplasmalari) |
| Taşıma (Transportation) | Nakliye Siparişleri · Nakliye Siparişi Oluştur (Transport Orders · Create Transport Order) | [Transport orders](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/nakliye-siparisleri) |
| Taşıma (Transportation) | Taşıyıcı Seçimi ve İhale (Carrier Selection and Tendering) | [Carrier selection and tendering](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasiyici-secimi-ve-ihale) |
| Filo (Fleet) | Araçlar · Sürücüler (Vehicles · Drivers) | [Vehicles and drivers](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/araclar-ve-suruculer) |
| Filo (Fleet) | Filo İşletimi (Fleet Operations) | [Fleet operations](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/filo-isletimi) |
| Ana Veriler (Master Data) | Taşıyıcılar (Carriers) | [Carriers](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasiyicilar) |
| Ana Veriler (Master Data) | Navlun Anlaşmaları (Freight Agreements) | [Freight agreements](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-anlasmalari) |
| Analitik (Analytics) | Teslimat Özeti · Araç Maliyeti · Zamanında-Tam Teslim · Navlun Maliyeti · Filo Kullanımı (Delivery Summary · Vehicle Cost · On-Time In-Full · Freight Cost · Fleet Utilization) | [Logistics analytics](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/analitik) |
Picking is performed with the **Depo Yürütme › Dalgalar** (Warehouse Execution › Waves) and **Depo
Görevleri** (Warehouse Tasks) screens in the Inventory Management menu; their use with a delivery is described
on the [Pick a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-toplama) page.
## How the documents are linked
```
Sales order (Approved)
└─► Outbound delivery SV-… (Open) ──► Wave DLG-… ─► Warehouse task DG-… (picking)
│ └─► Handling unit TB-… (packing)
├─► Transportation document TSM-… (Planned → In Transit → Completed)
│ ├─ Events: Loaded · Departed · Arrived · Delivered · Delay · Issue
│ └─ Freight (from the carrier agreement) ─► Freight settlement NHS-…
├─► Goods issue (stock is reduced) ─► e-Delivery Note / delivery note printout
└─► Proof of delivery ─► invoice
```
The delivery details show the number and status of the linked shipment, the shipment details show the links
to its deliveries, and the freight card shows the link to the settlement.
## Permissions
The permission for each screen is listed in the summary of its own page. Every place that shows a freight amount
(the freight card, the carrier ranking, freight agreements, the Navlun Maliyeti (Freight Cost) report) requires
`erp-logistics-freight-agreements.view`; fleet cost (Filo İşletimi (Fleet Operations), Araç Maliyeti (Vehicle Cost))
requires `erp-logistics-fleet-costs.view` — these are not part of the read permission.
---
# Picking, packing and proof of delivery
> In the outbound delivery details — picking status, handling units and their labels, the linked shipment and proof of delivery.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/toplama-paketleme-teyit
The delivery list, open deliveries and goods issue are described on the [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat)
page. This page describes the logistics sections of the delivery details: the **picking** status, the **Paketleme**
(Packing) card, the **Sefer** (Shipment) information and the **Alındı Teyidi** (Proof of Delivery) card.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimatlar › teslimat detayı (Logistics Management › Outbound Delivery › Deliveries › delivery details)
- **Screen route:** `/erp/sales/shipments/{id}`
- **Required permission:** `erp-sales-shipments.view (görme) · .create (paketleme, mal çıkışı, iptal)`, `erp-logistics-proof-of-delivery.create (alındı teyidi)`, `erp-logistics-transports.view (bağlı seferin gösterimi)`
## Statuses in the delivery header

1. Picking status
2. Packing status
3. Picked quantity per item
4. New handling unit (carton, pallet…)
5. Handling unit labels (PDF)
In the header, next to the delivery status (**Açık · Mal Çıkışı Kaydedildi · İptal Edildi** (Open · Goods Issue Posted
· Cancelled)), an open delivery shows two progress statuses:
| Status | Values | Where it comes from |
|---|---|---|
| Picking | **Toplanmadı · Kısmen toplandı · Toplandı** (Not picked · Partially picked · Picked) | From the stock allocated to the sales order item in the delivery warehouse (goods picked or produced for the item). The **Toplanan** (Picked) column in the items table. |
| Packing | **Paketlenmedi · Kısmen paketlendi · Paketlendi** (Not packed · Partially packed · Packed) | From the quantity placed in handling units. |
On a delivery whose customer requires proof of delivery, **Teyit bekleniyor** (Awaiting confirmation) appears in the
header after the goods issue.
Picking is performed with the waves and warehouse tasks of Inventory Management:
[Pick a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-toplama). On the goods issue form of a fully picked delivery, the
allocations are filled in automatically with the picked goods (bin, status, lot), and the top of the form shows
*"Teslimat toplandı — toplanan mal dağılımlara yazıldı; gerekirse değiştirebilirsiniz."* (The delivery has been picked
— the picked goods have been entered in the allocations; you can change them if necessary.)
## Packing card
The card header shows the packing status, the number of handling units and the total gross weight. There are two
tables:
- **Packed per item:** Ürün (Product), Teslimat (Delivery), Paketlenen (Packed), Kalan (Remaining).
- **Handling units:** Birim (Unit) (TB-…), Kap Cinsi (Package Type), Ambalaj (Packaging), İçerik (Content), Dara
(Tare), Brüt Ağırlık (Gross Weight), Hacim (Volume) and the **İşlemler** (Actions) menu (**Etiket Yazdır** (Print
Label), **Paketi Aç** (Unpack)).
| Button | What it does |
|---|---|
| **Taşıma Birimi Oluştur** (Create Handling Unit) | Only on an open delivery. Opens the new unit window. |
| **Etiketleri Yazdır** (Print Labels) | Downloads the labels of all units as a PDF. |
| **Paketi Aç** (Unpack) (row menu) | Deletes the unit; the items in it become unpacked, and the units in it move up one level. Only on an open delivery. |

1. Package type — required
2. Packaging item — optional, not issued from stock
3. Tare weight
4. Puts the unpacked remainder into this unit
5. Create
The **Taşıma Birimi Oluştur** (Create Handling Unit) window:
| Field | Description |
|---|---|
| **Kap Cinsi** (Package Type) (required) | UN/ECE Rec 21 list: Karton (Carton) (CT), Kutu (Box) (BX), Paket (Packet) (PK), Palet (Pallet) (PX), Konteyner (Container) (CN), Kasa (Crate) (CR), Torba (Bag) (BG), Çuval (Sack) (SA), Varil (Drum) (DR), Balya (Bale) (BL), Rulo (Roll) (RO), Ambalajsız (Unpacked) (NE). The default is Karton (Carton). |
| **Ambalaj Ürünü** (Packaging Item) | Optional. It is not deducted from stock; it indicates what the goods are packed with and the tare. |
| **Dara (kg)** (Tare (kg)) | If empty, the weight of the packaging item, or unknown. Between 0 and 100,000 kg. |
| **Not** (Note) | Up to 256 characters. |
| **İçerik** (Content) | The **Bu Birime** (In This Unit) quantity per item (cannot exceed the remaining quantity). **Kalanın Tamamı** (All Remaining) enters the unpacked remaining quantity. |
| **İçine Konacak Birimler** (Units to Nest Inside) | Existing units (e.g. cartons onto a pallet) are placed inside this unit. |
Packing is not a precondition for goods issue. After the goods issue, the card becomes read-only (*"mal çıkışından
sonra değişmez"* (cannot be changed after goods issue)); on a delivery shipped without any packing, *"Bu teslimat
paketlenmeden sevk edildi."* (This delivery was shipped without packing.) is displayed. The tare of the handling units
is included in the shipment's gross weight, and the number of pallets in the shipment's pallet load.
## Shipment information
If the delivery has been assigned to a shipment, the **Sefer** (Shipment) row on the **Teslimat** (Delivery) card shows
the shipment number (as a link) and its status; if a delivery event has been recorded on the shipment, *"Teslim edildi ·
tarih · teslim alan"* (Delivered · date · recipient) is displayed.
## Proof of Delivery card

1. Confirmation status
2. Undo — only for unbilled deliveries
3. Delivered vs accepted difference
4. Difference reason
The card appears on a delivery whose goods issue has been posted. Statuses:
| Status | Meaning |
|---|---|
| **Teyit gerekmiyor** (Confirmation not required) | The customer does not require confirmation; a signed delivery note can still be recorded. |
| **Teyit bekleniyor** (Awaiting confirmation) | The customer is invoiced after confirmation — the delivery is not invoiced until the confirmation is recorded. |
| **Teyit edildi** (Confirmed) | Delivery date, recipient, recorded by, and per item the delivered / accepted / difference / reason. |
Whether confirmation is required comes from the **Alındı teyidi › Alındı teyidinden sonra faturala** (Proof of
delivery › Invoice after proof of delivery) option in the **Teslimat** (Delivery) section of the customer card.
- **Alındı Teyidi Kaydet** (Record Proof of Delivery) — [Record proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/alindi-teyidi-kaydetme).
- **Teyidi Geri Al** (Reverse Confirmation) — *"Yalnız faturalanmamış teslimatta geri alınır. Müşteri teyit istiyorsa
teslimat yeniden teyit bekler ve faturalanmaz."* (It can be reversed only on a delivery that has not been invoiced.
If the customer requires confirmation, the delivery awaits confirmation again and is not invoiced.) On an invoiced
delivery, the server returns *"Teslimat faturalandı — alındı teyidi geri alınamaz."* (The delivery has been invoiced
— the proof of delivery cannot be reversed.)
In the case of a short acceptance, the invoice is issued with the accepted quantity; returned goods are taken back into
stock with a [delivery correction](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-duzeltmesi-olusturma).
## Related
- [Pack a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-birimi-olusturma)
- [Pick a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-toplama)
- [Post the goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme)
---
# Define a carrier
> Add a carrier profile to the supplier card of a company from which transportation is purchased — operating license, priority.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-tanimlama
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Ana Veriler › Taşıyıcılar (Logistics Management › Master Data › Carriers)
- **Screen route:** `/erp/logistics/carriers`
- **Required permission:** `erp-logistics-carriers.create`
- **Prerequisites:**
- The company has been created as an **active supplier** card in Business Partners.
- No carrier profile has been added to the card yet (a card can have only one profile).
A carrier is not a separate card but the logistics profile of a supplier card: freight is purchased, and the carrier's
invoice arrives as a supplier invoice.
## Steps
1. Open the **Lojistik Yönetimi › Ana Veriler › Taşıyıcılar** (Logistics Management › Master Data › Carriers) screen.

1. Carrier profile for a supplier card
2. Authorization certificate and expiry
3. Priority in carrier selection
4. Carrier's vehicle and driver count
2. Click **Taşıyıcı Ekle** (Add Carrier).
3. Click the magnifier of the **Tedarikçi Kartı** (Supplier Card) field, then find and select the card in the **Tedarikçi Seç** (Select Supplier) window. A card that is already a carrier appears with the warning "Zaten taşıyıcı olarak kayıtlı" (Already registered as a carrier).
4. Enter the **Yetki Belgesi** (Operating License) type (e.g. K1) and number, and the **Geçerlilik Bitişi** (Valid Until) date.
5. Enter the **Öncelik** (Priority) for its rank in carrier selection (1 is the highest priority, empty = last in the ranking).
6. Leave **Aktif** (Active) selected; enter a **Not** (Note) if necessary, and click **Oluştur** (Create).

1. Supplier card — required
2. Authorization type and number
3. Priority — 1 is highest
4. Create
**Result:** The supplier card becomes a carrier: it can be selected as the **Taşıyıcı** (Carrier) on a shipment, linked to vehicle and driver cards, and a [freight agreement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-anlasmasi-olusturma) can be created for it.
## What you need to know
- After the profile is created, the linked supplier card cannot be changed; the company name and tax ID are refreshed
from the card.
- The operating license type has up to 8 letters/digits (e.g. K1, L2, R1); the priority is an integer between 1 and
99.
- A carrier cannot be deleted; if it will no longer be used, clear the **Aktif** (Active) check box with **İşlemler ›
Düzenle** (Actions › Edit). An inactive carrier cannot be selected on a shipment.
- Tender e-mails go to the e-mail address of the contact on the supplier card.
## Related
- [Carriers screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasiyicilar)
- [Define a vehicle](https://erpdocs.corexlogic.com/en/lojistik/islemler/arac-tanimlama)
---
# Outgoing e-Delivery Notes
> e-Delivery Notes issued from documents that move goods out of the building — draft, transport information, submission to the Turkish Revenue Administration (GİB) and statuses.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/giden-e-irsaliyeler
An e-Delivery Note (e-İrsaliye) is an electronic dispatch document that travels with the goods. In CoreX it is created
from a document that moves goods out of the building: a **Teslimat** (Delivery) (with the goods issue posted),
**Konsinye doldurma** (Consignment fill-up), **Fason sevki** (Subcontracting dispatch), **Tedarikçiye iade** (Return
to supplier), **Nakil sevki** (Transfer dispatch). Submission is performed through the e-Document integrator.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Giden e-İrsaliyeler (Logistics Management › Outbound Delivery › Outgoing e-Delivery Notes)
- **Screen route:** `/erp/edocuments/despatches`
- **Required permission:** `erp-edocuments-despatches.view (görme) · .create (teslimattan oluşturma) · .edit (taslağı düzenleme, gönderme)`
> **If it is turned off in the installation**
If e-Delivery Note is not enabled in the installation, the **e-İrsaliye Oluştur** (Create e-Delivery Note) button does
not appear in the delivery details at all; the delivery note is printed on paper from the delivery's **Çıktı** (Output)
menu. In the demo installation of the documentation environment, e-Delivery Note is turned off — the steps on this page
are described from the source code.

1. Despatches issued in CoreX
2. Archive of external despatches
3. Source document — delivery, consignment, subcontracting…
4. Sending and receiver response
## List
There are two tabs: **CoreX'te kesilenler** (Issued in CoreX) and **Dışarıda kesilenler (arşiv)** (Issued externally
(archive)). Columns: **İrsaliye** (Delivery Note), **Tarih** (Date), **Alıcı** (Recipient), **Kaynak Belge** (Source
Document), **Araç / sevk** (Vehicle / dispatch), **Durum** (Status). Filters: **Ara** (Search) and **Durum** (Status).
When the list is empty, *"Henüz e-İrsaliye yok. Teslimat detayında "e-İrsaliye" ile oluşturun."* (There are no
e-Delivery Notes yet. Create one with "e-İrsaliye" in the delivery details.) is displayed.
## Statuses
| Status | Meaning |
|---|---|
| **Taslak** (Draft) | The transport information and delivery address are entered; the items come from the source document and cannot be changed. |
| **Gönderim kuyruğunda** (In send queue) | Queued with **GİB'e Gönder** (Send to GİB). |
| **Entegratörde** (At integrator) | Forwarded to the integrator. |
| **Alıcıya ulaştı** (Delivered to recipient) | Arrived in the recipient's mailbox. |
| **Kabul edildi** (Accepted) · **Kısmen kabul** (Partially accepted) · **Reddedildi** (Rejected) | The recipient's response. |
| **Gönderilemedi** (Could not be sent) | Submission failed; correct it with **Taslağa Geri Al** (Revert to Draft) and send it again. |
## e-Delivery Note details
- **Alıcı** (Recipient): Kart (Card), Vergi No (Tax No.), Posta kutusu (Mailbox).
- **Teslim adresi** (Delivery address): Adres (Address), **İl** (Province), **İlçe** (District), **Posta kodu**
(Postal code) (required — GİB requires a postal code in the delivery address).
- **İrsaliye** (Delivery Note): Durum (Status), GİB No (assigned on submission), ETTN, source document, order,
**İrsaliye tarihi** (Delivery note date) and **Fiili sevk anı** (Actual dispatch time) (the moment the goods left —
it cannot be before the time of submission).
- **Taşıma** (Transport): **Kendi aracımız (şoför)** (Our own vehicle (driver)) — **Şoför adı** (Driver first name),
**Şoför soyadı** (Driver last name), **Şoför TCKN** (Driver national ID no.) — or **Taşıyıcı firma** (Carrier
company) — **Taşıyıcı unvanı** (Carrier company name), **Taşıyıcı VKN** (Carrier tax ID); **Araç plakası** (Vehicle
plate), **Dorse plakası** (Trailer plate), **Not** (Note).
- **e-Belge süreci** (e-Document process): the integrator status, the last query time and the files.
Buttons on a draft: **Taslağı Sil** (Delete Draft) (if no GİB number has been assigned), **Kaydet** (Save), **GİB'e
Gönder** (Send to GİB). Submission requires confirmation: *"Alıcı, taşıma bilgisi ve kalemler donar; irsaliye
entegratör üzerinden alıcıya iletilir. Alıcı e-İrsaliye kayıtlı değilse gönderilmez — kâğıt irsaliye kullanılır."*
(The recipient, transport information and items are frozen; the delivery note is forwarded to the recipient through
the integrator. If the recipient is not registered for e-Delivery Note, it is not sent — a paper delivery note is
used.) On a delivery note that is at the integrator or has reached the recipient, **Durumu Yenile** (Refresh Status)
appears; on one that could not be sent, **Taslağa Geri Al** (Revert to Draft) appears.
> ****GİB'e Gönder** (Send to GİB) forwards the document to the real recipient; this cannot be undone. While there are**
unsaved changes, the send button is disabled.
The national ID number on the [driver card](https://erpdocs.corexlogic.com/en/lojistik/islemler/surucu-tanimlama) is for the driver on the e-Delivery
Note; the license plate on the [vehicle card](https://erpdocs.corexlogic.com/en/lojistik/islemler/arac-tanimlama) follows the same rule as the plate on
the e-Delivery Note.
## Related
- [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat)
- [Incoming e-Delivery Notes](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-e-irsaliyeler)
---
# Define a vehicle
> Define our own vehicle or a carrier's vehicle — license plate, type, ownership, capacity and documents with expiry dates.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/arac-tanimlama
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Filo › Araçlar (Logistics Management › Fleet › Vehicles)
- **Screen route:** `/erp/logistics/fleet/vehicles`
- **Required permission:** `erp-logistics-fleet.create`
- **Prerequisites:**
- If a carrier's vehicle is to be defined, the carrier has been [defined](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-tanimlama).
## Steps
1. Open the **Lojistik Yönetimi › Filo › Araçlar** (Logistics Management › Fleet › Vehicles) screen and click **Araç Ekle** (Add Vehicle).

1. Tabs: General, Capacity, Documents
2. Plate — identity
3. Vehicle type
4. Ownership — owned, leased, carrier
5. Create
2. Enter the **Plaka** (License Plate) (e.g. 34 ABC 123). The plate is stored in upper case without spaces.
3. Select the **Araç Tipi** (Vehicle Type); if necessary, enter the **Marka / Model** (Make / Model) and **Model Yılı** (Model Year).
4. Select the **Sahiplik** (Ownership). If you select **Taşıyıcının** (Carrier's), select the carrier in the **Taşıyıcı** (Carrier) field that opens.
5. On the **Kapasite** (Capacity) tab, enter the **Taşıma Kapasitesi (kg)** (Load Capacity (kg)), **Hacim (m³)** (Volume (m³)) and **Palet Kapasitesi** (Pallet Capacity). Leave unknown values empty; leave them empty for a tractor unit (the capacity is on the trailer).
6. On the **Belgeler** (Documents) tab, add the inspection, compulsory traffic insurance, comprehensive insurance and tachograph lines with their type, number and **Geçerlilik Bitişi** (Valid Until) date.
7. Click **Oluştur** (Create).

1. New vehicle
2. Filter by document expiry
3. Next document expiry
4. Capacity — kg, m³, pallets
**Result:** The vehicle can be selected on a shipment. An active vehicle in our own fleet with a capacity entered is also included in [Yük Planlama](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/yuk-planlama) (Load Planning).
## What you need to know
- The license plate must be in Turkish plate format; otherwise *"Plaka geçersiz (ör. 34 ABC 123)."* (Invalid license
plate (e.g. 34 ABC 123).) is displayed. The model year must have four digits, the capacity must be greater than zero
or empty, and the pallet capacity must be an integer.
- A carrier's vehicle can be selected only on that carrier's shipments; it cannot be selected on a shipment executed by
our own fleet.
- If a document expires within 30 days, **Süresi yaklaşıyor** (Expiring soon) is displayed; if it has expired,
**Süresi doldu** (Expired). The **Belge Durumu** (Document Status) filter (e.g. *Dikkat gerektiren* (Needs
attention)) lists these vehicles.
- A vehicle cannot be deleted; if it will no longer be used, clear the **Aktif** (Active) check box.
## Related
- [Vehicles and drivers screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/araclar-ve-suruculer)
- [Define a driver](https://erpdocs.corexlogic.com/en/lojistik/islemler/surucu-tanimlama)
---
# Delivery corrections
> Reversal documents for an incorrect goods issue — list, creation and details; the document cannot be changed and records are not deleted.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/teslimat-duzeltmeleri
A delivery whose goods issue has been posted cannot be changed or deleted. If the posting is incorrect (wrong product,
excess quantity), it is reversed with a **delivery correction**: the stock returns to the original warehouse/storage
location, and the original delivery remains unchanged. The document number is **SVR-yyyy-nnnnnn**. Goods sent back by
the customer, however, are not received with a correction but with **İade Al** (Receive Return).
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimat Düzeltmeleri (Logistics Management › Outbound Delivery › Delivery Corrections)
- **Screen route:** `/erp/sales/shipment-reversals`
- **Required permission:** `erp-sales-shipment-reversals.view (liste ve detay) · .create (oluşturma)`
## List

1. Reversal document — immutable
2. Reversed delivery
3. Reason
Columns: **Düzeltme No** (Correction No.), **Düzeltme Tarihi** (Correction Date), **Teslimat No** (Delivery No.),
**Sipariş No** (Order No.), **Müşteri** (Customer), **Gerekçe** (Reason), **Kalem** (Items). Filters: **Ara**
(Search) (correction no., delivery no., order no. or customer) and the **Düzeltme tarihi** (Correction date) range.
The list has no create button: a correction is opened with **Teslimat Düzeltmesi Oluştur** (Create Delivery
Correction) in the delivery details.
## New delivery correction

1. Reversal date
2. Reason — required
3. Line to reverse
4. Fills the reversible remainder
5. Save Reversal
The source delivery (number, date, order, customer, warehouse) is shown at the top of the form; it cannot be edited.
- **Düzeltme Tarihi** (Correction Date) and **Düzeltme Gerekçesi** (Correction Reason) (required, up to 512
characters — a physical posting is not reversed without a reason).
- For each delivery line, the *Sevk edilen* (Shipped), *Daha önce geri alınan* (Previously reversed) and *Geri
alınabilir* (Reversible) quantities are shown. When **Bu satırı düzelt** (Correct this line) is selected,
**Geri Alınacak Miktar** (Quantity to Reverse) opens; **Kalanı doldur** (Fill remaining) enters the remaining
reversible quantity. On a serial-managed line, select the **Geri Alınacak Seriler** (Serial Numbers to Reverse).
- **Düzeltmeyi Kaydet** (Save Correction) posts the document.
Rejection messages: *"Düzeltme tarihi zorunlu."* (The correction date is required.), *"Düzeltme gerekçesi zorunlu."*
(The correction reason is required.), *"En az bir satır için düzeltme seçin."* (Select a correction for at least one
line.). For a delivery whose quantities have all been reversed, *"Yeni düzeltme oluşturulabilecek satır yok."* (There
are no lines for which a new correction can be created.) is displayed.
## Details
The details show **Kaynak Teslimat / Sipariş** (Source Delivery / Order) (delivery, order, customer, warehouse),
**Düzeltme Bilgisi** (Correction Information) (date, reason) and the items (**Geri Alınan** (Reversed), **Lokasyon**
(Storage Location), **Lot** (Batch), **Seri Numaraları** (Serial Numbers)). The document cannot be changed. The
correction history section in the delivery details also links to the document.
## Related
- [Create a delivery correction](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-duzeltmesi-olusturma)
- [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat)
---
# Define a driver
> Define our own driver or a carrier's driver — identity, driver's license and document expiry dates.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/surucu-tanimlama
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Filo › Sürücüler (Logistics Management › Fleet › Drivers)
- **Screen route:** `/erp/logistics/fleet/drivers`
- **Required permission:** `erp-logistics-fleet.create`
- **Prerequisites:**
- If a carrier's driver is to be defined, the carrier has been [defined](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-tanimlama).
## Steps
1. Open the **Lojistik Yönetimi › Filo › Sürücüler** (Logistics Management › Fleet › Drivers) screen and click **Sürücü Ekle** (Add Driver).

1. First and last name — required
2. National ID — for the e-despatch driver
3. License classes
4. Own driver or carrier
2. Enter the **Ad** (First Name) and **Soyad** (Last Name).
3. If the person will appear as the driver on e-Delivery Notes, enter the **TC Kimlik No** (National ID No.); fill in the **Telefon** (Phone), **Ehliyet Sınıfları** (License Classes) (e.g. C, CE) and **Ehliyet No** (License No.).
4. In the **Taşıyıcı** (Carrier) field, select **Kendi sürücümüz** (Our own driver) or the carrier the driver works for.
5. On the **Belgeler** (Documents) tab, enter the expiry dates of the **Ehliyet** (Driver's License), **SRC Belgesi** (SRC Certificate) and **Psikoteknik** (Psychotechnical Assessment).
6. Click **Oluştur** (Create).

1. New driver
2. License classes
3. Own driver or carrier driver
4. License, SRC, psychotechnic expiry
**Result:** The driver can be selected as the **Sürücü** (Driver) on a shipment; our own driver on shipments executed by our own fleet, a carrier's driver on that carrier's shipments.
## What you need to know
- The national ID number is personal data: only users with the `erp-logistics-driver-identity.view` permission can see
it; others see *"Kayıtlı — görmek için kimlik izni gerekir"* (Recorded — the identity permission is required to view
it). For an invalid number, *"TC kimlik numarası geçersiz."* (The national ID number is invalid.) is displayed.
- **Geçerlilik Bitişi** (Valid Until) is required on every document line (*"N. belgenin geçerlilik bitişini girin."*
(Enter the expiry date of document N.)).
- A driver cannot be deleted; set it to inactive instead. An inactive driver cannot be selected on a shipment.
## Related
- [Vehicles and drivers screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/araclar-ve-suruculer)
---
# Delivery monitor
> Monitor outbound deliveries stage by stage — awaiting goods issue, without a shipment, planned shipment, in transit, awaiting proof of delivery; reference check.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/teslimat-izleme
Teslimat İzleme (Delivery Monitor) shows outbound deliveries stage by stage, from goods issue to delivery. The stage
comes from the status of the delivery and of the shipment; the screen does not write any documents.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimat İzleme (Logistics Management › Outbound Delivery › Delivery Monitor)
- **Screen route:** `/erp/logistics/delivery-monitor`
- **Required permission:** `erp-sales-shipments.view`

1. Warehouse filter
2. Look-back window
3. Stage card — count and overdue
4. Overdue delivery
5. Reference check — shows, does not fix
## Filters
- **Depo** (Warehouse) — **Bütün depolar** (All warehouses) or a single warehouse.
- **Geriye bakış** (Look-back) — **Son 7 gün** (Last 7 days), **Son 30 gün** (Last 30 days) (default), **Son 90 gün**
(Last 90 days). The look-back is the goods issue window for the "not assigned to a shipment" and "awaiting
confirmation" stages.
## Stages
At the top there is a card for each stage (number of deliveries and, if any, *"N gecikmiş"* (N overdue)); below are
the oldest deliveries of each stage:
| Stage | Date column | Content |
|---|---|---|
| **Mal çıkışı bekleyen (açık teslimat)** (Awaiting goods issue (open delivery)) | Planlanan Sevk (Planned Shipping) | Open deliveries. |
| **Sefere atanmamış (mal çıkışı yapıldı)** (Not assigned to a shipment (goods issued)) | Mal Çıkışı (Goods Issue) | Deliveries whose goods have been issued but that have no shipment. |
| **Planlanan sefer** (Planned shipment) | Planlanan Çıkış (Planned Departure) | Deliveries assigned to a planned shipment. |
| **Yolda** (In transit) | Yola Çıkış (Departure) | Deliveries of a shipment in transit. |
| **Alındı teyidi bekleyen** (Awaiting proof of delivery) | Mal Çıkışı (Goods Issue) | Deliveries awaiting confirmation. |
Table columns: **Teslimat** (Delivery), **Müşteri** (Customer), **Depo** (Warehouse), the stage's date column,
**Yaş (gün)** (Age (days)), **Sefer** (Shipment). On an overdue row, a **Gecikmiş** (Overdue) badge appears next to
the delivery number. If a stage has no records, *"Bu aşamada teslimat yok."* (There are no deliveries in this stage.)
is displayed.
## Reference check
Logistics stores records of other modules (cards, orders, items) by ID. **Denetle** (Check) counts whether these
links still resolve: the **Bağ** (Link), **Denetlenen** (Checked), **Yetim** (Orphaned), **Örnek** (Sample) columns
and the check time. The check does not repair anything; it only reports.
## Related
- [Transportation documents](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri)
- [Logistics analytics](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/analitik)
---
# Create a freight agreement
> Define the tiered freight tariff of a carrier (purchasing) or a customer (sales).
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-anlasmasi-olusturma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Ana Veriler › Navlun Anlaşmaları (Logistics Management › Master Data › Freight Agreements)
- **Screen route:** `/erp/logistics/freight-agreements`
- **Required permission:** `erp-logistics-freight-agreements.create`
- **Prerequisites:**
- For a carrier agreement, the carrier has been [defined](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-tanimlama); for a customer agreement, the customer card is active.
## Steps
1. On the **Lojistik Yönetimi › Ana Veriler › Navlun Anlaşmaları** (Logistics Management › Master Data › Freight Agreements) screen, click **Anlaşma Ekle** (Add Agreement).

1. New agreement
2. Kind: carrier (purchase) or customer (sales)
3. Validity period
4. Tariff summary
2. Select the **Tür** (Type): **Taşıyıcı (alış)** (Carrier (purchasing)) is for the cost of a shipment, **Müşteri (satış)** (Customer (sales)) is for the charge of a transport order.
3. Select the **Taşıyıcı** (Carrier) (for a customer agreement, the **Müşteri** (Customer)).
4. Enter the **Ad** (Name); the **Kod** (Code) is suggested from the name, and you can overwrite it. Check the **Para Birimi** (Currency).
5. Enter the start and (if any) end of the **Geçerlilik** (Validity).
6. In the **Tarife** (Tariff) table, enter the **Dayanak** (Basis), **Kademe (başlangıç)** (Tier (from)), **Birim Ücret** (Unit Rate) and, if necessary, the **En Az Ücret** (Minimum Charge) of the first line; for another basis or tier, click **Satır Ekle** (Add Line).
7. Click **Oluştur** (Create).

1. Kind — fixed after creation
2. Valid from and to
3. Add tariff line
4. Tier — highest tier reached applies
**Result:** On the carrier's shipments, freight is calculated from this agreement (the shipment's departure date must be within the validity range); a customer agreement gives the charge of a transport order.
## What you need to know
- The highest tier reached by the quantity is applied. In the sample tariff, the freight for a 450 km shipment is
1,500 + 450 × 12 = 6,900 TRY; at 500 km and above, the per-km rate is 10 TRY.
- The per-shipment rate has no tiers; the same tier cannot be defined twice for the same basis; up to 50 lines.
- Type and party cannot be changed after creation — create a new agreement for a different party.
- If a carrier has more than one agreement valid on the same day, the one with the most recent start date is used.
- A saved agreement is opened with the row's **İşlemler › Düzenle** (Actions › Edit) menu; if it will no longer be
used, clear the **Aktif** (Active) check box.
## Related
- [Freight agreements screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-anlasmalari)
- [Select the carrier for a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme)
---
# Transportation documents (shipments)
> The plan, executor, deliveries, load and capacity, freight and events of a shipment — Planned, In Transit, Completed, Cancelled.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri
A transportation document is the trip of one vehicle (a **shipment**). The executor is either **Kendi filomuz** (Our own
fleet) (our vehicle and our driver) or a **Taşıyıcı** (Carrier) (a transportation company and its vehicle/driver).
Deliveries are added to the shipment; their sequence is the stop sequence. The document number is
**TSM-yyyy-nnnnnn**.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Taşıma Belgeleri · Taşıma Belgesi Oluştur (Logistics Management › Transportation › Transportation Documents · Create Transportation Document)
- **Screen route:** `/erp/logistics/transports`
- **Required permission:** `erp-logistics-transports.view (görme) · .create (oluşturma) · .edit (düzenleme, yola çıkarma, tamamlama, iptal, taşıyıcı atama)`, `erp-logistics-transport-events.create (olay kaydı)`, `erp-logistics-freight-agreements.view (Navlun kartı ve Taşıyıcı Seç)`
## Statuses and actions
| Status | Meaning | Actions shown in the details |
|---|---|---|
| **Planlandı** (Planned) | The plan and the deliveries can be changed. | **İptal Et** (Cancel) · **Düzenle** (Edit) · **Taşıyıcı Seç** (Select Carrier) · **Yola Çıkar** (Dispatch) · **Olay Kaydet** (Record Event) (only *Yüklendi* (Loaded)) |
| **Yolda** (In Transit) | The plan and the deliveries are frozen. | **Tamamla** (Complete) · **Olay Kaydet** (Record Event) (Yüklendi (Loaded), Vardı (Arrived), Teslim edildi (Delivered), Gecikme bildirildi (Delay reported), Sorun bildirildi (Issue reported)) |
| **Tamamlandı** (Completed) | The arrival time has been recorded, and the shipment is closed. | No event recording; it is included in the freight settlement. |
| **İptal Edildi** (Cancelled) | Only a planned shipment can be cancelled; the deliveries are released. | None |
The server calculates delays with its own clock; in the header of a delayed shipment, **Gecikmede** (Delayed) appears
next to the status. Actions also depend on authorization (the permissions in the summary).
## Transportation Documents list

1. New trip
2. Status filter
3. Own fleet or carrier
4. Click the number to open the trip
Columns: **Taşıma No** (Transportation No.), **Durum** (Status), **Planlanan Çıkış** (Planned Departure),
**Yürütücü** (Executor) (executor type with carrier · plate · driver), **Belge** (Documents) (number of deliveries).
Filters: **Ara** (Search) and **Durum** (Status). The row's **İşlemler** (Actions) menu contains **Seferi Aç** (Open
Shipment) and the document history. The **Taşıma Belgesi Oluştur** (Create Transportation Document) link opens the new
shipment form.
## Create / edit a transportation document

1. Executor — own fleet or carrier
2. Carrier
3. Planned departure — required
4. Distance — basis for per-km freight
5. Deliveries — order is stop order
6. Create
| Field | Description |
|---|---|
| **Yürütücü** (Executor) (required) | **Kendi filomuz** (Our own fleet) or **Taşıyıcı** (Carrier). When Taşıyıcı (Carrier) is selected, the **Taşıyıcı** (Carrier) field opens. |
| **Taşıyıcı** (Carrier) | Active carriers. The carrier must be selected before selecting the carrier's vehicle or driver. |
| **Planlanan Çıkış** (Planned Departure) (required) · **Planlanan Varış** (Planned Arrival) | Date and time. Arrival cannot be before departure. |
| **Araç** (Vehicle) · **Dorse** (Trailer) · **Sürücü** (Driver) | For our own fleet, our own vehicles and drivers are listed; for a carrier, that carrier's vehicles and drivers. If there is no trailer, **Dorse yok** (No trailer). |
| **Planlanan Mesafe (km)** (Planned Distance (km)) | The basis for per-km freight. Empty = unknown (not counted as zero). |
| **Not** (Note) | Up to 512 characters. |
| **Teslimatlar** (Deliveries) | Added from the **Teslimat Ekle** (Add Delivery) window; the sequence (stop sequence) is changed with the arrow buttons, and a delivery is removed with the trash icon. |
For our own fleet, the following note appears at the bottom of the form: *"Yola çıkış için araç ve sürücü gerekir;
planlarken boş bırakılabilir. Taşıyıcının aracı burada listelenmez."* (A vehicle and a driver are required for
dispatch; they can be left empty when planning. The carrier's vehicles are not listed here.) A shipment can also be
planned without deliveries; dispatch requires at least one delivery. The record is saved with **Oluştur** (Create)
(**Kaydet** (Save) when editing), and the shipment details open.

1. Search by delivery no, customer, address
2. Delivery to add to the trip
3. Add
The **Teslimat Ekle** (Add Delivery) window lists *"Sefere atanmamış, iptal edilmemiş teslimatlar — açık ya da mal
çıkışı kaydedilmiş"* (Deliveries not assigned to a shipment and not cancelled — open or with goods issue posted)
(columns: Teslimat (Delivery), Tarih (Date), Müşteri / Varış (Customer / Destination), Depo (Warehouse), Durum
(Status)). A delivery can be on only one shipment at a time.
## Shipment details

1. Status: Planned
2. Select Carrier — ranked by tariff
3. Dispatch
4. Edit — planned trips only
5. The trip's open tender
6. Load and capacity
- **Sefer Bilgileri** (Shipment Information): Executor, Carrier (with tax ID), Vehicle / Trailer, Driver, Planned
Departure and Arrival, the actual **Yola Çıkış** (Departure) and **Varış** (Arrival), Planned Distance, note and
cancellation reason. If the shipment has an open tender, its number and the number of bids appear here as a link.
- **Yük ve Kapasite** (Load and Capacity): Gross Weight, Volume, Pallets — the capacity is that of the trailer, or of
the vehicle if there is no trailer. The weight comes from the card dimensions and the tare of the handling units. If
the capacity is exceeded, a warning is displayed (*"Ağırlık kapasiteyi aşıyor."* (Weight exceeds capacity.),
*"Hacim kapasiteyi aşıyor."* (Volume exceeds capacity.), *"Palet sayısı kapasiteyi aşıyor."* (Number of pallets
exceeds capacity.)); exceeding the capacity does not block saving.
- **Teslimatlar** (Deliveries): Sıra (Sequence), Belge (Document) (link to the delivery), Alıcı / Varış (Recipient /
Destination), Durum (Status), Brüt Ağırlık (Gross Weight), Hacim (Volume), Kap / Palet (Packages / Pallets) and
**Teslim** (Delivery) (Bekliyor (Pending) · Vardı (Arrived) · Teslim edildi (Delivered) + recipient).
- **Navlun** (Freight) (with the freight permission): the freight calculated from the agreement on a carrier shipment.
- **Olaylar** (Events): timeline.
- **Ekler** (Attachments): CMR and shipment documents (PDF or image).
### Shipment in transit and events

1. Status: In transit
2. Complete — arrival is written, trip closes
3. Record Event — arrival, delivery, delay, problem
4. Event timeline
An event cannot be changed; an incorrect record is corrected with a new event. Event types: **Yüklendi** (Loaded),
**Yola çıktı** (Departed), **Vardı** (Arrived), **Teslim edildi** (Delivered), **Gecikme bildirildi** (Delay reported),
**Sorun bildirildi** (Issue reported), **Sefer tamamlandı** (Shipment completed). *Yola çıktı* (Departed) and *Sefer
tamamlandı* (Shipment completed) are written by the shipment's own steps (**Yola Çıkar** (Dispatch), **Tamamla**
(Complete)). Details: [Record a shipment event](https://erpdocs.corexlogic.com/en/lojistik/islemler/sefer-olayi-kaydetme).
### Completed shipment and freight

1. Status: Completed
2. Load compared with capacity
3. Delivery and receiver per stop
4. Settled freight is not recalculated

1. (Re)calculate freight
2. Tariff basis
3. Applied agreement and calculation time
The freight card is calculated only on a shipment with the **Taşıyıcı** (Carrier) executor, with a carrier selected and
not cancelled. The calculation uses the carrier's agreement **valid on the shipment's departure date** and the shipment's
measurements (distance, weight, volume, pallets, stops). Lines: **Dayanak** (Basis), **Miktar** (Quantity), **Birim
Ücret** (Unit Rate), **Tutar** (Amount) and **Toplam** (Total); if the minimum charge was applied, *"En az ücret
uygulandı"* (Minimum charge applied) is displayed.
- The **Navlunu Hesapla** (Calculate Freight) / **Yeniden Hesapla** (Recalculate) button appears with the edit
permission.
- A basis whose measurement is unknown is not included in the calculation; the card says *"Ölçüsü bilinmeyen dayanak
hesaba girmez: …"* (A basis with an unknown measurement is not included in the calculation: …) — enter the distance
on the shipment, and the weight and volume on the product card.
- If the shipment or the agreement changes after the calculation, the server returns *"Sefer ya da anlaşma hesaptan
sonra değişti — navlunu yeniden hesaplayın."* (The shipment or agreement changed after the calculation — recalculate
the freight.)
- Once the freight is included in a settlement, the card shows *"Hesaplaşıldı: NHS-… — navlun yeniden hesaplanmaz."*
(Settled: NHS-… — the freight is not recalculated.)
- On a shipment executed by our own fleet, the card says *"Kendi filomuzla yapılan seferin taşıyıcı navlunu yok —
maliyeti Filo İşletimi'nde."* (A shipment executed by our own fleet has no carrier freight — its cost is in Fleet
Operations.)
Freight is not an accounting entry; a completed shipment is matched with the carrier's invoice on the
[Freight settlements](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-hesaplasmalari) screen.
## Related
- [Create a transportation document](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-belgesi-olusturma)
- [Select the carrier for a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme)
- [Dispatch a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-yola-cikarma) · [Complete a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-tamamlama)
- [Load planning](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/yuk-planlama)
---
# Pick a delivery
> Move the items of an open outbound delivery from the shelf to the shipping staging area with waves and picking tasks.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-toplama
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Stok Yönetimi › Depo Yürütme › Dalgalar › Dalga Oluştur (Inventory Management › Warehouse Execution › Waves › Create Wave)
- **Screen route:** `/erp/inventory/waves/new`
- **Required permission:** `erp-inventory-warehouse-tasks.create`, `erp-inventory-warehouse-tasks.edit`
- **Prerequisites:**
- The delivery is in **Açık** (Open) status ([create open deliveries](https://erpdocs.corexlogic.com/en/satis/islemler/acik-teslimat-olusturma)).
- The delivery's warehouse is bin-managed (with storage locations) and has a shipping staging area defined; the goods are in a storage bin.
Picking is performed with the warehouse execution screens of Inventory Management; this page describes their use with
an outbound delivery. Tasks can also be confirmed from a handheld terminal.
## Steps
1. On the **Stok Yönetimi › Depo Yürütme › Dalgalar** (Inventory Management › Warehouse Execution › Waves) screen, open **Dalga Oluştur** (Create Wave).
2. Select the **Depo** (Warehouse).
3. In the **Kaynak** (Source) field, select **Açık teslimatlar** (Open deliveries). If necessary, narrow the list with the **Planlanan sevk (en geç)** (Planned shipping (latest)) date and **Ara** (Search).
4. Select the lines to be picked. **Toplanacak** (To Pick) = remaining − allocated to the item − open picking; if the **Toplanabilir Stok** (Pickable Stock) is insufficient, the line carries a warning.

1. Warehouse — the delivery warehouse
2. Source: Open deliveries
3. Delivery item to pick
4. Create Wave — picking tasks are created
5. Enter a **Not** (Note) if necessary, and click **Dalgayı Oluştur** (Create Wave).

1. The wave completes when all tasks are confirmed
2. The wave line carries the delivery number
3. Picking task — from source bin to SEVK
6. Open each picking task (the task number in the wave details or **Depo Görevleri** (Warehouse Tasks)) and click **Onayla** (Confirm); check the **Hedef göz** (Destination bin) and **Miktar** (Quantity), and save with **Onayla** (Confirm) in the window.
7. Open the delivery details; check that the picking status in the header is **Toplandı** (Picked).

1. Picking status
2. Packing status
3. Picked quantity per item
4. New handling unit (carton, pallet…)
5. Handling unit labels (PDF)
**Result:** The picked goods are allocated to the sales order item in the shipping area. The delivery's picking status becomes **Toplandı** (Picked), and on the goods issue form the allocations are filled in automatically with the picked goods.
## What you need to know
- The wave line carries the delivery number; the upper limit for a delivery item is the delivery quantity, and the due
date is the planned shipping date.
- If the pickable stock is insufficient, the wave is still created; the shortage is shown on the wave line. When
confirming a task, **Kalanı farkla kapat (rafta bulunamadı)** (Close remaining as a difference (not found on the
shelf)) can be selected — the difference is not a stock movement, the goods remain in the source bin, and the
correction is made with a physical inventory count.
- For a partially picked delivery, the status becomes **Kısmen toplandı** (Partially picked).
- Picking is not mandatory: for an open delivery that has not been picked, the allocations are entered manually at goods
issue.
- The picking status is calculated from the stock allocated to the sales order item in the delivery warehouse; goods
produced for the item are also counted.
## Related
- [Picking, packing and proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/toplama-paketleme-teyit)
- [Pack a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-birimi-olusturma)
- [Post the goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme)
---
# Inbound deliveries
> The notification of goods sent by a supplier — from a purchase order or an incoming e-Delivery Note; the goods receipt is posted from the delivery.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-teslimatlar
An inbound delivery is the notification of goods sent by a supplier (shipping notification). It is created from a
purchase order or from the supplier's incoming e-Delivery Note; the goods receipt is posted from this delivery and
recorded against it. A delivery belongs to a single supplier and can carry multiple purchase orders (up to 30).
A delivery is created in one of three ways:
1. **Automatically when the purchase order is finalized** — when a purchase order with a receiving warehouse is
finalized, a delivery is created in **Bekleniyor** (Expected) status with the notifiable remaining quantity of
the lines and the expected date of the order (no delivery note: expected goods).
2. **When the supplier's e-Delivery Note arrives** — the delivery note is linked to the expected delivery, or a new
delivery with a delivery note is created and the expected deliveries are reduced by the quantity on the delivery
note. A delivery note whose matching is incomplete becomes an **İnceleme Bekliyor** (Awaiting Review) draft.
3. **Manually** — from the **Gelen Teslimat Oluştur** (Create Inbound Delivery) screen.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Gelen Teslimat › Gelen Teslimatlar · Gelen Teslimat Oluştur (Logistics Management › Inbound Delivery › Inbound Deliveries · Create Inbound Delivery)
- **Screen route:** `/erp/logistics/inbound-deliveries`
- **Required permission:** `erp-logistics-inbound-deliveries.view (görme) · .create (oluşturma, inceleme, kapatma, iptal)`, `erp-procurement-receipts.create (Mal Kabulü Oluştur)`
## List

1. New inbound delivery
2. Pending only
3. My warehouses only
4. Status
Columns: **Teslimat No** (Delivery No.), **Beklenen** (Expected), **Tedarikçi** (Supplier), **Depo** (Warehouse),
**Siparişler** (Orders), **İrsaliye** (Delivery Note), **Kalem** (Items), **Durum** (Status). Filters: **Ara**
(Search), **Durum** (Status), **Beklenen başlangıç** (Expected from) – **Bitiş** (To), **Yalnız bekleyenler** (Only
pending) and **Yalnız benim depolarım** (Only my warehouses) (the warehouses I am responsible for). The row menu has
**Gelen Teslimatı Aç** (Open Inbound Delivery).
## Statuses
| Status | Meaning | Actions |
|---|---|---|
| **İnceleme Bekliyor** (Awaiting Review) | The incoming e-Delivery Note did not match the purchase order automatically; the lines must be matched and approved. No goods receipt can be posted until approval. | **İncele ve Onayla** (Review and Approve) · **İptal Et** (Cancel) |
| **Bekleniyor** (Expected) | The notified goods are expected. If a delivery note is linked, **Sevk Bildirildi** (Shipment Notified) is shown (goods in transit). | **Mal Kabulü Oluştur** (Create Goods Receipt) · **İptal Et** (Cancel) |
| **Kısmen Teslim Alındı** (Partially Received) | Part of it has been received with a goods receipt. | **Mal Kabulü Oluştur** (Create Goods Receipt) · **Kalanı Kapat** (Close Remaining) |
| **Tamamlandı** (Completed) | The notified quantity has been received, or the remaining quantity was closed. | — |
| **İptal Edildi** (Cancelled) | The notified quantity has been released. | — |
For a delivery whose expected date has passed, **Gecikti** (Overdue) appears next to the status.
- **İptal Et** (Cancel) (reason required): *"Bildirilen miktar serbest kalır; siparişin açık miktarı yeniden
bildirilebilir."* (The notified quantity is released; the open quantity of the purchase order can be notified
again.)
- **Kalanı Kapat** (Close Remaining) (reason required): *"Kalan artık beklenmiyor — teslimat tamamlanır; siparişin
kalanı yeni bir teslimatla bildirilebilir."* (The remaining quantity is no longer expected — the delivery is
completed; the remainder of the purchase order can be notified with a new delivery.)
## Create an inbound delivery

1. Source: order or incoming e-despatch
2. Order — magnifier or F4 opens the list
3. Warehouse
4. Expected arrival — required
5. Save Inbound Delivery
Select the source at the top: **Siparişten** (From purchase order) or **Gelen e-İrsaliyeden** (From incoming e-Delivery
Note).
- **Siparişten** (From purchase order): type an order number or supplier in the **Sipariş** (Order) field and press
Enter, or open the **Sipariş Seç** (Select Order) window with the magnifier or F4. Multiple purchase orders can be
selected; all must be from the same supplier (the supplier of the first selected order determines it).
- **Gelen e-İrsaliyeden** (From incoming e-Delivery Note): **İrsaliye ara** (Search delivery note) and select the
**Gelen e-İrsaliye** (Incoming e-Delivery Note); lines are suggested to purchase order lines by the supplier's item
code (the suggestion is not a rule and can be changed).
- Line table: **Sipariş / Satır** (Order / Line), (for a delivery note, **İrsaliye satırı** (Delivery note line)),
**Açık** (Open), **Başka teslimatta** (In another delivery), **Miktar** (Quantity). The maximum notifiable quantity
per line comes from the server.
- **Depo** (Warehouse): comes from the receiving warehouse of the purchase orders; if the order has no warehouse,
select one (a notification is sent to the persons responsible for the warehouse). If the purchase orders are
received in different warehouses, the delivery is not created — a separate delivery is needed for each warehouse.
- **Beklenen Varış** (Expected Arrival) (required), **Tedarikçi İrsaliye No** (Supplier Delivery Note No.),
**İrsaliye Tarihi** (Delivery Note Date), **Not** (Note).
- **Gelen Teslimatı Kaydet** (Save Inbound Delivery) (**Onayla** (Approve) during review).
Rejection messages of the form:
| Message | Meaning |
|---|---|
| *"Beklenen varış gününü seçin."* | Select the expected arrival date. |
| *"En az bir sipariş satırı seçin."* | Select at least one order line. |
| *"…: miktar sıfırdan büyük olmalı."* | …: the quantity must be greater than zero. |
| *"Bir teslimatta en çok 30 sipariş olur."* | A delivery can contain at most 30 orders. |
## Details
**Durum** (Status), **Tedarikçi** (Supplier), **Beklenen Varış** (Expected Arrival), **Depo** (Warehouse),
**Tedarikçi İrsaliyesi** (Supplier Delivery Note), **İrsaliyedeki Teslim Adresi** (Delivery Address on Delivery Note),
**Gelen e-İrsaliye** (Incoming e-Delivery Note), **Hazırlayan** (Prepared By), **Not** (Note), **Kapanış** (Closing);
in the items, **Sipariş** (Order), **Bildirilen** (Notified), **Teslim Alınan** (Received), **Kalan** (Remaining).
**Mal Kabulü Oluştur** (Create Goods Receipt) opens the goods receipt form with this delivery.
## Related
- [Create an inbound delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/gelen-teslimat-olusturma)
- [Incoming e-Delivery Notes](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-e-irsaliyeler)
---
# Pack a delivery
> Place the items of an open outbound delivery into handling units (carton, pallet, crate) and print labels.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-birimi-olusturma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimatlar › teslimat detayı › Taşıma Birimi Oluştur (Logistics Management › Outbound Delivery › Deliveries › delivery details › Create Handling Unit)
- **Screen route:** `/erp/sales/shipments/{id}`
- **Required permission:** `erp-sales-shipments.create`
- **Prerequisites:**
- The delivery is in **Açık** (Open) status (packing cannot be changed after goods issue).
## Steps
1. Open the open delivery from the **Lojistik Yönetimi › Giden Teslimat › Teslimatlar** (Logistics Management › Outbound Delivery › Deliveries) list.
2. On the **Paketleme** (Packing) card, click **Taşıma Birimi Oluştur** (Create Handling Unit).
3. Select the **Kap Cinsi** (Package Type) (the default is Karton (Carton)).
4. Optionally, select an **Ambalaj Ürünü** (Packaging Item) (it is not deducted from stock) and enter the **Dara (kg)** (Tare (kg)); if the tare is empty, the weight of the packaging item is used.
5. In the **İçerik** (Content) table, enter the **Bu Birime** (In This Unit) quantity per item, or click **Kalanın Tamamı** (All Remaining). If you are placing cartons onto a pallet, select the units under **İçine Konacak Birimler** (Units to Nest Inside).

1. Package type — required
2. Packaging item — optional, not issued from stock
3. Tare weight
4. Puts the unpacked remainder into this unit
5. Create
6. Click **Oluştur** (Create).
7. For labels, click **Etiketleri Yazdır** (Print Labels) (for a single unit, the row's **İşlemler › Etiket Yazdır** (Actions › Print Label)).

1. Picking status
2. Packing status
3. Picked quantity per item
4. New handling unit (carton, pallet…)
5. Handling unit labels (PDF)
**Result:** The items are placed in handling units. The tare and the number of pallets of the units are included in the shipment's load calculation; after goods issue, packing remains read-only.
## What you need to know
- Packing is not a precondition for goods issue.
- An item can be placed in a unit up to its unpacked remaining quantity: *"…: en fazla N … paketlenebilir."* (…: at
most N … can be packed.) A unit must contain at least one item quantity or one nested unit.
- The tare is between 0 and 100,000 kg; the note can have up to 256 characters.
- Delete an incorrect unit with the row's **İşlemler › Paketi Aç** (Actions › Unpack) menu: the items in it become
unpacked, and the units in it move up one level.
- If another user changed the delivery at the same time, *"Bu teslimat bu sırada başka bir kullanıcı tarafından
değiştirildi. Sayfayı yenileyip tekrar deneyin."* (This delivery was changed by another user in the meantime. Refresh
the page and try again.) is displayed — refresh the page.
## Related
- [Picking, packing and proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/toplama-paketleme-teyit)
- [Create a transportation document](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-belgesi-olusturma)
---
# Incoming e-Delivery Notes
> Suppliers' e-Delivery Notes — inbox, work lists, business partner matching and acceptance/rejection response.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-e-irsaliyeler
Suppliers' e-Delivery Notes arrive automatically from the e-Document integrator. After the goods have been
counted, an acceptance/rejection response is given line by line (within 7 days). A delivery note that matches a
purchase order creates an inbound delivery; a delivery note that does not match becomes a draft inbound delivery
in **İnceleme Bekliyor** (Awaiting Review) status ([Inbound deliveries](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-teslimatlar)).
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Gelen Teslimat › Gelen e-İrsaliyeler (Logistics Management › Inbound Delivery › Incoming e-Delivery Notes)
- **Screen route:** `/erp/edocuments/incoming-despatches`
- **Required permission:** `erp-edocuments-incoming-despatches.view (görme) · .edit (eşleştirme, yanıt)`

1. Query the inbox now
2. Work list: awaiting response
3. Work list: no partner card
4. Accept / reject response
## List
- **Şimdi Çek** (Fetch Now) — queries the inbox within one minute. **Okunmuşları Tara** (Scan Read Items) —
rescans the delivery notes of the last 7 days (including those already read). Both send a request to the
integrator; if fetching is turned off, the page displays *"Gelen irsaliye çekimi kapalı (e-Belge Ayarları ›
Belgeler)"* (Fetching incoming delivery notes is turned off (e-Document Settings › Documents)).
- Work lists: **Yanıt bekleyen** (Awaiting response) and **Cari kartı olmayan** (Without a business partner card).
- Columns: **İrsaliye** (Delivery Note), **Tarih** (Date), **Tedarikçi** (Supplier), **Araç** (Vehicle),
**Kalem** (Items), **Yanıt** (Response). Filter: **Ara** (Search).
## Response statuses
| Response | Meaning |
|---|---|
| **Yanıt bekliyor** (Awaiting response) | No acceptance/rejection response has been given. |
| **Yanıt gönderiliyor** (Sending response) | The response is in the queue. |
| **Kabul edildi** (Accepted) · **Kısmen kabul** (Partially accepted) · **Reddedildi** (Rejected) | The response given. |
| **Yanıt gönderilemedi** (Response could not be sent) | Sending the response failed. |
| **Yanıt gerekmez** (No response required) | This delivery note does not require a response. |
In the details, the delivery note is matched to a business partner card (a card can be created if there is none),
and the acceptance/rejection response is entered line by line; for a short or rejected line without a line reason,
a general reason is required.
> **In the demo installation of the documentation environment, fetching incoming delivery notes is turned off; the list**
is empty. Sending a response sends a message to the real supplier.
## Related
- [Inbound deliveries](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-teslimatlar)
- [Outgoing e-Delivery Notes](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/giden-e-irsaliyeler)
---
# Create a transportation document
> Plan a shipment — executor (our own fleet or a carrier), planned departure, vehicle and driver, distance and deliveries.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-belgesi-olusturma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Taşıma Belgesi Oluştur (Logistics Management › Transportation › Create Transportation Document)
- **Screen route:** `/erp/logistics/transports/new`
- **Required permission:** `erp-logistics-transports.create`
- **Prerequisites:**
- The deliveries to be included in the shipment are not cancelled and not assigned to another shipment (open or with goods issue posted).
- For a shipment by our own fleet, the vehicle and driver are defined; for a shipment by a carrier, the carrier is defined.
## Steps
1. Open the **Lojistik Yönetimi › Taşıma › Taşıma Belgesi Oluştur** (Logistics Management › Transportation › Create Transportation Document) screen.
2. Select the **Yürütücü** (Executor): **Kendi filomuz** (Our own fleet) or **Taşıyıcı** (Carrier). For a carrier, select the company in the **Taşıyıcı** (Carrier) field that opens (you can also determine the carrier later with **Taşıyıcı Seç** (Select Carrier)).
3. Enter the **Planlanan Çıkış** (Planned Departure) (required) and the **Planlanan Varış** (Planned Arrival).
4. Select the **Araç** (Vehicle), **Dorse** (Trailer) and **Sürücü** (Driver). They can be left empty when planning; dispatch with our own fleet requires a vehicle and a driver.
5. Enter the **Planlanan Mesafe (km)** (Planned Distance (km)) — it is the basis for per-km freight; if left empty, it is treated as unknown.
6. Click **Teslimat Ekle** (Add Delivery), select the deliveries to add and click **Ekle (N)** (Add (N)).

1. Search by delivery no, customer, address
2. Delivery to add to the trip
3. Add
7. Arrange the deliveries in stop sequence with the arrow buttons; enter a **Not** (Note) if necessary.
8. Click **Oluştur** (Create).

1. Executor — own fleet or carrier
2. Carrier
3. Planned departure — required
4. Distance — basis for per-km freight
5. Deliveries — order is stop order
6. Create
**Result:** The shipment is in **Planlandı** (Planned) status; the plan and the deliveries can be changed with **Düzenle** (Edit). Next steps: for a carrier shipment, [select the carrier](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme), post the [goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme) for the goods, then [dispatch the shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-yola-cikarma).
## What you need to know
- A shipment can be planned without deliveries; dispatch requires at least one delivery. A shipment can contain up to
100 documents; the same document appears only once on a shipment.
- On a shipment executed by our own fleet, no carrier is selected, and carriers' vehicles and drivers are not listed.
The carrier must be selected before selecting the carrier's vehicle or driver.
- Exceeding the capacity (weight, volume, pallets) is a warning in the details and does not block saving. If there is an
item with unknown dimensions, *"N belgede ölçüsü bilinmeyen kalem var — ağırlık eksik olabilir."* (N documents contain
items with unknown dimensions — the weight may be incomplete.) is displayed.
- A delivery that is on another shipment cannot be added: *"Şu belgeler başka bir seferde: …"* (The following documents
are on another shipment: …); a cancelled delivery cannot be added.
- If you want a load proposal for our own vehicles, [Yük Planlama](https://erpdocs.corexlogic.com/en/lojistik/islemler/yuk-planlama-ile-sefer-olusturma)
(Load Planning) distributes deliveries without a shipment across the vehicles.
## Related
- [Transportation documents screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri)
---
# Load planning
> A proposal that distributes deliveries without a shipment across the capacity of our own vehicles; a load is converted into a shipment with one click.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/yuk-planlama
Yük Planlama (Load Planning) prepares a **proposal** that distributes deliveries not yet assigned to a shipment across
the capacity (kg, m³, pallets) of the vehicles in our own fleet. The proposal does not write any documents; loads are
converted into transportation documents with **Sefer Oluştur** (Create Shipment).
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Yük Planlama (Logistics Management › Transportation › Load Planning)
- **Screen route:** `/erp/logistics/load-planning`
- **Required permission:** `erp-logistics-transports.create`

1. Filter: warehouse, ship date, route
2. Vehicles included in planning
3. Create Proposal — writes no document
4. Turns the load into a trip
5. Unplanned deliveries and reason
## Filter and vehicles
- **Depo** (Warehouse) (Bütün depolar (All warehouses)), **Sevk tarihi başlangıç** (Shipping date from) – **Sevk
tarihi bitiş** (Shipping date to), **Rota** (Route) (Bütün rotalar (All routes)).
- **Araçlar** (Vehicles): the vehicles eligible for planning — active, from our own fleet and with a capacity entered
(kg, m³ or pallets). The type and capacity of each vehicle are shown. **Hepsini seç** (Select all) · **Hiçbiri**
(None). If no vehicle is eligible, *"Planlamaya uygun araç yok — aktif, kendi filomuzdan ve kapasitesi girilmiş
(kg, m³ ya da palet) araç gerekir."* (No vehicle is eligible for planning — an active vehicle from our own fleet
with a capacity entered (kg, m³ or pallets) is required.) is displayed.
- **Öneri Oluştur** (Create Proposal) prepares the proposal.
Filter rejection messages: *"Bitiş tarihi başlangıçtan önce olamaz."* (The end date cannot be before the start
date.), *"En az bir araç seçin."* (Select at least one vehicle.)
## Proposal
- Summary line: *"N aday teslimat · N planlandı (N araç) · N planlanamadı"* (N candidate deliveries · N planned (N
vehicles) · N could not be planned). If the plan found within the time limit has not been proven optimal, *"Süre
sınırında bulunan iyi plan — en iyisi olduğu kanıtlanmadı; adayları daraltmak planı iyileştirebilir."* (A good plan
found within the time limit — not proven to be the best; narrowing the candidates may improve the plan.) is
displayed.
- **Load card per vehicle:** license plate and type, number of deliveries and route, **Planlanan çıkış** (Planned
departure) (can be changed), **Ağırlık** (Weight), **Hacim** (Volume), **Palet** (Pallets) fill bars (value /
capacity · percentage) and the delivery table (Teslimat (Delivery), Tarih (Date), Müşteri (Customer), Varış
(Destination), Rota (Route), Ağırlık (Weight), Hacim (Volume), Palet (Pallets)). An unpacked delivery is not
counted in pallet utilization; the card says so.
- **Sefer Oluştur** (Create Shipment) converts that load into a transportation document executed by our own fleet;
**Tümünü Seferlere Çevir** (Convert All to Shipments) converts all loads. The created shipments are listed with links
under the **Oluşturulan seferler** (Created shipments) heading; a load that could not be converted is listed with its
reason under **Seferleşemeyen yükler** (Loads that could not be converted to shipments).
- **Planlanamayan teslimatlar** (Deliveries that could not be planned): Teslimat (Delivery), Tarih (Date), Müşteri
(Customer), Ağırlık (Weight), Hacim (Volume) and **Sebep** (Reason) (e.g. *"Ağırlığı ya da hacmi bilinmiyor (ölçüsü
tanımsız ürün) — kapasitesi tanımlı araca konamaz."* (Weight or volume unknown (product without defined dimensions)
— cannot be placed on a vehicle with a defined capacity.)).
Weight and volume come from the dimensions on the product card; a delivery carrying a product without dimensions cannot
be placed on a vehicle with a defined capacity. Shipments to be executed by a carrier are not opened on this screen,
but with [Taşıma Belgesi Oluştur](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-belgesi-olusturma) (Create Transportation Document).
## Related
- [Create shipments with load planning](https://erpdocs.corexlogic.com/en/lojistik/islemler/yuk-planlama-ile-sefer-olusturma)
- [Transportation documents](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri)
---
# Create shipments with load planning
> Prepare a proposal that distributes deliveries without a shipment across the capacity of our own vehicles, and convert the loads into shipments.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/yuk-planlama-ile-sefer-olusturma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Yük Planlama (Logistics Management › Transportation › Load Planning)
- **Screen route:** `/erp/logistics/load-planning`
- **Required permission:** `erp-logistics-transports.create`
- **Prerequisites:**
- Our own fleet has an active vehicle with a capacity (kg, m³ or pallets) entered.
- There are deliveries not assigned to a shipment; weight or volume is defined on the product cards.
## Steps
1. Open the **Lojistik Yönetimi › Taşıma › Yük Planlama** (Logistics Management › Transportation › Load Planning) screen.
2. If necessary, narrow the candidates with **Depo** (Warehouse), **Sevk tarihi başlangıç** (Shipping date from) – **Sevk tarihi bitiş** (Shipping date to) and **Rota** (Route).
3. In the **Araçlar** (Vehicles) list, select the vehicles to include in planning (**Hepsini seç** (Select all) · **Hiçbiri** (None)).
4. Click **Öneri Oluştur** (Create Proposal).

1. Filter: warehouse, ship date, route
2. Vehicles included in planning
3. Create Proposal — writes no document
4. Turns the load into a trip
5. Unplanned deliveries and reason
5. On the load card, check the fill bars and the deliveries; if necessary, change the **Planlanan çıkış** (Planned departure).
6. To convert the load into a shipment, click **Sefer Oluştur** (Create Shipment) on the card (for all loads, **Tümünü Seferlere Çevir** (Convert All to Shipments)).
**Result:** Each load becomes a transportation document in **Planlandı** (Planned) status, executed by our own fleet, with the vehicle (or trailer) filled in; its note is "Yük planlama önerisinden" (From load planning proposal). The driver and arrival time are entered in the shipment details with **Düzenle** (Edit).
## What you need to know
- The proposal does not write any documents; leaving the screen changes nothing.
- A delivery whose weight or volume is unknown cannot be placed on a vehicle with a defined capacity and is listed with
its reason under **Planlanamayan teslimatlar** (Deliveries that could not be planned). Enter the dimensions on the
product card and create the proposal again.
- An unpacked delivery is not counted in pallet utilization.
- Planning is time-limited; if *"Süre sınırında bulunan iyi plan — en iyisi olduğu kanıtlanmadı…"* (A good plan found
within the time limit — not proven to be the best…) is displayed, narrow the candidates with the warehouse, date or
route filter.
- Shipments to be executed by a carrier are not opened from this screen, but with
[Taşıma Belgesi Oluştur](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-belgesi-olusturma) (Create Transportation Document).
## Related
- [Load planning screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/yuk-planlama)
---
# Carrier selection and tendering
> Select a carrier for a planned shipment — ranking by tariff and assignment; a tender that collects bids from carriers, and the decision.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasiyici-secimi-ve-ihale
The carrier for a planned shipment is selected in one of two ways:
1. **Rule-based ranking** — the **Taşıyıcı Seç** (Select Carrier) window in the shipment details ranks the active
carriers by their freight agreements; **Ata** (Assign) writes the carrier to the shipment.
2. **Tender** — bids are requested from carriers, the responses are entered, and **Karar Ver** (Decide) assigns the
shipment to the winner. The document number is **IHL-yyyy-nnnnnn**.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Taşıyıcı Seçimi ve İhale (Logistics Management › Transportation › Carrier Selection and Tendering)
- **Screen route:** `/erp/logistics/transport-tenders`
- **Required permission:** `erp-logistics-transport-tenders.view (görme) · .create (ihale açma) · .edit (cevap girme, iptal)`, `erp-logistics-transports.edit (karar verme ve taşıyıcı atama — seferi değiştirir)`, `erp-logistics-freight-agreements.view (sefer detayındaki Taşıyıcı Seç)`
## Select Carrier window (shipment details)

1. Ranking: cost or priority
2. Freight from the agreement
3. Assign — carrier is written to the trip
4. Tender with the selected carriers
It appears only on a shipment in **Planlandı** (Planned) status. The amount is calculated from the freight agreement
valid on the shipment's departure date, using the shipment's measurements; it is a suggestion, and the user makes the
assignment.
- **Sıralama** (Ranking): **Maliyet** (Cost) or **Öncelik** (Priority) (the priority on the carrier card; 1 is the
highest priority).
- Columns: **İhaleye davet** (Invite to tender) (check box), **Sıra** (Rank), **Taşıyıcı** (Carrier) (the contact's
e-mail), **Öncelik** (Priority), **Anlaşma** (Agreement), **Navlun** (Freight), **Not** (Note) (e.g. *"Eksik ölçü:
…"* (Missing measurement: …)) and **Ata** (Assign).
- **Ata** (Assign) writes the carrier to the shipment, and the shipment's freight is calculated (shown on the Navlun
(Freight) card). The carrier's vehicle and driver are then selected with **Düzenle** (Edit).
- **İhaleye Çıkar (N)** (Put Out to Tender (N)) opens the tender window with the selected carriers (up to 20).
- If there is no active carrier, *"Etkin taşıyıcı yok — Ana Veriler › Taşıyıcılar'da tanımlayın."* (There is no active
carrier — define one in Master Data › Carriers.) is displayed.
## Tender list

1. New tender
2. Response deadline
3. Quoted / invited
4. Awarded carrier
Columns: **İhale No** (Tender No.), **Sefer** (Shipment), **Cevap Son Tarihi** (Response Deadline), **Durum** (Status),
**Teklif / Davet** (Bids / Invitations), **Kazanan** (Winner). Filters: **Ara** (Search), **Durum** (Status). **İhale
Oluştur** (Create Tender) opens an empty tender window.
| Tender status | Meaning |
|---|---|
| **Açık** (Open) | Bids are being collected. If the response deadline has passed, **Son tarih geçti** (Deadline passed) appears next to it. |
| **Karar Verildi** (Decided) | The winner has been selected; the shipment has been assigned to the winner. |
| **İptal** (Cancelled) | The tender is closed; the shipment remains as it was. If the shipment is cancelled, its open tender is also cancelled. |
| Invitee status | Meaning |
|---|---|
| **Davet Edildi** (Invited) | A response is expected. |
| **Teklif Verdi** (Bid Submitted) | An amount has been entered; a decision can be made. |
| **Reddetti** (Declined) | The carrier did not submit a bid. |
| **Kazandı** (Won) · **Kaybetti** (Lost) | After the decision. |
## Put Out to Tender window

1. Trip — planned only
2. Response deadline — in the future
3. Invited carriers
4. Open Tender
- **Sefer** (Shipment) (required) — planned shipments only.
- **Cevap Son Tarihi** (Response Deadline) (required) — must be in the future; the default is tomorrow at 17:00.
- **Not** (Note) — a note sent to the carrier (loading time, special terms); up to 500 characters.
- **Davetliler** (Invitees) (required) — added with **Taşıyıcı ekle** (Add carrier); an optional e-mail for each
invitee.
- **E-posta** (E-mail) — if enabled, invitees with an e-mail address receive the shipment plan, cargo and destinations
(no prices are included). Sending is done from a queue; SMTP must be configured. If no invitee has an e-mail
address, the tender is opened without e-mail, and bids are taken by phone and entered.
- **İhaleyi Aç** (Open Tender) creates the tender and opens its details.
## Tender details

1. Invitee status
2. Comparison amount from the agreement
3. Enter Response — quote or decline
4. Award — trip goes to the winner
5. Cancel the tender
At the top: **Durum** (Status), **Sefer** (Shipment), **Cevap Son Tarihi** (Response Deadline), **Açan** (Opened By),
**Not** (Note), **Kapanış** (Closing), **İptal Nedeni** (Cancellation Reason). The **Davetliler** (Invitees) table:
**Taşıyıcı** (Carrier) (priority), **Durum** (Status), **Teklif** (Bid), **Tarife** (Tariff) (the agreement's amount
for the same shipment — for comparison), **E-posta** (E-mail) (Gönderildi (Sent) · Kuyrukta (Queued) · Gönderilemedi
(Could not be sent) · Gönderilmedi (Not sent) · —), **Cevap** (Response) (time and note), **Eylemler** (Actions).
- **Cevap Gir** (Enter Response) — enters the carrier's bid (**Teklif** (Bid) amount and currency) or declination
(**Reddetti** (Declined)); the decision is made separately.
- **Karar Ver** (Decide) — only for a carrier that has submitted a bid: *"İhale kapanır, öteki bekleyen teklifler
kaybeder."* (The tender is closed; the other pending bids lose.) The shipment proceeds with the winning carrier, and
its freight becomes the tender price; the shipment's own fleet resources are removed from the plan. If the freight is
recalculated from the agreement, it replaces the tender price. If the shipment is no longer planned, *"Sefer artık
planlı değil — karar verilemez."* (The shipment is no longer planned — no decision can be made.) is displayed.
- **İptal Et** (Cancel) (**İptal Nedeni** (Cancellation Reason) required) — *"İhale kapanır; sefer olduğu gibi kalır ve
yeni ihale açılabilir."* (The tender is closed; the shipment remains as it is, and a new tender can be opened.)
## Related
- [Select the carrier for a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme)
- [Open a carrier tender](https://erpdocs.corexlogic.com/en/lojistik/islemler/ihale-acma)
- [Freight agreements](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-anlasmalari)
---
# Select the carrier for a shipment
> Rank carriers for a planned shipment by freight agreement, assign the carrier and calculate the freight.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Taşıma Belgeleri › sefer detayı › Taşıyıcı Seç (Logistics Management › Transportation › Transportation Documents › shipment details › Select Carrier)
- **Screen route:** `/erp/logistics/transports/{id}`
- **Required permission:** `erp-logistics-transports.edit`, `erp-logistics-freight-agreements.view`
- **Prerequisites:**
- The shipment is in **Planlandı** (Planned) status.
- The carriers have a freight agreement valid on the shipment's departure date; for a per-km tariff, the distance is entered on the shipment.
## Steps
1. In the details of the planned shipment, click **Taşıyıcı Seç** (Select Carrier).

1. Status: Planned
2. Select Carrier — ranked by tariff
3. Dispatch
4. Edit — planned trips only
5. The trip's open tender
6. Load and capacity
2. Select the **Sıralama** (Ranking): **Maliyet** (Cost) (the freight calculated from the agreement) or **Öncelik** (Priority) (the priority on the carrier card).
3. Compare the **Navlun** (Freight), **Anlaşma** (Agreement) and **Not** (Note) columns. The amount of a carrier marked *Eksik ölçü* (Missing measurement) does not include the basis whose quantity is unknown.

1. Ranking: cost or priority
2. Freight from the agreement
3. Assign — carrier is written to the trip
4. Tender with the selected carriers
4. On the row of the carrier you choose, click **Ata** (Assign).
5. For the carrier's vehicle and driver, click **Düzenle** (Edit), select the **Araç** (Vehicle) and **Sürücü** (Driver), and click **Kaydet** (Save).
**Result:** The shipment proceeds with the selected carrier; its freight appears on the Navlun (Freight) card. If the plan changes later (distance, deliveries, departure date), update the freight with **Yeniden Hesapla** (Recalculate).
## What you need to know
- The ranking is a suggestion; the user makes the assignment. If you want to collect bids, select the carriers with
**İhaleye davet** (Invite to tender) and click **İhaleye Çıkar** (Put Out to Tender): [Open a carrier tender](https://erpdocs.corexlogic.com/en/lojistik/islemler/ihale-acma).
- Carrier selection is possible only on a planned shipment.
- To calculate the freight manually, use **Navlunu Hesapla** (Calculate Freight) / **Yeniden Hesapla** (Recalculate)
on the Navlun (Freight) card. If there is no valid agreement: *"Taşıyıcının seferin çıkış gününde geçerli navlun
anlaşması yok."* (The carrier has no freight agreement valid on the shipment's departure date.)
- Once the freight has been included in a settlement, it is not recalculated.
## Related
- [Carrier selection and tendering screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasiyici-secimi-ve-ihale)
- [Create a freight agreement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-anlasmasi-olusturma)
---
# Freight settlements
> The freight of a carrier's completed shipments in a single document — creation, VAT, cancellation; the carrier's invoice is matched against it.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-hesaplasmalari
A freight settlement collects the calculated freight of a carrier's **completed** shipments in a single document. The
carrier's invoice is linked to this document in incoming invoices. The document number is **NHS-yyyy-nnnnnn**. This
page describes the screens from an operational point of view; the accounting entry and invoice matching are the
responsibility of Finance.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Navlun Hesaplaşmaları · Navlun Hesaplaşması Oluştur (Logistics Management › Transportation › Freight Settlements · Create Freight Settlement)
- **Screen route:** `/erp/logistics/freight-settlements`
- **Required permission:** `erp-logistics-freight-settlements.view (görme) · .create (oluşturma, iptal)`
## List
Columns: **Hesaplaşma No** (Settlement No.), **Tarih** (Date), **Taşıyıcı** (Carrier), **Sefer** (Shipments) (number
of shipments), **Durum** (Status), **Genel Toplam** (Grand Total). Filters: **Ara** (Search) (settlement no., carrier
or shipment), **Durum** (Status), **Başlangıç** (From) – **Bitiş** (To). The row menu has **Navlun Hesaplaşmasını
Aç** (Open Freight Settlement).
| Status | Meaning |
|---|---|
| **Kaydedildi** (Saved) | The document is valid; the freight of its shipments is frozen (not recalculated). If it is linked to an invoice, **Faturaya bağlı** (Linked to invoice) appears next to it. |
| **İptal Edildi** (Cancelled) | The shipments are released; their freight can be recalculated and settled again. |
## Create a freight settlement

1. Carrier
2. Currency — one per document
3. Settlement date
4. Completed trip with calculated freight
5. Save Settlement
- When the **Taşıyıcı** (Carrier) (required) is selected, the **Seferler** (Shipments) table lists the carrier's
completed shipments that have not been settled: **Sefer** (Shipment), **Çıkış** (Departure), **Varış** (Arrival),
**Anlaşma** (Agreement), **Navlun (KDV hariç)** (Freight (excl. VAT)) and the calculation time. **Tümünü Seç**
(Select All) / **Seçimi Kaldır** (Clear Selection).
- Below a shipment that cannot be selected, the reason is shown: *"Navlun hesaplanmadı — sefer detayında
hesaplayın."* (Freight has not been calculated — calculate it in the shipment details.) or *"Navlun … — hesaplaşma
…; para birimleri toplanmaz."* (Freight … — settlement …; currencies are not added together.)
- **Para Birimi** (Currency) (required) — a document carries a single currency. **Hesaplaşma Tarihi** (Settlement
Date) (required), **Not** (Note).
- The bottom bar shows the subtotal of the selection; VAT is calculated on the server with the default tax rate.
- **Hesaplaşmayı Kaydet** (Save Settlement) posts the document and opens its details.
## Details

1. Status
2. Total incl. VAT
3. Cancel — if not linked to an invoice
**Durum** (Status), **Taşıyıcı** (Carrier) (tax ID), **Hesaplaşma Tarihi** (Settlement Date), **Hazırlayan**
(Prepared By), **Tutar (KDV hariç)** (Amount (excl. VAT)), **KDV** (VAT) (rate code and percentage), **Genel Toplam**
(Grand Total), **Not** (Note), **İptal** (Cancellation); the **Seferler** (Shipments) table (Sefer (Shipment), Çıkış
Günü (Departure Date), Anlaşma (Agreement), Navlun (Freight), KDV (VAT)).
**İptal Et** (Cancel) (**İptal Nedeni** (Cancellation Reason) required) appears only on a saved document that is not
linked to an invoice: *"Seferler serbest kalır; navlunları yeniden hesaplanabilir ve yeniden hesaplaşılabilir."* (The
shipments are released; their freight can be recalculated and settled again.)
## Rejection messages
| Message | Meaning | Cause |
|---|---|---|
| *"Hesaplaşılacak en az bir sefer seçin."* | Select at least one shipment to settle. | Nothing is selected. |
| *"TSM-… tamamlanmadı — yalnız tamamlanmış sefer hesaplaşır."* | TSM-… is not completed — only completed shipments can be settled. | The shipment is in transit or planned. |
| *"TSM-… başka bir hesaplaşmada."* | TSM-… is in another settlement. | The shipment has already been settled. |
| *"TSM-… bu taşıyıcının seferi değil."* | TSM-… is not a shipment of this carrier. | A shipment of another carrier. |
| *"Seferin navlunu NHS-… hesaplaşmasında — önce hesaplaşmayı iptal edin."* | The shipment's freight is in settlement NHS-… — cancel the settlement first. | An attempt was made to recalculate the freight of a settled shipment. |
| *"'NHS-…' faturalanmış (gelen e-Faturaya bağlı ya da fatura referansı var) — iptal edilemez: …"* | 'NHS-…' has been invoiced (linked to an incoming e-Invoice or has an invoice reference) — it cannot be cancelled: … | An attempt was made to cancel a document linked to an invoice. |
## Related
- [Create a freight settlement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-hesaplasmasi-olusturma)
- [Transportation documents](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri)
- [Logistics analytics](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/analitik) — Navlun Maliyeti (Freight Cost)
---
# Open a carrier tender
> Request bids from carriers for a planned shipment, enter the responses and decide on the winner.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/ihale-acma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Taşıyıcı Seçimi ve İhale (Logistics Management › Transportation › Carrier Selection and Tendering)
- **Screen route:** `/erp/logistics/transport-tenders`
- **Required permission:** `erp-logistics-transport-tenders.create`, `erp-logistics-transport-tenders.edit`, `erp-logistics-transports.edit`
- **Prerequisites:**
- The shipment is in **Planlandı** (Planned) status; the shipment has no other open tender.
- The companies to be invited are [defined as carriers](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-tanimlama).
## Steps
1. On the **Lojistik Yönetimi › Taşıma › Taşıyıcı Seçimi ve İhale** (Logistics Management › Transportation › Carrier Selection and Tendering) screen, click **İhale Oluştur** (Create Tender) (it can also be opened with **İhaleye Çıkar** (Put Out to Tender) from the **Taşıyıcı Seç** (Select Carrier) window in the shipment details).

1. Trip — planned only
2. Response deadline — in the future
3. Invited carriers
4. Open Tender
2. Select the planned shipment in the **Sefer** (Shipment) field.
3. Enter the **Cevap Son Tarihi** (Response Deadline) (it must be in the future; the default is tomorrow at 17:00) and write the **Not** (Note) for the carrier.
4. Under **Davetliler** (Invitees), add the carriers with **Taşıyıcı ekle** (Add carrier); if they will be invited by e-mail, enter the e-mail address.
5. Decide on the **E-posta** (E-mail) option: if enabled, invitees with an e-mail address receive the shipment plan, cargo and destinations (no prices are included). Turn it off if you will take bids by phone.
6. Click **İhaleyi Aç** (Open Tender).
7. When the carrier's response arrives, click **Cevap Gir** (Enter Response) on the invitee row; enter the **Teklif** (Bid) amount and currency (or select **Reddetti** (Declined)) and click **Kaydet** (Save).

1. Invitee status
2. Comparison amount from the agreement
3. Enter Response — quote or decline
4. Award — trip goes to the winner
5. Cancel the tender
8. On the row of the winning carrier, click **Karar Ver** (Decide) and confirm with **Karar Ver** (Decide) in the window.
**Result:** The tender is closed, and the other pending bids become **Kaybetti** (Lost). The executor of the shipment is the winning carrier; its own fleet resources are removed from the plan, and its freight is the tender price.
## What you need to know
- Up to 20 carriers can be invited to a tender; the same carrier can be invited only once.
- E-mails are sent from a queue, and SMTP must be configured in the installation. If no invitee has an e-mail address,
the tender is opened without e-mail. The row's **E-posta** (E-mail) column shows the status (Gönderildi (Sent) ·
Kuyrukta (Queued) · Gönderilemedi (Could not be sent) · Gönderilmedi (Not sent)).
- For an open tender whose response deadline has passed, **Son tarih geçti** (Deadline passed) appears next to its
status.
- A decision can be made only for a carrier that has submitted a bid, and the shipment must be planned (*"Sefer artık
planlı değil — karar verilemez."* (The shipment is no longer planned — no decision can be made.)). Because the
decision changes the shipment, the `erp-logistics-transports.edit` permission is required.
- If the freight is later recalculated from the agreement, it replaces the tender price.
- To abandon the tender, use **İptal Et** (Cancel) (**İptal Nedeni** (Cancellation Reason) required); the shipment
remains as it is.
## Related
- [Carrier selection and tendering screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasiyici-secimi-ve-ihale)
- [Select the carrier for a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme)
---
# Transport orders
> The customer order of a company that sells transportation as a service — the charge comes from the customer's freight tariff, and the order is invoiced when completed.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/nakliye-siparisleri
A transport order is a transportation service **sold** to a customer: loading and delivery location, cargo and
dimensions. The charge is not entered manually; on approval, it is calculated from the customer's freight agreement of
type **Müşteri (satış)** (Customer (sales)) and fixed. A completed order is invoiced with the service item. The
document number is **NKS-yyyy-nnnnnn**.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Nakliye Siparişleri · Nakliye Siparişi Oluştur (Logistics Management › Transportation › Transport Orders · Create Transport Order)
- **Screen route:** `/erp/logistics/forwarding-orders`
- **Required permission:** `erp-logistics-forwarding-orders.view (görme) · .create (oluşturma) · .edit (düzenleme, onay, sefere bağlama, tamamlama, iptal)`, `erp-invoicing-invoices.create (Fatura Oluştur)`
## Statuses and actions
| Status | Meaning | Actions |
|---|---|---|
| **Taslak** (Draft) | Can be edited; the charge is previewed. | **Düzenle** (Edit) · **Onayla** (Approve) (if the preview has no blocker) · **İptal Et** (Cancel) |
| **Onaylandı** (Approved) | The charge is fixed. | **Sefere Bağla** (Link to Shipment) / **Seferi Değiştir** (Change Shipment) · **Tamamla** (Complete) · **İptal Et** (Cancel) |
| **Tamamlandı** (Completed) | The transportation has been performed. | **Fatura Oluştur** (Create Invoice) (if not invoiced) · **İptal Et** (Cancel) (if not invoiced) |
| **İptal Edildi** (Cancelled) | Cannot be undone. | — |
For an invoiced order, **Faturalandı** (Invoiced) appears next to its status; an invoiced order cannot be cancelled.
## List
Columns: **Sipariş No** (Order No.), **Yükleme** (Loading), **Müşteri** (Customer), **Güzergâh** (Route), **Sefer**
(Shipment), **Durum** (Status), **Genel Toplam** (Grand Total). Filters: **Ara** (Search), **Durum** (Status),
**Yükleme (başlangıç)** (Loading (from)) – **Yükleme (bitiş)** (Loading (to)).
## Create / edit a transport order

1. Customer — search first
2. Pickup and delivery place
3. Cargo and measures — tariff basis
4. Service item for the invoice
5. Save — draft
| Section | Fields |
|---|---|
| **Müşteri ve güzergâh** (Customer and route) | **Müşteri ara** (Search customer) (code or company name) and **Müşteri** (Customer) (required); **Yükleme yeri** (Loading location) and **Teslim yeri** (Delivery location) (required); **Yükleme günü** (Loading date) (required); **İstenen teslim** (Requested delivery). |
| **Yük** (Cargo) | **Yük tanımı** (Cargo description) (required); **Koli** (Cartons), **Palet** (Pallets), **Ağırlık (kg)** (Weight (kg)), **Hacim (m³)** (Volume (m³)), **Mesafe (km)** (Distance (km)). An empty dimension means "unknown" — if the tariff has that basis, the order cannot be approved; it is not counted as zero. |
| **Faturalama** (Invoicing) | **Hizmet ürünü ara** (Search service item) and **Hizmet ürünü** (Service item) (required — a sellable, non-stock card; the invoice line); **Vergi oranı** (Tax rate) (Varsayılan (Default) or the selected rate); **Not** (Note). |
**Kaydet** (Save) saves the draft. Only a draft can be edited.
## Details

1. Confirm — charge is fixed
2. Edit — draft only
3. Preview from the customer tariff
The details show **Durum** (Status), **Müşteri** (Customer), **Yükleme günü** (Loading date), **İstenen teslim**
(Requested delivery), **Yükleme yeri** (Loading location), **Teslim yeri** (Delivery location), **Sefer** (Shipment),
**Tamamlanma** (Completion), **Yük** (Cargo), **Ölçüler** (Dimensions), **Hizmet ürünü** (Service item), **Vergi**
(Tax), **Not** (Note), **Hazırlayan** (Prepared By). On a draft, the **Ücret** (Charge) section shows *"Önizleme —
onayda sabitlenir · tarife …"* (Preview — fixed on approval · tariff …) and the basis lines (Dayanak (Basis), Miktar
(Quantity), Birim ücret (Unit rate), En az (Minimum), Tutar (Amount)); if the preview has a blocker, **Onayla**
(Approve) is disabled and hovering over it shows the reason.

1. Status: Confirmed
2. Link the executing trip
3. Complete — becomes billable
4. Charge fixed at confirmation
- **Sefere Bağla** (Link to Shipment) — select the shipment (our own fleet or a carrier) that performs the
transportation; the link does not change the charge. **Bağı Kaldır** (Remove Link) removes the link.
- **Tamamla** (Complete) — enter the **Tamamlanma günü** (Completion date): *"Taşıma yapıldı; sipariş faturalanabilir
olur."* (The transportation has been performed; the order becomes invoiceable.)
- **İptal Et** (Cancel) — **Gerekçe** (Reason) is required: *"İptal geri alınmaz. Faturalanmış sipariş iptal edilmez —
önce faturayı kaldırın."* (Cancellation cannot be undone. An invoiced order cannot be cancelled — remove the invoice
first.)
- **Fatura Oluştur** (Create Invoice) — enter the **Fatura tarihi** (Invoice date), then **Taslak Oluştur** (Create
Draft): *"Hizmet ürünü × 1, onayda sabitlenen ücretle giden fatura taslağı. Kesinleşme ve gönderim faturada."* (A
draft outgoing invoice with service item × 1 at the charge fixed on approval. Finalization and sending are done on
the invoice.)
## Related
- [Create a transport order](https://erpdocs.corexlogic.com/en/lojistik/islemler/nakliye-siparisi-olusturma)
- [Freight agreements](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-anlasmalari)
- [Invoicing](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama)
---
# Dispatch a shipment
> Record the departure of a planned shipment — goods issue of the deliveries, vehicle/driver or carrier conditions.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-yola-cikarma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Taşıma Belgeleri › sefer detayı › Yola Çıkar (Logistics Management › Transportation › Transportation Documents › shipment details › Dispatch)
- **Screen route:** `/erp/logistics/transports/{id}`
- **Required permission:** `erp-logistics-transports.edit`
- **Prerequisites:**
- The shipment is in **Planlandı** (Planned) status and has at least one delivery.
- The **goods issue has been posted** for all deliveries on the shipment ([post the goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme)).
- For our own fleet, a vehicle and a driver are selected; for a carrier shipment, the carrier is selected.
## Steps
1. Open the shipment details. If loading has been done, first record the **Yüklendi** (Loaded) event with **Olay Kaydet** (Record Event) (optional).
2. Click **Yola Çıkar** (Dispatch).

1. Departure time — now if empty
2. Dispatch
3. Check the **Yola çıkış** (Departure) time (the default is now) and click **Yola Çıkar** (Dispatch) in the window.

1. Status: In transit
2. Complete — arrival is written, trip closes
3. Record Event — arrival, delivery, delay, problem
4. Event timeline
**Result:** The shipment becomes **Yolda** (In Transit); the plan and the deliveries are frozen. In Teslimat İzleme (Delivery Monitor), the deliveries move to the **Yolda** (In transit) stage. Next step: [record a shipment event](https://erpdocs.corexlogic.com/en/lojistik/islemler/sefer-olayi-kaydetme).
## What you need to know
Server rejection messages:
| Message | Meaning | What to do |
|---|---|---|
| *"Mal çıkışı kaydedilmemiş ya da iptal edilmiş teslimatla sefer yola çıkamaz: SV-…"* | A shipment cannot be dispatched with a delivery whose goods issue has not been posted or that has been cancelled: SV-… | Post the goods issue for the deliveries, or remove the cancelled one from the shipment. |
| *"Belgesiz sefer yola çıkamaz — en az bir teslimat atayın."* | A shipment without documents cannot be dispatched — assign at least one delivery. | Add a delivery with **Düzenle** (Edit). |
| *"Kendi filomuzla yapılan sefer araç ve sürücü olmadan yola çıkamaz."* | A shipment executed by our own fleet cannot be dispatched without a vehicle and a driver. | Select a vehicle and a driver with **Düzenle** (Edit). |
| *"Taşıyıcıya verilen sefer taşıyıcı seçilmeden yola çıkamaz."* | A shipment given to a carrier cannot be dispatched without selecting the carrier. | [Select the carrier](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme). |
| *"Yalnız planlanan sefer yola çıkar."* | Only a planned shipment can be dispatched. | The shipment is already in transit, completed or cancelled. |
A dispatched shipment cannot be cancelled; it is completed.
## Related
- [Transportation documents screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri)
- [Complete a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-tamamlama)
---
# Vehicles and drivers
> Our own vehicles and carriers' vehicles, drivers — capacity, ownership, documents with expiry dates and their alerts.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/araclar-ve-suruculer
The fleet screens hold the vehicles and drivers used on shipments: our own vehicles (owned or leased) and carriers'
vehicles; our own drivers and carriers' drivers. The list and creation are in the same place — there is no separate
"Create" screen. Records are not deleted; to take one out of use, set it to inactive. Past documents are not
affected.
The address of the vehicle screen is `/erp/logistics/fleet/vehicles`, and that of the driver screen is
`/erp/logistics/fleet/drivers`.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Filo › Araçlar · Sürücüler (Logistics Management › Fleet › Vehicles · Drivers)
- **Screen route:** `/erp/logistics/fleet/vehicles`
- **Required permission:** `erp-logistics-fleet.view (görme) · .create (ekleme) · .edit (düzenleme)`, `erp-logistics-driver-identity.view (sürücünün TC kimlik ve ehliyet numarasını görme)`
## Vehicles

1. New vehicle
2. Filter by document expiry
3. Next document expiry
4. Capacity — kg, m³, pallets
Columns: **Plaka** (License Plate), **Tip** (Type), **Marka / Model** (Make / Model), **Sahiplik** (Ownership) (the
carrier's name for a carrier's vehicle), **Kapasite** (Capacity) (kg · m³ · pallets), **Sıradaki Belge Bitişi** (Next
Document Expiry), **Durum** (Status) (Aktif · Pasif (Active · Inactive)). Filters: **Ara** (Search), **Tip** (Type),
**Sahiplik** (Ownership), **Belge Durumu** (Document Status) (Dikkat gerektiren (Needs attention) · Süresi dolmuş
(Expired) · Süresi yaklaşan (30 gün) (Expiring soon (30 days)) · Geçerli (Valid)) and **Pasifleri göster** (Show
inactive). **Araç Ekle** (Add Vehicle) opens the new vehicle window; the row menu **İşlemler › Düzenle** (Actions ›
Edit) opens a saved vehicle.
In the next document expiry column, the document status is shown in color: **Geçerli** (Valid), **Süresi
yaklaşıyor** (Expiring soon), **Süresi doldu** (Expired); a vehicle without documents shows **Belge yok** (No
documents).

1. Tabs: General, Capacity, Documents
2. Plate — identity
3. Vehicle type
4. Ownership — owned, leased, carrier
5. Create
The vehicle window has three tabs:
| Tab | Fields |
|---|---|
| **Genel** (General) | **Plaka** (License Plate) (required; it is the identifier and follows the same rule as the plate on the e-Delivery Note — e.g. 34 ABC 123; stored in upper case without spaces), **Araç Tipi** (Vehicle Type) (Çekici (Tractor unit) · Kamyon (Truck) · Kamyonet / Panelvan (Light truck / Panel van) · Dorse (Trailer) · Binek (Passenger car) · Diğer (Other)), **Marka / Model** (Make / Model), **Model Yılı** (Model Year), **Sahiplik** (Ownership) (Öz mal (Owned) · Kiralık (Leased) · Taşıyıcının (Carrier's)), **Taşıyıcı** (Carrier) (required if Taşıyıcının (Carrier's)), **Aktif** (Active), **Not** (Note). |
| **Kapasite** (Capacity) | **Taşıma Kapasitesi (kg)** (Load Capacity (kg)), **Hacim (m³)** (Volume (m³)), **Palet Kapasitesi** (Pallet Capacity). Empty = unknown, not zero. A tractor unit's capacity is on its trailer; leave it empty on the tractor unit. |
| **Belgeler** (Documents) | Document lines: type (**Muayene** (Inspection), **Trafik Sigortası** (Compulsory Traffic Insurance), **Kasko** (Comprehensive Insurance), **Takograf** (Tachograph), **Diğer** (Other)), number, **Geçerlilik Bitişi** (Valid Until) (required), note. |
Only active vehicles in our own fleet with a capacity entered are included in load planning.
## Drivers

1. New driver
2. License classes
3. Own driver or carrier driver
4. License, SRC, psychotechnic expiry
Columns: **Ad Soyad** (Full Name), **TC Kimlik No** (National ID No.) (masked; visible with the identity permission),
**Ehliyet** (Driver's License) (classes), **Taşıyıcı** (Carrier) (empty for our own driver), **Sıradaki Belge
Bitişi** (Next Document Expiry), **Durum** (Status). Filters: **Ara** (Search), **Belge Durumu** (Document Status),
**Pasifleri göster** (Show inactive).

1. First and last name — required
2. National ID — for the e-despatch driver
3. License classes
4. Own driver or carrier
| Tab | Fields |
|---|---|
| **Genel** (General) | **Ad** (First Name), **Soyad** (Last Name) (required), **TC Kimlik No** (National ID No.) (for the driver on the e-Delivery Note; personal data), **Telefon** (Phone), **Ehliyet Sınıfları** (License Classes) (e.g. C, CE), **Ehliyet No** (License No.), **Taşıyıcı** (Carrier) (**Kendi sürücümüz** (Our own driver) or a carrier), **Aktif** (Active), **Not** (Note). |
| **Belgeler** (Documents) | **Ehliyet** (Driver's License), **SRC Belgesi** (SRC Certificate), **Psikoteknik** (Psychotechnical Assessment), **Diğer** (Other) — number and expiry date. |
A user without the identity permission cannot see the national ID and driver's license numbers; the window shows
*"Kayıtlı — görmek için kimlik izni gerekir"* (Recorded — the identity permission is required to view it) or *"Kimlik
izni gerekir"* (Identity permission required).
Rule on shipments: on a shipment executed by our own fleet, a carrier's vehicle and driver cannot be selected; on a
carrier shipment, only that carrier's vehicles and drivers can be selected; inactive vehicles and drivers cannot be
selected.
## Related
- [Define a vehicle](https://erpdocs.corexlogic.com/en/lojistik/islemler/arac-tanimlama)
- [Define a driver](https://erpdocs.corexlogic.com/en/lojistik/islemler/surucu-tanimlama)
- [Fleet operations](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/filo-isletimi)
---
# Record a shipment event
> Record loading, arrival, delivery, delay and issue events on a shipment; the delivery event carries the recipient's name.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/sefer-olayi-kaydetme
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Taşıma Belgeleri › sefer detayı › Olay Kaydet (Logistics Management › Transportation › Transportation Documents › shipment details › Record Event)
- **Screen route:** `/erp/logistics/transports/{id}`
- **Required permission:** `erp-logistics-transport-events.create`
- **Prerequisites:**
- The shipment is in **Planlandı** (Planned) (Yüklendi (Loaded) only) or **Yolda** (In Transit) status.
An event does not change the plan; information from the driver and the field is recorded with its own permission
(`erp-logistics-transport-events.create`). The departure and completion events are written by the shipment's own steps
(**Yola Çıkar** (Dispatch), **Tamamla** (Complete)).
## Steps
1. In the shipment details, click **Olay Kaydet** (Record Event) on the **Olaylar** (Events) card.
2. Select the **Olay** (Event): **Yüklendi** (Loaded), **Vardı** (Arrived), **Teslim edildi** (Delivered), **Gecikme bildirildi** (Delay reported) or **Sorun bildirildi** (Issue reported) (on a planned shipment, only Yüklendi (Loaded)).
3. Select the **Durak** (Stop). It is required for arrival and delivery; for other events, **Seferin geneli** (Entire shipment) can be selected.
4. For a delivery event, enter the name of the **Teslim Alan** (Recipient).
5. Enter the **Zaman** (Time) (the default is now) and, if necessary, the **Konum** (Location) and **Not** (Note), then click **Kaydet** (Save).

1. Event
2. Stop (delivery)
3. Received by — required on delivery
4. Time — now if empty
**Result:** The event is written to the shipment's timeline. The date and recipient of the delivery event appear in the delivery details and are suggested in the [proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/alindi-teyidi-kaydetme) window.
## What you need to know
- An event cannot be changed; an incorrect record is corrected with a new event.
- A stop is delivered only once; a delivered stop does not appear in the delivery list (*"SV-… zaten teslim edildi."*
(SV-… has already been delivered.)).
- An event cannot be before the departure; Konum (Location) can have up to 256 characters, and Not (Note) up to 512.
- Rejection messages of the window: *"Durağı (teslimatı) seçin."* (Select the stop (delivery).), *"Teslim alanın adını
yazın."* (Enter the recipient's name.)
- **Gecikme bildirildi** (Delay reported) and **Sorun bildirildi** (Issue reported) do not change the shipment's
status; the shipment remains **Yolda** (In Transit). The server calculates the **Gecikmede** (Delayed) badge in the
header with its own clock.
## Related
- [Transportation documents screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri)
- [Complete a shipment](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-tamamlama)
---
# Fleet operations
> Odometer readings, fuel and expense records of our own vehicles — the source of the operating cost per vehicle.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/filo-isletimi
Filo İşletimi (Fleet Operations) keeps the odometer readings, fuel purchases and expenses of our own vehicles (not
the carrier's vehicles). The amount is not an accounting entry; it is the operating cost of the vehicle and the
source of the [Araç Maliyeti](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/analitik) (Vehicle Cost) report.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Filo › Filo İşletimi (Logistics Management › Fleet › Fleet Operations)
- **Screen route:** `/erp/logistics/fleet/operations`
- **Required permission:** `erp-logistics-fleet-costs.view (görme) · .create (kayıt ekleme, silme)`

1. Odometer, fuel or expense
2. Liters and kilometers
3. Linked trip and driver
## List
Columns: **Tarih** (Date), **Araç** (Vehicle), **Tür** (Type), **Ölçü** (Measure) (liters · kilometers or expense
type), **Tutar** (Amount), **Sefer · Sürücü** (Shipment · Driver), **Not** (Note). Filters: **Araç** (Vehicle),
**Tür** (Type), **Başlangıç** (From) – **Bitiş** (To). The row menu has **Sil** (Delete): a record cannot be changed;
an incorrect record is deleted and entered again.
## Vehicle Record window

1. Vehicle — own fleet
2. Kind: Odometer, Fuel, Expense
3. Liters — required for fuel
4. Trip — optional
| Field | Odometer | Fuel | Expense |
|---|---|---|---|
| **Araç** (Vehicle) | required | required | required |
| **Tür** (Type) | Kilometre (Odometer) | Yakıt (Fuel) | Masraf (Expense) |
| **Tarih** (Date) | required | required | required |
| **Masraf türü** (Expense type) | — | — | required |
| **Kilometre** (Kilometers) | required | optional | — |
| **Litre** (Liters) | — | required | — |
| **Tutar** (Amount) (with currency) | — | optional | required |
| **Sürücü** (Driver) · **Sefer** (Shipment) · **Not** (Note) | optional | optional | optional |
Expense types: **Bakım ve onarım** (Maintenance and repair), **Lastik** (Tires), **Sigorta ve kasko** (Insurance and
comprehensive coverage), **Muayene** (Inspection), **Otoyol ve köprü** (Motorway and bridge tolls), **Otopark**
(Parking), **Trafik cezası** (Traffic fine), **Diğer** (Other) (for an "Diğer" expense, a description in **Not**
(Note) is required). When a vehicle is selected, the last reading appears below it (*"Son okuma: … km"* (Last
reading: … km)); the odometer cannot go backwards — this is checked on the server. If **Sefer** (Shipment) is empty,
*Seferden bağımsız* (Independent of a shipment) is shown; if **Sürücü** (Driver) is empty, *Belirtilmedi* (Not
specified).
Rejection messages of the form:
| Message | Meaning |
|---|---|
| *"Aracı seçin."* | Select the vehicle. |
| *"Tarihi seçin."* | Select the date. |
| *"Kilometre okumasını yazın."* | Enter the odometer reading. |
| *"Yakıt litresini yazın."* | Enter the fuel liters. |
| *"Masraf tutarını yazın."* | Enter the expense amount. |
| *"Masraf türünü seçin."* | Select the expense type. |
| *"Para birimini üç harfle yazın (TRY, EUR…)."* | Enter the currency as three letters (TRY, EUR…). |
## Related
- [Add a fleet record](https://erpdocs.corexlogic.com/en/lojistik/islemler/filo-kaydi-ekleme)
- [Logistics analytics](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/analitik)
---
# Complete a shipment
> Record the arrival of a shipment in transit and close the shipment; a carrier shipment becomes ready for freight settlement.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-tamamlama
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Taşıma Belgeleri › sefer detayı › Tamamla (Logistics Management › Transportation › Transportation Documents › shipment details › Complete)
- **Screen route:** `/erp/logistics/transports/{id}`
- **Required permission:** `erp-logistics-transports.edit`
- **Prerequisites:**
- The shipment is in **Yolda** (In Transit) status.
## Steps
1. In the shipment details, check that the delivery events of the stops have been recorded (the **Teslim** (Delivery) column).
2. Click **Tamamla** (Complete).
3. Check the **Varış** (Arrival) time (the default is now) and click **Tamamla** (Complete) in the window.

1. Status: Completed
2. Load compared with capacity
3. Delivery and receiver per stop
4. Settled freight is not recalculated
**Result:** The shipment is in **Tamamlandı** (Completed) status; event recording is closed. If the freight of a carrier shipment has been calculated, the shipment can be included in a [freight settlement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-hesaplasmasi-olusturma).
## What you need to know
- Only a shipment in transit can be completed (*"Yalnız yoldaki sefer tamamlanır."* (Only a shipment in transit can be
completed.)); the arrival cannot be before the departure.
- Completing the shipment does not change the deliveries; the proof of delivery is recorded separately from the
delivery details.
- The freight card also shows **Yeniden Hesapla** (Recalculate) on a completed shipment (until it is included in a
settlement).
## Related
- [Transportation documents screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri)
- [Record proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/alindi-teyidi-kaydetme)
---
# Carriers
> Companies from which we purchase transportation — the carrier profile of a supplier card: operating license, priority, vehicles and drivers.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasiyicilar
A carrier is a company from which we purchase transportation. It is not a separate card but the logistics
profile of a **supplier card**: operating license, priority in carrier selection, vehicles and drivers. The card
itself (company name, tax ID, address, contacts) is maintained on the Business Partners screen; the company name and
tax ID are refreshed from the card.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Ana Veriler › Taşıyıcılar (Logistics Management › Master Data › Carriers)
- **Screen route:** `/erp/logistics/carriers`
- **Required permission:** `erp-logistics-carriers.view (görme) · .create (ekleme) · .edit (düzenleme)`

1. Carrier profile for a supplier card
2. Authorization certificate and expiry
3. Priority in carrier selection
4. Carrier's vehicle and driver count
## List
Columns: **Kod** (Code), **Unvan** (Company Name) (tax ID), **Yetki Belgesi** (Operating License) (status, type,
number, expiry), **Öncelik** (Priority), **Araç / Sürücü** (Vehicle / Driver) (counts), **Durum** (Status)
(**Aktif · Pasif** (Active · Inactive)). Filters: **Ara** (Search), **Pasifleri göster** (Show inactive).
There is no delete — to take a carrier out of use, set it to inactive.
## Carrier window

1. Supplier card — required
2. Authorization type and number
3. Priority — 1 is highest
4. Create
| Field | Description |
|---|---|
| **Tedarikçi Kartı** (Supplier Card) (required) | An active supplier from the **Tedarikçi Seç** (Select Supplier) window. A card that is already a carrier appears with the warning *"Zaten taşıyıcı olarak kayıtlı"* (Already registered as a carrier). Once the link is created, it cannot be changed. If there is no card, first create it as a supplier in Business Partners. |
| **Yetki Belgesi** (Operating License) | Type (up to 8 letters/digits, e.g. K1, L2, R1) and number. |
| **Geçerlilik Bitişi** (Valid Until) | The expiry of the operating license; the list shows its status. |
| **Öncelik** (Priority) | 1–99; 1 is the highest priority, empty = last in the ranking. The basis of the **Öncelik** (Priority) ranking in carrier selection. |
| **Aktif** (Active) · **Not** (Note) | An inactive carrier cannot be selected on a shipment. |
**Oluştur** (Create) (**Kaydet** (Save) when editing). The carrier's tender e-mails go to the contact on the card.
## Related
- [Define a carrier](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-tanimlama)
- [Freight agreements](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-anlasmalari)
- [Vehicles and drivers](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/araclar-ve-suruculer)
---
# Record proof of delivery
> Record the delivery date, the recipient and the accepted quantity per item from the signed delivery note on the delivery; a reason for short acceptance.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/alindi-teyidi-kaydetme
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimatlar › teslimat detayı › Alındı Teyidi Kaydet (Logistics Management › Outbound Delivery › Deliveries › delivery details › Record Proof of Delivery)
- **Screen route:** `/erp/sales/shipments/{id}`
- **Required permission:** `erp-logistics-proof-of-delivery.create`
- **Prerequisites:**
- The delivery is in **Mal Çıkışı Kaydedildi** (Goods Issue Posted) status.
- The delivery date is today or earlier, and after the goods issue date.
## Steps
1. Open the delivery details; on the **Alındı Teyidi** (Proof of Delivery) card, click **Alındı Teyidi Kaydet** (Record Proof of Delivery).
2. Check or enter the **Teslim tarihi** (Delivery date) and **Teslim alan** (Recipient); enter a **Not** (Note) if necessary.
3. In the item table, the **Kabul edilen** (Accepted) quantity is prefilled with the delivered quantity. For an item accepted short, correct the quantity and select the **Sebep** (Reason) (**Taşımada hasar** (Damaged in transit), **Eksik ulaştı** (Arrived short), **Müşteri teslim almadı** (Customer did not accept), **Diğer** (Other) — for Diğer (Other), a description is required).

1. Delivery date — cannot be in the future
2. Received by — required
3. Accepted quantity — prefilled with delivered
4. Reason for short acceptance
4. Click **Kaydet** (Save).

1. Confirmation status
2. Undo — only for unbilled deliveries
3. Delivered vs accepted difference
4. Difference reason
**Result:** The confirmation is saved. If the customer is invoiced after confirmation, the delivery can now be invoiced; the invoice quantity is limited to the accepted quantity. Returned goods are taken back into stock with a [delivery correction](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-duzeltmesi-olusturma).
## What you need to know
- If **Alındı teyidinden sonra faturala** (Invoice after proof of delivery) is selected on the customer card, the
delivery becomes **Teyit bekleniyor** (Awaiting confirmation) after goods issue and is not invoiced until the
confirmation is recorded. If it is not selected, the card says **Teyit gerekmiyor** (Confirmation not required); a
signed delivery note can still be recorded.
- The accepted quantity cannot exceed the delivered quantity; a short acceptance requires a reason.
- The server's date rules: *"Teslim tarihi mal çıkışı tarihinden önce olamaz."* (The delivery date cannot be before the
goods issue date.), *"Teslim tarihi bugünden sonra olamaz."* (The delivery date cannot be after today.)
- An incorrect confirmation is reversed with **Teyidi Geri Al** (Reverse Confirmation) — only if the delivery has not
been invoiced (*"Teslimat faturalandı — alındı teyidi geri alınamaz."* (The delivery has been invoiced — the proof of
delivery cannot be reversed.)).
- The confirmation does not write a stock movement: returning rejected goods to stock is a separate document.
## Related
- [Picking, packing and proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/toplama-paketleme-teyit)
- [Record a shipment event](https://erpdocs.corexlogic.com/en/lojistik/islemler/sefer-olayi-kaydetme)
---
# Freight agreements
> A carrier's purchasing tariff or a customer's sales tariff — per shipment, km, kg, m³, pallet or stop, tiered, with a minimum charge.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-anlasmalari
A freight agreement is a tariff. A **Taşıyıcı (alış)** (Carrier (purchasing)) agreement gives the freight cost of a
shipment; a **Müşteri (satış)** (Customer (sales)) agreement gives the charge for a transport order. A shipment is
calculated with the agreement **valid on the departure date**; if more than one agreement is valid, the one with the
most recent start date is used.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Ana Veriler › Navlun Anlaşmaları (Logistics Management › Master Data › Freight Agreements)
- **Screen route:** `/erp/logistics/freight-agreements`
- **Required permission:** `erp-logistics-freight-agreements.view (görme) · .create (ekleme) · .edit (düzenleme)`

1. New agreement
2. Kind: carrier (purchase) or customer (sales)
3. Validity period
4. Tariff summary
## List
Columns: **Kod** (Code), **Ad** (Name) (type), **Taraf** (Party), **Geçerlilik** (Validity) (whether it is valid
today, range), **Tarife** (Tariff) (currency and tariff summary, e.g. *"Sefer başı 1.500 · Km başı 12 / 500+ km 10"*
(Per shipment 1,500 · Per km 12 / 500+ km 10)), **Durum** (Status). Filters: **Ara** (Search), **Tür** (Type),
**Pasifleri göster** (Show inactive). **Anlaşma Ekle** (Add Agreement) creates a new agreement; the row menu
**İşlemler › Düzenle** (Actions › Edit) opens a saved agreement. There is no delete — the agreement is set to
inactive.
## Agreement window

1. Kind — fixed after creation
2. Valid from and to
3. Add tariff line
4. Tier — highest tier reached applies
| Field | Description |
|---|---|
| **Tür** (Type) (required) | **Taşıyıcı (alış)** (Carrier (purchasing)) or **Müşteri (satış)** (Customer (sales)). Type and party cannot be changed after creation — create a new agreement instead. |
| **Taşıyıcı** (Carrier) / **Müşteri** (Customer) (required) | Depending on the type. |
| **Ad** (Name) · **Kod** (Code) (required) | The code has 1–32 characters and is suggested from the name; it must be unique. |
| **Para Birimi** (Currency) (required) | Three letters (TRY, EUR…). |
| **Geçerlilik** (Validity) (start required) | If the end is empty, the agreement is open-ended. |
| **Aktif** (Active) · **Not** (Note) | |
| **Tarife** (Tariff) | Lines: **Dayanak** (Basis), **Kademe (başlangıç)** (Tier (from)), **Birim Ücret** (Unit Rate), **En Az Ücret** (Minimum Charge). Up to 50 lines with **Satır Ekle** (Add Line). |
Bases: **Sefer başı** (Per shipment), **Km başı** (Per km), **Kg başı** (Per kg), **m³ başı** (Per m³), **Palet
başı** (Per pallet), **Durak başı** (Per stop). The highest tier reached by the quantity is applied (e.g. per kg:
0 → 2.00 · 200 → 1.50). The per-shipment rate has no tiers. A basis whose quantity is unknown (distance not entered,
item with unknown weight) is not included in the calculation, and this is stated in the shipment details.
Rejection messages:
| Message | Meaning |
|---|---|
| *"Anlaşma kodu 1–32 karakter olmalı."* | The agreement code must have 1–32 characters. |
| *"Anlaşma adını yazın."* | Enter the agreement name. |
| *"Taşıyıcıyı seçin."* | Select the carrier. |
| *"Müşteriyi seçin."* | Select the customer. |
| *"Geçerlilik bitişi başlangıçtan önce olamaz."* | The validity end cannot be before the start. |
| *"En az bir tarife satırı girin."* | Enter at least one tariff line. |
| *"N. satır: sefer başı ücret kademe almaz."* | Line N: the per-shipment rate has no tiers. |
| *"N. satır: aynı dayanakta aynı kademe iki kez tanımlanamaz."* | Line N: the same tier cannot be defined twice for the same basis. |
| *"Bu anlaşma kodu zaten kullanılıyor."* (from the server) | This agreement code is already in use. |
## Where it is used
- The **Navlun** (Freight) card in the shipment details and the **Taşıyıcı Seç** (Select Carrier) ranking (carrier
agreement). If there is no agreement valid on the shipment's departure date: *"Taşıyıcının seferin çıkış gününde
geçerli navlun anlaşması yok."* (The carrier has no freight agreement valid on the shipment's departure date.)
- The **Tarife** (Tariff) column in the tender details (comparison amount).
- The charge preview and approval of a transport order (customer agreement).
## Related
- [Create a freight agreement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-anlasmasi-olusturma)
- [Transportation documents](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/tasima-belgeleri)
---
# Create a freight settlement
> Collect the calculated freight of a carrier's completed shipments in a single document.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-hesaplasmasi-olusturma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Navlun Hesaplaşması Oluştur (Logistics Management › Transportation › Create Freight Settlement)
- **Screen route:** `/erp/logistics/freight-settlements/new`
- **Required permission:** `erp-logistics-freight-settlements.create`
- **Prerequisites:**
- The carrier has a shipment in **Tamamlandı** (Completed) status whose freight has been calculated and that is not in another settlement.
- The settlement date is in an open posting period.
## Steps
1. Open the **Lojistik Yönetimi › Taşıma › Navlun Hesaplaşması Oluştur** (Logistics Management › Transportation › Create Freight Settlement) screen.
2. Select the **Taşıyıcı** (Carrier); the **Seferler** (Shipments) table lists the carrier's completed shipments to be settled.
3. Check the **Para Birimi** (Currency) and **Hesaplaşma Tarihi** (Settlement Date).
4. Select the shipments to settle (or **Tümünü Seç** (Select All)). A shipment with a reason shown below it cannot be selected.

1. Carrier
2. Currency — one per document
3. Settlement date
4. Completed trip with calculated freight
5. Save Settlement
5. Enter a **Not** (Note) if necessary; check the subtotal in the bottom bar and click **Hesaplaşmayı Kaydet** (Save Settlement).

1. Status
2. Total incl. VAT
3. Cancel — if not linked to an invoice
**Result:** The freight of the shipments is frozen in this document: the Navlun (Freight) card in the shipment details says "Hesaplaşıldı: NHS-… — navlun yeniden hesaplanmaz." (Settled: NHS-… — the freight is not recalculated.) The carrier's invoice is linked to this document in incoming invoices (Finance).
## What you need to know
- A document carries a single currency; the freight of a shipment in a different currency cannot be selected, with the
reason *"Navlun … — hesaplaşma …; para birimleri toplanmaz."* (Freight … — settlement …; currencies are not added
together.) For a shipment whose freight has not been calculated, first use **Navlunu Hesapla** (Calculate Freight) in
the shipment details.
- VAT is calculated with the default tax rate; the amount is approximate, and the authoritative invoice comes from the
carrier.
- An incorrect document is cancelled with **İptal Et** (Cancel) in the details (**İptal Nedeni** (Cancellation Reason)
required); the shipments are released. A document linked to an invoice cannot be cancelled.
- A shipment executed by our own fleet has no freight; its cost is in [Filo İşletimi](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/filo-isletimi)
(Fleet Operations).
## Related
- [Freight settlements screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-hesaplasmalari)
---
# Logistics analytics
> Logistics reports — delivery summary, vehicle cost, on-time in-full (OTIF), freight cost and fleet utilization.
URL: https://erpdocs.corexlogic.com/en/lojistik/ekranlar/analitik
There are five reports; all of them are read-only screens and do not write any documents. The default period is the
last 30 days (90 days for Teslimat Özeti (Delivery Summary)); the period is changed from the report bar. Reports that
have an Excel export button download the list.
- **Type:** Screen
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Analitik › Teslimat Özeti · Araç Maliyeti · Zamanında-Tam Teslim · Navlun Maliyeti · Filo Kullanımı (Logistics Management › Analytics › Delivery Summary · Vehicle Cost · On-Time In-Full · Freight Cost · Fleet Utilization)
- **Screen route:** `/erp/logistics/reports/otif`
- **Required permission:** `erp-sales-shipments.view (Teslimat Özeti, Zamanında-Tam Teslim)`, `erp-logistics-fleet-costs.view (Araç Maliyeti)`, `erp-logistics-freight-agreements.view (Navlun Maliyeti)`, `erp-logistics-fleet.view (Filo Kullanımı)`
| Report | Address |
|---|---|
| **Teslimat Özeti** (Delivery Summary) | `/erp/sales/reports/shipment-summary` |
| **Araç Maliyeti** (Vehicle Cost) | `/erp/logistics/reports/fleet-costs` |
| **Zamanında-Tam Teslim** (On-Time In-Full) | `/erp/logistics/reports/otif` |
| **Navlun Maliyeti** (Freight Cost) | `/erp/logistics/reports/freight-costs` |
| **Filo Kullanımı** (Fleet Utilization) | `/erp/logistics/reports/fleet-utilization` |
## Delivery summary
Shipped, reversed and net quantity — per month, warehouse and unit; it contains no amounts. Columns: **Ay** (Month),
**Depo** (Warehouse), **Birim** (Unit), **Sevk Edilen** (Shipped), **Geri Alınan** (Reversed), **Net Sevk** (Net
Shipped), **Teslimat** (Deliveries), **Düzeltme** (Corrections). Filters: **Ara** (Search), the **Teslimat tarihi**
(Delivery date) range, **Kanal** (Channel). A reversed quantity is deducted from the month of the delivery it
corrects. **Excel'e Aktar** (Export to Excel).
## On-time in-full

1. Breakdown: customer, month, warehouse
2. On-time rate
3. In-full rate
4. Both
Per delivery item: was it delivered on the requested date, and in full? **Kırılım** (Breakdown): Müşteri (Customer) ·
Ay (Month) · Depo (Warehouse). Columns: **Kalem** (Items), **Ölçülebilir** (Measurable), **Zamanında** (On Time),
**Tam** (In Full), **OTIF**; with a total row at the bottom. The period is based on the goods issue date.
- **Delivery date:** the proof of delivery; if there is none, the shipment's delivery event; if there is none, the
goods issue date.
- **On time:** delivery date ≤ the requested delivery date of the sales order — an item without a requested date is
not measured.
- **In full:** accepted quantity (shipped − corrected − confirmation shortage) ≥ delivery quantity.
## Freight cost

1. Breakdown: carrier or month
2. Cost per km
3. Settled freight
4. Not yet settled
The freight of carrier shipments — cost per kg and per km, settled and pending; currencies are kept separate.
**Kırılım** (Breakdown): Taşıyıcı (Carrier) · Ay (Month). Columns: **Sefer** (Shipments), **Navlun** (Freight),
**Ağırlık** (Weight), **Mesafe** (Distance), **Kg Başına** (Per Kg), **Km Başına** (Per Km), **Hesaplaşılan**
(Settled), **Bekleyen** (Pending). The period is based on the shipment's departure date. Weight and distance are
shown only if they are known for all shipments of the group; a shipment whose freight has not been calculated counts
as 0.
## Vehicle cost

1. Period
2. Fuel consumption
3. Cost per kilometer
Kilometers, fuel, expenses and cost per kilometer per vehicle — our own fleet; the amount is not an accounting entry.
Columns: **Araç** (Vehicle), **Kilometre** (Kilometers), **Yakıt (L)** (Fuel (L)), **L/100 km**, **Masraf**
(Expense) (by type), **Toplam** (Total), **Km başına** (Per km), **Sefer** (Shipments). Kilometers are calculated
from the readings within the period (the starting value is the last reading before the period); if there are not
enough readings, "—" is shown. Currencies are shown separately and not added together. Source:
[Fleet operations](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/filo-isletimi).
## Fleet utilization

1. Days on trips
2. Trip days ÷ period days
3. Load ÷ capacity
Shipments, days spent on shipments, load factor and kilometers per vehicle — our own fleet. Columns: **Araç**
(Vehicle), **Sefer** (Shipments), **Seferde Gün** (Days on Shipments), **Kullanım** (Utilization) (days spent on
shipments ÷ days in the period; a shipment in transit counts up to today), **Ortalama Doluluk** (Average Load Factor)
(load ÷ capacity), **Kilometre** (Kilometers) (from odometer readings), **Sefer Başına Km** (Km per Shipment). The
period is based on the departure date.
## Related
- [Delivery monitor](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/teslimat-izleme)
- [Freight settlements](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/navlun-hesaplasmalari)
---
# Create a transport order
> Create an order for a transportation service sold to a customer, approve it with the customer's tariff, link it to a shipment and complete it.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/nakliye-siparisi-olusturma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Taşıma › Nakliye Siparişi Oluştur (Logistics Management › Transportation › Create Transport Order)
- **Screen route:** `/erp/logistics/forwarding-orders/new`
- **Required permission:** `erp-logistics-forwarding-orders.create`, `erp-logistics-forwarding-orders.edit`
- **Prerequisites:**
- The customer has a [freight agreement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-anlasmasi-olusturma) of type **Müşteri (satış)** (Customer (sales)) valid on the loading date.
- There is a sellable, non-stock service item card (e.g. HIZ-0004 NAKLİYE HİZMETİ).
## Steps
1. Open the **Lojistik Yönetimi › Taşıma › Nakliye Siparişi Oluştur** (Logistics Management › Transportation › Create Transport Order) screen.
2. Type a code or company name in **Müşteri ara** (Search customer) and select the **Müşteri** (Customer).
3. Enter the **Yükleme yeri** (Loading location), **Teslim yeri** (Delivery location), **Yükleme günü** (Loading date) and, if necessary, the **İstenen teslim** (Requested delivery).
4. Enter the **Yük tanımı** (Cargo description) and the measurements that are the basis of the tariff (**Koli** (Cartons), **Palet** (Pallets), **Ağırlık (kg)** (Weight (kg)), **Hacim (m³)** (Volume (m³)), **Mesafe (km)** (Distance (km))). Leave unknown values empty.

1. Customer — search first
2. Pickup and delivery place
3. Cargo and measures — tariff basis
4. Service item for the invoice
5. Save — draft
5. Select the **Hizmet ürünü** (Service item) with **Hizmet ürünü ara** (Search service item); the **Vergi oranı** (Tax rate) can stay at the default. Click **Kaydet** (Save).

1. Confirm — charge is fixed
2. Edit — draft only
3. Preview from the customer tariff
6. Check the preview and click **Onayla** (Approve).
7. When the shipment that performs the transportation is known, click **Sefere Bağla** (Link to Shipment), select the **Sefer** (Shipment) and click **Bağla** (Link).

1. Status: Confirmed
2. Link the executing trip
3. Complete — becomes billable
4. Charge fixed at confirmation
8. When the transportation has been performed, click **Tamamla** (Complete), enter the **Tamamlanma günü** (Completion date) and confirm with **Tamamla** (Complete).
**Result:** On a completed order, **Fatura Oluştur** (Create Invoice) opens a draft outgoing invoice with one line of service item × 1 at the charge fixed on approval; finalization and sending are done on the invoice.
## What you need to know
- The charge is not entered on the form; on approval, it is calculated from the customer tariff and fixed. Example:
per shipment 2,000 + 150 km × 15 + 6 pallets × 150 = 5,150 TRY (excl. VAT), 6,180 TRY with 20% VAT.
- If the measurement for a basis of the tariff is empty, the order cannot be approved; **Onayla** (Approve) is disabled
and the reason is shown when you hover over it. Do not enter zero — empty means "unknown".
- Only a draft can be edited (*"Yalnız taslak nakliye siparişi düzenlenir."* (Only a draft transport order can be
edited.)).
- Linking to a shipment does not change the charge; the link is removed with **Bağı Kaldır** (Remove Link).
- Cancellation cannot be undone and requires a reason; an invoiced order cannot be cancelled.
## Related
- [Transport orders screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/nakliye-siparisleri)
---
# Add a fleet record
> Add an odometer reading, fuel purchase or expense record to one of our own vehicles.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/filo-kaydi-ekleme
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Filo › Filo İşletimi (Logistics Management › Fleet › Fleet Operations)
- **Screen route:** `/erp/logistics/fleet/operations`
- **Required permission:** `erp-logistics-fleet-costs.create`
- **Prerequisites:**
- The vehicle is in our own fleet (owned or leased) and active.
## Steps
1. On the **Lojistik Yönetimi › Filo › Filo İşletimi** (Logistics Management › Fleet › Fleet Operations) screen, click **Kayıt Ekle** (Add Record).

1. Vehicle — own fleet
2. Kind: Odometer, Fuel, Expense
3. Liters — required for fuel
4. Trip — optional
2. Select the **Araç** (Vehicle); the last odometer reading appears below it.
3. Select the **Tür** (Type): **Kilometre** (Odometer), **Yakıt** (Fuel) or **Masraf** (Expense); enter the **Tarih** (Date).
4. Fill in the fields for the type: for Kilometre (Odometer), **Kilometre** (Kilometers); for Yakıt (Fuel), **Litre** (Liters) (and optionally **Kilometre** (Kilometers), **Tutar** (Amount)); for Masraf (Expense), **Masraf türü** (Expense type) and **Tutar** (Amount).
5. If necessary, enter the **Sürücü** (Driver), **Sefer** (Shipment) and **Not** (Note), then click **Kaydet** (Save).

1. Odometer, fuel or expense
2. Liters and kilometers
3. Linked trip and driver
**Result:** The record is included in the vehicle's operating cost and is reflected in the **Araç Maliyeti** (Vehicle Cost) and **Filo Kullanımı** (Fleet Utilization) reports.
## What you need to know
- A record cannot be changed; an incorrect record is deleted with **Sil** (Delete) in the row menu and entered again.
- The odometer cannot go backwards: a kilometer value smaller than an earlier reading is rejected by the server.
- For a "Diğer" (Other) expense, a description in **Not** (Note) is required.
- Records are not entered for a carrier's vehicle; the carrier's cost is the freight.
## Related
- [Fleet operations screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/filo-isletimi)
- [Logistics analytics](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/analitik)
---
# Create a delivery correction
> Reverse an incorrectly posted goods issue with a correction document — the stock returns to the original warehouse and storage location.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-duzeltmesi-olusturma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimatlar › teslimat detayı › Teslimat Düzeltmesi Oluştur (Logistics Management › Outbound Delivery › Deliveries › delivery details › Create Delivery Correction)
- **Screen route:** `/erp/sales/shipments/{id}/reversals/new`
- **Required permission:** `erp-sales-shipment-reversals.create`
- **Prerequisites:**
- The delivery is in **Mal Çıkışı Kaydedildi** (Goods Issue Posted) status and has a reversible quantity.
- A correction is for a posting error; for goods sent back by the customer, use **İade Al** (Receive Return).
## Steps
1. In the details of a delivery whose goods issue has been posted, click **Teslimat Düzeltmesi Oluştur** (Create Delivery Correction).
2. Check the **Düzeltme Tarihi** (Correction Date) and enter the **Düzeltme Gerekçesi** (Correction Reason) (required).
3. On the line to be corrected, select **Bu satırı düzelt** (Correct this line) and enter the **Geri Alınacak Miktar** (Quantity to Reverse), or click **Kalanı doldur** (Fill remaining). On a serial-managed line, select the serial numbers to reverse.

1. Reversal date
2. Reason — required
3. Line to reverse
4. Fills the reversible remainder
5. Save Reversal
4. Click **Düzeltmeyi Kaydet** (Save Correction).

1. Reversal document — immutable
2. Reversed delivery
3. Reason
**Result:** The reversed quantity returns to stock within the warehouse/storage location/lot scope of the original delivery; the shipped quantity of the sales order decreases. The original delivery remains unchanged; the document appears in the correction history in its details.
## What you need to know
- On each line, at most the reversible remaining quantity can be entered (*"En fazla N …"* (At most N …)); a fully
reversed line is read-only.
- The reason can have up to 512 characters; a physical posting is not reversed without a reason.
- If the delivery or the sales order changed while the form was open, saving is rejected; **Düzeltme bilgilerini
yenile** (Refresh correction information) clears the line selections, while the reason and date are kept.
- The correction document cannot be changed or deleted either.
## Related
- [Delivery corrections screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/teslimat-duzeltmeleri)
---
# Create an inbound delivery
> Record a supplier's shipping notification as an inbound delivery from a purchase order or an incoming e-Delivery Note.
URL: https://erpdocs.corexlogic.com/en/lojistik/islemler/gelen-teslimat-olusturma
- **Type:** Task
- **Module:** Logistics
- **Menu path:** Lojistik Yönetimi › Gelen Teslimat › Gelen Teslimat Oluştur (Logistics Management › Inbound Delivery › Create Inbound Delivery)
- **Screen route:** `/erp/logistics/inbound-deliveries/new`
- **Required permission:** `erp-logistics-inbound-deliveries.create`
- **Prerequisites:**
- There is a purchase order eligible for goods receipt (finalized, with an open quantity) or an incoming e-Delivery Note.
> **This task was not tried live in the demo installation of the documentation environment (the goods receipt scenarios of**
the purchase orders are used in other documents); the steps were verified from the screen's source code and a
screenshot of the empty form.
When a purchase order with a receiving warehouse is finalized, the inbound delivery is created automatically in
**Bekleniyor** (Expected) status; manual creation is for shipments that are not created automatically or that arrive
split.
## Steps
1. Open the **Lojistik Yönetimi › Gelen Teslimat › Gelen Teslimat Oluştur** (Logistics Management › Inbound Delivery › Create Inbound Delivery) screen.

1. Source: order or incoming e-despatch
2. Order — magnifier or F4 opens the list
3. Warehouse
4. Expected arrival — required
5. Save Inbound Delivery
2. Select the source: **Siparişten** (From purchase order) or **Gelen e-İrsaliyeden** (From incoming e-Delivery Note).
3. From a purchase order: type an order number or supplier in the **Sipariş** (Order) field and press `Enter`, or select one or more purchase orders from the **Sipariş Seç** (Select Order) window with the magnifier (F4). All must be from the same supplier.
4. In the line table, select the lines to notify and enter the **Miktar** (Quantity); the quantity cannot exceed the maximum notifiable quantity of the line.
5. Check the **Depo** (Warehouse) (it comes from the receiving warehouse of the purchase order; if there is none, select one) and enter the **Beklenen Varış** (Expected Arrival).
6. If available, enter the **Tedarikçi İrsaliye No** (Supplier Delivery Note No.) and **İrsaliye Tarihi** (Delivery Note Date), and a **Not** (Note) if necessary.
7. Click **Gelen Teslimatı Kaydet** (Save Inbound Delivery).
**Result:** The notified quantity is reserved on the purchase order; the persons responsible for the warehouse are notified. When the goods arrive, **Mal Kabulü Oluştur** (Create Goods Receipt) in the details opens the goods receipt form with this delivery.
## What you need to know
- When creating from an incoming e-Delivery Note, lines are suggested to purchase order lines by the supplier's item
code; the suggestion can be changed. If there is an expected delivery created from the purchase order, the delivery
with the delivery note replaces it.
- If the purchase orders are received in different warehouses, the delivery is not created: *"Seçilen siparişler farklı
depolara geliyor (…)"* (The selected orders are received in different warehouses (…)) — create a separate delivery
for each warehouse.
- A delivery can contain at most 30 purchase orders.
- A draft in **İnceleme Bekliyor** (Awaiting Review) status (an unmatched e-Delivery Note) opens in the same form with
**İncele ve Onayla** (Review and Approve) in the details; the confirm button is **Onayla** (Approve).
- A delivery in Bekleniyor (Expected) status is closed with **İptal Et** (Cancel), and the remainder of a partially
received delivery with **Kalanı Kapat** (Close Remaining) (a reason is required for both).
## Related
- [Inbound deliveries screen](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/gelen-teslimatlar)
---
# Modules
> CoreX ERP modules and their documentation — sales, purchasing, inventory, production, logistics, administration, settings and data import.
URL: https://erpdocs.corexlogic.com/en/moduller
CoreX ERP is made up of modules; each module's menu is in the main menu at the top of the screen. Which modules are
enabled depends on the installation's license and on module management: [Module management](https://erpdocs.corexlogic.com/en/yonetim/modul-yonetimi).
## Business modules
- [Sales](https://erpdocs.corexlogic.com/en/satis) — Quotation, sales order, contract, delivery, billing, returns, rebate, campaign, price list and customer.
- [Purchasing](https://erpdocs.corexlogic.com/en/satin-alma) — Requisition, request for quotation, purchase order, approval, goods receipt, supplier return and supplier prices.
- [Inventory Management](https://erpdocs.corexlogic.com/en/stok) — Item master data, warehouse, stock movement, transfer, reservation, physical inventory, batch and serial number, quality.
- [Production](https://erpdocs.corexlogic.com/en/uretim) — Work center, routing, bill of materials and its conditions, configuration, MRP, production order, capacity.
- [Logistics Management](https://erpdocs.corexlogic.com/en/lojistik) — Outbound and inbound delivery, picking, packing, shipment, carrier, fleet and freight.
- Finance — Chart of accounts, journal entry, customer/supplier account, bank, cash and period-end closing.
## Administration and setup
- [Administration](https://erpdocs.corexlogic.com/en/yonetim) — Users, roles, permissions, organizational restrictions, module management, monitoring.
- [Settings and workflow](https://erpdocs.corexlogic.com/en/ayarlar) — Approvals, notifications, e-mail (SMTP) and e-Document integration.
- [Data Import](https://erpdocs.corexlogic.com/en/veri-aktarimi) — Loading master data and opening data with Excel workbooks — templates and column guide.
## End-to-end processes
For cross-module flows, see [Process guides](https://erpdocs.corexlogic.com/en/surecler).
---
# Procurement
> The Procurement module — purchase requisitions, requests for quotation and comparison, purchase orders, goods and service receipts, returns to supplier, supplier prices and procurement reports.
URL: https://erpdocs.corexlogic.com/en/satin-alma
The Procurement module manages the chain from reporting a need to the goods entering the warehouse:
**requisition → sourcing (request for quotation, supplier price) → order → goods / service receipt → return**.
A supplier uses the same business partner card as a customer; price and lead time are proposed to the order from
**Tedarikçi Fiyatları** (Supplier Prices). Stock is posted with the goods receipt; the supplier invoice and payment
belong to Finance and are not covered in this guide.
End-to-end process and sample scenario: [From requisition to goods receipt](https://erpdocs.corexlogic.com/en/surecler/talepten-mal-kabule).
## Key concepts
| Concept | Meaning |
|---|---|
| **Satınalma talebi** (Purchase requisition, TLP-…) | A notice that "this material is needed on this date". It carries no price or supplier; it enters purchasing's agenda once it is **submitted**. It is created manually, from a production order, from MRP or from a kanban signal. |
| **Teklif isteği** (Request for quotation, TKL-…) | The same list of items sent to several suppliers. The quotations received are compared side by side in the document; a **draft order** is created from the items that are decided. There is no stock or financial movement. |
| **Satın alma siparişi** (Purchase order, SA-…) | The commercial order placed with the supplier. It can be edited while **Taslak** (Draft); once **finalized** (after approval, if an approval rule applies) it is locked, opened for goods receipt and counted as **in transit** in planning. |
| **Mal kabul** (Goods receipt, MK-…) | Posting of the goods received against the order; the stock receipt is posted at the same time. Partial receipt is allowed. The document cannot be changed afterwards. |
| **Hizmet kabulü** (Service receipt, HK-…) | The record that a non-stock item (freight, maintenance, consulting…) has been received. There is no stock movement. |
| **Mal kabul geri alma** (Goods receipt reversal, MKG-…) | A return to the supplier or the correction of an incorrect receipt: a reverse stock posting. A line is reversed **in full**. |
| **Tedarikçi iade talebi** (Supplier return request, TIT-…) | The decision made before the goods are sent back to the supplier. The person who opens the request cannot approve it. |
| **Tedarikçi fiyatı** (Supplier price) | The item–supplier link: agreed price, lead time, minimum quantity, main supplier, block. A quotation decision updates the agreed price automatically. |
## Tasks
- [Create a purchase requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talep-olusturma) — Report a need and submit it to purchasing.
- [Approve a requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talebi-onaylama) — Approval and rejection when an approval template is defined.
- [Create an order from a requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talepten-siparis-olusturma) — Draft order with Requisition Source Assignment.
- [Create a request for quotation](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklif-istegi-olusturma) — Ask several suppliers about the items.
- [Compare quotations](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklifleri-karsilastirma) — Quotation entry, comparison and decision.
- [Create an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparis-olusturma) — New purchase order to a supplier.
- [Finalize an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme) — Submission for approval, approval and finalization.
- [Send an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-gonderme) — PDF, printing and e-mail.
- [Change an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-degistirme) — Editing a draft; options for a finalized order.
- [Close or cancel an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kapatma-iptal) — Give up the remaining quantity or cancel the order.
- [Create a goods receipt](https://erpdocs.corexlogic.com/en/satin-alma/islemler/mal-kabulu-olusturma) — Full or partial goods receipt, split allocation.
- [Create a service receipt](https://erpdocs.corexlogic.com/en/satin-alma/islemler/hizmet-kabulu-olusturma) — Receipt of a non-stock item.
- [Return to supplier](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikciye-iade) — Return request and goods receipt reversal.
- [Define a supplier price](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikci-fiyati-tanimlama) — Agreed price, lead time, main supplier.
## Menu map
| Section | Screen | Description |
|---|---|---|
| Talep Yönetimi (Requisition Management) | Satınalma Talepleri · Satınalma Talebi Oluştur · Talep Kaynak Ataması (Purchase Requisitions · Create Purchase Requisition · Requisition Source Assignment) | [Purchase requisitions](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-talepleri) |
| Kaynak Bulma (Sourcing) | Teklif İstekleri (Requests for Quotation) | [Requests for quotation](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/teklif-istekleri) |
| Kaynak Bulma (Sourcing) | Tedarikçi Fiyatları · Kaynak Listesi ve Kota (Supplier Prices · Source List and Quota) | [Supplier prices and source list](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikci-fiyatlari) |
| Kaynak Bulma (Sourcing) | Çerçeve Sözleşmeler · Çerçeve Sözleşme Oluştur (Outline Agreements · Create Outline Agreement) | [Outline agreements](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/cerceve-sozlesmeler) |
| Kaynak Bulma (Sourcing) | Tedarikçi Prim Anlaşmaları (Supplier Rebate Agreements) | Finance topic — outside this guide |
| Sipariş Yönetimi (Order Management) | Satın Alma Siparişleri · Satın Alma Siparişi Oluştur (Purchase Orders · Create Purchase Order) | [Purchase orders](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri) |
| Fason (Subcontracting) | Fasoncudaki Stok · Fason Sevk ve İadeleri · Fasona Malzeme Sevki Oluştur · Fasondan Malzeme İadesi Oluştur (Stock at Subcontractor · Subcontracting Shipments and Returns · Create Material Shipment to Subcontractor · Create Material Return from Subcontractor) | [Subcontracting](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/fason) |
| Mal ve Hizmet Kabulü (Goods and Service Receipt) | Mal Kabulleri · Teslim Alınacaklar · Mal Kabulü Oluştur (Goods Receipts · Due for Receipt · Create Goods Receipt) | [Goods receipts](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/mal-kabulleri) |
| Mal ve Hizmet Kabulü (Goods and Service Receipt) | Hizmet Kabulleri · Hizmet Kabulü Oluştur (Service Receipts · Create Service Receipt) | [Service receipts](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/hizmet-kabulleri) |
| Tedarikçi Faturaları (Supplier Invoices) | Gelen e-Faturalar · Faturalanmamış Kabuller · İthalat Masrafları · Konsinye Hesaplaşmaları · Tedarikçi Prim Hesaplaşmaları (Incoming e-Invoices · Uninvoiced Receipts · Import Costs · Consignment Settlements · Supplier Rebate Settlements) | Finance topic — outside this guide |
| İade Yönetimi (Return Management) | Tedarikçi İade Talepleri · Mal Kabul Geri Almaları · Mal Kabulünü Geri Al · Hizmet Kabul Geri Almaları · Hizmet Kabulünü Geri Al (Supplier Return Requests · Goods Receipt Reversals · Reverse Goods Receipt · Service Receipt Reversals · Reverse Service Receipt) | [Return management](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/iade-yonetimi) |
| İade Yönetimi (Return Management) | İade Faturaları (Return Invoices) | Finance topic — outside this guide |
| Ana Veriler (Master Data) | Tedarikçiler (Suppliers) | [Suppliers](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikciler) |
| Analitik (Analytics) | Harcama Raporu · Açık Siparişler · Teklif Tasarrufu · Tedarikçi Performansı · Tedarikçi Değerlendirme (Spend Report · Open Orders · Quotation Savings · Supplier Performance · Supplier Evaluation) | [Procurement reports](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/analitik) |
Incoming deliveries are in the menu under **Lojistik Yönetimi › Gelen Teslimat › Gelen Teslimatlar** (Logistics
Management › Inbound Delivery › Inbound Deliveries); they are described together with goods receipts on the
[Goods receipts](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/mal-kabulleri#gelen-teslimat) page. Approval templates are defined in
**Yönetim › Onay Süreci › Onay Şablonları** (Administration › Approval Process › Approval Templates).
## Document statuses at a glance
| Document | Statuses (in order) |
|---|---|
| Purchase requisition | Taslak (Draft) → (Onay Bekliyor (Pending Approval)) → Talep Edildi (Requested) → Kısmen Siparişte (Partially Ordered) → Siparişe Bağlandı (Fully Ordered) · also İptal (Cancelled), Geri Çekildi (Withdrawn) |
| Request for quotation | Taslak (Draft) → Teklif Bekleniyor (Awaiting Quotations) → Kısmen Karara Bağlandı (Partially Decided) → Karara Bağlandı (Decided) · also İptal (Cancelled) |
| Purchase order | Taslak (Draft) → (Onay Bekliyor (Pending Approval)) → Sipariş Verildi (Ordered) → Kısmi Teslim (Partially Received) → Teslim Alındı (Received) · also Kapatıldı (Closed), İptal (Cancelled) |
| Supplier return request | Onay Bekliyor (Pending Approval) → Onaylandı (Approved) → Kapandı (Closed) · also Reddedildi (Rejected), İptal Edildi (Cancelled) |
| Outline agreement | Taslak (Draft) → Yürürlükte (In Effect) → Kapandı (Closed) · also İptal Edildi (Cancelled) |
Goods receipt, service receipt and reversal documents have no status: they take effect as soon as they are saved
and cannot be changed; corrections are made with a reverse document.
## Permissions
The permission for each screen is listed in the summary of its own page. The main permission families:
| Permission | What it grants |
|---|---|
| `erp-procurement-requisitions.*` | Requisition: `view`, `create`, `edit` (editing and submitting), `delete` (cancelling; editing someone else's requisition), `approve` (approval vote) |
| `erp-procurement-rfqs.*` | Request for quotation: `view`, `create`, `edit` (sending, quotation entry, decision), `delete` (cancelling) |
| `erp-procurement-orders.*` | Order: `view`, `create`, `edit` (editing, finalizing, submitting for approval), `approve`, `delete` (cancelling), `close` (closing) |
| `erp-procurement-receipts.*` | Goods receipt: `view`, `create` |
| `erp-procurement-service-acceptances.*` | Service receipt: `view`, `create` |
| `erp-procurement-return-requests.*` | Return request: `view`, `create`, `approve` |
| `erp-procurement-receipt-reversals.*` | Goods receipt reversal: `view`, `create` |
| `erp-procurement-item-suppliers.*` | Supplier prices: `view`, `create`, `edit`, `delete`, `import` |
| `erp-procurement-sourcing.*` | Source list and quota, requisition source assignment: `view`, `edit` |
| `erp-procurement-contracts.*` | Outline agreement: `view`, `create`, `edit` |
---
# Purchase requisitions
> Purchase requisition list, form and details — statuses, actions, approval, withdrawal, cancellation and source assignment from requisition to draft order.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-talepleri
A purchase requisition is a department's notice that "this material is needed on this date". A requisition **carries
no price or supplier** — purchasing determines those. Once submitted, the requisition enters purchasing's agenda;
from there it becomes a request for quotation or directly a draft order.
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Talep Yönetimi › Satınalma Talepleri · Satınalma Talebi Oluştur · Talep Kaynak Ataması (Procurement › Requisition Management › Purchase Requisitions · Create Purchase Requisition · Requisition Source Assignment)
- **Screen route:** `/erp/procurement/requisitions`
- **Required permission:** `erp-procurement-requisitions.view (görme) · .create (oluşturma, geri çekme) · .edit (düzenleme, gönderme) · .delete (iptal; başkasının talebini düzenleme) · .approve (onay oyu)`, `Talep Kaynak Ataması: erp-procurement-orders.create ve erp-procurement-sourcing.view`
## Requisition list

1. New Requisition
2. Status
3. Source — manual, production order, MRP…
4. Only mine
| Column | Description |
|---|---|
| Talep No (Requisition No) | `TLP-yyyy-nnnnnn`; click to open the requisition details. |
| Durum (Status) | See the status table below. |
| Talep Tarihi (Requisition Date) | The posting date of the requisition. |
| En Erken İhtiyaç (Earliest Need) | The nearest **Ne Zaman Lazım** (Needed By) date on the lines. |
| Kaynak (Source) | Where the line originated: Elle (Manual) · Üretim Emri (Production Order) · MRP · Kanban · Üçüncü Taraf (Third Party) · Dış İşlem (External Operation) · Bakım Dış Hizmeti (External Maintenance Service). |
| Kalem (Items) | Number of lines. |
| İsteyen (Requester) | The user who opened the requisition. |
**Filters:** Ara (Search), Durum (Status), Başlangıç–Bitiş (Start–End; requisition date), **Grubumun belgeleri** (My
group's documents; items of my purchasing group), **Teklifte** (In RFQ; those included in a request for quotation),
**Taleplerim** (My requisitions; the ones I opened). The **Yeni Talep** (New Requisition) button opens the form.
## Requisition form
**Satın Alma › Talep Yönetimi › Satınalma Talebi Oluştur** (Procurement › Requisition Management › Create Purchase
Requisition) (`/erp/procurement/requisitions/new`)

1. Requisition date (required)
2. Add Item — pick from the item list
3. Quantity — click the cell and type
4. Needed by
5. Save Draft — stays editable
6. Save and Submit — hands over to purchasing
| Field | Rule |
|---|---|
| **Üretim Emri** (Production Order) | Optional. If an open production order is selected, the order's material requirements are listed; lines are added from there and their source becomes **Üretim Emri** (Production Order). A line that cannot be requisitioned shows the reason. If there is no open order, the warning "Talep açılabilecek üretim emri yok." (There is no production order for which a requisition can be opened.) is shown. |
| **Talep Tarihi** (Requisition Date) | Mandatory; today is proposed. A requisition cannot be opened in a closed posting period or (without permission) on a past date. |
| **Talep Kalemleri** (Requisition Items) | At least one line. **Kalem Ekle** (Add Item) opens the item list; each selected card becomes a separate line. |
| Ürün (Item) | A purchasable, active card that is not blocked for purchasing. A configurable parent card cannot be selected — select its variant. |
| Miktar (Quantity) | Greater than zero; must match the decimal precision of the unit (no fractions for ADET). |
| Birim (Unit) | Comes from the item card. |
| Ne Zaman Lazım (Needed By) | Optional need date. |
| Açıklama (Description) | Optional line note. |
| Kaynak (Source) | Information: **Elle** (Manual) for a manually added line. |
| Not (Note) | Optional document note. |
Line cells are edited inside the table: click the cell, type the value and press [[Enter]].
- **Taslak Kaydet** (Save Draft; Ctrl+S) saves the requisition as **Taslak** (Draft).
- **Kaydet ve Gönder** (Save and Submit) saves it and submits it to purchasing. The button is shown to users with the
`erp-procurement-requisitions.edit` permission; a user with only the `create` permission leaves the requisition in
draft.
- Form validations: "Talep tarihi girin." (Enter the requisition date.), "Talep en az bir kalem içermelidir." (The
requisition must contain at least one item.), "'HAM-0001' için geçerli bir miktar girin." (Enter a valid quantity
for 'HAM-0001'.)
## Requisition details

1. Status: Draft
2. Edit
3. Submit to Purchasing (Submit for Approval if a template applies)
4. Withdraw — requester only
5. Cancel — reason required
The top strip of the details holds the status badge and action buttons; below it are **Belge Bilgileri** (Document
Information; requisition number, requisition date, requester, last change, note), **Talep Kalemleri** (Requisition
Items) and **Ekler** (Attachments).
Columns of the item table: #, Ürün (Item), **İstenen** (Requested), **Siparişte** (Ordered; the quantity linked to
finalized orders), **Kalan** (Remaining), Birim (Unit), Ne Zaman Lazım (Needed By), Kaynak (Source), **Belge Akışı**
(Document Flow; linked requests for quotation and orders; the order's delivery status is shown as, for example,
"teslim 200/200" (delivered 200/200)). "Siparişte" (Ordered) advances **when the order is finalized**; a draft order
does not advance the requisition.

1. Status: Ordered
2. On order — quantity on confirmed orders
3. RFQ
4. Order and receipt status
### Statuses
| Status | Meaning |
|---|---|
| **Taslak** (Draft) | Can be edited; purchasing cannot see it and it cannot be linked to an order. |
| **Onay Bekliyor** (Pending Approval) | An approval template is defined for the requisition type and matched. The document is locked; once approved it moves to **Talep Edildi** (Requested), if rejected it returns to **Taslak** (Draft). |
| **Talep Edildi** (Requested) | On purchasing's agenda; can be linked to a request for quotation and an order. |
| **Kısmen Siparişte** (Partially Ordered) | At least one line has been partially linked to a finalized order. |
| **Siparişe Bağlandı** (Fully Ordered) | All lines have been fully linked to orders. |
| **İptal** (Cancelled) | Purchasing decided not to fulfill the need (with a reason). It cannot be reopened. |
| **Geri Çekildi** (Withdrawn) | The person who opened the requisition gave it up. It cannot be reopened. |
A requisition only **reads** the delivery status of the orders linked to it; the answer to "has my material
arrived?" is in the Belge Akışı (Document Flow) column — the requisition's status does not change with delivery.
### Actions
| Status | Action | Condition |
|---|---|---|
| Taslak (Draft) | **Düzenle** (Edit) | `edit` permission. |
| Taslak (Draft) | **Satın Almaya Gönder** (Submit to Purchasing) | `edit` permission. If an approval template matches, the button is named **Onaya Gönder** (Submit for Approval). |
| Onay Bekliyor (Pending Approval) | **Onayla** (Approve) · **Reddet** (Reject) | The approver (or delegate) of the stage whose turn it is. A rejection reason is mandatory. The person who submitted it cannot approve their own requisition. |
| Taslak, Onay Bekliyor, Talep Edildi (Draft, Pending Approval, Requested; if no line is linked to an order) | **Geri Çek** (Withdraw) | Only the person who **opened** the requisition, with the `create` permission. A confirmation window asks; no reason is required. |
| Talep Edildi, Kısmen Siparişte (Requested, Partially Ordered; if there is a remainder) | **Teklif İsteği Oluştur** (Create Request for Quotation) | `erp-procurement-rfqs.create`. The form opens with the requisition's remaining lines. |
| Taslak, Onay Bekliyor, Talep Edildi (Draft, Pending Approval, Requested; if no line is linked to an order) | **İptal Et** (Cancel) | `delete` permission; **İptal Gerekçesi** (Cancellation Reason) is mandatory, saved with **Talebi İptal Et** (Cancel Requisition). |
| Any status | **Kopyala** (Copy) | `create` permission; carries the lines to a new draft form (the production order and MRP link are not carried). |
If a request for quotation related to a submitted requisition is open, the **Teklifte** (In RFQ) badge is shown in the
header.

1. Status: Submitted
2. Create RFQ — with the lines
3. Remaining — not yet ordered
4. Document flow — RFQs and orders
### Rejection messages
| Message | Reason |
|---|---|
| Yalnız taslak talep düzenlenebilir. (Only a draft requisition can be edited.) | Editing a submitted requisition was attempted. |
| Bu talebi yalnız açan kişi düzenleyebilir. (Only the person who opened this requisition can edit it.) | Someone else's requisition; the `requisitions.delete` permission is required. |
| Talep en az bir kalem içermelidir. (The requisition must contain at least one item.) | Submission without lines. |
| Siparişe bağlanmış talep iptal edilemez — önce ilgili satın alma siparişini … (A requisition linked to an order cannot be cancelled — first … the related purchase order) | There is a line linked to a finalized order. |
| Bu talebi yalnız açan kişi geri çekebilir. Başkasının talebini kapatmak için satın alma iptal yetkisi gerekir. (Only the person who opened this requisition can withdraw it. Closing someone else's requisition requires the purchasing cancellation permission.) | Someone else attempted the withdrawal. |
| Taslak talep siparişe bağlanamaz. Talebi önce gönderin. (A draft requisition cannot be linked to an order. Submit the requisition first.) | An order/RFQ from a draft requisition was attempted. |
| Onay bekleyen talep siparişe bağlanamaz — onaylandıktan sonra bağlanabilir. (A requisition pending approval cannot be linked to an order — it can be linked after it is approved.) | Approval in progress. |
| 'X' satın alınabilir bir ürün değil — talep edilemez. ('X' is not a purchasable item — it cannot be requisitioned.) | "Satın alınabilir" (Purchasable) is not selected on the card. |
| 'X' yapılandırma seçimi gerektiriyor — varyant seçin. ('X' requires a configuration selection — select a variant.) | A configurable parent card was selected. |
| 'ADET' birimi en fazla 0 ondalık basamak kabul eder. (The 'ADET' unit accepts at most 0 decimal places.) | Fractional quantity. |
| Talep bu sırada başka bir kullanıcı tarafından değiştirildi. Sayfayı yenileyip tekrar deneyin. (The requisition was changed by another user in the meantime. Refresh the page and try again.) | Concurrent change. |
## Requisition Source Assignment {#talep-kaynak-ataması}
**Satın Alma › Talep Yönetimi › Talep Kaynak Ataması** (Procurement › Requisition Management › Requisition Source
Assignment) (`/erp/procurement/requisition-sourcing`)

1. Select the requisition line
2. Source — proposed supplier and price
3. Date of the resulting order
4. Create Draft Order — selected lines
5. Automatic Order — all single-source lines
Lists the **open** lines of submitted (Talep Edildi (Requested) / Kısmen Siparişte (Partially Ordered))
requisitions: Talep (Requisition), Ürün (Item), Açık (Open) quantity, İhtiyaç (Need) date, **Kaynak** (Source) and
**Miktar** (Quantity). The Source column shows the supplier proposed by the system (quota, main supplier or single
source) and its price; another supplier can be selected, and the quantity cannot exceed the open quantity.
- **Taslak Sipariş Oluştur** (Create Draft Order): Creates a **draft order** per supplier and currency from the
selected lines (at most 500 lines at a time). The price comes from Tedarikçi Fiyatları (Supplier Prices) in the
line's unit; for a source without a record the price is zero and is written in the draft. The orders created are
listed at the top of the page.
- **Otomatik Sipariş** (Automatic Order): Without a selection, converts all open lines whose source resolves to a
**single supplier** into draft orders; lines with multiple sources or no source wait and are counted with their
reason.
- **Sipariş Tarihi** (Order Date): The date of the orders to be created.
The quantity that goes into a draft is deducted from the line's open quantity; the same line does not go into a draft
a second time. The requisition's **Siparişte** (Ordered) quantity advances **when the draft order is finalized**.
## Related
- [Create a purchase requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talep-olusturma)
- [Approve a requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talebi-onaylama)
- [Create an order from a requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talepten-siparis-olusturma)
- [Requests for quotation](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/teklif-istekleri)
---
# Create a purchase requisition
> Record a material need as a purchase requisition and submit it to purchasing — item, quantity, need date.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/talep-olusturma
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Talep Yönetimi › Satınalma Talebi Oluştur (Procurement › Requisition Management › Create Purchase Requisition)
- **Screen route:** `/erp/procurement/requisitions/new`
- **Required permission:** `erp-procurement-requisitions.create`, `erp-procurement-requisitions.edit (Kaydet ve Gönder için)`
- **Prerequisites:**
- The item card is active and "Satın alınabilir" (Purchasable) is selected on the card; for a configurable item, a variant card exists.
- The requisition date falls in an open posting period.
A purchase requisition reports a need; selecting the price and supplier is purchasing's job. A requisition does not
change stock or planning — supply in planning is created when the order is finalized.
## Steps
1. Open the **Satın Alma › Talep Yönetimi › Satınalma Talebi Oluştur** (Procurement › Requisition Management › Create Purchase Requisition) screen. If you are in the list, click **Yeni Talep** (New Requisition).
2. If you are opening a requisition for a production order, select the order from the **Üretim Emri** (Production Order) list and add the requirement lines. For a manual requisition, leave this field empty.
3. Check the **Talep Tarihi** (Requisition Date; mandatory).
4. Click **Kalem Ekle** (Add Item). In the list that opens, find the item and click the **+** button on its row (e.g. **HAM-0001 ekle** (add HAM-0001)); you can select several items. Transfer the lines to the form with the **1 kalem ekle** (add 1 item; with the selection count) button at the bottom of the window.
5. Click the line's **Miktar** (Quantity) cell, type the quantity and press `Enter`.
6. Click the **Ne Zaman Lazım** (Needed By) cell and enter the need date; if needed, enter a note in the **Açıklama** (Description) cell.
7. If needed, enter the document **Not** (Note). To forward the requisition to purchasing immediately, click **Kaydet ve Gönder** (Save and Submit); to keep it for editing later, click **Taslak Kaydet** (Save Draft).

1. Requisition date (required)
2. Add Item — pick from the item list
3. Quantity — click the cell and type
4. Needed by
5. Save Draft — stays editable
6. Save and Submit — hands over to purchasing
8. In the requisition details that open, check that the status is **Talep Edildi** (Requested) (or **Taslak** (Draft) if you saved a draft).

1. Status: Submitted
2. Create RFQ — with the lines
3. Remaining — not yet ordered
4. Document flow — RFQs and orders
**Result:** The requisition is saved with the number **TLP-yyyy-nnnnnn**. A submitted requisition enters purchasing's agenda (Talep Edildi (Requested)); if an approval template is defined, it first becomes **Onay Bekliyor** (Pending Approval) ([Approve a requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talebi-onaylama)). Next step: a [request for quotation](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklif-istegi-olusturma) or a [draft order from the requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talepten-siparis-olusturma).
## What you need to know
- A requisition saved as a draft is submitted later from the details with **Satın Almaya Gönder** (Submit to
Purchasing) (if there is an approval template, the button is named **Onaya Gönder** (Submit for Approval)).
- A user with only the `create` permission does not see **Kaydet ve Gönder** (Save and Submit); the requisition stays
in draft and someone with the permission submits it.
- The quantity must match the decimal precision of the unit: 1.5 is rejected for ADET ("'ADET' birimi en fazla 0
ondalık basamak kabul eder." (The 'ADET' unit accepts at most 0 decimal places.)).
- Only the person who opened the requisition edits it; editing someone else's requisition requires the
`requisitions.delete` permission.
- A submitted requisition cannot be edited. If you change your mind, use **Geri Çek** (Withdraw; the person who
opened it) or **İptal Et** (Cancel; with a reason).
## Related
- [Purchase requisitions screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-talepleri)
- [From requisition to goods receipt process](https://erpdocs.corexlogic.com/en/surecler/talepten-mal-kabule)
---
# Requests for quotation
> Request for quotation list, form and details — invited suppliers, quotation entry, comparison, decision and the resulting draft order.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/teklif-istekleri
A request for quotation is used to ask several suppliers about the same list of items. The items are written once,
each invited supplier's price is entered in the document and the quotations are compared **side by side in the same
document**. From the decided items, **a single draft order** is created per winning supplier. A request for quotation
makes no commitment to the supplier; it creates no stock or financial movement and has no approval step.
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Kaynak Bulma › Teklif İstekleri (Procurement › Sourcing › Requests for Quotation)
- **Screen route:** `/erp/procurement/rfqs`
- **Required permission:** `erp-procurement-rfqs.view (görme) · .create (oluşturma) · .edit (gönderme, davetli ekleme, teklif girişi, karar) · .delete (iptal)`
## Request for quotation list
| Column | Description |
|---|---|
| Teklif No (RFQ No) | `TKL-yyyy-nnnnnn`; click to open the details. |
| Konu (Subject) | The subject of the document. |
| İstek Tarihi · Son Teklif (Request Date · Quotation Deadline) | The request date and the quotation deadline (for information). |
| Durum (Status) | See the status table below. |
| Yanıt (Responses) | Number of suppliers who quoted / number invited. |
| Karara Bağlanan (Decided) | Number of decided items. |
| Sorumlu · Para Birimi (Responsible · Currency) | |
**Filters:** Ara (Search), Durum (Status). The **Yeni Teklif İsteği** (New Request for Quotation) button opens the
form.
## Request for quotation form

1. Select Suppliers — invitees
2. Quote deadline — informational
3. Subject (required)
4. Currency — all quotes in this currency
5. Line from the requisition; quantity = remainder
6. Save and Send
| Field | Rule |
|---|---|
| **Davet Edilecek Tedarikçiler** (Suppliers to Invite) | **Tedarikçi Seç** (Select Supplier) lets you select several suppliers from the list (**Davet et** (Invite)). At least one supplier is needed to send; a draft can be saved with an empty invitee list. An inactive card or one without the supplier role cannot be invited. |
| **İstek Tarihi** (Request Date) | Mandatory; today is proposed. |
| **Son Teklif Tarihi** (Quotation Deadline) | Optional, for information; cannot be before the request date. A quotation that arrives after the date has passed can still be entered. |
| **Konu** (Subject) | Mandatory, at most 256 characters. When opened from a requisition, "TLP-… talebi" (requisition TLP-…) is proposed. |
| **Para Birimi** (Currency) | Mandatory; all quotations are collected in this currency, there is no exchange rate conversion. |
| **Kalemler** (Items) | At least one item. **Kalem ekle** (Add item): select a requisition from its list and click **Ekle** (Add) to bring in the requisition's open lines ("talepten" (from requisition) label; the quantity is the requisition's remainder and can be corrected), or select an item with **Listeden Seç** (Select from List). The quantity must be greater than zero. |
| Not (Note) | Optional, at most 1024 characters. |
The **Teklif İsteği Oluştur** (Create Request for Quotation) button in the requisition details opens the form with the
requisition's remaining lines. Lines can be taken only from requisitions in **Talep Edildi** (Requested) and **Kısmen
Siparişte** (Partially Ordered).
**Taslak Kaydet** (Save Draft) leaves the document as a draft; **Kaydet ve Gönder** (Save and Send) saves it and marks
it as sent to the suppliers.
## Request for quotation details

1. Enter Quote — per supplier
2. Best net price highlighted
3. Winner — supplier per line
4. Selection reason required
5. Selects the best quotes
6. Award — draft order is created
The details consist of three sections:
- **Davetliler** (Invitees): On each supplier's card, the response status (**Yanıt Bekleniyor** (Awaiting Response),
**Teklif Verdi** (Quoted), **Teklif Vermedi** (Declined)), quotation total, validity and payment terms, along with
the **Teklif Gir** (Enter Quotation), **Excel'den Yükle** (Upload from Excel), **Vermedi** (Declined) and
supplier-specific **Çıktı** (Output) buttons.
- **Belge Bilgileri** (Document Information): Konu (Subject), Para Birimi (Currency), İstek Tarihi (Request Date),
Son Teklif (Quotation Deadline), Gönderim (Sent), Sorumlu (Responsible).
- **Karşılaştırma** (Comparison): One row per item; each supplier's net unit price (with the list price and discount
below it), line amount and lead time. For an item with several quotations, **the best quotation is colored and
marked with ↓**; the choice is not imposed. **Son Alış** (Last Purchase) is the item's most recent goods receipt
price from any supplier. In the **Karar** (Decision) column, the winning supplier and the **gerekçe (zorunlu)**
(reason (mandatory)) are entered.
### Quotation entry

1. Unit price (list price)
2. Discount %
3. Lead time (days)
4. Quote valid until
5. Payment terms — carried to the order
6. Save Quote
In the **Teklif Gir** (Enter Quotation) window, **Birim Fiyat** (Unit Price), **İsk. %** (Disc. %) and **Termin
(gün)** (Lead Time (days)) are entered per item; an item left empty is considered not quoted. **Ticari Şartlar**
(Commercial Terms): validity date, payment terms, supplier note. To open a cell, double-click it or select the cell
and start typing. Rules: price and lead time cannot be negative; more than one price cannot be given for the same
item. **Excel'den Yükle** (Upload from Excel) reads the completed version of the quotation form sent to the supplier.
Quotations can be entered only in a sent document.
**Vermedi** (Declined) records that the supplier will not quote (with an optional note); it is a decision distinct
from no response. The quotation of a supplier that has a decided item cannot be withdrawn.
### Making the decision
1. On the item row, select the supplier from the **Kazanan seçin** (Select winner) list, or select those with the
lowest net price with **En Uygun Teklifleri Seç** (Select Best Quotations).
2. Enter a **Gerekçe (zorunlu)** (Reason (mandatory)) for each selected item.
3. Click **Karara Bağla (n)** (Decide (n)). No confirmation window opens; the decisions are saved.
When the decision is made:
- **One draft purchase order** (`SA-…`) is created per winning supplier: price = list price + quotation discount,
expected delivery = the **longest** lead time of the winning quotations, note "TKL-… teklif isteğinden
oluşturuldu." (Created from request for quotation TKL-….), payment terms from the quotation if specified there,
payment term and Incoterms from the supplier card. The order's responsible person is the person who made the
decision.
- The **discounted** unit price and lead time of the winning quotation are written to **Tedarikçi Fiyatları**
(Supplier Prices) as the agreed price (evidence is added to the price history).
- In the document, the winner, the reason and the number of the resulting order are shown under the item.

1. Status: Awarded
2. Winner and reason
3. Order created by the award
### Statuses
| Status | Meaning |
|---|---|
| **Taslak** (Draft) | The item and invitee lists can be changed freely. |
| **Teklif Bekleniyor** (Awaiting Quotations) | Sent to the suppliers. The item list can no longer change; quotation entry and adding invitees are allowed. |
| **Kısmen Karara Bağlandı** (Partially Decided) | Some of the items have been decided; the rest are open. |
| **Karara Bağlandı** (Decided) | All items have been decided. |
| **İptal** (Cancelled) | Abandoned. Orders created from decided items are not affected. |
### Actions
| Status | Action |
|---|---|
| Taslak (Draft) | **Düzenle** (Edit) · **Tedarikçilere Gönder** (Send to Suppliers) |
| Teklif Bekleniyor, Kısmen Karara Bağlandı (Awaiting Quotations, Partially Decided) | **Davetli Ekle** (Add Invitee) · **Teklif Gir** (Enter Quotation) · **Excel'den Yükle** (Upload from Excel) · **Vermedi** (Declined) · **Karara Bağla** (Decide) |
| Other than Karara Bağlandı (Decided) and İptal (Cancelled) | **İptal Et** (Cancel) — **İptal gerekçesi** (Cancellation reason) mandatory (`delete` permission) |
| Any status | **Çıktı** (Output; quotation form) |
### Rejection messages
| Message | Reason |
|---|---|
| Teklif isteği en az bir tedarikçiye gönderilmelidir. (The request for quotation must be sent to at least one supplier.) | Sending without invitees. |
| Teklif isteği en az bir kalem içermelidir. (The request for quotation must contain at least one item.) | Saving/sending without items. |
| Yalnız Taslak durumundaki teklif isteği düzenlenebilir. (Only a request for quotation in Draft status can be edited.) | Editing a sent document. |
| Teklif girişi yalnız gönderilmiş teklif isteğinde yapılabilir. (Quotations can be entered only in a sent request for quotation.) | Quotation entry in a draft. |
| 'T-0002' 10. kaleme fiyat vermedi — karara bağlanamaz. ('T-0002' did not quote item 10 — it cannot be decided.) | A supplier without a price was selected. |
| 10. satır için seçim gerekçesi zorunludur. (A selection reason is mandatory for line 10.) | The reason is empty. |
| Karara bağlanacak en az bir kalem seçilmelidir. (At least one item to decide must be selected.) | Decision without a selection. |
| Tamamı karara bağlanmış teklif isteği iptal edilemez. (A fully decided request for quotation cannot be cancelled.) | |
| Bu tedarikçi zaten davet edilmiş. (This supplier has already been invited.) | |
| Yalnız gönderilmiş ve kısmen sipariş edilmiş talepler için teklif istenebilir. (Quotations can be requested only for submitted and partially ordered requisitions.) | A line from a draft / closed requisition. |
## Related
- [Create a request for quotation](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklif-istegi-olusturma)
- [Compare quotations](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklifleri-karsilastirma)
- [Purchase orders](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
- Analytics › **Teklif Tasarrufu** (Quotation Savings): [Procurement reports](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/analitik)
---
# Approve a purchase requisition
> In an installation with an approval template, approve a purchase requisition pending approval or reject it with a reason.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/talebi-onaylama
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Talep Yönetimi › Satınalma Talepleri › talep detayı (Procurement › Requisition Management › Purchase Requisitions › requisition details)
- **Screen route:** `/erp/procurement/requisitions/{id}`
- **Required permission:** `erp-procurement-requisitions.approve`
- **Prerequisites:**
- There is an active template for Satın Alma Talebi (Purchase Requisition) in Yönetim › Onay Süreci › Onay Şablonları (Administration › Approval Process › Approval Templates) and the requisition has been submitted for approval (status Onay Bekliyor (Pending Approval)).
- The user is in the role or person list of the stage whose turn it is (or is their delegate) and is not the person who submitted the requisition.
Requisition approval is an **optional** step: if there is no active approval template for Satın Alma Talebi
(Purchase Requisition), **Satın Almaya Gönder** (Submit to Purchasing) makes the requisition **Talep Edildi**
(Requested) directly. If there is a template, the button is named **Onaya Gönder** (Submit for Approval) and the
requisition moves to **Onay Bekliyor** (Pending Approval). Because a requisition has no price, no amount condition is
offered in the template.
## Steps
1. Open the requisition from the **Yönetim › Onay Süreci › Onayımı Bekleyenler** (Administration › Approval Process › Awaiting My Approval) list or from **Satınalma Talepleri** (Purchase Requisitions).
2. Review the requisition's items and note.
3. If it is acceptable, click **Onayla** (Approve), enter an optional note and confirm.
4. If it needs to be corrected, click **Reddet** (Reject); enter the rejection reason and confirm.
**Result:** When the last stage approves, the requisition becomes **Talep Edildi** (Requested) and enters purchasing's agenda. A rejected requisition returns to **Taslak** (Draft); the approval round remains as a trail in the document's **Onaylar** (Approvals) section.
## What you need to know
- A requisition in Onay Bekliyor (Pending Approval) is locked: it cannot be edited or linked to a request for
quotation or an order ("Onay bekleyen talep siparişe bağlanamaz — onaylandıktan sonra bağlanabilir." (A requisition
pending approval cannot be linked to an order — it can be linked after it is approved.)).
- Stages are asked in order; the buttons are shown only to the approver of the stage whose turn it is. The person who
submitted it cannot approve their own requisition.
- A rejection reason is mandatory ("Red gerekçesi zorunludur." (The rejection reason is mandatory.)).
- The approval flow uses the same core as the purchase order; for a live example, see
[Finalize an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme).
> **Demo environment**
In the demo installation, no approval template is defined for Satın Alma Talebi (Purchase Requisition); the steps on
this page were written from the source code and there are no screenshots.
## Related
- [Purchase requisitions screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-talepleri)
---
# Purchase orders
> Purchase order list, form and details — statuses, finalization, approval, goods receipt, closing, cancellation, output and rejection messages.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri
A purchase order is the record of the commercial order placed with the supplier. The order is prepared as a
**draft** (manually, from a quotation or from a requisition); once **finalized**, it is considered placed with the
supplier, it is locked, opened for goods receipt and shown as an **in-transit** quantity in planning (Malzeme
İhtiyaçları (Material Requirements)).
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Sipariş Yönetimi › Satın Alma Siparişleri · Satın Alma Siparişi Oluştur (Procurement › Order Management › Purchase Orders · Create Purchase Order)
- **Screen route:** `/erp/procurement/orders`
- **Required permission:** `erp-procurement-orders.view (görme) · .create (oluşturma, kopyalama) · .edit (düzenleme, kesinleştirme, onaya gönderme, e-posta) · .approve (onay oyu) · .delete (iptal) · .close (kapatma)`
## Order list

1. New Order
2. Status filter
3. Expected delivery
4. Draft · Ordered · Partially Received · Received…
| Column | Description |
|---|---|
| Sipariş No (Order No) | `SA-yyyy-nnnnnn`; click to open the order. The column stays fixed on the left. |
| Tedarikçi (Supplier) | Name and code. |
| Sipariş Tarihi · Beklenen Teslim (Order Date · Expected Delivery) | |
| Durum (Status) | See the status table below. |
| Sorumlu (Responsible) | The purchasing person responsible. |
| Kalem (Items) | Number of lines. |
| Net · KDV · Genel Toplam (Net · VAT · Grand Total) | Hidden for users without the permission to view the purchase price. |
**Filters:** Ara (Search), Durum (Status; **Tüm durumlar** (All statuses)), Sorumlu (Responsible; **Tüm
sorumlular** (All responsible persons)), **Grubumun belgeleri** (My group's documents; items of my purchasing group)
and order date range.
## Order form
**Satın Alma › Sipariş Yönetimi › Satın Alma Siparişi Oluştur** (Procurement › Order Management › Create Purchase
Order) (`/erp/procurement/orders/new`)

1. Supplier — terms from the card
2. Delivery warehouse — opens an inbound delivery
3. Quantity
4. Unit price — proposed from supplier prices
5. Create Order — saves as draft
**Top strip:** **Tedarikçi** (Supplier; mandatory; only active cards with the supplier role) and **Sipariş Tarihi**
(Order Date; mandatory). The toolbar has **Kaydet** (Save; Ctrl+S), **Kontrol Et** (Validate)
and **Kalem Ekle** (Add Item).
| Tab | Fields |
|---|---|
| Teslimat ve Ödeme (Delivery and Payment) | **Beklenen Teslim** (Expected Delivery; cannot be before the order date), **Para Birimi** (Currency; mandatory, three-letter ISO code), **Teslim Deposu** (Delivery Warehouse), **Vade (Gün)** (Payment Term (Days); empty = no term · 0 = cash in advance), **Ödeme Koşulu** (Payment Terms), **Teslim Şekli** (Incoterms), **Teslim Şekli Notu** (Incoterms Note). The payment term and Incoterms are proposed from the supplier card. |
| Koşullar (Conditions) | **Genel İskonto %** (Header Discount %) — distributed proportionally to the lines. |
| Metinler (Texts) | **Not** (Note). |
| Adres (Address) | **Teslim Yeri** (Delivery Location; defined delivery locations) and **Teslim Adresi** (Delivery Address). |
| Organizasyon (Organization) | **Satın Alma Sorumlusu** (Purchasing Responsible) — only on the edit screen; on a new order it is the logged-in user. |
If a **Teslim Deposu** (Delivery Warehouse) is selected, an **inbound delivery** to that warehouse is opened
automatically when the order is finalized and a notification is sent to the warehouse's responsible persons. If the
warehouse has the "Mal kabul yalnız gelen teslimattan" (Goods receipt only from inbound delivery) setting, the goods
receipt can be made only from this delivery. If no warehouse is selected, no inbound delivery is opened.
The **Kalemler** (Items) table: **Ürün** (Item), **Miktar** (Quantity), **Birim** (Unit), **Birim Fiyat** (Unit
Price), **İskonto %** (Discount %), **KDV** (VAT), Tahmini Tutar (Estimated Amount). Description, project, outline
agreement and subcontracting information are entered in the line details. The **Birim Fiyat** (Unit Price) is
proposed in the line's unit from the item's **agreed price** with that supplier (Tedarikçi Fiyatları (Supplier
Prices)); a price in a different currency is not proposed. The line type comes from the card: a stock item becomes
**Stok** (Stock; closed with a goods receipt), a non-stock item becomes **Hizmet** (Service; closed with a service
receipt).
Form validations: "Tedarikçi zorunlu." (Supplier is mandatory.), "Sipariş tarihi zorunlu." (Order date is
mandatory.), "Sipariş tarihinden önce olamaz." (Cannot be before the order date.; expected delivery), "Sipariş en az
bir kalem içermelidir." (The order must contain at least one item.), and on a line "Ürün seçilmedi." (No item
selected.), "Zorunlu." (Mandatory.), "Sıfır veya negatif olamaz." (Cannot be zero or negative.; quantity), "Negatif
olamaz." (Cannot be negative.; price).
**Siparişi Oluştur** (Create Order) saves the order as **Taslak** (Draft); the success panel shows **Siparişi
Kesinleştir** (Finalize Order), **Siparişi Görüntüle** (View Order) and **Yeni Sipariş** (New Order). If the amount
falls under an approval template, the panel says "Bu sipariş tutarı nedeniyle onay gerektiriyor — detayından onaya
gönderin." (This order requires approval because of its amount — submit it for approval from its details.) and the
finalize button is not shown.
## Order details

1. Edit — draft only
2. Confirm Order (Submit for Approval if a rule applies)
3. Cancel Order
4. Output — print, PDF, Excel, e-mail
On the document surface: supplier (tax office and number), **Belge Bilgileri** (Document Information; order date,
expected delivery, currency, gross weight / volume, purchasing responsible, payment term, payment terms, Incoterms,
delivery address, delivery warehouse), **Kalemler** (Items; Sipariş (Ordered), **Alınan / Kabul** (Received /
Accepted), **Kalan** (Remaining), unit price and net price, discount, VAT %, net, VAT, total), the amount summary,
**Onaylar** (Approvals; if there is an approval round), **Çıktılar** (Outputs; e-mails sent) and **Ekler**
(Attachments). The received and remaining quantities come from the goods and service receipt documents.
### Statuses
| Status | Meaning |
|---|---|
| **Taslak** (Draft) | Can be edited; no goods receipt is possible; does not advance the requisition's "Siparişte" (Ordered) quantity. |
| **Onay Bekliyor** (Pending Approval) | The amount matched an approval template and the order was submitted for approval. The document is **locked**; no goods receipt is possible. When the last stage approves, it becomes **Sipariş Verildi** (Ordered) automatically; if rejected, it returns to **Taslak** (Draft). |
| **Sipariş Verildi** (Ordered) | Finalized: a commercial order placed with the supplier. Supplier, item, quantity, unit, price and VAT can no longer be changed. Open for goods receipt. |
| **Kısmi Teslim** (Partially Received) | At least one line has been partially received. |
| **Teslim Alındı** (Received) | All lines have been fully received. |
| **Kapatıldı** (Closed) | The remainder was given up after partial receipt (or the order was not reopened during a reversal). Goods and service receipts are not possible; the remainder is not counted as in transit. |
| **İptal** (Cancelled) | Cancelled; it cannot be reopened. |
### Actions
| Status | Action | Permission |
|---|---|---|
| Taslak (Draft) | **Düzenle** (Edit) | `edit` |
| Draft, no approval required | **Siparişi Kesinleştir** (Finalize Order) | `edit` |
| Draft, approval required | **Onaya Gönder** (Submit for Approval; Siparişi Kesinleştir is not shown) | `edit` |
| Onay Bekliyor (Pending Approval) | **Onayla** (Approve) · **Reddet** (Reject) — shown only to the approver (or delegate) of the stage whose turn it is | `approve` |
| Sipariş Verildi (Ordered), Kısmi Teslim (Partially Received) | **Mal Kabul Gir** (Enter Goods Receipt) | `erp-procurement-receipts.create` |
| Kısmi Teslim (Partially Received) | **Siparişi Kapat** (Close Order) | `close` |
| Taslak, Onay Bekliyor, Sipariş Verildi (Draft, Pending Approval, Ordered) | **Siparişi İptal Et** (Cancel Order) | `delete` |
| Any status | **Kopyala** (Copy; to a new draft form), **Çıktı** (Output; Yazdır · PDF İndir · Excel İndir · E-posta ile Gönder (Print · Download PDF · Download Excel · Send by E-mail)) | `create` / `edit` (e-mail) |
The button for a transition that is not possible is not drawn at all. **Çıktı** (Output) is not shown to a user who
cannot view prices.

1. Confirm Order
The **Siparişi Kesinleştir** (Finalize Order) window: "Bu sipariş kesinleştirildiğinde tedarikçiye verilmiş ticari
sipariş olarak kabul edilir." (Once finalized, this order is considered a commercial order placed with the
supplier.) On finalization:
- The **Siparişte** (Ordered) quantity of the requisition lines linked to the order advances; the requisition
becomes **Kısmen Siparişte** (Partially Ordered) or **Siparişe Bağlandı** (Fully Ordered).
- If there is a delivery warehouse, an **inbound delivery** (`GLT-…`) is opened; the details show "Gelen teslimat
açıldı: GLT-… — … deposunun sorumlularına bildirildi; mal kabul oradan yapılır." (Inbound delivery opened: GLT-… —
the responsible persons of the … warehouse were notified; the goods receipt is made from there.)
- The order remainder is counted as in-transit supply in Malzeme İhtiyaçları (Material Requirements).
### Approval {#onay}

1. Status: Awaiting approval — locked
2. Approve — approver of the current stage
3. Reject — back to draft
4. Current stage
5. Stage 1 decision and note
Approval applies when the condition of the **active** template defined for Satın Alma Siparişi (Purchase Order) in
**Yönetim › Onay Süreci › Onay Şablonları** (Administration › Approval Process › Approval Templates) is met (e.g. a
grand total of 50,000 TRY or more); if there is no template or it is inactive, the order is finalized directly.
Stages are asked in order; the **Onaylar** (Approvals) section shows the round, stage, decision maker, time and note.
Each submission opens a new round; earlier rounds remain as a trail.
- The **Onaya Gönder** (Submit for Approval) window: "Belge onaya gönderildiği anda kilitlenir: onay sonuçlanana
kadar düzenlenemez. Reddedilirse taslağa döner ve yeniden düzenlenebilir." (The document is locked as soon as it
is submitted for approval: it cannot be edited until the approval is concluded. If rejected, it returns to draft
and can be edited again.)
- **Onayla** (Approve): optional **Not** (Note); "Başka bekleyen adım yoksa sipariş kesinleşir." (If there is no
other pending step, the order is finalized.)
- **Reddet** (Reject): a reason is mandatory ("Neyin düzeltilmesi gerekiyor?" (What needs to be corrected?)); the
order returns to draft.
- The person who submitted it cannot approve their own order.

1. Status: Partially Received
2. Post Goods Receipt — for the rest
3. Close Order — rest not expected
4. Received quantity
5. Remaining quantity
### Closing and cancellation {#kapatma-ve-iptal}

1. Close reason (required)
2. Close Order
- **Siparişi Kapat** (Close Order) only in **Kısmi Teslim** (Partially Received): the supplier will not deliver the
remainder. **Kapatma Nedeni** (Closing Reason) is mandatory. No record is deleted; the received part remains valid
and the remainder is no longer expected.
- **Siparişi İptal Et** (Cancel Order) in Taslak (Draft), Onay Bekliyor (Pending Approval) and Sipariş Verildi
(Ordered): **İptal Nedeni** (Cancellation Reason) is mandatory; it cannot be undone. An order with a received
quantity cannot be cancelled — it is closed.
### Rejection messages
| Message | Reason |
|---|---|
| Yalnız Taslak durumundaki satın alma siparişleri düzenlenebilir. (Only purchase orders in Draft status can be edited.) | Editing a finalized order. |
| Bu sipariş onay gerektiriyor — doğrudan kesinleştirilemez, onaya gönderin. (This order requires approval — it cannot be finalized directly; submit it for approval.) | An approval template matched. |
| Bu sipariş için eşleşen onay kuralı yok — doğrudan kesinleştirebilirsiniz. (There is no matching approval rule for this order — you can finalize it directly.) | Submission for approval was attempted but there is no template. |
| Seçilen cari kart tedarikçi olarak kullanılamaz (kayıt yok, pasif ya da tedarikçi rolü taşımıyor). (The selected business partner card cannot be used as a supplier (no record, inactive, or it does not have the supplier role).) | |
| 'X' satın alınabilir bir ürün değil — kart üzerinde "Satın alınabilir" işaretlenmemiş. ('X' is not a purchasable item — "Purchasable" is not selected on the card.) | |
| 'X' pasif — pasif stok kartı sipariş edilemez. ('X' is inactive — an inactive stock card cannot be ordered.) | |
| 'X' için kaynak listesi zorunlu — tedarikçi listede yok (Kaynak Bulma › Tedarikçi Fiyatları'nda tanımlayın). (A source list is mandatory for 'X' — the supplier is not in the list (define it in Sourcing › Supplier Prices).) | The item's source list is mandatory. |
| 'X' bu tedarikçiden sipariş edilemez — kaynak listesinde bloke (…). ('X' cannot be ordered from this supplier — blocked in the source list (…).) | The supplier is blocked for this item. |
| Teslim deposu bulunamadı ya da pasif. (The delivery warehouse was not found or is inactive.) | |
| Hiç teslim alınmamış sipariş kapatılmaz; tedarikçiyle ilişki gerçekleşmediyse siparişi iptal edin. (An order with nothing received cannot be closed; if the transaction with the supplier did not take place, cancel the order.) | Closing in Sipariş Verildi (Ordered). |
| Bu satın alma siparişi tamamen teslim alınmış; kapatılacak kalan yok. (This purchase order has been fully received; there is no remainder to close.) | |
| Yalnız Taslak, Onay Bekliyor ve Sipariş Verildi durumundaki satın alma siparişleri iptal edilebilir. (Only purchase orders in Draft, Pending Approval and Ordered status can be cancelled.) | |
| İptal nedeni zorunludur. · Kapatma nedeni zorunludur. · Red gerekçesi zorunludur. (The cancellation reason is mandatory. · The closing reason is mandatory. · The rejection reason is mandatory.) | |
| Bu satın alma siparişi bu sırada başka bir kullanıcı tarafından değiştirildi. Sayfayı yenileyip tekrar deneyin. (This purchase order was changed by another user in the meantime. Refresh the page and try again.) | Concurrent change. |
## Related
- [Create an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparis-olusturma) ·
[Finalize an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme) ·
[Send an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-gonderme)
- [Change an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-degistirme) ·
[Close or cancel an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kapatma-iptal)
- [Goods receipts](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/mal-kabulleri) · [Service receipts](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/hizmet-kabulleri)
---
# Create an order from a requisition
> Assign suppliers to submitted requisition lines on the Requisition Source Assignment screen and create a draft purchase order.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/talepten-siparis-olusturma
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Talep Yönetimi › Talep Kaynak Ataması (Procurement › Requisition Management › Requisition Source Assignment)
- **Screen route:** `/erp/procurement/requisition-sourcing`
- **Required permission:** `erp-procurement-orders.create`, `erp-procurement-sourcing.view`
- **Prerequisites:**
- The requisition is in **Talep Edildi** (Requested) or **Kısmen Siparişte** (Partially Ordered) status and has an open quantity.
- The item has at least one supplier price record (otherwise the price in the draft is zero).
Requisition Source Assignment quickly converts requisitions that do not need quotations (the agreed price is known)
into orders. The price comes from **Tedarikçi Fiyatları** (Supplier Prices) in the line's unit.
## Steps
1. Open the **Satın Alma › Talep Yönetimi › Talep Kaynak Ataması** (Procurement › Requisition Management › Requisition Source Assignment) screen. The open requisition lines are listed.
2. Select the check box of the line to be ordered (e.g. **TLP-2026-000006 / 10 satırını seç** (select line TLP-2026-000006 / 10)).
3. Check the proposed supplier in the **Kaynak** (Source) column; if needed, select another supplier from the list and correct the **Miktar** (Quantity) (it cannot exceed the open quantity).
4. Check the **Sipariş Tarihi** (Order Date) and click **Taslak Sipariş Oluştur** (Create Draft Order).

1. Select the requisition line
2. Source — proposed supplier and price
3. Date of the resulting order
4. Create Draft Order — selected lines
5. Automatic Order — all single-source lines
5. In the **Oluşturulan taslak siparişler** (Draft orders created) list, click the order number (SA-…) to open the draft; check the price, delivery warehouse and dates, and [finalize](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme) it.
**Result:** One **Taslak** (Draft) order is created per supplier and currency; the source requisitions are written in the note field. The requisition's **Siparişte** (Ordered) quantity advances **when the order is finalized**.
## What you need to know
- **Otomatik Sipariş** (Automatic Order), without a selection, converts all open lines whose source resolves to a
single supplier (quota, main supplier or single source) into draft orders; lines with multiple sources or no source
wait and are counted with their reason. Each supplier is processed separately: a rejection for one does not stop the
others.
- A line that goes into a draft drops out of the list; the same line does not go into a draft a second time.
- At most 500 lines can be assigned at a time ("Tek seferde en çok 500 talep satırı." (At most 500 requisition lines
at a time.)).
- Rejection messages: "Sipariş oluşturulacak en az bir talep satırı seçin." (Select at least one requisition line to
create an order.), "TLP-… siparişe açık değil." (TLP-… is not open for ordering.), "TLP-…/10: miktar açık miktarı
(…) aşamaz." (TLP-…/10: the quantity cannot exceed the open quantity (…).)
- If you need to obtain prices, open a [request for quotation](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklif-istegi-olusturma) instead
of using this screen.
## Related
- [Purchase requisitions screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-talepleri#talep-kaynak-ataması)
- [Supplier prices and source list](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikci-fiyatlari)
---
# Goods receipts
> Goods receipt list, Due for Receipt, goods receipt entry (full, partial, split allocation), inbound delivery, quality quarantine, stock effect and rejection messages.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/mal-kabulleri
A goods receipt is the posting of goods received from the supplier against the order; **the stock receipt is posted
at the same time**. The goods of one order can arrive in several goods receipts (partial). Once saved, a goods
receipt document **cannot be changed**; an error or a return is corrected with **Mal Kabul Geri Alma** (Goods
Receipt Reversal) ([Return management](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/iade-yonetimi)).
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Mal ve Hizmet Kabulü › Mal Kabulleri · Teslim Alınacaklar · Mal Kabulü Oluştur (Procurement › Goods and Service Receipt › Goods Receipts · Due for Receipt · Create Goods Receipt)
- **Screen route:** `/erp/procurement/receipts`
- **Required permission:** `erp-procurement-receipts.view (liste, detay, Teslim Alınacaklar) · .create (mal kabul girişi)`
## Goods receipt list

1. New Goods Receipt
2. Inbound delivery, if used
3. Supplier delivery note number
Columns: **Mal Kabul No** (Goods Receipt No, `MK-yyyy-nnnnnn`), **Sipariş No** (Order No), **Gelen Teslimat**
(Inbound Delivery; if received from a delivery), Tedarikçi (Supplier), **İrsaliye No** (Delivery Note No), **Mal
Kabul Tarihi** (Goods Receipt Date), Kalem (Items), Oluşturulma (Created). **Filters:** Ara (Search),
Başlangıç–Bitiş (Start–End), Tedarikçi (Supplier). **Mal Kabul Girişi** (Goods Receipt Entry) opens the form.
## Due for Receipt
**Satın Alma › Mal ve Hizmet Kabulü › Teslim Alınacaklar** (Procurement › Goods and Service Receipt › Due for
Receipt) (`/erp/procurement/receipts/expected`)

1. Open order without inbound delivery
2. Overdue only
3. Create Goods Receipt — from the row
This is the work list of goods expected to arrive at the warehouse; it does not post a goods receipt document. There
are two types of lines:
- **Gelen teslimat** (Inbound delivery) — a delivery announced by the supplier or opened when the order is
finalized (`GLT-…`),
- **Sipariş (teslimatsız)** (Order (without delivery)) — the remainder of an open order that has no delivery (the
warehouse shows "Kabulde seçilir" (Selected at receipt)).
Columns: Belge (Document), Sipariş (Order), Tedarikçi (Supplier), Depo (Warehouse), Beklenen (Expected; date),
Kalemler (Items), İrsaliye (Delivery Note). Filters: Ara (Search), **Kaynak** (Source), Tedarikçi (Supplier),
**Yalnız gecikenler** (Overdue only), **Yalnız benim depolarım** (My warehouses only; the warehouses I am
responsible for). **Mal Kabulü Oluştur** (Create Goods Receipt) on a line opens the goods receipt form filled in
with that delivery or order.
## Goods receipt entry
**Satın Alma › Mal ve Hizmet Kabulü › Mal Kabulü Oluştur** (Procurement › Goods and Service Receipt › Create Goods
Receipt) (`/erp/procurement/receipts/new`). **Mal Kabul Gir** (Enter Goods Receipt) in the order details opens the
form with the order already selected (`?orderId=`).

1. Purchase order
2. Delivery note no. — unique per supplier
3. Remaining order quantity
4. Received quantity — may be partial
5. Warehouse and location
6. Save Goods Receipt — stock is posted
### Document information
| Field | Rule |
|---|---|
| **Satın Alma Siparişi** (Purchase Order) | Mandatory. Only orders in **Sipariş Verildi** (Ordered) and **Kısmi Teslim** (Partially Received) are listed. |
| **Mal Kabul Tarihi** (Goods Receipt Date) | Mandatory; today is proposed. Postings cannot be made to a closed period or (without permission) to a past date. |
| **Tedarikçi İrsaliye No** (Supplier Delivery Note No) | Optional; the same delivery note from the same supplier cannot be saved twice. |
| Not (Note) | Optional. |
| **Aynı İrsaliyedeki Diğer Sipariş** (Other Order on the Same Delivery Note) | With **Sipariş ekle…** (Add order…), other open orders of the same supplier in the same currency are added to the same goods receipt. |
### Order items and delivery allocations
The **Sipariş Kalemleri** (Order Items) table: Stok (Stock), Sipariş (Ordered), **Alınan** (Received), **Kalan**
(Remaining), Birim (Unit), **Takip** (Tracking; İzleme Yok (No Tracking) · Lot Takipli (Batch-Managed) · Seri No
Takipli (Serial-Managed)), **Kalite** (Quality; **Gerekli** (Required) on a card that requires quality inspection).
Quantities are tracked in the order unit.
- **Mal Kabul Ekle** (Add Goods Receipt) adds the item to **Teslim Tahsisleri** (Delivery Allocations); the quantity
is filled with the remaining quantity. **Tümünü Ekle (n)** (Add All (n)) adds all items.
- On each allocation: **Miktar** (Quantity; mandatory, greater than zero, cannot exceed the remaining quantity),
**Depo** (Warehouse; mandatory), **Lokasyon** (Storage Location; optional or mandatory depending on the warehouse
setting), for a batch-managed card the **batch number** (mandatory), production date, expiry date (SKT) and
supplier batch, for a serial-managed card the **serial numbers** (mandatory).
- **Depo (tümüne)** (Warehouse (for all)) selects the warehouse of all allocations together.
- **Splitting:** Reduce the quantity of the allocation; the item's **Mal Kabul Ekle** (Add Goods Receipt) button
becomes available again and a second allocation is added for the remainder (e.g. 1,150 units to AMBALAJ, 50 units
to the IBC-ALANI storage location). A second allocation cannot be entered for the same order item, warehouse,
storage location and batch.
- **Sipariş Birim Fiyatı** (Order Unit Price) is for information: "Sipariş kaleminden alınır — gerçekleşen maliyet
değildir." (Taken from the order item — it is not the actual cost.)
**Partial goods receipt:** Enter part of the remaining quantity and save. The order becomes **Kısmi Teslim**
(Partially Received); the remainder is received with the next goods receipt or the order is **closed**.
**Mal Kabulü Kaydet** (Save Goods Receipt) saves the document with an `MK-yyyy-nnnnnn` number; the result panel shows
the new status of the order (e.g. "Sipariş SA-2026-000002 — Kısmi Teslim" (Order SA-2026-000002 — Partially
Received)) and the **Yeni Mal Kabul** (New Goods Receipt), **Mal Kabulü Görüntüle** (View Goods Receipt), **Mal
Kabullerine Dön** (Back to Goods Receipts) and **Siparişi Görüntüle** (View Order) buttons.
### Stock and planning effect
- For each allocation, a receipt movement of type **Mal Kabul** (Goods Receipt) is posted (source "Mal Kabul #n" in
Stok Yönetimi › Mal Hareketleri › Stok Hareketleri (Inventory Management › Goods Movements › Stock Movements)).
Stock increases in the selected warehouse, storage location and batch, in the **Sıfır** (New) stock status.
- The stock value increases by the order's **discounted net** unit price (200 × 1,115.50 TRY in the example).
- The order's Received quantity increases and its remainder decreases; in the Belge Akışı (Document Flow) of the
requisition linked to the order, "teslim x/y" (delivered x/y) advances. In Malzeme İhtiyaçları (Material
Requirements), the order's in-transit quantity decreases.
- The **Son Alış** (Last Purchase) information of the item in **Tedarikçi Fiyatları** (Supplier Prices) is updated.
### Item requiring quality inspection
If there is an item showing **Gerekli** (Required) in the Quality column, the form displays a warning: "Bu siparişte
kalite kontrolü şartlı ürün var. Malı hangi depoya alırsanız alın karantina durumuna yazılır; muayeneden sonra
Kalite Kontrol ekranından serbest bırakılana kadar sevk, sarf ve transfer yollarına kapalı kalır." (This order
contains an item that requires quality inspection. Whichever warehouse you receive the goods into, they are posted
to quarantine status; after inspection they remain blocked for shipment, consumption and transfer until released
from the Quality Inspection screen.) The decision is made on the **Stok Yönetimi › Kalite Kontrol** (Inventory
Management › Quality Inspection) screen. Such an item cannot be received directly into a project.
## Inbound delivery {#gelen-teslimat}
If a **Teslim Deposu** (Delivery Warehouse) is selected on the order, a delivery (`GLT-…`, status **Bekleniyor**
(Expected)) is opened in **Lojistik Yönetimi › Gelen Teslimat › Gelen Teslimatlar** (Logistics Management › Inbound
Delivery › Inbound Deliveries) when the order is finalized. The goods receipt from the delivery is made from the
**Teslim Alınacaklar** (Due for Receipt) line or with **Mal Kabulü Oluştur** (Create Goods Receipt) in the delivery
details; the form says "Gelen teslimat GLT-… — kalemler teslimatın kalanıyla dolduruldu; kabul teslimata işlenir."
(Inbound delivery GLT-… — the items were filled with the delivery's remainder; the receipt is posted to the
delivery.) and the warehouse is locked to the delivery's warehouse. **Teslimat bağını kaldır** (Remove delivery
link) turns the receipt back into a plain order receipt.
- In a receipt from a delivery, the quantity is filled with the **delivery's** remainder; if the order's remainder is
smaller, correct the quantity (the server rejects exceeding the order's remainder).
- A goods receipt made directly from the order **does not reduce the delivery's open quantity**. If you did not use
the delivery, close it in Gelen Teslimatlar (Inbound Deliveries) with **İptal Et** (Cancel; if nothing has been
received against it) or **Kalanı Kapat** (Close Remainder).
- If the warehouse setting **Mal kabul yalnız gelen teslimattan** (Goods receipt only from inbound delivery) is on, a
receipt directly from the order is rejected.
## Goods receipt details

1. Document cannot be changed
2. Supplier return request
3. Split allocations — warehouse, location
4. Source order
Belge Bilgileri (Document Information; goods receipt number, order number, date, supplier, tax number / tax office,
delivery note, currency, created by, note), the current status of the order and **Teslim Alınan Kalemler** (Received
Items; stock, quantity, unit, warehouse, storage location, batch, serial numbers, production date, expiry date,
supplier batch, order unit price, status).
Actions: **Çıktı** (Print), **İthalat Masrafı Ekle** (Add Import Cost; Finance — outside this guide), **Tedarikçi
İade Talebi** (Supplier Return Request), **Siparişi Görüntüle** (View Order).
## Rejection messages
| Message | Reason |
|---|---|
| Taslak satın alma siparişi için mal kabul yapılamaz. Siparişi önce kesinleştirin. (A goods receipt is not possible for a draft purchase order. Finalize the order first.) | |
| Bu satın alma siparişi tamamen teslim alınmış. (This purchase order has been fully received.) | |
| İptal edilmiş satın alma siparişi için mal kabul yapılamaz. · Kapatılmış satın alma siparişi için mal kabul yapılamaz. (A goods receipt is not possible for a cancelled purchase order. · A goods receipt is not possible for a closed purchase order.) | |
| 'HAM-0001' için kalan miktar aşılıyor. Kalan: 80, girilen: 200. (The remaining quantity for 'HAM-0001' is exceeded. Remaining: 80, entered: 200.) | The quantity is greater than the order's remainder. |
| 'EGE-2026-4471' irsaliye numarası bu tedarikçi için zaten kaydedilmiş. (Delivery note number 'EGE-2026-4471' has already been saved for this supplier.) | Duplicate delivery note. |
| Aynı sipariş kalemi, depo, lokasyon ve lot için birden fazla mal kabul satırı girilemez. (More than one goods receipt line cannot be entered for the same order item, warehouse, storage location and batch.) | |
| 'X' lot takipli — lot numarası zorunludur. · 'X' seri takipli — seri numarası zorunludur. ('X' is batch-managed — the batch number is mandatory. · 'X' is serial-managed — the serial number is mandatory.) | |
| 'X' hizmet kartı — stok girişi yapılamaz. ('X' is a service card — a stock receipt is not possible.) | Service line; use a service receipt. |
| Seçilen lokasyon 'HAMMADDE' deposuna ait değil ya da pasif. (The selected storage location does not belong to the 'HAMMADDE' warehouse or is inactive.) | |
| 'HAMMADDE' deposuna mal kabul gelen teslimatla yapılır — Gelen Teslimatlar'dan teslimatı açıp mal kabule oradan geçin. (Goods receipts into the 'HAMMADDE' warehouse are made with an inbound delivery — open the delivery from Inbound Deliveries and proceed to the goods receipt from there.) | Warehouse setting "Mal kabul yalnız gelen teslimattan" (Goods receipt only from inbound delivery). |
| GLT-… gelen teslimatı 'HAMMADDE' deposuna — mal kabul satırları bu depoya yazılır. (Inbound delivery GLT-… is to the 'HAMMADDE' warehouse — goods receipt lines are posted to this warehouse.) | A different warehouse was selected in a receipt from a delivery. |
| X başka bir tedarikçinin siparişi — tek mal kabuldeki siparişler aynı tedarikçiye ait olmalı. (X is an order of another supplier — the orders in a single goods receipt must belong to the same supplier.) | A different supplier was added with Sipariş ekle… (Add order…). |
| Belge tarihi (…) bugünden (…) eski olamaz. Geçmiş tarihli kayıt yalnız 'Geçmiş Tarihli Kayıt' yetkisi olan kullanıcıya açık. (The document date (…) cannot be earlier than today (…). Back-dated posting is available only to users with the 'Geçmiş Tarihli Kayıt' (Back-Dated Posting) permission.) | Past date. |
| … tarihi kapalı dönemde: kayıtlar … dahil kapatıldı. … (The date … is in a closed period: postings are closed up to and including …. …) | Closed posting period. |
## Related
- [Create a goods receipt](https://erpdocs.corexlogic.com/en/satin-alma/islemler/mal-kabulu-olusturma)
- [Return to supplier](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikciye-iade)
- [Purchase orders](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
---
# Create a request for quotation
> Prepare and send a request for quotation to ask several suppliers about the items — from a requisition or manually.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklif-istegi-olusturma
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Kaynak Bulma › Teklif İstekleri › Yeni Teklif İsteği (Procurement › Sourcing › Requests for Quotation › New Request for Quotation)
- **Screen route:** `/erp/procurement/rfqs/new`
- **Required permission:** `erp-procurement-rfqs.create`, `erp-procurement-rfqs.edit (göndermek için)`
- **Prerequisites:**
- The suppliers to be invited are active and have the supplier role.
- If it is opened from a requisition, the requisition is in **Talep Edildi** (Requested) or **Kısmen Siparişte** (Partially Ordered) and has a remainder.
A request for quotation makes no commitment to the supplier; it creates no stock or financial movement. After it is
sent, the items do not change so that all suppliers quote on the same list; adding invitees is allowed.
## Steps
1. If you are opening it from a requisition, click **Teklif İsteği Oluştur** (Create Request for Quotation) in the requisition details; the form opens with the requisition's remaining lines. To open it manually, click **Yeni Teklif İsteği** (New Request for Quotation) in **Satın Alma › Kaynak Bulma › Teklif İstekleri** (Procurement › Sourcing › Requests for Quotation).
2. Click **Tedarikçi Seç** (Select Supplier), click the **+** button on the row of each supplier to be invited (e.g. **T-0001 ekle** (add T-0001), **T-0002 ekle** (add T-0002)) and close the window with **Davet et** (Invite).
3. Enter the **Son Teklif Tarihi** (Quotation Deadline; for information) and check the **Konu** (Subject; mandatory).
4. Select the **Para Birimi** (Currency); all quotations are entered in this currency.
5. If you opened it manually, add the items: select a requisition from the **Kalem ekle:** (Add item:) list and click **Ekle** (Add), or click **Listeden Seç** (Select from List). Select the quantity cell and start typing or double-click it; confirm with `Enter`.
6. Click **Kaydet ve Gönder** (Save and Send). To keep it without sending, use **Taslak Kaydet** (Save Draft).

1. Select Suppliers — invitees
2. Quote deadline — informational
3. Subject (required)
4. Currency — all quotes in this currency
5. Line from the requisition; quantity = remainder
6. Save and Send
**Result:** The request for quotation is saved with the number **TKL-yyyy-nnnnnn** in **Teklif Bekleniyor** (Awaiting Quotations) status; the item list can no longer change. To forward it to the supplier, use **Çıktı** (Output) on the invitee card. Next step: [Compare quotations](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklifleri-karsilastirma).
## What you need to know
- A draft can be saved without invitees; to send it, at least one supplier and one item are needed ("Teklif isteği en
az bir tedarikçiye gönderilmelidir." (The request for quotation must be sent to at least one supplier.)).
- The quotation deadline cannot be before the request date; a quotation that arrives after the date has passed can
still be entered.
- The quantity of a line from a requisition is the requisition's remainder; by reducing it, you can ask about part of
the requisition.
- A draft request for quotation is completed in the details with **Düzenle** (Edit) and **Tedarikçilere Gönder**
(Send to Suppliers).
- When a request for quotation is opened for a submitted requisition, the **Teklifte** (In RFQ) mark is shown in the
requisition list and details.
## Related
- [Requests for quotation screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/teklif-istekleri)
---
# Service receipts
> Receipt of non-stock order items (freight, maintenance, consulting) — list, form, details and rules.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/hizmet-kabulleri
A service receipt is the record that a non-stock order item (freight, maintenance, subcontracted labor,
consulting…) **has been received**. The type of the order line comes from the item card: a non-stock card becomes a
**Hizmet** (Service) line and is closed only with a service receipt. **No stock movement is created.**
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Mal ve Hizmet Kabulü › Hizmet Kabulleri · Hizmet Kabulü Oluştur (Procurement › Goods and Service Receipt › Service Receipts · Create Service Receipt)
- **Screen route:** `/erp/procurement/service-acceptances`
- **Required permission:** `erp-procurement-service-acceptances.view (görme) · .create (hizmet kabulü)`
## Service receipt list
Columns: **Hizmet Kabul No** (Service Receipt No, `HK-yyyy-nnnnnn`), Sipariş No (Order No), Tedarikçi (Supplier),
**Kabul Tarihi** (Receipt Date), **Tedarikçi Belge No** (Supplier Document No), Kalem (Items), Oluşturulma
(Created). Filters: Ara (Search), Başlangıç–Bitiş (Start–End). The **Hizmet Kabulü** (Service Receipt) button opens
the form.
## Service receipt form

1. Open orders with service lines only
2. Acceptance date
3. Supplier document no. — unique
4. Save Service Entry — no stock movement
| Field | Rule |
|---|---|
| **Satın Alma Siparişi** (Purchase Order) | Mandatory. Only open orders (Sipariş Verildi (Ordered), Kısmi Teslim (Partially Received)) that carry a service item are listed. |
| **Kabul Tarihi** (Receipt Date) | Mandatory; the posting period rules are the same as for goods receipts. |
| **Tedarikçi Belge No** (Supplier Document No) | Optional; the same number cannot be posted twice for the same supplier. |
| Not (Note) | Optional. |
| **Hizmet Kalemleri** (Service Items) | Listed once the order is selected: Ürün Kodu (Item Code), Ürün Tanımı (Item Description), Sipariş (Ordered), Kabul Edilen (Received), Kalan (Remaining), Birim (Unit), Birim Fiyat (Unit Price) and **Kabul Miktarı** (Receipt Quantity). A quantity must be entered on at least one line; the quantity cannot exceed the remaining quantity. |
**Hizmet Kabulünü Kaydet** (Save Service Receipt) saves the document; the result panel shows "Stok defterine kayıt
oluşturulmadı — hizmet stoklanmaz." (No posting was created in the stock ledger — services are not stocked.) and
the current status of the order (**Teslim Alındı** (Received) if everything has been received).
## Service receipt details

1. Document cannot be changed
2. No stock effect
3. Source order
The document cannot be changed. It shows Belge Bilgileri (Document Information), **Kabul Edilen Hizmetler**
(Received Services; order item, item, quantity, unit, order unit price, VAT %) and **Ekler** (Attachments). Actions:
**Çıktı** (Print), **Siparişi Görüntüle** (View Order). An incorrect receipt is reversed with **Satın Alma › İade
Yönetimi › Hizmet Kabulünü Geri Al** (Procurement › Return Management › Reverse Service Receipt)
([Return management](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/iade-yonetimi#hizmet-kabul-geri-alma)).
## Rejection messages
| Message | Reason |
|---|---|
| Bu satın alma siparişinde hizmet kalemi yok. (This purchase order has no service item.) | An order with stock lines was selected. |
| 'X' stoklanabilir bir ürün — hizmet kabulü yapılamaz, mal kabul kullanın. ('X' is a stockable item — a service receipt is not possible; use a goods receipt.) | |
| 'X' için kalan miktar aşılıyor. Kalan: …, girilen: …. (The remaining quantity for 'X' is exceeded. Remaining: …, entered: ….) | |
| 'HHN-2026-0912' belge numarası bu tedarikçi için zaten kaydedilmiş. (Document number 'HHN-2026-0912' has already been posted for this supplier.) | Duplicate document number. |
| Hizmet kabulü en az bir kalem içermelidir. (A service receipt must contain at least one item.) | |
| Taslak satın alma siparişi için hizmet kabulü yapılamaz. Siparişi önce kesinleştirin. (A service receipt is not possible for a draft purchase order. Finalize the order first.) | |
## Related
- [Create a service receipt](https://erpdocs.corexlogic.com/en/satin-alma/islemler/hizmet-kabulu-olusturma)
- [Purchase orders](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
---
# Enter, compare and decide on quotations
> Enter the prices received from suppliers in the request for quotation, compare them, select the winner with a reason and create a draft order.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklifleri-karsilastirma
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Kaynak Bulma › Teklif İstekleri › teklif isteği detayı (Procurement › Sourcing › Requests for Quotation › request for quotation details)
- **Screen route:** `/erp/procurement/rfqs/{id}`
- **Required permission:** `erp-procurement-rfqs.edit`
- **Prerequisites:**
- The request for quotation is in **Teklif Bekleniyor** (Awaiting Quotations) or **Kısmen Karara Bağlandı** (Partially Decided) status.
- You have the supplier's price (e-mail, phone or a completed quotation form).
The comparison is not a separate screen; it is the request for quotation itself. The decision is per item: you can
award different items to different suppliers; items going to the same supplier are collected in a single order.
## Steps
1. Open the request for quotation. On the card of the supplier who quoted, click **Teklif Gir** (Enter Quotation).
2. For each item, enter the **Birim Fiyat** (Unit Price; without discount), the **İsk. %** (Disc. %) if any, and the **Termin (gün)** (Lead Time (days)): select the cell and start typing or double-click it. Leave an item that was not quoted empty.
3. In **Ticari Şartlar** (Commercial Terms), enter the quotation's **Geçerlilik tarihi** (Validity date) and **Ödeme koşulu** (Payment terms), and click **Teklifi Kaydet** (Save Quotation).

1. Unit price (list price)
2. Discount %
3. Lead time (days)
4. Quote valid until
5. Payment terms — carried to the order
6. Save Quote
4. Repeat the same steps for the other suppliers. For a supplier who does not quote, click **Vermedi** (Declined).
5. Review the **Karşılaştırma** (Comparison) table: for each item, the best net price is colored and marked with ↓; **Son Alış** (Last Purchase) is the item's last goods receipt price.
6. In the item's **Karar** (Decision) cell, select the supplier from the **Kazanan seçin** (Select winner) list, or click **En Uygun Teklifleri Seç** (Select Best Quotations).
7. For each selected item, enter the reason for the selection in the **Gerekçe (zorunlu)** (Reason (mandatory)) field.
8. Click **Karara Bağla (1)** (Decide (1)).

1. Enter Quote — per supplier
2. Best net price highlighted
3. Winner — supplier per line
4. Selection reason required
5. Selects the best quotes
6. Award — draft order is created
**Result:** One **Taslak** (Draft) purchase order (SA-…) is created per winning supplier; the winning price is written to **Tedarikçi Fiyatları** (Supplier Prices) as the agreed price. Open the order and [finalize it](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme).
## What you need to know
- Deciding does not open a confirmation window; the decision is saved and cannot be undone. The quotation of a
supplier that has a decided item cannot be withdrawn.
- The price of the resulting order is carried as **list price + quotation discount**, the expected delivery is the
**longest** lead time of the winning quotations, the payment terms come from the quotation, and the payment term and
Incoterms come from the supplier card. The VAT rate is the default rate. The order's responsible person is the
person who made the decision.
- A supplier that has not quoted cannot be selected as the winner ("'T-0002' 10. kaleme fiyat vermedi — karara
bağlanamaz." ('T-0002' did not quote item 10 — it cannot be decided.)).
- Only users who can view the purchase price see the amounts.
- Savings after the decision are tracked in the **Analitik › Teklif Tasarrufu** (Analytics › Quotation Savings)
report.
## Related
- [Requests for quotation screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/teklif-istekleri)
- [From requisition to goods receipt process](https://erpdocs.corexlogic.com/en/surecler/talepten-mal-kabule)
---
# Return management
> Return to supplier — return request and its approval, goods receipt reversal (return to supplier), service receipt reversal; statuses, stock effect and rules.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/iade-yonetimi
A return to the supplier has two steps: an optional **supplier return request** (the decision made before the goods
are sent) and the **goods receipt reversal** that reduces the stock. A reversal can also be made without a request
(to correct an incorrectly posted goods receipt). The return invoice belongs to Finance and is not covered in this
guide.
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › İade Yönetimi › Tedarikçi İade Talepleri · Mal Kabul Geri Almaları · Mal Kabulünü Geri Al · Hizmet Kabul Geri Almaları · Hizmet Kabulünü Geri Al (Procurement › Return Management › Supplier Return Requests · Goods Receipt Reversals · Reverse Goods Receipt · Service Receipt Reversals · Reverse Service Receipt)
- **Screen route:** `/erp/procurement/return-requests`
- **Required permission:** `erp-procurement-return-requests.view · .create (talep açma, iptal, kapatma) · .approve (onay, red)`, `erp-procurement-receipt-reversals.view · .create (mal kabul geri alma, talepten iade)`, `erp-procurement-service-acceptance-reversals.view · .create`
## Supplier return requests

1. Return reason (required)
2. The whole line is returned
3. Requester cannot approve
4. Open Request — stock unchanged
A request is opened with the **Tedarikçi İade Talebi** (Supplier Return Request) button **in the goods receipt
details** (`/erp/procurement/receipts/{id}/return-requests/new`). List: **Satın Alma › İade Yönetimi › Tedarikçi
İade Talepleri** (Procurement › Return Management › Supplier Return Requests) — columns Talep No (Request No,
`TIT-…`), Durum (Status), Talep Tarihi (Request Date), Tedarikçi (Supplier), Mal Kabul No (Goods Receipt No), İade
Nedeni (Return Reason), Açan (Opened By), Kalem (Items).
| Field | Rule |
|---|---|
| **Talep Tarihi** (Request Date) | Cannot be before the goods receipt date. The request does not post stock. |
| **İade Nedeni** (Return Reason) | Mandatory; it is proposed as the reason of the reversal document. |
| Açıklama (Description) | Optional. |
| **Tedarikçiye Dönecek Satırlar** (Lines to Return to Supplier) | At least one goods receipt line. **A line is returned as a whole** — the quantity cannot be changed. A line that has already been reversed cannot be selected. |
**Talebi Aç** (Open Request) saves the request with the status **Onay Bekliyor** (Pending Approval). **The person
who opens the request cannot approve it** — another authorized person (with the `approve` permission) makes the
decision; the opener's screen shows "Kendi açtığınız talebi onaylayamazsınız; kararı başka bir yetkili verir." (You
cannot approve a request you opened yourself; another authorized person makes the decision.)

1. Approve — someone other than the requester
2. Reject — reason required
3. Requested by
### Statuses and actions
| Status | Meaning | Actions |
|---|---|---|
| **Onay Bekliyor** (Pending Approval) | Awaiting a decision. | **Onayla** (Approve; an `approve` holder other than the opener) · **Reddet** (Reject; Red gerekçesi (rejection reason) mandatory) · **İptal Et** (Cancel; İptal gerekçesi (cancellation reason) mandatory, `create`) |
| **Onaylandı** (Approved) | A return can be posted from the request. | **Tedarikçiye İade Et** (Return to Supplier; `erp-procurement-receipt-reversals.create`) · **Kapat** (Close; the return of the remaining lines is no longer expected; reason mandatory) |
| **Kapandı** (Closed) | All lines were returned or the remainder was dropped. Terminal. | — |
| **Reddedildi** (Rejected) | Rejected with a reason. Terminal. | — |
| **İptal Edildi** (Cancelled) | Withdrawn before a decision was made. Terminal. | — |
The line table shows **İade Edilen** (Returned) and **Kalan** (Remaining); the **Talepten Yazılan İadeler**
(Returns Posted from the Request) section lists the reversal documents posted from this request. When the last line
is returned, the request becomes **Kapandı** (Closed) automatically.

1. Status: Closed — all lines returned
2. Decided by
3. Returned quantity
4. Reversal written from the request
## Goods receipt reversal
**Satın Alma › İade Yönetimi › Mal Kabulünü Geri Al** (Procurement › Return Management › Reverse Goods Receipt)
(`/erp/procurement/receipt-reversals/new`). From an approved request, **Tedarikçiye İade Et** (Return to Supplier)
opens the form with the request's goods receipt and lines (`?requestId=`).

1. Receipt to reverse
2. Reason (required)
3. Checked: re-expected; cleared: order closes
4. Whole line is reversed
5. Save Reversal — reverse stock posting
| Field | Rule |
|---|---|
| **Mal Kabul** (Goods Receipt) | Mandatory. Only documents with at least one line not yet reversed are listed; search by goods receipt number, order number, supplier or delivery note. |
| **Geri Alma Tarihi** (Reversal Date) | Mandatory; the posting period rules apply. |
| **Gerekçe** (Reason) | Mandatory (when opened from a request, the request's return reason is filled in). |
| **Siparişi yeniden aç** (Reopen order) | Selected by default: the reversed quantity is expected again and counted as in transit in Malzeme İhtiyaçları (Material Requirements). If cleared: "Mal iade edildi, yenisi gelmeyecek: sipariş kapanır, kalan yoldaki sayılmaz." (The goods were returned and no replacement will come: the order is closed and the remainder is not counted as in transit.) |
| Not (Note) | Optional. |
| **Geri Alınacak Kalemler** (Items to Reverse) | Select the line; **the quantity cannot be changed**. When opened from a request, only the request's lines can be selected. |
> **No partial reversal**
"Mal kabul satırları tamamen geri alınır. Kısmi geri alma bu sürümde desteklenmiyor." (Goods receipt lines are
reversed in full. Partial reversal is not supported in this version.) If you are going to return part of a line,
enter that quantity as a **separate allocation** at the goods receipt (e.g. the 50 damaged units to a separate
storage location). If a wrong quantity was entered, reverse the line in full and create a new goods receipt with the
correct quantity.
**Geri Almayı Kaydet** (Save Reversal) saves the `MKG-yyyy-nnnnnn` document. Effect:
- For each line, an issue movement of type **Giriş Geri Alma** (Receipt Reversal): stock is reduced from the goods
receipt's warehouse, storage location and batch.
- The order's Received quantity is rolled back: if **Siparişi yeniden aç** (Reopen order) is selected, the order
becomes **Kısmi Teslim** (Partially Received) (or Sipariş Verildi (Ordered)) and the remainder is expected again;
if it is cleared, the order becomes **Kapatıldı** (Closed).
- If posted from a request, the request's Returned quantity increases.

1. Reason
2. Reversed receipt line
3. Source receipt
The reversal details cannot be changed: Belge Bilgileri (Document Information; reversal number, goods receipt number,
order number, supplier, date, reason), **Geri Alınan Kalemler** (Reversed Items; with Mal Kabul Satırı (Goods
Receipt Line)) and the **Mal Kabulü Görüntüle** (View Goods Receipt) and **Siparişi Görüntüle** (View Order)
buttons. The list **Mal Kabul Geri Almaları** (Goods Receipt Reversals): Geri Alma No (Reversal No), Mal Kabul No
(Goods Receipt No), Sipariş No (Order No), Tedarikçi (Supplier), Geri Alma Tarihi (Reversal Date), Gerekçe
(Reason), Kalem (Items), Oluşturulma (Created).
### Rejection messages
| Message | Reason |
|---|---|
| Kendi açtığınız tedarikçi iade talebini onaylayamazsınız. Kararı başka bir yetkili vermeli. (You cannot approve a supplier return request you opened yourself. Another authorized person must make the decision.) | Segregation of duties. |
| Tedarikçi iade talebi henüz onaylanmadı; onaysız talepten iade yazılamaz. (The supplier return request has not been approved yet; a return cannot be posted from an unapproved request.) | |
| Tedarikçi iade talebi kapalı; bu talepten iade yazılamaz. (The supplier return request is closed; a return cannot be posted from this request.) | |
| Geri alınan satır talepte yok; talepten yazılan iade yalnız talebin satırlarını içerir. (The reversed line is not in the request; a return posted from a request contains only the request's lines.) | |
| Bu mal kabul satırı daha önce geri alınmış. (This goods receipt line has already been reversed.) | |
| 10. kabul satırı daha önce geri alınmış — talebe giremez. (Receipt line 10 has already been reversed — it cannot be added to the request.) | |
| Talep tarihi mal kabul tarihinden önce olamaz. (The request date cannot be before the goods receipt date.) | |
| Yalnız karar bekleyen talep iptal edilebilir; onaylanmış talep kapatılır. (Only a request awaiting a decision can be cancelled; an approved request is closed.) | |
| Geri alma gerekçesi zorunludur. · İade nedeni zorunludur. (The reversal reason is mandatory. · The return reason is mandatory.) | |
| … fason kabulü — geri alınamaz. Bileşenler fasoncuda tüketildi; hatalı ürünü tedarikçiye iade etmek için fasona malzeme sevki kullanın. (… subcontracting receipt — cannot be reversed. The components were consumed at the subcontractor; to return a defective product to the supplier, use a material shipment to the subcontractor.) | Subcontracting line. |
## Service receipt reversal {#hizmet-kabul-geri-alma}
**Satın Alma › İade Yönetimi › Hizmet Kabulünü Geri Al** (Procurement › Return Management › Reverse Service Receipt)
(`/erp/procurement/service-acceptance-reversals/new`): "Kabul belgesi silinmez — ters kayıt oluşur ve siparişin
kabul miktarı geri sarılır." (The receipt document is not deleted — a reverse posting is created and the order's
received quantity is rolled back.) Fields: **Hizmet Kabulü** (Service Receipt; mandatory; documents that have a line
not yet reversed), **Geri Alma Tarihi** (Reversal Date), **Gerekçe** (Reason; mandatory), **Siparişi yeniden aç**
(Reopen order; "Geri alınan hizmet yeniden beklenir; sipariş açık kalır." (The reversed service is expected again;
the order remains open.)), Not (Note) and **Geri Alınacak Satırlar** (Lines to Reverse). No stock movement is
created. List: **Hizmet Kabul Geri Almaları** (Service Receipt Reversals).
## Related
- [Return to supplier](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikciye-iade)
- [Goods receipts](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/mal-kabulleri)
---
# Create a purchase order
> Prepare a new purchase order for a supplier — supplier, delivery warehouse, items and price; the order is saved as a draft.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparis-olusturma
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Sipariş Yönetimi › Satın Alma Siparişi Oluştur (Procurement › Order Management › Create Purchase Order)
- **Screen route:** `/erp/procurement/orders/new`
- **Required permission:** `erp-procurement-orders.create`
- **Prerequisites:**
- The supplier is **Aktif** (Active) and the **Tedarikçi** (Supplier) role is selected on the business partner card.
- The items are active and "Satın alınabilir" (Purchasable); for a price proposal there is a record in Tedarikçi Fiyatları (Supplier Prices) (not mandatory).
- If the item's source list is mandatory, the supplier is in that list and not blocked.
A draft order is not a commercial commitment: it can be edited freely, it is not open for goods receipt and it is not
included in planning. Orders that come from a quotation or a requisition are also created as drafts and are finalized
the same way.
## Steps
1. Open the **Satın Alma › Sipariş Yönetimi › Satın Alma Siparişi Oluştur** (Procurement › Order Management › Create Purchase Order) screen. If you are in the list, click **Yeni Sipariş** (New Order).
2. In the **Tedarikçi** (Supplier) field, type the code or name and press `Enter`, select from the list and press `Enter` again. To search the list, click the magnifier or press `F4`.
3. Check the **Sipariş Tarihi** (Order Date). On the **Teslimat ve Ödeme** (Delivery and Payment) tab, enter the **Beklenen Teslim** (Expected Delivery).
4. If the warehouse the goods will go into is known, select the **Teslim Deposu** (Delivery Warehouse): when the order is finalized, an inbound delivery to that warehouse is opened. If needed, change the **Vade (Gün)** (Payment Term (Days)), **Ödeme Koşulu** (Payment Terms) and **Teslim Şekli** (Incoterms).
5. In the **Kalemler** (Items) table, type the code in the **Ürün** (Item) field of the first line and press `Enter`, select and press `Enter` again.
6. Type the **Miktar** (Quantity) and press `Tab`. The **Birim Fiyat** (Unit Price) is proposed from the supplier price; change it if needed, and use the **İskonto %** (Discount %) field for a discount.
7. Continue with the other items. Check the form with **Kontrol Et** (Validate), then click **Siparişi Oluştur** (Create Order).

1. Supplier — terms from the card
2. Delivery warehouse — opens an inbound delivery
3. Quantity
4. Unit price — proposed from supplier prices
5. Create Order — saves as draft
**Result:** The order is saved as **Taslak** (Draft) with the number **SA-yyyy-nnnnnn**. [Finalize it](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme) with **Siparişi Kesinleştir** (Finalize Order) in the success panel or from the details; if the amount matches an approval template, the panel tells you to submit it for approval.
## What you need to know
- **Kaydet** (Save; Ctrl+S) saves the form; **Siparişi Oluştur** (Create Order) saves it and
opens the success panel (**Siparişi Kesinleştir** (Finalize Order) · **Siparişi Görüntüle** (View Order) · **Yeni
Sipariş** (New Order)).
- If the currency differs from that of the supplier price, the price is not proposed; enter the price manually.
- A serial-managed item is ordered in the card's base unit; a quantity that does not match the unit's decimal
precision is rejected.
- A non-stock item (e.g. HIZ-0004 NAKLİYE HİZMETİ) becomes a **Hizmet** (Service) line and is closed with a service
receipt.
- To start from an existing order, use **Kopyala** (Copy) in the order details.
## Related
- [Purchase orders screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
- [Supplier prices](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikci-fiyatlari)
---
# Supplier prices and source list
> The item–supplier link (agreed price, lead time, minimum quantity, main supplier, block), price history, mandatory source list and quota arrangement.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikci-fiyatlari
**Tedarikçi Fiyatları** (Supplier Prices) is the master data that answers the question "at what price and in how
many days do we buy this item from this supplier". The agreed price in the record is brought to the order line as a
**proposal**; the user can change it. A decision made in a request for quotation automatically updates the winning
supplier's record. **Kaynak Listesi ve Kota** (Source List and Quota), on the other hand, determines per item which
suppliers it can be ordered from and how orders are split between suppliers.
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Kaynak Bulma › Tedarikçi Fiyatları · Kaynak Listesi ve Kota (Procurement › Sourcing › Supplier Prices · Source List and Quota)
- **Screen route:** `/erp/procurement/item-suppliers`
- **Required permission:** `erp-procurement-item-suppliers.view (görme, fiyat geçmişi) · .create · .edit · .delete · .import (Excel'den aktarım)`, `Kaynak Listesi ve Kota: erp-procurement-sourcing.view (görme) · .edit (kaydetme)`
## Supplier price list

1. New Record
2. Import — Excel
3. Agreed price — proposed on orders
4. Last purchase — from receipts
5. Preferred supplier
| Column | Description |
|---|---|
| Ürün · Tedarikçi (Item · Supplier) | Item code and name; supplier code and name. |
| Ted. Ürün Kodu (Supplier Item Code) | The supplier's own item code. |
| Anlaşmalı Fiyat (Agreed Price) | Price, currency and the unit of the price. |
| Son Alış (Last Purchase) | Price, date and document of the last goods receipt from this supplier. |
| Termin (Lead Time) | Days. |
| Asgari (Minimum) | Minimum order quantity. |
| Geçerlilik (Validity) | Start – end. |
| Ana (Main) | **Ana** (Main; main supplier) or **Bloke** (Blocked) badge. |
**Filters:** Ara (Search), **Yalnız ana tedarikçi** (Main supplier only; hide links that are not main), Kapsam
(Scope; item / supplier). The line's **İşlemler** (Actions) menu: **Fiyat Geçmişi** (Price History), **Düzenle**
(Edit), **Sil** (Delete). The toolbar has **Dışa Aktar** (Export), **İçe Aktar** (Import; bulk import with an Excel
workbook — the `item-suppliers` object of data import) and **Yeni Kayıt** (New Record).
## Record window

1. Agreed unit price
2. Price unit
3. Lead time (days)
4. One preferred supplier per item
5. Blocked — not ordered from
6. Save
| Field | Rule |
|---|---|
| **Ürün** (Item) | Mandatory; an active, purchasable card. |
| **Tedarikçi** (Supplier) | Mandatory; an active card with the supplier role. The same item–supplier pair cannot be defined twice ("Mevcut kaydı düzenleyin." (Edit the existing record.)). |
| Tedarikçi ürün kodu · tanımı (Supplier item code · description) | Optional. |
| **Anlaşmalı birim fiyat** (Agreed unit price) | Optional; cannot be negative. If a price is entered, **Fiyatın birimi** (Price unit) and **Para birimi** (Currency) are mandatory (and vice versa). |
| **Fiyatın birimi** (Price unit) | A unit defined in the card's unit conversions. If the order line is in another unit, the proposal is converted using the card's conversion. |
| Para birimi (Currency) | Three letters (TRY, USD, EUR). If the order's currency is different, the price is not proposed. |
| Asgari sipariş miktarı (Minimum order quantity) | Greater than zero. |
| Termin (gün) (Lead time (days)) | 0 or more. |
| Geçerlilik başlangıcı · bitişi (Valid from · to) | The start cannot be after the end. |
| Not (Note) | Optional. |
| **Ana tedarikçi** (Main supplier) | There is one main supplier per item; when selected, the previous main supplier is cleared automatically. |
| **Bloke kaynak** (Blocked source) | This item is not ordered from this supplier; the record and price history remain. A reason is mandatory. A main supplier cannot be blocked. |
**Fiyat Geçmişi** (Price History) shows the price evidence of the record with its document: goods receipt (`MK-…`,
actual purchase), service receipt (`HK-…`) and quotation decision (`TKL-…`, agreed price). The evidence of a reversed
receipt is marked and is not included in the last purchase calculation.
## Where the price comes from and where it goes
- **Order form:** When the item and supplier are selected, the agreed price is proposed as the **Birim Fiyat** (Unit
Price) in the line's unit.
- **Quotation decision:** The discounted net price and lead time of the winning quotation become the agreed price.
Example: after the TKL-2026-000001 decision, the HAM-0001 / T-0001 record was updated from 1,150.00 to
**1,115.50 TRY**, and the lead time to 5 days.
- **Goods receipt:** The **Son Alış** (Last Purchase) information is updated.
- **Talep Kaynak Ataması (Requisition Source Assignment):** The price of the draft order line comes from here.
## Source List and Quota
**Satın Alma › Kaynak Bulma › Kaynak Listesi ve Kota** (Procurement › Sourcing › Source List and Quota)
(`/erp/procurement/sourcing`)

1. Next source — server proposal
2. Source list required
3. Quota arrangement
4. Save
When an **Ürün** (Item) is selected:
- The **Kaynaklar** (Sources) table shows the item's supplier price records: Tedarikçi (Supplier), **Durum** (Status;
Ana (sabit kaynak) (Main (fixed source)) · Kullanılabilir (Available) · Bloke (Blocked)), Fiyat (Price), Termin
(Lead Time), Kota (Quota), Oran (Ratio). At the top is **Sıradaki kaynak** (Next source) — the supplier the system
proposes for the next order (quota, main supplier or single source).
- **Kaynak listesi zorunlu** (Source list mandatory): If selected, the item is ordered only from a supplier that has
a record and is not blocked; an order with a supplier without a record is rejected with the message "'X' için
kaynak listesi zorunlu — tedarikçi listede yok …" (A source list is mandatory for 'X' — the supplier is not in the
list …).
- **Kota düzenlemesi** (Quota arrangement): Valid from and to, a **Kota** (Quota; 0–100) per supplier and a
**Başlangıç miktarı** (Starting quantity). The next order goes to the smallest ratio: (allocation + starting
quantity) ÷ quota; the allocation is calculated in the base unit from orders submitted for approval or finalized
within the quota window. A supplier appears only once in the quota, and at least one quota must be greater than
zero.
**Kaydet** (Save) saves the rules (`erp-procurement-sourcing.edit`).
## Related
- [Define a supplier price](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikci-fiyati-tanimlama)
- [Requests for quotation](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/teklif-istekleri)
- [Purchase requisitions — Requisition Source Assignment](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-talepleri#talep-kaynak-ataması)
---
# Finalize and approve a purchase order
> Finalize a draft order; if an approval template matches, submit it for approval and, as the approver, approve or reject it.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Sipariş Yönetimi › Satın Alma Siparişleri › sipariş detayı (Procurement › Order Management › Purchase Orders › order details)
- **Screen route:** `/erp/procurement/orders/{id}`
- **Required permission:** `erp-procurement-orders.edit (kesinleştirme, onaya gönderme)`, `erp-procurement-orders.approve (onay, red)`
- **Prerequisites:**
- The order is in **Taslak** (Draft) status and has at least one item.
- The supplier and items are still active; if a delivery warehouse is selected, the warehouse is active.
Finalization is the moment the order is placed with the supplier. Approval steps in when the condition of an
**active** template for Satın Alma Siparişi (Purchase Order) in **Yönetim › Onay Süreci › Onay Şablonları**
(Administration › Approval Process › Approval Templates) is met (e.g. "Satın alma siparişi — 50.000 TRY ve üzeri"
(Purchase order — 50,000 TRY and above): stage 1 Satın Alma Müdürü (Purchasing Manager), stage 2 Yönetici
(Executive)). If there is no template or it is inactive, the order is finalized directly.
## Steps
1. Open the details of the draft order. If no approval is required, **Siparişi Kesinleştir** (Finalize Order) is shown in the toolbar; if approval is required, **Onaya Gönder** (Submit for Approval) is shown.

1. Edit — draft only
2. Confirm Order (Submit for Approval if a rule applies)
3. Cancel Order
4. Output — print, PDF, Excel, e-mail
2. Click **Siparişi Kesinleştir** (Finalize Order); in the window, check the order summary and click **Siparişi Kesinleştir** (Finalize Order) again.

1. Confirm Order
3. If approval is required, click **Onaya Gönder** (Submit for Approval) and confirm **Onaya Gönder** again in the window.
4. As the approver, open the order (**Yönetim › Onay Süreci › Onayımı Bekleyenler** (Administration › Approval Process › Awaiting My Approval) or the order list) and review the stage in the **Onaylar** (Approvals) section.

1. Status: Awaiting approval — locked
2. Approve — approver of the current stage
3. Reject — back to draft
4. Current stage
5. Stage 1 decision and note
5. Click **Onayla** (Approve), optionally fill in the **Not (isteğe bağlı)** (Note (optional)) field and click **Onayla** (Approve) in the window. If a correction is needed, click **Reddet** (Reject) and enter the reason.

1. Note — stored with the decision
2. Approve
**Result:** The order becomes **Sipariş Verildi** (Ordered): it is locked, opened for goods receipt, counted as in transit in Malzeme İhtiyaçları (Material Requirements), and the **Siparişte** (Ordered) quantity of the linked requisition advances. If there is a delivery warehouse, an inbound delivery is opened. Next step: [send the order to the supplier](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-gonderme) and [goods receipt](https://erpdocs.corexlogic.com/en/satin-alma/islemler/mal-kabulu-olusturma).
## What you need to know
- For an order that requires approval, the **Siparişi Kesinleştir** (Finalize Order) button is not shown at all; the
server also rejects it ("Bu sipariş onay gerektiriyor — doğrudan kesinleştirilemez, onaya gönderin." (This order
requires approval — it cannot be finalized directly; submit it for approval.)).
- An order in Onay Bekliyor (Pending Approval) is locked and no goods receipt is possible. A rejected order returns to
**Taslak** (Draft); when it is corrected and submitted again, a new approval round is opened and the old round
remains as a trail.
- The person who submitted the order for approval cannot approve it; the buttons are shown only to the approver (or
delegate) of the stage whose turn it is. If the same person holds the role of several stages, they approve each
stage separately.
- On a finalized order, supplier, item, quantity, unit, price and VAT cannot be changed; for changes, see
[Change an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-degistirme).
- On finalization, the source list, the item status and the units are checked again; example rejection: "'X' için
kaynak listesi zorunlu — tedarikçi listede yok (Kaynak Bulma › Tedarikçi Fiyatları'nda tanımlayın)." (A source list
is mandatory for 'X' — the supplier is not in the list (define it in Sourcing › Supplier Prices).)
## Related
- [Purchase orders screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri#onay)
---
# Outline agreements
> A periodic quantity, value or scheduling agreement with a supplier — types, statuses, release orders and rules.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/cerceve-sozlesmeler
An outline agreement is a price and a target agreed with a supplier for a specific period. Once the agreement is
**put into effect**, order lines are linked to the agreement (**release**); the line's price comes from the
agreement and the released quantity/amount counts towards the target.
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Kaynak Bulma › Çerçeve Sözleşmeler · Çerçeve Sözleşme Oluştur (Procurement › Sourcing › Outline Agreements · Create Outline Agreement)
- **Screen route:** `/erp/procurement/contracts`
- **Required permission:** `erp-procurement-contracts.view (görme) · .create (oluşturma) · .edit (düzenleme, yürürlüğe alma, kapatma, iptal, çağrı)`
## List
Columns: Sözleşme No (Agreement No), **Tür** (Type), Tedarikçi (Supplier), **Geçerlilik** (Validity), Hedef Tutar
(Target Amount), **Durum** (Status). Filters: Ara (Search), Durum (Status).
## Agreement form

1. Type — quantity, value or schedule
2. Supplier
3. Validity period
4. Add item
5. Save Draft
| Field | Rule |
|---|---|
| **Tür** (Type) | **Miktar Sözleşmesi** (Quantity Contract; target quantity per item) · **Değer Sözleşmesi** (Value Contract; target amount for the whole document) · **Teslimat Planı** (Scheduling Agreement; target quantity per item and dated delivery lines). |
| **Tedarikçi** (Supplier) | Mandatory. |
| **Para Birimi** (Currency) | Mandatory, three letters. |
| **Geçerlilik Başlangıcı** (Valid From) · **Bitiş** (Valid To) | Mandatory; the end cannot be before the start. |
| **Hedef Tutar (net)** (Target Amount (net)) | Value contract only; greater than zero. |
| Items | At least one item (**Ürün Seç** (Select Item) / Ürün ekle (Add item)): an active, purchasable card, unit, unit price (net, cannot be negative), target quantity (mandatory for quantity contracts and scheduling agreements; for the other, empty = unlimited). An item can appear only once with the same unit. |
| Note | Optional. |
**Taslağı Kaydet** (Save Draft) saves the agreement as **Taslak** (Draft).
## Statuses and actions
| Status | Meaning | Actions |
|---|---|---|
| **Taslak** (Draft) | Can be edited; no release is possible. | **Düzenle** (Edit) · **Yürürlüğe Al** (Put into Effect) · **İptal Et** (Cancel) |
| **Yürürlükte** (In Effect) | Release orders can be opened within the validity period. | **Kapat** (Close; reason mandatory) · **İptal Et** (Cancel; if never released) |
| **Kapandı** (Closed) | The remainder can no longer be released. | — |
| **İptal Edildi** (Cancelled) | A draft agreement, or one that was never released, was cancelled. | — |
If there is an order line linked to the agreement, cancellation is rejected: "Sözleşmeye bağlı sipariş satırı var
— iptal yerine kapatın." (There is an order line linked to the agreement — close it instead of cancelling.)
## Release
- **From an order line:** On the order form, the agreement is selected in the line details. Rules: the agreement
must be in effect, belong to the same supplier, be in the same currency and be valid on the order date; the item
and unit must be the same as the agreement item; the price comes from the agreement and no line discount can be
entered; the total released cannot exceed the target.
- **From the scheduling agreement:** Dated lines are entered in the **Teslimat Planı** (Delivery Schedule) section
of the details (the schedule cannot exceed the target, and the day must be within the agreement's validity).
**Vadesi Gelenleri Çağır** (Release Due Lines) converts the lines due up to the selected date into **draft release
orders**; **Sipariş Tarihi** (Order Date) is the date of the order to be created.
## Rejection messages
| Message | Reason |
|---|---|
| ‹Sözleşme No› yürürlükte değil — çağrı yapılamaz. (‹Agreement No› is not in effect — no release is possible.) | Draft or closed agreement. |
| ‹Sözleşme No› bu tedarikçinin sözleşmesi değil. (‹Agreement No› is not an agreement of this supplier.) | |
| ‹Sözleşme No› sipariş gününde geçerli değil. (‹Agreement No› is not valid on the order date.) | |
| HAM-0001: fiyat sözleşmeden gelir (… TRY, satır iskontosu yok). (HAM-0001: the price comes from the agreement (… TRY, no line discount).) | The line price was changed. |
| HAM-0001: ‹Sözleşme No› hedefi … — çağrılan …. (HAM-0001: target of ‹Agreement No› … — released ….) | The target was exceeded. |
| Yalnız taslak sözleşme düzenlenir. · Yalnız taslak sözleşme yürürlüğe alınır. (Only a draft agreement can be edited. · Only a draft agreement can be put into effect.) | |
| Sözleşme en az bir kalem ister. (The agreement requires at least one item.) | |
In the message, ‹Sözleşme No› is replaced with the agreement number.
## Related
- [Purchase orders](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
- [Supplier prices](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikci-fiyatlari)
---
# Send a purchase order to the supplier
> Download the order PDF, print it, or send it to the supplier by e-mail with the PDF attached.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-gonderme
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Sipariş Yönetimi › Satın Alma Siparişleri › sipariş detayı › Çıktı (Procurement › Order Management › Purchase Orders › order details › Output)
- **Screen route:** `/erp/procurement/orders/{id}`
- **Required permission:** `erp-procurement-orders.view (yazdırma, PDF, Excel)`, `erp-procurement-orders.edit (E-posta ile Gönder)`
- **Prerequisites:**
- The user can view the purchase price (the Çıktı (Output) menu is not available to a user who cannot).
- For e-mail, SMTP is defined in **Yönetim › Özelleştirme › Genel › E-posta Ayarları** (Administration › Customization › General › E-mail Settings).
In CoreX there is no separate status that marks an order as "sent": the **Sipariş Verildi** (Ordered) status means
that the order has been placed with the supplier. The document itself is delivered to the supplier from the **Çıktı**
(Output) menu. The PDF is generated on the server; if a saved form template exists, it is printed with that template.
## Steps
1. Open the order details and click **Çıktı** (Output) at the top right.
2. For paper or a file, select **Yazdır** (Print) or **PDF İndir** (Download PDF). The PDF file is named `Satin-Alma-Siparisi-SA-….pdf`.
3. To send by e-mail, select **E-posta ile Gönder** (Send by E-mail); fill in **Kime** (To; several addresses separated by commas), the optional **Bilgi (CC)** (CC), **Konu** (Subject) and **İleti** (Message).

1. Cannot send without SMTP
2. To — comma-separated
3. Send — PDF attached, queued
4. Click **Gönder** (Send).
**Result:** The e-mail with the PDF attached is added to the sending queue; its result appears in the **Çıktılar** (Outputs) section of the order details (updated with **Yenile** (Refresh)).
## What you need to know
- If SMTP is not defined, the window shows the warning "SMTP tanımlı değil — e-posta gönderilemez." (SMTP is not
defined — e-mail cannot be sent.) and provides the **E-posta Ayarları'nı aç** (Open E-mail Settings) link (SMTP is
not defined in the demo environment).
- An e-mail can also be sent from a draft order; send only a finalized order to the supplier as a commercial order.
- **Excel İndir** (Download Excel) provides the order items as a table.
## Related
- [Purchase orders screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
---
# Suppliers
> Business partner cards with the supplier role — list, commercial terms and purchasing documents; supplier rules in purchasing documents.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikciler
Customers and suppliers are kept on **a single card**: the same company can be both. This screen is the business
partner list filtered by the **Tedarikçi** (Supplier) role. The general structure of the card (header, addresses,
contacts, e-Document, bulk import) is described on the [Customers](https://erpdocs.corexlogic.com/en/satis/ekranlar/musteriler) page in Sales; this
page describes the parts specific to purchasing.
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Ana Veriler › Tedarikçiler (Procurement › Master Data › Suppliers)
- **Screen route:** `/erp/procurement/suppliers`
- **Required permission:** `erp-partners-cards.view (görme) · .create (yeni kart) · .edit (düzenleme)`
## Supplier list

1. New Business Partner
2. Role filter: Supplier
3. Same card may also be a customer
4. Active / Inactive
Columns: Kod (Code), Ünvan (Name), **Rol** (Role; Müşteri / Tedarikçi (Customer / Supplier)), Merkez / Grup
(Head Office / Group), Vergi / TC No (Tax / National ID No), Vergi Dairesi (Tax Office), E-posta (E-mail), Telefon
(Phone), **Durum** (Status). Filters: Ara (Search), **Rol** (Role; **Tedarikçi** (Supplier) at opening), Durum
(Status). The toolbar has **Adres ve Kişi Aktarımı** (Address and Contact Import) and **Yeni İş Ortağı** (New
Business Partner). Clicking a row opens the card in **view** mode; to change it, click **Düzenle** (Edit). A business
partner card is not deleted; it is deactivated.
## Supplier card

1. Commercial terms — payment days, Incoterms
2. Purchasing documents
3. Supplier's orders
4. Edit
Tabs relevant to purchasing:
| Tab | Content |
|---|---|
| **Ticari Şartlar** (Commercial Terms) | **Varsayılan Vade (Gün)** (Default Payment Term (Days)), **Varsayılan Teslim Şekli** (Default Incoterms), **Teslim Şekli Notu** (Incoterms Note), **Varsayılan Sevk Yöntemi** (Default Shipping Method). "Sipariş açılırken forma önerilir; belgede değiştirilebilir." (Proposed to the form when an order is opened; can be changed on the document.) |
| **Satın Alma Belgeleri** (Purchasing Documents) | The **Satın Alma Siparişleri** (Purchase Orders), **Gelen Faturalar** (Incoming Invoices) and **Alınan Teslimatlar** (Received Deliveries) tabs (with their counts); for an order: Sipariş No (Order No), Tarih (Date), Durum (Status), Tutar (Amount). |
| **Bakiye** (Balance) | Supplier balance (Finance). |
## Supplier rules in purchasing documents
- In an order, a request for quotation and a supplier price, only an **active** card with the **Tedarikçi**
(Supplier) role can be selected; otherwise the message "Seçilen cari kart tedarikçi olarak kullanılamaz (kayıt
yok, pasif ya da tedarikçi rolü taşımıyor)." (The selected business partner card cannot be used as a supplier (no
record, inactive, or it does not have the supplier role).) is returned.
- A supplier with an **open order** (Taslak (Draft), Sipariş Verildi (Ordered), Kısmi Teslim (Partially Received))
cannot be deactivated. Closed or fully received orders are not an obstacle.
- Supplier and item information is copied to the order **as it is at the time of ordering**; even if the card
changes later, the document does not change.
## Related
- [Supplier prices](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikci-fiyatlari)
- [Purchase orders](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
---
# Change a purchase order
> Edit a draft order; the cancellation, closing and copying options when a finalized order needs to change.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-degistirme
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Sipariş Yönetimi › Satın Alma Siparişleri › sipariş detayı › Düzenle (Procurement › Order Management › Purchase Orders › order details › Edit)
- **Screen route:** `/erp/procurement/orders/{id}/edit`
- **Required permission:** `erp-procurement-orders.edit`
- **Prerequisites:**
- The order is in **Taslak** (Draft) status (an order in Onay Bekliyor (Pending Approval) must first be rejected and returned to draft).
Only a **draft** order can be edited. On a finalized order, supplier, item, quantity, unit, price and VAT are locked;
the server rejects changes with the message "Yalnız Taslak durumundaki satın alma siparişleri düzenlenebilir." (Only
purchase orders in Draft status can be edited.)
## Steps
1. In the details of the draft order, click **Düzenle** (Edit).
2. Change the header fields (Tedarikçi (Supplier), Sipariş Tarihi (Order Date), and on the tabs Teslim Deposu (Delivery Warehouse), Vade (Payment Term), Teslim Şekli (Incoterms)…) or the items. To add a line, use **Satır Ekle** (Add Line); to delete one, use the line's **sil** (delete) button.
3. Click **Değişiklikleri Kaydet** (Save Changes).
4. Return to the details with **Detaya dön** (Back to details) and [finalize](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme) the order.
**Result:** The draft is updated; the status remains **Taslak** (Draft).
## If a finalized order needs to change
| Situation | What to do |
|---|---|
| Nothing received yet (Sipariş Verildi (Ordered)) | **Siparişi İptal Et** (Cancel Order; with a reason), then open a new draft with **Kopyala** (Copy), correct it and finalize it. |
| Partially received; the remainder will not arrive or will change | **Siparişi Kapat** (Close Order; with a reason); open a new order for the remainder. |
| Excess quantity arrived / incorrect goods receipt | [Reverse](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikciye-iade) the goods receipt and receive again with the correct quantity. |
| Onay Bekliyor (Pending Approval) | Ask the approver to **Reddet** (Reject); edit it once it returns to draft. Or use **Siparişi İptal Et** (Cancel Order). |
Details: [Close or cancel an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kapatma-iptal).
## What you need to know
- When you leave the form without saving, the system asks: you can stay on the page, save and leave, or discard the
changes.
- On a concurrent change, the message "Bu satın alma siparişi bu sırada başka bir kullanıcı tarafından değiştirildi.
Sayfayı yenileyip tekrar deneyin." (This purchase order was changed by another user in the meantime. Refresh the
page and try again.) is returned.
## Related
- [Purchase orders screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
---
# Subcontracting
> Subcontract purchasing — material shipment to and return from the subcontractor, stock at the subcontractor, component consumption at the subcontracting goods receipt.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/fason
Subcontracting means that a supplier (the subcontractor) processes a product **with your material** and delivers it
to you. A subcontracting order is a purchase order whose line is flagged as **Fason** (Subcontracting); the
material is sent to the subcontractor with a **transfer without an invoice** and is consumed as components at the
subcontracting goods receipt.
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Fason › Fasoncudaki Stok · Fason Sevk ve İadeleri · Fasona Malzeme Sevki Oluştur · Fasondan Malzeme İadesi Oluştur (Procurement › Subcontracting › Stock at Subcontractor · Subcontracting Shipments and Returns · Create Material Shipment to Subcontractor · Create Material Return from Subcontractor)
- **Screen route:** `/erp/procurement/subcontracting`
- **Required permission:** `erp-procurement-subcontracting.view (görme) · .create (sevk ve iade)`
## Flow
1. **Subcontracting order:** In the line details of the purchase order, the line is flagged as subcontracting and
its components (the material to be provided to the subcontractor) are shown. In an installation where
subcontracting is disabled, the message "Fason satırı açılamaz: …" (A subcontracting line cannot be opened: …)
is returned. A subcontracting line cannot be combined with a consignment line.
2. **Material shipment to the subcontractor:** **Fasona Malzeme Sevki Oluştur** (Create Material Shipment to
Subcontractor) — from your own warehouse to the subcontractor's stock; "the material remains ours and is
deducted as components at the subcontracting goods receipt". Fields: **Fasoncu** (Subcontractor; a supplier),
**Çıkış Deposu** (Issuing Warehouse), Tarih (Date), Not (Note) and items. It is a transfer without an invoice;
the paper delivery slip is printed from the details.
3. **Subcontracting goods receipt:** The processed product is received from the order with a goods receipt; the
components at the subcontractor are consumed at the same time.
4. **Material return from the subcontractor:** Unused material is taken back into the warehouse with **Fasondan
Malzeme İadesi Oluştur** (Create Material Return from Subcontractor).

1. Subcontractor (supplier)
2. Issuing warehouse
3. Save — non-invoiced transfer
## Screens
| Screen | Content |
|---|---|
| **Fasoncudaki Stok** (Stock at Subcontractor) | Our material at the subcontractor's site: Fasoncu (Subcontractor), Çıktığı Depo (Issuing Warehouse), Ürün (Item), Stok Durumu (Stock Status), Miktar (Quantity), Stok Değeri (Stock Value). It is counted in valuation but not in planning. |
| **Fason Sevk ve İadeleri** (Subcontracting Shipments and Returns) | Shipment and return documents: Belge No (Document No), **Tür** (Type), Tarih (Date), Fasoncu (Subcontractor), Depo (Warehouse), Kalem (Items). Filter: Ara (Search), Tür (Type). |
## Rules
- A subcontracting goods receipt **cannot be reversed**: "… fason kabulü — geri alınamaz. Bileşenler fasoncuda
tüketildi; hatalı ürünü tedarikçiye iade etmek için fasona malzeme sevki kullanın." (… subcontracting receipt —
cannot be reversed. The components were consumed at the subcontractor; to return a defective product to the
supplier, use a material shipment to the subcontractor.)
- Shipments to and returns from the subcontractor do not create an invoice.
## Related
- [Purchase orders](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
- [Goods receipts](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/mal-kabulleri)
---
# Close or cancel a purchase order
> Give up the remainder of a partially received order (closing) or cancel an order that has not been received.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kapatma-iptal
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Sipariş Yönetimi › Satın Alma Siparişleri › sipariş detayı (Procurement › Order Management › Purchase Orders › order details)
- **Screen route:** `/erp/procurement/orders/{id}`
- **Required permission:** `erp-procurement-orders.close (Siparişi Kapat)`, `erp-procurement-orders.delete (Siparişi İptal Et)`
- **Prerequisites:**
- Closing: the order is in **Kısmi Teslim** (Partially Received) status.
- Cancellation: the order is in **Taslak** (Draft), **Onay Bekliyor** (Pending Approval) or **Sipariş Verildi** (Ordered) status (nothing received).
Closing is **not** cancellation: no record is deleted and the received part remains valid. The delivery status
determines which command to use: if nothing arrived, **cancel**; if part arrived, **close**; if everything arrived,
there is nothing to close.
## Steps
1. Open the order details and check the status.

1. Status: Partially Received
2. Post Goods Receipt — for the rest
3. Close Order — rest not expected
4. Received quantity
5. Remaining quantity
2. If the remainder will not arrive, click **Siparişi Kapat** (Close Order). In the window, check the remainder to be closed, enter the **Kapatma Nedeni** (Closing Reason) and click **Siparişi Kapat** (Close Order).

1. Close reason (required)
2. Close Order
3. If you are abandoning an order that has not been received at all, click **Siparişi İptal Et** (Cancel Order), enter the **İptal Nedeni** (Cancellation Reason) and click **Siparişi İptal Et** (Cancel Order).
**Result:** **Kapatıldı** (Closed): the received part remains valid, the remainder is no longer expected and is not counted as in transit; goods and service receipts are not possible. **İptal** (Cancelled): the order is commercially void and cannot be reopened.
## What you need to know
- Neither can be undone; a reason is mandatory ("Kapatma nedeni zorunludur." (The closing reason is mandatory.),
"İptal nedeni zorunludur." (The cancellation reason is mandatory.)).
- Rejection messages: "Hiç teslim alınmamış sipariş kapatılmaz; tedarikçiyle ilişki gerçekleşmediyse siparişi iptal
edin." (An order with nothing received cannot be closed; if the transaction with the supplier did not take place,
cancel the order.), "Bu satın alma siparişi tamamen teslim alınmış; kapatılacak kalan yok." (This purchase order
has been fully received; there is no remainder to close.), "Yalnız Taslak, Onay Bekliyor ve Sipariş Verildi
durumundaki satın alma siparişleri iptal edilebilir." (Only purchase orders in Draft, Pending Approval and Ordered
status can be cancelled.)
- If **Siparişi yeniden aç** (Reopen order) is cleared in a goods receipt reversal, the order also becomes
**Kapatıldı** (Closed).
- Closed and cancelled orders drop out of the **Açık Siparişler** (Open Orders) report and the in-transit quantity of
Malzeme İhtiyaçları (Material Requirements); the supplier can be deactivated.
## Related
- [Purchase orders screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri#kapatma-ve-iptal)
---
# Procurement reports
> Spend, open orders, quotation savings, supplier performance and supplier evaluation reports.
URL: https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/analitik
The Analytics screens are read-only; each has the **Raporu yenile** (Refresh report) and **Excel'e Aktar** (Export
to Excel) buttons and column selection (**Kolonlar** (Columns)); all except Supplier Evaluation also have a
responsible-person filter.
- **Type:** Screen
- **Module:** Procurement
- **Menu path:** Satın Alma › Analitik › Harcama Raporu · Açık Siparişler · Teklif Tasarrufu · Tedarikçi Performansı · Tedarikçi Değerlendirme (Procurement › Analytics › Spend Report · Open Orders · Quotation Savings · Supplier Performance · Supplier Evaluation)
- **Screen route:** `/erp/procurement/reports/open-orders`
- **Required permission:** `Harcama Raporu, Açık Siparişler, Tedarikçi Performansı, Tedarikçi Değerlendirme: erp-procurement-orders.view`, `Teklif Tasarrufu: erp-procurement-rfqs.view`, `Tutar gösteren raporlar (Harcama, Teklif Tasarrufu) ayrıca alış fiyatını görme yetkisi ister.`, `Tedarikçi Değerlendirme › Hizmet Puanı Ver: erp-procurement-supplier-evaluation.create`
| Report | What it shows | Columns | Filters |
|---|---|---|---|
| **Harcama Raporu** (Spend Report) | The amount of committed or received orders (draft, pending approval and cancelled orders are not counted; for a closed order only the received part); broken down by supplier, item or month. | Tedarikçi, Para Birimi, Ara Toplam, İskonto, Net, KDV, Brüt, Sipariş, Satır (Supplier, Currency, Subtotal, Discount, Net, VAT, Gross, Order, Line) | **Kırılım** (Breakdown), Ara (Search), Sorumlu (Responsible), order date range |
| **Açık Siparişler** (Open Orders) | Order lines with a remaining quantity, their age and delay. | Sipariş No, Durum, Tedarikçi, Sorumlu, Ürün, Sipariş, Karşılanan, Kalan, Kalan Net, Beklenen Teslim, Yaş (gün), Gecikme (gün) (Order No, Status, Supplier, Responsible, Item, Ordered, Fulfilled, Remaining, Remaining Net, Expected Delivery, Age (days), Delay (days)) | Ara (Search), Sorumlu (Responsible), **Gecikme** (Delay) (Tüm açık satırlar / gecikenler (All open lines / overdue)) |
| **Teklif Tasarrufu** (Quotation Savings) | For decided quotation items, the saving of the winning price compared with the lowest, average and highest quotation. | Teklif No, Karar, Ürün, Miktar, Kazanan, Kazanan Net, En Düşük, Ortalama, En Yüksek, Tasarruf (Ort.), Tasarruf (En Yüksek), Gerekçe (RFQ No, Decision, Item, Quantity, Winner, Winner Net, Lowest, Average, Highest, Savings (Avg.), Savings (Highest), Reason) | Ara (Search), Sorumlu (Responsible), decision date range |
| **Tedarikçi Performansı** (Supplier Performance) | On-time delivery and fulfillment rate. | Tedarikçi, Sipariş, Açık, Satır, Zamanında, Zamanında (%), Ort. Tedarik (gün), Satır Karşılama (%) (Supplier, Orders, Open, Lines, On Time, On Time (%), Avg. Lead Time (days), Line Fulfillment (%)) | Ara (Search), Sorumlu (Responsible), order date range |
| **Tedarikçi Değerlendirme** (Supplier Evaluation) | Score by criterion and class. | Tedarikçi, Zamanında, Miktar, Kalite, Fiyat Uyumu, Hizmet, Toplam, Sınıf (Supplier, On Time, Quantity, Quality, Price Compliance, Service, Total, Class) | Period start and end |

1. Remaining quantity
2. Delay (days)
3. Export to Excel

1. Winning net price
2. Saving vs. average
3. Selection reason
- In **Tedarikçi Değerlendirme** (Supplier Evaluation), the service criterion is scored manually with **Hizmet
Puanı Ver** (Give Service Score); the other criteria are calculated from documents. Criterion weights and class
thresholds are defined in **Yönetim › Özelleştirme › Satın Alma › Tedarikçi Değerlendirme Ayarları**
(Administration › Customization › Procurement › Supplier Evaluation Settings).
- Closed and cancelled orders do not appear in **Açık Siparişler** (Open Orders).
## Related
- [Purchase orders](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/satinalma-siparisleri)
- [Requests for quotation](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/teklif-istekleri)
---
# Create a goods receipt
> Post goods received from the supplier against the order and receive them into stock — full or partial receipt, warehouse, storage location, batch/serial number and split allocation.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/mal-kabulu-olusturma
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Mal ve Hizmet Kabulü › Mal Kabulü Oluştur (Procurement › Goods and Service Receipt › Create Goods Receipt)
- **Screen route:** `/erp/procurement/receipts/new?orderId={id}`
- **Required permission:** `erp-procurement-receipts.create`
- **Prerequisites:**
- The order is in **Sipariş Verildi** (Ordered) or **Kısmi Teslim** (Partially Received) status.
- The goods receipt date falls in an open posting period.
- You have the batch number for a batch-managed item and the serial numbers for a serial-managed item.
A goods receipt document cannot be changed once saved; you correct an incorrect entry with a
[goods receipt reversal](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikciye-iade). Because a reversal is per line and **in full**,
entering the part that may be returned (damaged, doubtful) as a separate allocation makes your work easier later.
## Steps
1. In the order details, click **Mal Kabul Gir** (Enter Goods Receipt). (Or use the **Mal Kabulü Oluştur** (Create Goods Receipt) button on the line in **Satın Alma › Mal ve Hizmet Kabulü › Teslim Alınacaklar** (Procurement › Goods and Service Receipt › Due for Receipt); if opened from an inbound delivery line, the warehouse and quantity are filled in from the delivery.)
2. Check the **Mal Kabul Tarihi** (Goods Receipt Date) and enter the supplier's delivery note number in the **Tedarikçi İrsaliye No** (Supplier Delivery Note No) field.
3. In the **Sipariş Kalemleri** (Order Items) table, click the **Mal Kabul Ekle** (Add Goods Receipt) button of the item that arrived (if everything arrived, **Tümünü Ekle** (Add All)).
4. Enter the quantity received in the allocation's **Miktar** (Quantity) field. For a partial delivery, enter only the quantity that arrived.
5. Select the **Depo** (Warehouse) and, if needed, the **Lokasyon** (Storage Location). For a batch-managed item, enter the batch number; for a serial-managed item, enter the serial numbers.
6. If you need to split the same item (e.g. the damaged part to a separate storage location), reduce the allocation's quantity and add a second allocation with the item's **Mal Kabul Ekle** (Add Goods Receipt) button.
7. Check the **Belge Özeti** (Document Summary) and click **Mal Kabulü Kaydet** (Save Goods Receipt).

1. Purchase order
2. Delivery note no. — unique per supplier
3. Remaining order quantity
4. Received quantity — may be partial
5. Warehouse and location
6. Save Goods Receipt — stock is posted
**Result:** The goods receipt is saved with the number **MK-yyyy-nnnnnn** and stock is posted at the same time. If a remainder is left on the order it becomes **Kısmi Teslim** (Partially Received); if everything arrived it becomes **Teslim Alındı** (Received). Enter a new goods receipt for the remainder, or if it will not arrive, [close the order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kapatma-iptal).
## Stock and planning effect
- Each allocation posts a receipt movement of type **Mal Kabul** (Goods Receipt); stock increases in the selected
warehouse / storage location / batch, in the **Sıfır** (New) status. For an item that requires quality inspection,
stock goes into **quarantine** status and cannot be used until it is released in **Stok Yönetimi › Kalite
Kontrol** (Inventory Management › Quality Inspection).
- The stock value increases by the order's discounted net price.
- The order's **Alınan / Kabul** (Received / Accepted) quantity increases and the in-transit quantity decreases; the
delivery advances in the Belge Akışı (Document Flow) of the linked requisition; the **Son Alış** (Last Purchase) in
Tedarikçi Fiyatları (Supplier Prices) is updated.
## What you need to know
- The quantity cannot exceed the order's remainder ("'HAM-0001' için kalan miktar aşılıyor. Kalan: 80, girilen:
200." (The remaining quantity for 'HAM-0001' is exceeded. Remaining: 80, entered: 200.)).
- The same delivery note number from the same supplier cannot be saved twice.
- **Sipariş ekle…** (Add order…) adds other open orders of the same supplier in the same currency to the same goods
receipt (several orders on a single delivery note).
- If the order has a delivery warehouse, an inbound delivery has been opened; make the goods receipt from the delivery
line in **Teslim Alınacaklar** (Due for Receipt). A receipt made directly from the order does not reduce the
delivery's open quantity — close the unused delivery in **Lojistik Yönetimi › Gelen Teslimat › Gelen Teslimatlar**
(Logistics Management › Inbound Delivery › Inbound Deliveries).
- If the warehouse has the "Mal kabul yalnız gelen teslimattan" (Goods receipt only from inbound delivery) setting, a
receipt directly from the order is rejected.
- A service line is not closed with a goods receipt: [service receipt](https://erpdocs.corexlogic.com/en/satin-alma/islemler/hizmet-kabulu-olusturma).
## Related
- [Goods receipts screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/mal-kabulleri)
- [From requisition to goods receipt process](https://erpdocs.corexlogic.com/en/surecler/talepten-mal-kabule)
---
# Create a service receipt
> Record that a non-stock item on the order (freight, maintenance, consulting) has been received.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/hizmet-kabulu-olusturma
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Mal ve Hizmet Kabulü › Hizmet Kabulü Oluştur (Procurement › Goods and Service Receipt › Create Service Receipt)
- **Screen route:** `/erp/procurement/service-acceptances/new`
- **Required permission:** `erp-procurement-service-acceptances.create`
- **Prerequisites:**
- The order is in **Sipariş Verildi** (Ordered) or **Kısmi Teslim** (Partially Received) and has at least one **Hizmet** (Service) line.
A non-stock card becomes a **Hizmet** (Service) line on the order and is closed only with a service receipt; a stock
item cannot be included in a service receipt ("'X' stoklanabilir bir ürün — hizmet kabulü yapılamaz, mal kabul
kullanın." ('X' is a stockable item — a service receipt is not possible; use a goods receipt.)).
## Steps
1. Open the **Satın Alma › Mal ve Hizmet Kabulü › Hizmet Kabulü Oluştur** (Procurement › Goods and Service Receipt › Create Service Receipt) screen.
2. Select the order from the **Satın Alma Siparişi** (Purchase Order) list; only open orders that carry a service item are listed.
3. Check the **Kabul Tarihi** (Receipt Date) and enter the supplier's document number in the **Tedarikçi Belge No** (Supplier Document No) field.
4. Enter the quantity in the **Kabul Miktarı** (Receipt Quantity) field of the received line (it cannot exceed the remaining quantity).
5. Enter a **Not** (Note) if needed and click **Hizmet Kabulünü Kaydet** (Save Service Receipt).

1. Open orders with service lines only
2. Acceptance date
3. Supplier document no. — unique
4. Save Service Entry — no stock movement
**Result:** The service receipt is saved with the number **HK-yyyy-nnnnnn**; the order's received quantity increases, and if everything has been received the order becomes **Teslim Alındı** (Received). No stock movement is created.
## What you need to know
- The same document number cannot be posted twice for the same supplier.
- An order item appears on a single line in the receipt; partial receipt is allowed.
- An incorrect receipt is reversed with **Satın Alma › İade Yönetimi › Hizmet Kabulünü Geri Al** (Procurement ›
Return Management › Reverse Service Receipt).
- The posting period rules are the same as for goods receipts (closed period, back-dated posting permission).
## Related
- [Service receipts screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/hizmet-kabulleri)
---
# Return goods to the supplier
> Return received goods to the supplier — return request, approval and goods receipt reversal (reverse stock posting).
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikciye-iade
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › İade Yönetimi › Tedarikçi İade Talepleri · Mal Kabulünü Geri Al (Procurement › Return Management › Supplier Return Requests · Reverse Goods Receipt)
- **Screen route:** `/erp/procurement/receipt-reversals/new`
- **Required permission:** `erp-procurement-return-requests.create (talep açma)`, `erp-procurement-return-requests.approve (talebi onaylama — talebi açan kişi onaylayamaz)`, `erp-procurement-receipt-reversals.create (geri alma / Tedarikçiye İade Et)`
- **Prerequisites:**
- The goods to be returned exist as a goods receipt **line** and that line has not been reversed before.
- The line's stock is available in the goods receipt's warehouse / storage location.
A return request is the **decision** made before the goods are sent and does not change stock; stock is reduced with
the **goods receipt reversal**. A request is not mandatory: to correct an incorrectly posted goods receipt, you can
select the goods receipt on the **Satın Alma › İade Yönetimi › Mal Kabulünü Geri Al** (Procurement › Return
Management › Reverse Goods Receipt) screen and reverse it directly.
## Steps
1. Open the goods receipt details and click **Tedarikçi İade Talebi** (Supplier Return Request).
2. Enter the **İade Nedeni** (Return Reason; mandatory), add a **Açıklama** (Description) if needed and select the check box of the line to be returned (e.g. **AMB-0001 satırını talebe ekle** (add line AMB-0001 to the request)). The line is returned as a whole.

1. Return reason (required)
2. The whole line is returned
3. Requester cannot approve
4. Open Request — stock unchanged
3. Click **Talebi Aç** (Open Request).

1. Status: Awaiting approval
2. Approve — another authorized user
3. Reject — reason required
4. Segregation of duties
5. Reversals written from this request
4. Another user with approval permission opens the request and clicks **Onayla** (Approve) (to reject, **Reddet** (Reject) with a reason).

1. Approve — someone other than the requester
2. Reject — reason required
3. Requested by
5. On the approved request, click **Tedarikçiye İade Et** (Return to Supplier). The form opens filled in with the goods receipt, line and reason.
6. Decide on the **Siparişi yeniden aç** (Reopen order) check box: leave it selected if the supplier will send a replacement; clear it if not (the order is closed). Click **Geri Almayı Kaydet** (Save Reversal).

1. Receipt to reverse
2. Reason (required)
3. Checked: re-expected; cleared: order closes
4. Whole line is reversed
5. Save Reversal — reverse stock posting
7. In the request details, check that the status is **Kapandı** (Closed) and that the reversal document is in **Talepten Yazılan İadeler** (Returns Posted from the Request).

1. Status: Closed — all lines returned
2. Decided by
3. Returned quantity
4. Reversal written from the request
**Result:** The reversal document **MKG-yyyy-nnnnnn** posts a stock issue (Giriş Geri Alma (Receipt Reversal)); the order's Received quantity is rolled back. If **Siparişi yeniden aç** (Reopen order) is selected, the reversed quantity is expected again (order Kısmi Teslim (Partially Received)); if it is cleared, the order becomes **Kapatıldı** (Closed). When the last line is returned, the request becomes **Kapandı** (Closed).
## What you need to know
- A reversal is per line and **in full**: "Kısmi geri alma bu sürümde desteklenmiyor." (Partial reversal is not
supported in this version.) To return 5 units of a 120-unit line, those 5 units must have been entered as a separate
allocation at the goods receipt; otherwise, reverse the line in full and re-enter the remainder with a new goods
receipt.
- The person who opened the request cannot approve it ("Kendi açtığınız tedarikçi iade talebini onaylayamazsınız.
Kararı başka bir yetkili vermeli." (You cannot approve a supplier return request you opened yourself. Another
authorized person must make the decision.)). A return cannot be posted from an unapproved request.
- To give up the return of the remaining lines on an approved request, use **Kapat** (Close; reason mandatory); to
abandon a request that has not been decided, use **İptal Et** (Cancel).
- A subcontracting goods receipt cannot be reversed.
- The return invoice belongs to Finance (**Satın Alma › İade Yönetimi › İade Faturaları** (Procurement › Return
Management › Return Invoices)) and is outside this guide.
## Related
- [Return management screen](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/iade-yonetimi)
- [From requisition to goods receipt process — return](https://erpdocs.corexlogic.com/en/surecler/talepten-mal-kabule)
---
# Define a supplier price
> Define the item–supplier link, agreed price, lead time, minimum quantity and main supplier.
URL: https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikci-fiyati-tanimlama
- **Type:** Task
- **Module:** Procurement
- **Menu path:** Satın Alma › Kaynak Bulma › Tedarikçi Fiyatları (Procurement › Sourcing › Supplier Prices)
- **Screen route:** `/erp/procurement/item-suppliers`
- **Required permission:** `erp-procurement-item-suppliers.create`, `erp-procurement-item-suppliers.edit (düzenleme)`
- **Prerequisites:**
- The item is active and "Satın alınabilir" (Purchasable); the supplier is active and has the supplier role.
- There is no record for this item–supplier pair (if there is, edit it).
A supplier price is also created or updated by a quotation decision: the discounted price and lead time of the
winning quotation are written to the record. For bulk definition, use the **İçe Aktar** (Import) Excel workbook in
the list.
## Steps
1. Open the **Satın Alma › Kaynak Bulma › Tedarikçi Fiyatları** (Procurement › Sourcing › Supplier Prices) screen and click **Yeni Kayıt** (New Record).
2. Select the **Ürün** (Item) and **Tedarikçi** (Supplier); if available, enter the **Tedarikçi ürün kodu** (Supplier item code).
3. Enter the **Anlaşmalı birim fiyat** (Agreed unit price), **Fiyatın birimi** (Price unit) and **Para birimi** (Currency).
4. Enter the **Termin (gün)** (Lead time (days)), the **Asgari sipariş miktarı** (Minimum order quantity) if needed, and the validity dates.
5. If this is the item's default supplier, select **Ana tedarikçi** (Main supplier). If no purchases are to be made from this supplier, select **Bloke kaynak** (Blocked source) and enter a reason.
6. Click **Kaydet** (Save).

1. Agreed unit price
2. Price unit
3. Lead time (days)
4. One preferred supplier per item
5. Blocked — not ordered from
6. Save
**Result:** The record appears in the list. When this item is ordered from this supplier, the **Birim Fiyat** (Unit Price) is proposed from here; Requisition Source Assignment and source determination use this record.
## What you need to know
- If a price is entered, the price unit and currency are mandatory; a record can also be opened without a price (for
the code and lead time only).
- There is one main supplier per item; when a new one is selected, the old one is cleared automatically. A main
supplier cannot be blocked.
- The same pair cannot be opened twice: "'X' ürünü için 'T-…' tedarikçisi zaten tanımlı. Mevcut kaydı düzenleyin."
(Supplier 'T-…' is already defined for item 'X'. Edit the existing record.)
- The mandatory source list and quota are defined on the **Kaynak Listesi ve Kota** (Source List and Quota) screen.
## Related
- [Supplier prices and source list](https://erpdocs.corexlogic.com/en/satin-alma/ekranlar/tedarikci-fiyatlari)
---
# Sales
> The Sales module — quotation, sales order, delivery, billing, returns and sales master data.
URL: https://erpdocs.corexlogic.com/en/satis
The Sales module manages all sales documents, from the quotation given to the customer through to the invoice. Prices
come from price lists and customer data from the business partner master record; delivery and goods issue are
processed in the Logistics module, and invoices are issued in **Satış › Faturalama** (Sales › Billing).
For the end-to-end flow, see [Quotation to invoice](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya).
## Tasks
- [Create a quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklif-olusturma) — A new sales quotation for a customer.
- [Send a quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-gonderme) — Marking as sent, e-mail.
- [Revise a quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-revize-etme) — Changing a quotation that has been sent.
- [Convert to sales order](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-siparise-donusturme) — A sales order from an accepted quotation.
- [Create a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparis-olusturma) — A sales order without a quotation.
- [Approve a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama) — Commercial approval.
- [Create a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimat-olusturma) — Delivery and goods issue in a single step.
- [Create open deliveries](https://erpdocs.corexlogic.com/en/satis/islemler/acik-teslimat-olusturma) — Collective delivery from lines that are due.
- [Post a goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme) — Stock issue for an open delivery.
- [Enter an invoice reference](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-referansi-girme) — Tracking an invoice issued outside the system.
- [Create an invoice](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-olusturma) — Outgoing invoice via e-Document.
- [Complete a service](https://erpdocs.corexlogic.com/en/satis/islemler/hizmeti-tamamlama) — Confirmation of a service line.
- [Create a sales contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesme-olusturma) — Price and target agreement.
- [Order from a contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesmeden-siparis) — Call-off order.
- [Create a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebi-acma) — Agreement before the goods come back.
- [Decide on a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebini-onaylama) — Approval, rejection, closing.
- [Receive a return against a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma) — Receiving returned goods into stock.
- [Receive a return without a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimatsiz-iade) — A return that has no delivery.
- [Create a rebate agreement](https://erpdocs.corexlogic.com/en/satis/islemler/prim-anlasmasi-olusturma) — Sales volume rebate and tiers.
- [Settle a rebate](https://erpdocs.corexlogic.com/en/satis/islemler/prim-hesaplasma) — Credit memo request.
- [Create a campaign](https://erpdocs.corexlogic.com/en/satis/islemler/kampanya-olusturma) — Campaign price for a period.
## Menu map
| Section | Screen | Documentation |
|---|---|---|
| Teklif Yönetimi (Quotation Management) | Satış Teklifleri (Sales Quotations) · Satış Teklifi Oluştur (Create Sales Quotation) | [Sales quotations](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri) |
| Sipariş Yönetimi (Order Management) | Satış Siparişleri (Sales Orders) · Satış Siparişi Oluştur (Create Sales Order) · Backorder İşleme (Backorder Processing) | [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri) |
| Sipariş Yönetimi (Order Management) | Hizmet Teyitleri (Service Confirmations) · Satış Sözleşmeleri (Sales Contracts) · Satış Sözleşmesi Oluştur (Create Sales Contract) | [Service confirmations](https://erpdocs.corexlogic.com/en/satis/ekranlar/hizmet-teyitleri) · [Sales contracts](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-sozlesmeleri) |
| Faturalama (Billing) | Faturalanmamış Teslimatlar (Unbilled Deliveries) · Giden e-Faturalar (Outgoing e-Invoices) | [Billing](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama) |
| Faturalama (Billing) | Prim Hesaplaşmaları (Rebate Settlements) | [Rebate settlements](https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-hesaplasmalari) |
| İade Yönetimi (Returns Management) | İade Talepleri (Return Requests) · Satış İadeleri (Sales Returns) | [Return requests](https://erpdocs.corexlogic.com/en/satis/ekranlar/iade-talepleri) · [Sales returns](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-iadeleri) |
| Ana Veriler (Master Data) | Müşteriler (Customers) | [Customers](https://erpdocs.corexlogic.com/en/satis/ekranlar/musteriler) |
| Ana Veriler (Master Data) | Fiyat Listeleri (Price Lists) · Özel Fiyatlar (Special Prices) · Grup İskontoları (Group Discounts) | [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri) |
| Ana Veriler (Master Data) | Kampanyalar (Campaigns) · Kondisyon Kayıtları (Condition Records) · Prim Anlaşmaları (Rebate Agreements) | [Campaigns](https://erpdocs.corexlogic.com/en/satis/ekranlar/kampanyalar) · [Condition records](https://erpdocs.corexlogic.com/en/satis/ekranlar/kondisyon-kayitlari) · [Rebate agreements](https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-anlasmalari) |
| Analitik (Analytics) | Müşteri, Ürün ve Temsilci Bazında Satış (Sales by Customer, Product and Sales Rep) · Teklif Kazanma/Kaybetme (Quotation Win/Loss) · Brüt Kâr (Gross Profit) · Açık Satış Siparişleri (Open Sales Orders) | [Sales reports](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-raporlari) |
In the menu, deliveries are located under **Lojistik Yönetimi › Giden Teslimat** (Logistics Management › Outbound
Delivery); because they are part of the sales flow, they are documented here: [Delivery and goods
issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat).
## How sales documents are linked
Every document is linked to its source document and to the documents created from it. The sales order details show
the source quotation, the deliveries created and the production orders; the invoice details show the source
deliveries. You can navigate between documents using these links.
---
# Sales quotations
> Prepare, send, revise and convert sales quotations into sales orders.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri
Price quotations given to customers. A quotation is prepared as a draft and locked when sent; if the customer accepts,
it is converted into a sales order; if not, it is closed with a loss reason.
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Teklif Yönetimi › Satış Teklifleri · Satış Teklifi Oluştur (Sales › Quotation Management › Sales Quotations · Create Sales Quotation)
- **Screen route:** `/erp/sales/quotations`
- **Required permission:** `erp-sales-quotations.view (görme) · .create (oluşturma) · .edit (gönderme, revize, dönüştürme) · .approve (onay)`
## Quotation list

1. New quotation
2. Default: current revisions only
3. Click the number to open the quotation
4. Status and outcome (resulting order or loss reason)
By default, the list shows **current quotations**; earlier, revised revisions are listed only when **Revize Edildi**
(Revised) is selected in the **Durum** (Status) filter.
| Column | Description |
|---|---|
| Teklif No (Quotation No.) | Quotation number and revision (e.g. `ST-2026-000004 · Rev 2`). Click to open the quotation. |
| Müşteri (Customer) | Name; below it, the customer code and customer reference. |
| Temsilci · Kanal (Sales Rep · Channel) | Sales representative and sales channel. Sales organization and division are displayed if the installation has more than one. |
| Teklif Tarihi · Geçerlilik (Quotation Date · Validity) | The date of an expired quotation is shown in a warning color. |
| Durum · Sonuç (Status · Outcome) | The quotation status; the outcome column shows the sales order it was converted into, or the loss reason. |
| Net · KDV · Genel Toplam (Net · VAT · Grand Total) | Hidden for users without permission to view prices. |
**Filters:** **Ara** (Search; quotation no., customer, customer reference), **Durum** (Status), **Geçerlilik** (Validity;
expired / not expired), **Müşteri** (Customer), **Temsilci** (Sales Rep), **Kanal** (Channel) and quotation date range.
The list can be sorted by the Teklif No, Teklif Tarihi, Müşteri, Geçerlilik, Durum and Temsilci columns.
## Creating a quotation

1. Customer — type code or name and press Enter; magnifier or F4 opens the list
2. Valid Until — defaults to 30 days later
3. Tabs — delivery, payment, conditions, texts, address
4. Product — type code or name and press Enter
5. Quantity
6. Unit price — proposed from the price list, source shown below
7. Create Quotation — saves as draft
### Header strip
| Field | Description |
|---|---|
| **Müşteri** (Customer; required) | Only active customers can be selected. When selected, the payment term and shipping method are proposed from the customer master record. |
| Müşteri Referansı (Customer Reference) | The customer's request for quotation or tender number; shown on the quotation printout. |
| **Teklif Tarihi** (Quotation Date; required) | A date in a closed posting period cannot be entered. |
| **Geçerlilik Tarihi** (Valid Until; required) | Defaults to 30 days from today; cannot be earlier than the quotation date. |
| Teklif Türü (Quotation Type) | Displayed if the installation has more than one quotation type; if left empty, the default type is used. |
### Header tabs
- **Teslimat ve Ödeme** (Delivery and Payment): requested delivery date, **currency** (required), payment term, payment
condition, shipping method and its note, shipping type.
- **Koşullar** (Conditions): overall discount percentage and surcharges (such as freight or packaging; if surcharge
types are defined in the installation).
- **Metinler** (Texts): the note printed on the quotation printout.
- **Adres** (Address): contact person and delivery address; can be filled from the customer's registered ship-to
address.
- **Organizasyon** (Organization): sales channel, sales organization and division, sales representative.
### Items
The item table works like a spreadsheet (see [Get to know the interface](https://erpdocs.corexlogic.com/en/baslarken/arayuz#belge-formları)). Columns:
item no., product, quantity, unit, unit price, discount, VAT and estimated amount.
- **Item numbers** are assigned as 10, 20, 30…
- The **unit price** is proposed from the price list. Below the cell, the source of the proposal (special price,
campaign, list code, scale price) and the deviation of a manually entered price from the proposal are shown. The
proposal is not binding; you can change the price. How the price is determined: [Price
lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri#fiyat-nasıl-belirlenir).
- The **discount** is entered on the line as a percentage (%) or an amount; select the type with the button in the
cell. An amount discount cannot exceed the line amount and cannot be negative.
- For **configurable products** (e.g. a table with size and color options), enter the selections with **Yapılandır**
(Configure) on the line; the price is calculated from the selections.
- The **Kullanılabilirlik** (Availability) button shows how much of the item can be supplied on the requested date and
the earliest date on which the full quantity can be supplied. It does not reserve stock.
**Kontrol Et** (Check) validates the form without saving; errors are listed in the **Düzeltilmesi gereken alanlar**
(Fields to correct) dialog. **Kaydet** (Save; Ctrl+S) saves the quotation as **Taslak** (Draft) and opens its details.
## Quotation details and lifecycle

1. Convert to Order
2. Revise — opens a new revision
3. Lost — closes with a loss reason
### Statuses
| Status | Meaning |
|---|---|
| **Taslak** (Draft) | In preparation; can be edited. |
| **Onay Bekliyor** (Pending Approval) | Caught by an approval template; awaiting the approvers' decision. |
| **Gönderildi** (Sent) | Given to the customer; locked. Changes are made with a new revision. |
| **Siparişe Dönüştü** (Converted to Order) | Fully converted to a sales order. |
| **Kaybedildi** (Lost) | The customer did not accept; the loss reason is recorded. |
| **İptal Edildi** (Cancelled) | The quotation was withdrawn. |
| **Revize Edildi** (Revised) | A new revision was opened in its place; this revision is invalid. |
Two additional indicators can appear on a sent quotation: **Süresi Doldu** (Expired; the validity date has passed) and
**Kısmen Dönüştü** (Partially Converted; part of it has been converted to a sales order).
### Actions
| Status | Actions |
|---|---|
| Taslak (Draft) | **Gönder** (Send; **Onaya Gönder** — Submit for Approval — if an approval template exists) · **Düzenle** (Edit) · **İptal Et** (Cancel) |
| Onay Bekliyor (Pending Approval) | **İptal Et** (Cancel); **Onayla / Reddet** (Approve / Reject) for the approver whose turn it is |
| Gönderildi (Sent) | **Siparişe Dönüştür** (Convert to Order) · **Revize Et** (Revise) · **Kaybedildi** (Lost) · **İptal Et** (Cancel) |
| Partially converted | **Kalanı Dönüştür** (Convert Remaining) · **Kalanı Kapat** (Close Remaining) |
| Other statuses | No actions |
**Kopyala** (Copy) is available in every status: it opens the new quotation form with a copy of the quotation. In the
copy, the date is today; prices and discounts are proposed again from today's list; the customer reference, requested
delivery date and surcharges are not carried over. The copy does not become a document until you save it.
**Çıktı** (Output) menu: **Yazdır** (Print) in the browser, **PDF** and **E-posta ile Gönder** (Send by E-mail; only for
quotations that have been sent or converted to a sales order). E-mail requires the e-mail settings to be configured in
the installation.
### Send
A quotation that has been sent is **locked**: any change to prices, lines or terms now opens a new revision. **Gönder**
(Send) only marks the quotation; to transmit it to the customer, then use **Çıktı › E-posta ile Gönder** (Output › Send
by E-mail).
### Revise
The old revision becomes **Revize Edildi** (Revised); a new **Taslak** (Draft) is opened with the same number, today's
date and the same validity period. The old revision shows the warning "Bu revizyon geçersiz" (This revision is invalid)
and a link to the current revision. To convert an expired quotation to a sales order, likewise revise it and extend the
validity date.
### Convert to sales order
In the dialog, the sales order type is selected; for each line, a checkbox and the quantity to convert are entered (up
to the remaining quantity). The sales order is opened as a **draft** with today's order date; prices and configurations
are carried over unchanged. If you are authorized to view sales orders, you are taken to the new sales order.
### Lost and Cancel
- **Kaybedildi** (Lost): used when the customer did not accept the quotation. A **Kayıp nedeni** (Loss reason) is
required: Fiyat (Price) · Teslim süresi (Delivery time) · Rakip tercih edildi (Competitor preferred) · Teknik şartlar
uymadı (Technical requirements not met) · İhtiyaç ortadan kalktı (Need no longer exists) · Müşteri dönüş yapmadı
(Customer did not respond) · Diğer (Other; a description is required for "Diğer"). Losses appear in the **Satış ›
Analitik › Teklif Kazanma/Kaybetme** (Sales › Analytics › Quotation Win/Loss) report.
- **İptal Et** (Cancel): a reason is required and the action cannot be undone. If the customer rejected the quotation,
use **Kaybedildi** (Lost) instead of cancelling.
## Rules
- Only a **draft** quotation can be edited. Changes to a sent quotation are made with **Revize Et** (Revise).
- A quotation must contain at least one line; the last line cannot be deleted.
- The quotation amount is not an invoice. When the quotation is converted to a sales order, prices are carried over
unchanged.
## Related screens
- [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri) — the sales order created from the quotation.
- [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri) — the source of the unit price proposal.
- [Quotation to invoice](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya) — the end-to-end process.
---
# Create a sales quotation
> Prepare a new sales quotation for a customer — customer, validity, lines and price; the quotation is saved as a draft.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/teklif-olusturma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Teklif Yönetimi › Satış Teklifi Oluştur (Sales › Quotation Management › Create Sales Quotation)
- **Screen route:** `/erp/sales/quotations/new`
- **Required permission:** `erp-sales-quotations.create`
- **Prerequisites:**
- The customer is defined as an **Aktif** (Active) business partner on the **Müşteriler** (Customers) screen.
- The products to be quoted have an item master record and are released for sales.
- A price list is assigned to the customer, or a default price list exists, so that prices can be proposed (optional; the price can also be entered manually).
A sales quotation is the record of the prices and terms offered to a customer. A quotation is first prepared as a
**draft**; it is locked when sent, and converted into a sales order if accepted.
## Steps
1. Open the **Satış › Teklif Yönetimi › Satış Teklifi Oluştur** (Sales › Quotation Management › Create Sales Quotation) screen. If you are on the list screen, click the **Yeni Teklif** (New Quotation) button.
2. In the **Müşteri** (Customer) field, type the customer's code or name and press `Enter`; select the customer from the list and press `Enter` again. To search from a list, click the magnifier or press `F4`.
3. If the customer has a request or tender number, enter it in the **Müşteri Referansı** (Customer Reference) field. **Teklif Tarihi** (Quotation Date) is today; **Geçerlilik Tarihi** (Valid Until) is proposed as 30 days later — change it if necessary.
4. If required, enter the delivery date, currency, payment and shipping method on the **Teslimat ve Ödeme** (Delivery and Payment) tab; discounts and surcharges on the **Koşullar** (Conditions) tab; and the quotation note on the **Metinler** (Texts) tab.
5. In the **Kalemler** (Items) table, type the product's code or name in the **Ürün** (Product) field of the first line and press `Enter`, then select it and press `Enter` again. The cursor moves to the **Miktar** (Quantity) field.
6. Type the **Miktar** (Quantity) and press `Enter`. The **Birim Fiyat** (Unit Price) is proposed from the price list, with its source shown below it (e.g. `STANDART · kademe ≥ 100`, i.e. scale ≥ 100); change it if necessary, and use the **İskonto %** (Discount %) field for a discount.
7. Continue with the next empty line for other items. When you are done, validate the form with **Kontrol Et** (Check), then click **Teklifi Oluştur** (Create Quotation).

1. Customer — type code or name and press Enter; magnifier or F4 opens the list
2. Valid Until — defaults to 30 days later
3. Tabs — delivery, payment, conditions, texts, address
4. Product — type code or name and press Enter
5. Quantity
6. Unit price — proposed from the price list, source shown below
7. Create Quotation — saves as draft
**Result:** The quotation is saved with number **ST-yyyy-nnnnnn** in **Taslak** (Draft) status, and the quotation details open. A draft quotation can be edited; to transmit it to the customer, proceed to [Send the quotation](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri).
## What you need to know
- **Kaydet** (Save; Ctrl+S) saves without closing the form; **Teklifi Oluştur** (Create
Quotation) saves and opens the quotation details.
- When you leave the screen with unsaved changes, the system asks you what to do: you can stay on the page, save as a
draft and leave, or discard the changes.
- The quotation date cannot fall in a closed posting period; the validity date cannot be earlier than the quotation
date.
- Price determination order: customer-specific price → campaign → the customer's price list (or the default list if
none) → group discount. Details: [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri).
## Related
- [Sales quotations screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri)
- [Quotation to invoice process](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya)
---
# Sales orders
> Create and approve sales orders and transfer them to delivery and production; availability and backorders.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri
Orders received from customers. A sales order is entered as a draft or converted from a quotation; once approved, it
enters planning as demand and is released for delivery.
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Sipariş Yönetimi › Satış Siparişleri · Satış Siparişi Oluştur · Backorder İşleme (Sales › Order Management › Sales Orders · Create Sales Order · Backorder Processing)
- **Screen route:** `/erp/sales/orders`
- **Required permission:** `erp-sales-orders.view (görme) · .create (oluşturma) · .edit (onay, iptal) · .close (kapatma)`
## Sales order list

1. New record
2. Search and filters
3. Show / hide columns
4. Click a header to sort; drag its edge to resize
5. Click the document number to open it
| Column | Description |
|---|---|
| Belge No (Document No.) | Sales order number; click to open the sales order. The column stays pinned on the left. |
| Müşteri (Customer) | Name and customer code. |
| Temsilci · Tür · Kanal (Sales Rep · Type · Channel) | Sales representative, sales order type and channel (if there is more than one option). |
| Sipariş Tarihi · İstenen Teslim (Order Date · Requested Delivery) | |
| Durum (Status) | Taslak (Draft) · Onaylandı (Approved) · İptal (Cancelled); **Kapalı** (Closed) for a closed sales order. A sales order caught by the credit limit shows the **Kredi blokesi** (Credit block) indicator. |
| Net · KDV · Genel Toplam (Net · VAT · Grand Total) | Hidden for users without permission to view prices. |
**Filters:** **Ara** (Search; document no., customer code or name), **Durum** (Status), **Kapanış** (Closure; open /
closed), **Müşteri** (Customer), **Temsilci** (Sales Rep), **Kanal** (Channel) and order date range.
## Creating a sales order

1. Document type — standard, rush, sample…
2. Customer
3. Requested delivery — drives delivery planning
4. Product
5. Quantity
6. Create Order — saves as draft
The sales order form has the same layout as the quotation form:
- **Header strip:** **Müşteri** (Customer; required, active customers only), **Sipariş Tarihi** (Order Date; required),
document type (if there is more than one type).
- **Teslimat ve Ödeme** (Delivery and Payment): requested delivery date (cannot be earlier than the order date),
**currency** (required), payment term, payment condition, shipping method and its note, shipping type. The payment
term and shipping method are proposed from the customer master record.
- **Koşullar** (Conditions): overall discount percentage (distributed proportionally to the lines; VAT is calculated on
the discounted amount) and surcharges.
- **Metinler** (Texts): note (up to 1024 characters).
- **Adres** (Address): goods recipient, contact person, registered ship-to address, recipient, delivery address and
phone number. If all three are left empty, the name, address and phone number from the customer master record are
copied to the document.
- **Organizasyon** (Organization): sales channel, sales organization, division, sales representative.
**Kalemler** (Items): product, quantity, unit, unit price, discount (percentage or amount), VAT and estimated amount. In
the line details, a description and the **item category** (Standart — Standard · Bedelsiz — Free of Charge · Hizmet —
Service · Üçüncü Taraf — Third Party) are selected. The unit price is proposed from the price list ([how it is
determined](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri#fiyat-nasıl-belirlenir)).
After saving, the sales order is in **Taslak** (Draft) status. A sales order converted from a quotation is also opened
as a draft.
## Availability check
The **Kullanılabilirlik** (Availability) button on an item line opens a dialog showing:
- the quantity that can be promised on the requested date and the **earliest date** for the full quantity,
- the date that can be reached with new supply (open purchasing and production),
- a delivery proposal (date / quantity) and a daily stock chart.
The dialog does not reserve stock; the line counts as demand once the sales order is approved. The button is displayed
for users who have permission to view material requirements (`erp-demand-material-requirements.view`).
## Sales order details

1. Create Delivery — with goods issue
2. Open Production Order — make to order
3. Shipped and remaining quantity
4. Linked documents — quotation, delivery, production order
### Statuses
A sales order has three statuses: **Taslak** (Draft), **Onaylandı** (Approved) and **İptal** (Cancelled). In addition:
- **Kapalı** (Closed) — shown on the badge if the sales order has been closed (the remaining quantity was abandoned).
- **Shipping status** — Sevk edilmedi (Not shipped) · Kısmen sevk edildi (Partially shipped) · Tamamı sevk edildi (Fully
shipped), and "x/y kalem" (x/y lines).
### Actions
| Condition | Action |
|---|---|
| Taslak (Draft) | **Düzenle** (Edit) · **Siparişi Onayla** (Approve Order) · **Siparişi İptal Et** (Cancel Order) |
| Onaylandı (Approved) | **Teslimat Oluştur** (Create Delivery) · **Üretim Emri Aç** (Open Production Order) · **Siparişi Kapat** (Close Order) · **Siparişi İptal Et** (Cancel Order) |
| Approved, with an open service line | **Hizmeti Tamamla** (Complete Service) |
| Approved, line with a remaining quantity | **Satırı Kapat** (Close Line) on the line |
| Any status | **Kopyala** (Copy) · **Çıktı** (Output: Yazdır — Print · PDF · E-posta — E-mail) |
- **Siparişi Onayla** (Approve Order): the lines of an approved sales order can no longer be edited.
- **Siparişi İptal Et** (Cancel Order): a reason is required and the action cannot be undone. A sales order with a
shipped quantity cannot be cancelled — to abandon the remaining quantity, **close** the sales order.
- **Siparişi Kapat** (Close Order): a reason is required. No new delivery can be created for a closed sales order;
closing is not a correction.
- **Üretim Emri Aç** (Open Production Order): opens a production order linked to the sales order (for make-to-order
products).
- No lifecycle actions are displayed on a closed sales order.
### Confirmation and backorder
On an approved sales order, confirmation information is shown below each line:
- **Teyitli N birim** (Confirmed N units) — the quantity covered by stock or planned supply,
- **Backorder N birim** (Backorder N units; in red) — the quantity that cannot be confirmed yet,
- **Tamamı <tarih>** (All by <date>) — the day on which the full line quantity can be delivered.
**Kullanılabilirliği Yeniden Kontrol Et** (Recheck Availability) recalculates the confirmation of an approved sales
order based on current stock and supply.
### Credit block
If the customer's credit limit is exceeded, the sales order shows the **Kredi blokesi — teslimat açılmaz** (Credit block
— no delivery can be created) bar. The credit manager releases the block with **Krediyi Serbest Bırak** (Release
Credit); a sales representative cannot release the block on their own sales order.
## Backorder Processing

1. Backorder — unconfirmed remainder
2. Select the product to reconfirm
3. Create Proposal — shows the allocation, does not save
4. Apply — saves the confirmations
Used to reconfirm, collectively, open sales order lines that have an unconfirmed remaining quantity (e.g. after stock
has been received). The priority order is first the requested delivery date, then the order date.
1. Select the lines to be reconfirmed from the list (up to 50; the selection is kept even when the page changes).
2. **Öneri Oluştur** (Create Proposal) — shows the before / after state of the confirmed quantity and the completion
date; nothing is saved yet.
3. **Uygula** (Apply) — saves the proposal. If the selection changes, the proposal is discarded and must be created
again.
View permission is sufficient to open the screen; edit permission is required to create and apply proposals.
## Rules
- Only a **draft** sales order can be edited.
- A sales order must contain at least one line.
- The amounts in the details are approximate; financial confirmation is on the invoice. The invoice is issued from the
delivery, not from the sales order details ([Billing](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama)).
## Related screens
- [Sales quotations](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri) — can be the source of a sales order.
- [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat) — shipping an approved sales order.
- [Billing](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama) — invoice from a delivery.
---
# Send a quotation
> Mark a draft sales quotation as sent and e-mail it to the customer; a quotation that has been sent is locked.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-gonderme
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Teklif Yönetimi › Satış Teklifleri (Sales › Quotation Management › Sales Quotations) › quotation details
- **Screen route:** `/erp/sales/quotations/{id}`
- **Required permission:** `erp-sales-quotations.edit`
- **Prerequisites:**
- The quotation is in **Taslak** (Draft) status and has at least one line.
- If an approval template is defined for quotations in the installation, the button is named **Onaya Gönder** (Submit for Approval); on final approval, the quotation automatically moves to **Gönderildi** (Sent) status.
**Gönder** (Send) only marks the quotation as *sent*; it does not send the e-mail. The e-mail is sent separately from
the **Çıktı** (Output) menu. This keeps the record correct even when you transmit the quotation by phone, by hand or
through another channel.
## Steps
1. Open the **Satış › Teklif Yönetimi › Satış Teklifleri** (Sales › Quotation Management › Sales Quotations) list and click the quotation number.
2. In the action bar of the quotation details, click the **Gönder** (Send) button.

1. Send — locks the quotation
2. Edit — draft only
3. Output — PDF and send by e-mail
3. In the **Teklif gönderilsin mi?** (Send quotation?) dialog, check the customer, number of lines, grand total and validity date; click **Gönderildi Olarak İşaretle** (Mark as Sent).

1. Mark as Sent
4. To e-mail the quotation to the customer, select **E-posta ile Gönder** (Send by E-mail) from the **Çıktı** (Output) menu; to download the PDF, print it from the same menu.
**Result:** The quotation moves to **Gönderildi** (Sent) status and is locked: prices, lines and terms can no longer be changed. If the customer accepts, [convert it to a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-siparise-donusturme); if the customer requests changes, [revise it](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-revize-etme).
## What you need to know
- The prices, lines and terms of a sent quotation do not change; a change opens a **new revision**.
- A quotation whose validity date has passed is shown in the list with the **Süresi Doldu** (Expired) badge.
- A draft quotation can be closed with **İptal Et** (Cancel); a sent quotation that was not won is closed with
**Kaybedildi** (Lost).
## Related
- [Create a sales quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklif-olusturma)
- [Sales quotations screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri)
---
# Delivery and goods issue
> Create deliveries from approved sales orders, post goods issues, delivery notes, packing and proof of delivery.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat
Approved sales order lines leave the warehouse with a delivery. A delivery is first created as **open** (stock is not
reduced; the lines are reserved on the sales order); when the **goods issue** is posted, stock is reduced and the
delivery can no longer be changed.
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimatlar · Giden Teslimat Oluştur (Logistics Management › Outbound Delivery › Deliveries · Create Outbound Delivery)
- **Screen route:** `/erp/sales/shipments`
- **Required permission:** `erp-sales-shipments.view (görme) · .create (oluşturma, mal çıkışı, iptal)`
## Create Outbound Delivery

1. Due by — items to deliver up to this date
2. Select the item to deliver
3. Warehouse
4. Create Delivery — opens an open delivery
The **Giden Teslimat Oluştur** (Create Outbound Delivery) screen is not an empty form: it lists the **approved sales
order lines that are due** and can be delivered. Quantity available for delivery = ordered quantity − shipped − in open
deliveries.
1. Narrow down the lines with the filters (sales order no., customer, product; the **Vadesi gelen (en geç)** (Due by,
latest) date).
2. Select the lines to be delivered. The quantity is prefilled with the quantity available for delivery; you can
change it.
3. Select the **Depo** (Warehouse; required) and the **Planlanan sevk tarihi** (Planned shipping date; required, default
today); enter a note if necessary.
4. Click **Teslimat Oluştur** (Create Delivery). Lines going to the same recipient, currency, channel, delivery address
and shipping method are combined into a single delivery. The deliveries created are listed with their numbers;
groups that could not be created are shown in red with the reason.
The **Plan. Mal Çıkışı** (Planned Goods Issue) column shows the day on which the goods must leave the warehouse
(requested delivery date − route duration − warehouse preparation time). For a delayed line, the date is shown in red
with "· gecikti" (delayed).
A delivery for a single sales order can also be created with the **Teslimat Oluştur** (Create Delivery) button in the
sales order details.
## Delivery list

1. Status — stock reduced, document locked
2. Output — delivery note
3. Issued lots and serial numbers
4. Proof of delivery — signed delivery note
Columns: **Belge No** (Document No.), **Durum** (Status), **Teslimat Tarihi** (Delivery Date), **Sipariş No** (Order No.),
**Müşteri** (Customer), **Kanal** (Channel), **Depo** (Warehouse), **Kalem** (Lines). Filters: **Ara** (Search),
**Müşteri** (Customer), **Durum** (Status), **Kredi** (Credit; those under a credit block) and delivery date range.
## Delivery details
### Statuses
| Status | Meaning |
|---|---|
| **Açık** (Open) | The lines are reserved on the sales order; stock is reduced at goods issue. |
| **Mal Çıkışı Kaydedildi** (Goods Issue Posted) | Physical stock issue document; cannot be changed. |
| **İptal Edildi** (Cancelled) | No stock movement. |
An open delivery also shows the **picking** status (Toplanmadı — Not picked · Kısmen toplandı — Partially picked ·
Toplandı — Picked) and the **packing** status (Paketlenmedi — Not packed · Kısmen paketlendi — Partially packed ·
Paketlendi — Packed).
### Posting the goods issue
On an open delivery, **Mal Çıkışını Kaydet** (Post Goods Issue) opens a separate page:
- The **Mal çıkışı tarihi** (Goods issue date) is entered; the warehouse is the delivery's warehouse and cannot be
changed.
- The quantity of each line is split into **allocations**: storage location (or "Lokasyonsuz" — No storage location),
stock status and, if required, the lot or serial number. The allocation total of each line must equal the delivery
quantity (partial goods issue is not possible).
- **FEFO ile Dağıt** (Allocate by FEFO; for a lot-managed line): splits the quantity starting from the lots with the
nearest expiry dates.
- **Ayrılmış Stoğu Dağıt** (Allocate Reserved Stock): fills the allocations with stock reserved for the line (picked or
produced for the line).
- For a serial-managed line, the serial numbers are selected.
- If the delivery has been picked, the allocations are filled automatically with the picked goods.
### Cancellation
An open delivery is cancelled with **Teslimatı İptal Et** (Cancel Delivery); a cancellation reason is required. No stock
movement takes place; the quantity reserved on the sales order is released, and the lines become available for
delivery again. Cancellation cannot be undone.
### After the goods issue
- **Çıktı** (Output): print, PDF and e-mail the delivery note.
- **e-İrsaliye** (e-Delivery Note): if e-Delivery Note is enabled in the installation, **e-İrsaliye Oluştur** (Create
e-Delivery Note) is displayed; once it has been created, the delivery note's number and status are shown.
- **Teslimat Düzeltmesi Oluştur** (Create Delivery Correction): an incorrect goods issue is not deleted; it is reversed
with a correction document.
- **İade Talebi Aç** (Open Return Request) · **İade Al** (Receive Return): for customer returns.
## Packing
On an open delivery, **Taşıma Birimi Oluştur** (Create Handling Unit) places the lines into containers (carton,
pallet…): container type (required), packaging product, tare, content and nested units. A label can be printed for
each handling unit. Packing is not a prerequisite for the goods issue.
## Proof of delivery
For deliveries whose customer requires proof of delivery, after the goods issue, use **Alındı Teyidi Kaydet** (Record
Proof of Delivery) to enter the delivery date, the recipient and the accepted quantity per line. For a short
acceptance, a reason is selected (damaged in transit, arrived short, customer did not accept delivery, other).
**A delivery awaiting proof of delivery is not invoiced.**
## Related screens
- [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri) — the source of the delivery.
- [Billing](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama) — invoice from a delivery whose goods issue has been posted.
---
# Convert a quotation to a sales order
> Convert a sales quotation accepted by the customer into a sales order, fully or partially.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-siparise-donusturme
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Teklif Yönetimi › Satış Teklifleri (Sales › Quotation Management › Sales Quotations) › quotation details
- **Screen route:** `/erp/sales/quotations/{id}`
- **Required permission:** `erp-sales-quotations.edit`, `erp-sales-orders.create`
- **Prerequisites:**
- The quotation is in **Gönderildi** (Sent) status (a draft quotation must first be [sent](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-gonderme)).
- The quotation has not been revised, and has not been closed as cancelled or lost.
- The validity date has not passed. If it has, first extend the validity by [revising the quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-revize-etme).
## Steps
1. Open the quotation details and click **Siparişe Dönüştür** (Convert to Order) in the action bar.

1. Convert to Order
2. Revise — opens a new revision
3. Lost — closes with a loss reason
2. In the **Teklif siparişe dönüştürülsün mü?** (Convert quotation to sales order?) dialog, select a **Sipariş Türü** (Order Type) if necessary; if left empty, the default type is used.
3. In the line table, check the **Dönüşecek** (To Convert) quantities. For a partial conversion, reduce the quantity or clear the line's checkbox.
4. Click **Siparişe Dönüştür** (Convert to Order).

1. Order type — default type if left empty
2. Quantity to convert — reduce for a partial conversion
3. Convert to Order — creates a draft order
**Result:** A **Taslak** (Draft) sales order is created from the selected lines; the order date is today. If the entire remaining quantity has been converted, the quotation is closed as **Siparişe Dönüştü** (Converted to Order); if a remainder exists, the quotation stays open and is shown in the list with the **Kısmen Dönüştü** (Partially Converted) badge. Next step: [approve the sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama).
## What you need to know
- The sales order and the quotation are written **in the same transaction**; if one cannot be written, neither
changes.
- Prices and commercial terms are carried over according to the copy rule of the sales order type: they are either
copied from the quotation or redetermined on the order date.
- The stock commitment arises when the sales order is approved; conversion does not reserve stock.
- The **Bağlantılı Belgeler** (Related Documents) section in the sales order details shows the source quotation.
## Related
- [Sales orders screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri)
- [Quotation to invoice process](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya)
---
# Billing
> Create invoices from unbilled deliveries, finalize them and send them to the Turkish Revenue Administration (GİB).
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama
A sales invoice originates from a delivery: deliveries whose goods issue has been posted accumulate on the
**Faturalanmamış Teslimatlar** (Unbilled Deliveries) screen, a draft invoice is created from there, and the draft is
finalized and sent to the Turkish Revenue Administration (GİB) through the integrator.
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Faturalama › Faturalanmamış Teslimatlar · Giden e-Faturalar (Sales › Billing › Unbilled Deliveries · Outgoing e-Invoices)
- **Screen route:** `/erp/sales/unbilled-shipments · /erp/invoicing/invoices`
- **Required permission:** `erp-invoicing-references.view · erp-invoicing-invoices.view (görme) · .create (oluşturma) · .finalize (kesinleştirme ve gönderim)`
## Unbilled Deliveries

1. Select the deliveries to invoice
2. Invoice deadline — 7 days after delivery
3. Enter Invoice Reference — trace of an externally issued invoice
Documents that have been shipped or returned but not yet invoiced.
| Column | Description |
|---|---|
| Belge No (Document No.) | Delivery number; links to the delivery. |
| Belge Tarihi (Document Date) | |
| Fatura Son Günü (Invoice Due Date) | The last day on which the invoice must be issued (7 days from the document date). If it has passed, it is shown in red: "7 günü geçti · N gün" (more than 7 days · N days). |
| Müşteri · Yaklaşık Tutar (Customer · Approximate Amount) | Amounts are approximate; financial confirmation is the invoice. |
**Filters:** **Ara** (Search), document date range, **Yalnız 7 günü geçenler** (Only those older than 7 days).
- **Fatura Oluştur** (Create Invoice): creates a **draft** invoice dated today from the selected deliveries and opens
the draft. Only deliveries of the same customer and the same currency can be included in the same invoice.
- **Fatura Referansı Gir** (Enter Invoice Reference): used to record the invoice number of deliveries whose invoice was
issued outside CoreX (in the previous system). It cannot be used for deliveries after the e-Document start date;
those are invoiced in CoreX.
The selection covers only the visible page.
## Outgoing e-Invoices

1. Invoices issued in CoreX
2. Archive of externally issued invoices
3. Status — draft, finalized, sending and GİB result
The list has no new invoice button: an invoice originates from a delivery. The list has two tabs: **CoreX'te
kesilenler** (Issued in CoreX) and **Dışarıda kesilenler (arşiv)** (Issued externally — archive). Columns: **Fatura**
(Invoice; internal number, with the GİB number below it), **Tarih** (Date), **Müşteri** (Customer), **Satış Kanalı**
(Sales Channel), **Durum** (Status; with the e-Invoice / e-Archive indicator), **Tip** (Type), **Ödenecek** (Payable).
### Invoice process
```
Taslak ──► Kesinleşti ──► Entegratöre iletildi ──► Alıcıya ulaştı ──► (Alıcı yanıtı)
(Draft) (Finalized) (Sent to integrator) (Delivered to (Recipient
recipient) response)
```
For a commercial invoice, the last step is the recipient's **acceptance / rejection** response; for an export invoice,
this step is the response of the Ministry of Trade customs system (GTB).
| Status | Meaning |
|---|---|
| **Taslak** (Draft) | Can be edited; the date, note, exchange rate and the exemption / withholding code of the lines can change. Price and VAT come from the sales order. |
| **Kesinleşti** (Finalized) | Cannot be edited or deleted; ready for transmission. |
| Gönderim kuyruğunda · Entegratörde (In transmission queue · At integrator) | Being sent. |
| Alıcıya ulaştı · Yanıt bekleniyor (Delivered to recipient · Awaiting response) | Delivered to the recipient. |
| Kabul edildi · Reddedildi (Accepted · Rejected) | The recipient's response to a commercial invoice. |
| Gönderilemedi · Doğrulanamadı (Transmission failed · Could not be verified) | A problem occurred during transmission; resolution actions are displayed in the details. |
| İptal edildi · Geçersiz sayıldı (Cancelled · Voided) | |
### On a draft
- **Kaydet** (Save) — saves changes to the date, note and exchange rate. The **Öner** (Suggest) button next to the
exchange rate retrieves the Central Bank of the Republic of Türkiye (TCMB) buying rate.
- **Kesinleştir** (Finalize) — finalizes the invoice. A finalized invoice cannot be edited or deleted. Finalizing is
not sending.
- **Taslağı Sil** (Delete Draft) — the draft is deleted and the deliveries can be invoiced again.
**Kesinleştir** (Finalize) cannot be clicked while there are unsaved changes.
### On a finalized invoice
| Action | When |
|---|---|
| **GİB'e Gönder** (Send to GİB) | Kesinleşti (Finalized) or Gönderilemedi (Transmission failed). A sent invoice cannot be withdrawn: an e-Invoice is corrected with a return invoice, and an e-Archive invoice by cancellation. |
| **Durumu Yenile** (Refresh Status) | At the integrator, while awaiting a response, or when the invoice could not be verified. |
| **e-Arşiv İptal** (Cancel e-Archive) | Only for an e-Archive invoice; a reason is required. |
| **Taslağa Geri Al** (Revert to Draft) · **Yeniden Gönder** (Resend) | If transmission failed and no GİB number has been assigned. |
| **Geçersiz Say** (Void) · **Aynı Numarayla Yeniden Gönder** (Resend with Same Number) | If transmission failed but a GİB number has been assigned. |
| **Alınmadı Olarak İşaretle** (Mark as Not Received) | In Doğrulanamadı (Could not be verified) status; a reason is required. |
The **e-Belge süreci** (e-Document process) section of the details contains the integrator status, the time of the
last query and the document files (PDF, signed UBL). The files are retrieved after the invoice has reached the
recipient.
## Related screens
- [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat) — the source of the invoice.
- [Quotation to invoice](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya) — the end-to-end process.
---
# Revise a quotation
> Open a new draft revision with the same number to change a sales quotation that has been sent.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-revize-etme
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Teklif Yönetimi › Satış Teklifleri (Sales › Quotation Management › Sales Quotations) › quotation details
- **Screen route:** `/erp/sales/quotations/{id}`
- **Required permission:** `erp-sales-quotations.edit`
- **Prerequisites:**
- The quotation is in **Gönderildi** (Sent) status. A draft quotation is not revised; it is changed directly with **Düzenle** (Edit).
## Steps
1. Open the quotation details and click **Revize Et** (Revise) in the action bar.
2. In the **Yeni revizyon açılsın mı?** (Open a new revision?) dialog, click **Revizyon Aç** (Open Revision).

1. Open Revision
3. In the new revision, change prices, lines and terms with **Düzenle** (Edit) and save.
4. To transmit the revision to the customer, [send the quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-gonderme).
**Result:** The previous revision is closed as **Revize Edildi** (Revised) and can no longer be converted to a sales order. The new revision carries the same quotation number, a revision number incremented by one (e.g. `ST-2026-000004 · Rev 2`), today's date and the same validity period.
## What you need to know
- By default, the quotation list shows only the **current** revisions. To see earlier revisions, select **Revize
Edildi** (Revised) in the **Durum** (Status) filter.
## Related
- [Sales quotations screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri)
---
# Price lists
> Price lists, period and quantity prices, characteristic surcharges, special prices, group discounts and the price determination order.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri
The source of the unit price proposal on sales documents. Each customer is assigned to a price list; a customer without
an assignment is priced from the default list. Customer-specific agreements are kept on the **Özel Fiyatlar** (Special
Prices) screen, and category-based discounts on the **Grup İskontoları** (Group Discounts) screen.
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Ana Veriler › Fiyat Listeleri · Özel Fiyatlar · Grup İskontoları (Sales › Master Data › Price Lists · Special Prices · Group Discounts)
- **Screen route:** `/erp/sales/price-lists`
- **Required permission:** `erp-sales-price-lists.view (görme) · .create / .edit (değiştirme) · .import (dosyayla aktarım)`
## How the price is determined {#fiyat-nasıl-belirlenir}
When a product is selected on a quotation or sales order line, the price is searched in the following order; the first
one found is proposed:
1. **Customer-specific price** — an agreement for customer + product + currency.
2. **Campaign** — a valid campaign price.
3. **The customer's price list** (the **default list** if there is no assignment) — the list's **period and quantity
price** takes precedence if one exists; otherwise, the list price.
4. **Group discount** — the discount defined for the product's category is proposed on the line (not proposed if a
special price or a period / quantity price was found).
If a sales channel is selected, the channel's list is included in the chain, as is a list defined specifically for the
customer's sales area. The source of the proposal is shown on the line (e.g. "Özel fiyat" — Special price, "Kampanya
KOD" — Campaign CODE, "STANDART · kademe ≥ 100" — STANDARD · scale ≥ 100). **The proposal is not binding:** if you
change the price manually, the proposal remains visible below it and the deviation percentage is flagged.
## Price lists

1. New Price List
2. Import / export with Excel
3. Base list — derived from another list by a factor
4. Default list — used when the customer has none
Columns: **Kod** (Code), **Ad** (Name), **Para birimi** (Currency), **Temel liste** (Base list; "CODE × factor" for a
derived list), **Ürün sayısı** (Number of products), **Müşteri sayısı** (Number of customers), **Varsayılan** (Default),
**Durum** (Status). The row's **İşlemler** (Actions) menu offers **Varsayılan Yap** (Set as Default; for an active list
that is not the default). A price list is not deleted; it is set to inactive.
### List definition
| Field | Description |
|---|---|
| **Ad** (Name), **Kod** (Code) | The code is proposed from the name. |
| Temel liste · **Katsayı** (Base list · Factor) | Derived list: prices are the base list price × the factor (1.10 = 10% above; 0.85 = 15% below). A derived list takes the currency of the base list. |
| **Para birimi** (Currency) | Cannot be changed while the list contains prices. |
| Aktif (Active) | |
The first active list automatically becomes the default.
### List details

1. Price basis — unit and VAT excluded / included
2. Period and quantity scales
3. Option surcharges for configurable products
4. Mass Update — by percent or amount
5. Add Price
- **Fiyatlar** (Prices): product, unit, price and source ("Listenin fiyatı" — List price, or "Türetilmiş" — Derived).
The price is in the base unit of the item master record and excludes VAT.
- **Dönem ve Miktar Fiyatları** (Period and Quantity Prices): a price valid in a specific period or above a specific
quantity (product, price, minimum quantity, period, note). A rule with a period takes precedence over a permanent
rule; for quantity scales, the highest threshold that matches the line quantity applies. A rule with an empty period
is permanent.
- **Karakteristik Farkları** (Characteristic Surcharges): price differences by option for configurable products. For a
characteristic with options, a fixed amount per option is entered; for a numeric characteristic, an amount per unit.
Line price = list price + the surcharges of the selected options.
**Toplu Güncelle** (Mass Update): changes the list's prices in bulk by a percentage or an amount (can be narrowed down
by category and search; rounding can be selected). Click **Önizle** (Preview) first; **Uygula** (Apply) becomes
available only after a preview taken with the same parameters and without invalid rows. Derived prices do not change,
because they follow the factor.
**İçe / Dışa Aktar** (Import / Export): all price data is in a single Excel workbook (lists, prices, period and quantity
prices, characteristic surcharges, customer assignments, special prices, group discounts). Export and edit it; when
importing, first use **Kontrol Et** (Check) to see what will change.
### Assigning a list to a customer
The assignment is made on the **Satış** (Sales) tab of the customer master record
([Customers](https://erpdocs.corexlogic.com/en/satis/ekranlar/musteriler#satış-sekmesi)).
## Special prices

1. New Special Price
2. Validity — applied when the order date is in range
A single agreement for one customer, one product and one currency. It is the first link in the price chain and
overrides the customer's list.
| Field | Description |
|---|---|
| **Müşteri** (Customer), **Ürün** (Product) | Cannot be changed when editing. |
| **Fiyat** (Price), **Para birimi** (Currency) | No currency conversion is performed; the price is used only on documents in the same currency. |
| Geçerlilik (Validity) | Empty = unlimited. Evaluated against the sales order date. |
| Not (Note) | |
When a special price is deleted, new sales orders are priced from the customer's list; past sales orders are not
affected.
## Group discounts

1. New Group Discount
2. Product category — subcategory rule wins
3. Proposed line discount
Proposes a line discount for a product category (including subcategories), for one customer or for all customers.
| Field | Description |
|---|---|
| **Kapsam** (Scope) | A specific customer or all customers. |
| **Müşteri** (Customer) | Required if the scope is a customer. |
| **Kategori** (Category) | Also covers subcategories. |
| **İskonto %** (Discount %) | Greater than 0, at most 100. |
| Geçerlilik · Not (Validity · Note) | |
A customer-specific rule takes precedence over a general rule, and a subcategory over its parent category.
## Related screens
- [Customers](https://erpdocs.corexlogic.com/en/satis/ekranlar/musteriler) — price list assignment.
- [Sales quotations](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri) · [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri) — where the price proposal is used.
---
# Create a sales order
> Enter a new sales order without a quotation — document type, customer, requested delivery date and lines.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/siparis-olusturma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Sipariş Yönetimi › Satış Siparişi Oluştur (Sales › Order Management › Create Sales Order)
- **Screen route:** `/erp/sales/orders/new`
- **Required permission:** `erp-sales-orders.create`
- **Prerequisites:**
- The customer is an **Aktif** (Active) business partner; the products have an item master record and are released for sales.
- This screen is not used for a sales order that originates from a quotation — [convert the quotation to a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-siparise-donusturme) instead.
## Steps
1. Open the **Satış › Sipariş Yönetimi › Satış Siparişi Oluştur** (Sales › Order Management › Create Sales Order) screen, or click **Yeni Sipariş** (New Order) in the **Satış Siparişleri** (Sales Orders) list.
2. Change the **Belge Türü** (Document Type) if necessary; the default is **Standart Sipariş** (Standard Order).
3. In the **Müşteri** (Customer) field, type a code or name and press `Enter`, select the customer and press `Enter` again. **Sipariş Tarihi** (Order Date) is today.
4. On the **Teslimat ve Ödeme** (Delivery and Payment) tab, enter the **İstenen Teslim** (Requested Delivery) date; delivery planning is based on this date.
5. In the **Kalemler** (Items) table, select the **Ürün** (Product) and type the **Miktar** (Quantity). The **Birim Fiyat** (Unit Price) is proposed from the price list.
6. Validate the form with **Kontrol Et** (Check) and click **Siparişi Oluştur** (Create Order).

1. Document type — standard, rush, sample…
2. Customer
3. Requested delivery — drives delivery planning
4. Product
5. Quantity
6. Create Order — saves as draft
**Result:** The sales order is saved with number **SS-yyyy-nnnnnn** in **Taslak** (Draft) status, and the sales order details open. A draft sales order can be edited; to create a delivery, first [approve the sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama).
## What you need to know
- The calendar icon on a line shows the item's **availability**: whether it can be supplied from stock on the
requested date and, if not, the earliest possible date.
- The line details (›) open a line-specific delivery date, a note and, for a configurable product, its options.
- If the customer's credit limit is exceeded, the sales order receives a **credit block**; no delivery can be created
until the block is released.
## Related
- [Sales orders screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri)
---
# Customers
> The customer master record — general data, addresses, contact persons, commercial terms, price list, credit and balance.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/musteriler
Customers and suppliers are kept in a **single master record**: the same company can be both. This screen is the
business partner list filtered by the customer role; the main screen is **Ana Veriler › İş Ortakları › İş Ortağı Ana
Verileri** (Master Data › Business Partners › Business Partner Master Data).
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Ana Veriler › Müşteriler (Sales › Master Data › Customers)
- **Screen route:** `/erp/sales/customers`
- **Required permission:** `erp-partners-cards.view (görme) · .create (yeni kart) · .edit (düzenleme)`
## Customer list

1. New Business Partner — one card for customer and supplier
2. Import addresses and contacts from Excel
3. Tax / national ID number
Columns: **Kod** (Code), **Ünvan** (Name), **Rol** (Role; Müşteri — Customer / Tedarikçi — Supplier), **Merkez / Grup**
(Head Office / Group), **Vergi / TC No** (Tax / Turkish ID No.), **Vergi Dairesi** (Tax Office), **E-posta** (E-mail),
**Telefon** (Phone), **Durum** (Status). **Filters:** **Ara** (Search; code, name, tax no., e-mail or phone), **Rol**
(Role), **Şirket Grubu** (Company Group; if defined), **Durum** (Status; active / inactive).
Clicking a row opens the master record in **display** mode; to change it, click **Düzenle** (Edit) on the record. A
business partner master record is not deleted; to take it out of use, it is set to inactive. An inactive record cannot
be selected on new documents.
## Customer master record

1. Identity — tax / national ID and tax office
2. Commercial terms — payment term, incoterm, credit
3. Sales — price list, rep, channel
4. e-Document — registered user and mailbox
5. Edit
### Header
| Field | Description |
|---|---|
| **Kod** (Code) | Converted to upper case; must be unique. |
| **Ünvan** (Name) | |
| Kimlik Türü · Vergi / TC No · Vergi Dairesi (ID Type · Tax / Turkish ID No. · Tax Office) | The tax identification number must have 10 digits and a valid check digit. On a record for an individual (Turkish ID number, TCKN), **Ad** (First Name) and **Soyad** (Last Name) are required. |
| **Roller** (Roles) | Müşteri (Customer) and / or Tedarikçi (Supplier); at least one is required. |
| Aktif (Active) | |
### Tabs
| Tab | Content |
|---|---|
| Genel (General) | E-mail, phone; creation and last update time. |
| Şubeler (Branches) | Branch records linked to this record. |
| İlgili Kişiler (Contact Persons) | Full name, title, phone, e-mail. |
| Adres (Address) | The record's address: address, country, province, district, postal code. |
| Sevk Adresleri (Ship-to Addresses) | Addresses to which goods are delivered. |
| Ticari Şartlar (Commercial Terms) | Default payment term (days), shipping method and its note, shipping type. Proposed on sales orders; can be changed on the document. |
| Merkez ve Grup (Head Office and Group) | The head office and company group to which the record belongs. |
| Satış (Sales) | Only for the customer role: price list, delivery setting, customer item codes, sales areas. |
| e-Belge (e-Document) | e-Invoice / e-Archive information; a registered tax identification number is required. |
| Satış Belgeleri (Sales Documents) | The customer's recent sales orders, invoices and deliveries. |
| Bakiye (Balance) | Balance per currency, overdue amount, open items and credit limit. |
| Ekler (Attachments) | Files attached to the record. |
When you hover over a tab that cannot be used, the reason it is disabled is shown (e.g. "Kart müşteri rolünde değil" —
The record does not have the customer role).
### Adding contact persons and ship-to addresses
Rows added with **Kişi Ekle** (Add Contact; full name required) and **Adres Ekle** (Add Address; address name and street
required) are **saved immediately** — they do not wait for the record's **Kaydet** (Save) button. The first record added
becomes the default; the row's **İşlemler** (Actions) menu offers **Varsayılan Yap** (Set as Default), **Düzenle** (Edit)
and **Sil** (Delete). The default contact person and the default ship-to address are proposed automatically on new
quotations and sales orders.
### Sales tab {#satış-sekmesi}
- **Fiyat listesi** (Price list): the customer's price list is selected and saved with **Uygula** (Apply), independently
of the record's **Kaydet** (Save) button. If there is no assignment, the default list applies; a customer-specific
price, if any, takes precedence. Details: [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri#fiyat-nasıl-belirlenir).
- **Müşteri kalem kodları** (Customer item codes): the customer's own product codes; used on documents and printouts.
- **Satış alanları** (Sales areas): price list, payment term, shipping method and shipping type per sales organization,
channel and division.
### Credit limit and balance
The **Kredi Limiti** (Credit Limit) section on the **Bakiye** (Balance) tab shows the limit, exposure, remaining amount
and status: Limit içinde (Within limit) · Limit aşıldı (Limit exceeded) · Gecikme toleransı aşıldı (Overdue tolerance
exceeded) · Pasif (Inactive). The limit is not changed here; it is defined on the credit manager's screen. For a
customer without a credit profile, no credit check is performed on sales orders. This section is displayed for users
with permission to view credit data.
## Mass import
On the **Ana Veriler › İş Ortakları › İş Ortağı Aktarımı** (Master Data › Business Partners › Business Partner Import)
screen, customer master records are created or updated in bulk with an Excel (.xlsx) workbook: download the template,
fill it in, then click **Kontrol Et** (Check) first and **Aktar** (Import) afterwards. Ship-to addresses and contact
persons are imported with a separate workbook (the **Adres ve Kişi Aktarımı** (Address and Contact Import) button in the
list).
## Related screens
- [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri) — the customer's prices.
- [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri) — the record's commercial terms and addresses are proposed on the sales order.
---
# Approve a sales order
> Commercially approve a draft sales order; deliveries and production orders are created from the approved sales order.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Sipariş Yönetimi › Satış Siparişleri (Sales › Order Management › Sales Orders) › sales order details
- **Screen route:** `/erp/sales/orders/{id}`
- **Required permission:** `erp-sales-orders.edit`
- **Prerequisites:**
- The sales order is in **Taslak** (Draft) status and its lines are complete (product, quantity, price).
## Steps
1. In the **Satış Siparişleri** (Sales Orders) list, click the sales order number.
2. In the action bar, click **Siparişi Onayla** (Approve Order).
3. In the **Sipariş onaylansın mı?** (Approve sales order?) dialog, check the customer and amount, then click **Siparişi Onayla** (Approve Order).

1. Approve Order
**Result:** The sales order moves to **Onaylandı** (Approved) status and its lines can no longer be edited. The action bar shows **Teslimat Oluştur** (Create Delivery) and, for make-to-order lines, **Üretim Emri Aç** (Open Production Order). Next step: [create a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimat-olusturma).
## What you need to know
- Approval **does not reserve stock** and does not guarantee stock. The physical stock issue takes place only when
the goods issue is posted.
- An approved sales order can be cancelled (**Siparişi İptal Et** — Cancel Order) or its remaining quantity can be
closed (**Siparişi Kapat** — Close Order, **Satırı Kapat** — Close Line) — the closed quantity is not delivered.
## Related
- [Sales orders screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri)
---
# Service confirmations
> Fulfilment of the service and third-party lines of a sales order — confirmation list, details, cancellation and draft invoice.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/hizmet-teyitleri
**Service** lines such as installation, commissioning or training are not issued from a warehouse; they are fulfilled
by a **service confirmation** rather than a delivery. The confirmation records "this much has been completed" on the
service line of the sales order and is the source of the invoice. **No stock movement is posted.** A **third-party**
line shipped directly by the supplier is confirmed the same way, for the quantity the supplier has confirmed.
A confirmation originates from the sales order: there is no "Create" entry in the menu. The **Hizmeti Tamamla**
(Complete Service) button on the details of an approved sales order opens the confirmation — for the steps, see
[Complete a service](https://erpdocs.corexlogic.com/en/satis/islemler/hizmeti-tamamlama).
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Sipariş Yönetimi › Hizmet Teyitleri (Sales › Order Management › Service Confirmations)
- **Screen route:** `/erp/sales/service-confirmations`
- **Required permission:** `erp-sales-service-confirmations.view (görme) · .create (Hizmeti Tamamla, iptal)`, `erp-invoicing-invoices.create (teyitten fatura taslağı)`
## Confirmation list

1. Confirmation number — opens the detail
2. Source sales order
3. Status filter — Posted / Cancelled
Columns: **Teyit No** (Confirmation No.), **Tarih** (Date), **Sipariş** (Sales Order), **Müşteri** (Customer),
**Satır** (Lines; the number of lines in the confirmation), **Durum** (Status). The row's action menu contains
**Hizmet Teyidini Aç** (Open Service Confirmation).
Filters: **Ara** (Search; confirmation no., sales order no. or customer), **Durum** (Status; Tümü — All · Kaydedildi —
Posted · İptal — Cancelled), **Tarih (başlangıç)** (Date from) and **Tarih (bitiş)** (Date to).
## Statuses
| Status | Meaning |
|---|---|
| **Kaydedildi** (Posted) | The confirmation has been recorded on the sales order; the line's **Tamamlanan** (Completed) quantity increased and **Kalan** (Remaining) decreased. |
| **İptal** (Cancelled) | The confirmation has been reversed; the quantity recorded on the sales order has been returned. |
A confirmation that has been invoiced shows **Faturalandı** (Invoiced) next to its status.
## Confirmation details

1. Status
2. Create Invoice — outgoing invoice draft
3. Cancel — only while not invoiced
4. Confirmed quantity
The header shows **Durum** (Status), **Tamamlanma** (Completion; the completion date), **Sipariş** (Sales Order; a link
to the sales order), **Müşteri** (Customer), **Not** (Note), **Kaydeden** (Posted By) and, if cancelled, **İptal**
(Cancellation; reason and time). The **Hizmet Satırları** (Service Lines) table shows the sales order line, the service
and the **Tamamlanan** (Completed) quantity.
| Button | When it appears | What it does |
|---|---|---|
| **Fatura Oluştur** (Create Invoice) | Status is **Kaydedildi** (Posted), not invoiced, `erp-invoicing-invoices.create` permission | Prompts for the **Fatura tarihi** (Invoice date); **Taslak Oluştur** (Create Draft) opens an outgoing draft invoice from the confirmed services at the sales order line price. Finalization and sending are done on the invoice. |
| **İptal Et** (Cancel) | Status is **Kaydedildi** (Posted), not invoiced, `.create` permission | **Hizmet Teyidini İptal Et** (Cancel Service Confirmation) dialog: **Gerekçe** (Reason) is required. The quantity recorded on the sales order is reversed and the sales order is reopened. |
Confirmations are also listed in the **Hizmet Teyitleri** (Service Confirmations) section of the sales order details;
each row has **İptal Et** (Cancel).
> **An invoiced confirmation cannot be cancelled. Server message: "Faturalanmış hizmet teyidi iptal edilemez." (An invoiced**
service confirmation cannot be cancelled.)
## Service line on the sales order details
On an approved sales order with a service line, the **Sevk Edilen** (Shipped) column of the line table is renamed
**Tamamlanan** (Completed). If the sales order contains only service lines, **Teslimat Oluştur** (Create Delivery) is
not shown and **Hizmeti Tamamla** (Complete Service) is the primary button; on a sales order that mixes stock and
service lines, both are shown.
## Related
- [Complete a service](https://erpdocs.corexlogic.com/en/satis/islemler/hizmeti-tamamlama)
- [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri)
- [Invoicing](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama)
---
# Create a delivery from a sales order
> Post the delivery and the goods issue for an approved sales order in a single step — warehouse, storage location, lot and serial number allocation.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/teslimat-olusturma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Satış Siparişleri › sipariş detayı › Teslimat Oluştur (Sales › Sales Orders › sales order details › Create Delivery)
- **Screen route:** `/erp/sales/orders/{id}/shipments/new`
- **Required permission:** `erp-sales-shipments.create`
- **Prerequisites:**
- The sales order is in **Onaylandı** (Approved) status and has no credit block.
- The products to be shipped are in available stock in the warehouse to be selected.
This is the **single-step** path: the delivery and the goods issue are posted together. If picking and packing are
performed separately in the warehouse, use the two-step path: [create open deliveries](https://erpdocs.corexlogic.com/en/satis/islemler/acik-teslimat-olusturma),
then [post the goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme). The **Mal çıkışı sonra: açık teslimat** (Goods issue
later: open delivery) link on the form also leads to that path.
## Steps
1. In the details of the approved sales order, click **Teslimat Oluştur** (Create Delivery).

1. Create Delivery — with goods issue
2. Open Production Order — make to order
3. Shipped and remaining quantity
4. Linked documents — quotation, delivery, production order
2. From the **Depo** (Warehouse) list, select the warehouse from which the goods will be issued. All lines of a delivery are issued from the same warehouse.
3. For each line, click **Dağılım Ekle** (Add Allocation); enter the **Lokasyon** (Storage Location), the stock **Durum** (Status) and the **Miktar** (Quantity). For a lot-managed product, **FEFO ile Dağıt** (Allocate by FEFO) splits the remaining quantity across the lots with the nearest expiry dates; for a serial-managed product, select the serial numbers.
4. Check the allocation total at the bottom of the form and click **Teslimatı Kaydet** (Save Delivery).

1. Warehouse — all lines leave from one warehouse
2. Add Allocation — location, stock status, lot/serial
3. Allocated quantity; available stock shown next to it
4. Two-step path: open delivery first, goods issue later
5. Save Delivery — delivery and goods issue together
5. In the delivery details that open, check that the status is **Mal Çıkışı Kaydedildi** (Goods Issue Posted); print the delivery note from the **Çıktı** (Output) menu.

1. Status — stock reduced, document locked
2. Output — delivery note
3. Issued lots and serial numbers
4. Proof of delivery — signed delivery note
**Result:** The delivery is saved with number **SV-yyyy-nnnnnn**, and the goods issue is processed at the same time: stock is reduced, and the **Sevk Edilen** (Shipped) quantity of the sales order increases. The delivery appears in **Faturalanmamış Teslimatlar** (Unbilled Deliveries); the next step is the [invoice](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-olusturma) or the [invoice reference](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-referansi-girme).
## What you need to know
- Partial delivery is allowed: the remaining quantity stays open on the sales order and is shipped with a later
delivery.
- **Sipariş Ekle** (Add Order) adds other open sales orders of the same customer in the same currency to the same
delivery note.
- The availability information on the form is for information only; it is checked again at the time of posting. If
stock is insufficient, posting is rejected.
- A posted delivery cannot be changed; an error is corrected with **Teslimat Düzeltmesi Oluştur** (Create Delivery
Correction), and a return with **İade Al** (Receive Return).
## Related
- [Delivery and goods issue screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat)
---
# Sales contracts
> Item prices and a target agreed with a customer for a period — quantity or value contract, call-off orders and remaining quantity.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-sozlesmeleri
A sales contract holds the **item prices** and the **target** (quantity or amount) agreed with a customer for a
specific **validity** period. A contract does not ship goods by itself: the customer places **call-off orders** as
needed — the contract is selected on the sales order line, the price comes from the contract and the target cannot be
exceeded. The contract's **Çağrılan** (Called Off) and **Kalan** (Remaining) quantities are calculated from approved sales
orders.
End-to-end example: [Contract-based sales](https://erpdocs.corexlogic.com/en/surecler/sozlesmeli-satis).
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Sipariş Yönetimi › Satış Sözleşmeleri · Satış Sözleşmesi Oluştur (Sales › Order Management › Sales Contracts · Create Sales Contract)
- **Screen route:** `/erp/sales/contracts`
- **Required permission:** `erp-sales-contracts.view (görme) · .create (oluşturma) · .edit (düzenleme, yürürlüğe alma, kapatma, iptal)`
## Contract list

1. Create Sales Contract
2. Validity — call-offs within this range
3. Draft · Released · Closed · Cancelled
Columns: **Sözleşme No** (Contract No.), **Tür** (Type), **Müşteri** (Customer), **Kanal** (Channel), **Geçerlilik**
(Validity), **Hedef Tutar** (Target Amount; for a value contract), **Durum** (Status). The row's action menu contains
**Sözleşmeyi Aç** (Open Contract). Filters: **Ara** (Search; contract no., customer or product) and **Durum** (Status).
**Satış Sözleşmesi Oluştur** (Create Sales Contract) in the header opens the form.
## Types
| Type | Target | Call-off limit |
|---|---|---|
| **Miktar Sözleşmesi** (Quantity Contract) | **Hedef Miktar** (Target Quantity) is required on each item | An item's called-off quantity cannot exceed its target quantity. |
| **Değer Sözleşmesi** (Value Contract) | **Hedef Tutar (net)** (Target Amount, net) is required in the header; the target quantity on an item is optional (empty = unlimited) | The called-off net amount of all items cannot exceed the target amount; on an item with a target quantity, the quantity is also a limit. |
## Statuses
| Status | Meaning | Allowed actions |
|---|---|---|
| **Taslak** (Draft) | Saved; call-offs cannot be made. | **Düzenle** (Edit), **Yürürlüğe Al** (Put into Effect), **İptal Et** (Cancel) |
| **Yürürlükte** (In Effect) | Sales orders within the validity period can call off the contract. | **Kapat** (Close), **İptal Et** (Cancel; only if never called off) |
| **Kapandı** (Closed) | The remainder can no longer be called off; past call-offs do not change. | — |
| **İptal Edildi** (Cancelled) | The contract is invalid. | — |
The close and cancel dialogs (**Sözleşmeyi Kapat** — Close Contract, **Sözleşmeyi İptal Et** — Cancel Contract) require
a **Gerekçe** (Reason). A contract with call-offs cannot be cancelled; server message: "Sözleşmeye bağlı sipariş satırı
var — iptal yerine kapatın." (There are sales order lines linked to the contract — close it instead of cancelling.)
## Create a sales contract

1. Type — quantity or value contract
2. Validity range
3. Add product
4. Target quantity — call-offs cannot exceed it
5. Contract price — copied to the order
6. Save Draft
| Field | Description |
|---|---|
| **Tür** (Type; required) | Miktar Sözleşmesi (Quantity Contract) or Değer Sözleşmesi (Value Contract). |
| **Müşteri** (Customer; required) | Searched by code or name. |
| **Satış Kanalı** (Sales Channel) | The contract can be called off only from a sales order in the same channel. The default channel is proposed. |
| **Para Birimi** (Currency; required) | Only a sales order in the same currency can call off the contract; there is no currency conversion. |
| **Geçerlilik Başlangıcı** · **Bitiş** (Valid From · To; required) | The sales order date must fall within this range. |
| **Hedef Tutar (net)** (Target Amount, net) | Only for a value contract. |
| **Kalemler** (Items) | Products are selected with **Ürün ekle** (Add product); each line has **Birim** (Unit), **Hedef Miktar** (Target Quantity; for a value contract "Hedef Miktar (ops.)" — Target Quantity, optional) and **Birim Fiyat (net)** (Unit Price, net). |
| **Not** (Note) | Optional. |
**Taslağı Kaydet** (Save Draft) saves the contract as **Taslak** (Draft) and opens its details; to allow call-offs, it
is put into effect from the details. For the steps, see
[Create a sales contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesme-olusturma).
## Contract details

1. Status: Released — call-offs allowed
2. Called off — from approved orders
3. Remaining target
4. Call-off orders
5. Close — remainder no longer callable
- Header: **Durum** (Status), **Tür** (Type), **Müşteri** (Customer), **Satış Kanalı** (Sales Channel), **Geçerlilik**
(Validity), for a value contract the **Hedef / Çağrılan / Kalan** (Target / Called Off / Remaining) amount,
**Hazırlayan** (Prepared By), **Not** (Note) and, if closed, **Kapanış** (Closure).
- **Kalemler** (Items): **Ürün** (Product), **Birim Fiyat** (Unit Price), **Hedef** (Target), **Çağrılan** (Called Off),
**Kalan** (Remaining).
- **Çağrı Siparişleri** (Call-Off Orders): the approved sales orders that call off the contract — **Sipariş**
(Sales Order), **Tarih** (Date), **Durum** (Status), **Ürün** (Product), **Miktar** (Quantity), **Tutar (net)**
(Amount, net). If there are no call-offs, it shows "Henüz çağrı yok — satış siparişinin satırında sözleşmeyi seçin."
(No call-offs yet — select the contract on the sales order line.)
> **How the called-off quantity is counted**
Only contract-linked lines of sales orders in **Onaylandı** (Approved) status are counted; draft and cancelled sales
orders are not counted. For a closed sales order or line, only the shipped quantity is counted.
## Call-off order
In the line details of a sales order, the **Sözleşme** (Contract) field appears only if a valid contract exists for the
line's product and unit. Details: [Order from a contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesmeden-siparis).
## Related
- [Create a sales contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesme-olusturma)
- [Order from a contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesmeden-siparis)
- [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri)
---
# Create open deliveries
> Collectively create open outbound deliveries from sales order lines that are due for delivery; the goods issue is posted later.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/acik-teslimat-olusturma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Giden Teslimat Oluştur (Logistics Management › Outbound Delivery › Create Outbound Delivery)
- **Screen route:** `/erp/sales/shipments/new`
- **Required permission:** `erp-sales-shipments.create`
- **Prerequisites:**
- The sales orders of the lines to be delivered are in **Onaylandı** (Approved) status.
## Steps
1. Open the **Lojistik Yönetimi › Giden Teslimat › Giden Teslimat Oluştur** (Logistics Management › Outbound Delivery › Create Outbound Delivery) screen.
2. Enter the **Vadesi gelen (en geç)** (Due by, latest) date; the sales order lines to be delivered up to this date are listed. If necessary, filter by sales order or customer with **Ara** (Search).
3. Check the lines to be included in the delivery; change the **Teslimat Miktarı** (Delivery Quantity) if necessary.
4. Select the **Depo** (Warehouse); if necessary, enter the **Planlanan sevk tarihi** (Planned shipping date) and a **Not** (Note).
5. Click **Teslimat Oluştur** (Create Delivery).

1. Due by — items to deliver up to this date
2. Select the item to deliver
3. Warehouse
4. Create Delivery — opens an open delivery
**Result:** The selected lines are grouped by recipient, address and shipping method; each group becomes an **Açık** (Open) delivery. The lines are reserved on the sales order; stock is not yet reduced. Next step: [post the goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme).
## What you need to know
- The list shows only the quantity that **can be delivered**: ordered − shipped − in open deliveries.
- Before the goods issue, an open delivery can be cancelled with **Teslimatı İptal Et** (Cancel Delivery); the lines
return to the sales order.
- Picking and packing (handling units) can be performed on an open delivery; packing is not a prerequisite for the
goods issue.
## Related
- [Delivery and goods issue screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat)
- [Create a delivery from a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/teslimat-olusturma) (single-step path)
---
# Return requests
> Agree on quantity and reason with the customer before the goods come back — request, approval or rejection, return from the request and closure.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/iade-talepleri
A return request is opened when a customer wants to send goods back, to agree on the quantity and the reason **before
the goods come back**. The request is a **decision document: it does not touch stock.** Once approved, the return is
received from this request and cannot exceed the requested quantity. A request is not mandatory — when the goods arrive,
a return can also be received directly from the delivery: [Sales returns](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-iadeleri).
A request originates from a delivery: there is no "Create" entry in the menu. A new request is opened with **İade
Talebi Aç** (Open Return Request) on the details of a delivery whose goods issue has been posted — for the steps, see
[Open a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebi-acma). End-to-end example:
[Sales return](https://erpdocs.corexlogic.com/en/surecler/satis-iadesi).
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › İade Yönetimi › İade Talepleri (Sales › Returns Management › Return Requests)
- **Screen route:** `/erp/sales/return-requests`
- **Required permission:** `erp-sales-return-requests.view (görme) · .create (talep açma, iptal, kapatma) · .approve (onay, red)`, `erp-sales-returns.create (onaylı talepten İade Al)`
## Request list

1. Request number
2. Approver's queue: Awaiting Approval
3. Source delivery
4. Requester — cannot approve
Columns: **Talep No** (Request No.), **Durum** (Status), **Talep Tarihi** (Request Date), **Müşteri** (Customer),
**Kanal** (Channel), **Teslimat No** (Delivery No.), **Neden** (Reason), **Açan** (Opened By), **Kalem** (Items). The
row's action menu contains **İade Talebini Aç** (Open Return Request) (and **Geçmiş** — History — for authorized
users). Approval and rejection are not given in the list but on the request details.
Filters: **Ara** (Search; request, delivery or sales order no., or customer) and **Durum** (Status; Tüm durumlar — All
statuses — or a single status). The default view shows all requests; for the approver's queue, select **Durum: Onay
Bekliyor** (Status: Pending Approval).
## Statuses
| Status | Meaning | Next step |
|---|---|---|
| **Onay Bekliyor** (Pending Approval) | Opened, awaiting a decision. | **Onayla** (Approve) · **Reddet** (Reject) (approver) · **İptal Et** (Cancel) (requester permission) |
| **Onaylandı** (Approved) | The return can be received from this request. | **İade Al** (Receive Return) · **Kapat** (Close) |
| **Reddedildi** (Rejected) | Rejected with a reason. Final status. | — |
| **Kapandı** (Closed) | The entire request has come back, or the remainder is no longer expected. Final status. | — |
| **İptal Edildi** (Cancelled) | Withdrawn before a decision was made. Final status. | — |
When all items of the request have been received as returns, the request automatically becomes **Kapandı** (Closed).
If a return received from the request is reversed, the quantity goes back to the request; a request that closed
automatically becomes **Onaylandı** (Approved) again, while a request that was closed manually with a reason stays
closed.
## Request details

1. Status
2. Approve — someone other than the requester
3. Reject — with a reason
4. Segregation of duties
5. Quantity returned against the request
- **Talep Bilgileri** (Request Information): **Talep Tarihi** (Request Date), **Neden** (Reason), **Satış Kanalı**
(Sales Channel), **Teslimat** (Delivery; link), **Sipariş** (Sales Order), **Açan** (Opened By), **Karar** (Decision;
the decision maker and time), **Açıklama** (Description), **Gerekçe** (Reason).
- **Kalemler** (Items): **Ürün** (Product), **Lot** (Batch), **Talep** (Requested), **Dönen** (Returned; received as a
return from this request), **Kalan** (Remaining).
- **Talepten Doğan İadeler** (Returns from This Request): the return documents received from the request; a reversed
return shows "geri alındı" (reversed).
### Buttons
| Button | Visible when | Dialog and result |
|---|---|---|
| **İade Al** (Receive Return) | Onaylandı (Approved) + `erp-sales-returns.create` | Opens the return form linked to the request: only the request's items, up to the request's remaining quantity. |
| **Onayla** (Approve) | Onay Bekliyor (Pending Approval) + `.approve` | The request becomes **Onaylandı** (Approved). For the person who opened the request, the button is disabled and shows "Kendi açtığınız talebi onaylayamazsınız; kararı başka bir yetkili verir." (You cannot approve a request you opened yourself; another authorized user makes the decision.) |
| **Reddet** (Reject) | Onay Bekliyor (Pending Approval) + `.approve` | **Talebi Reddet** (Reject Request) dialog, **Red gerekçesi** (Rejection reason) required → **Reddedildi** (Rejected). |
| **İptal Et** (Cancel) | Onay Bekliyor (Pending Approval) + `.create` | **Talebi İptal Et** (Cancel Request) dialog, **İptal gerekçesi** (Cancellation reason) required → **İptal Edildi** (Cancelled). |
| **Kapat** (Close) | Onaylandı (Approved) + `.create` | **Talebi Kapat** (Close Request) dialog, **Kapatma gerekçesi (kalan artık beklenmiyor)** (Closing reason — the remainder is no longer expected) required → **Kapandı** (Closed). |
**Onayla** (Approve) is saved without opening a dialog. On an approved request (demo: IT-2026-000001, decided by **Demo
Onaylayıcı**), the **Karar** (Decision) field shows the decision maker and time; the buttons become **İade Al** (Receive
Return) and **Kapat** (Close).

1. Status
2. Receive Return — form linked to the request
3. Close — remainder not expected, with a reason
4. Who decided and when
**İade Al** (Receive Return) opens the delivery's **Yeni Satış İadesi** (New Sales Return) form linked to the request
(`/erp/sales/shipments/{id}/returns/new?requestId={id}`). The top of the form reads "IT-2026-000001 onaylı iade
talebinden — yalnız talebin kalemleri, talebin kalanı kadar." (From approved return request IT-2026-000001 — only the
request's items, up to the request's remaining quantity.); the line's **İade edilebilir** (Returnable) quantity is the
request's remaining quantity (12 in the example). A delivery line that is not in the request shows **İade edilebilir:
0** (Returnable: 0) with "Tamamı iade edilmiş ya da geri alınmış — bu satırdan yeni iade alınamaz." (Fully returned or
reversed — no new return can be received from this line.) below it.

1. Request link — only its items, up to the remainder
2. Line with nothing left to return
3. Return this line
4. Return quantity — up to the request remainder
5. Stock status — e.g. Quarantine
6. Save — stock increases at once
> **Segregation of duties**
The person who opened a request cannot approve it; there is no exception, not even for an administrator. Server
message: "Kendi açtığınız iade talebini onaylayamazsınız. Kararı başka bir yetkili vermeli." (You cannot approve a
return request you opened yourself. Another authorized user must make the decision.) Rejecting and cancelling your own
request is allowed.
## Related
- [Open a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebi-acma)
- [Approve or reject a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebini-onaylama)
- [Receive a return against a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma)
- [Sales returns](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-iadeleri)
---
# Post a goods issue
> Post the goods issue for an open outbound delivery — storage location, stock status, lot and serial number allocation; stock is reduced in this step.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme
- **Type:** Task
- **Module:** Sales
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimatlar (Logistics Management › Outbound Delivery › Deliveries) › delivery details
- **Screen route:** `/erp/sales/shipments/{id}/goods-issue`
- **Required permission:** `erp-sales-shipments.create`
- **Prerequisites:**
- The delivery is in **Açık** (Open) status ([create open deliveries](https://erpdocs.corexlogic.com/en/satis/islemler/acik-teslimat-olusturma)).
- The products are in available stock in the delivery's warehouse.
## Steps
1. In the **Lojistik Yönetimi › Giden Teslimat › Teslimatlar** (Logistics Management › Outbound Delivery › Deliveries) list, click the number of the open delivery.
2. In the delivery details, click **Mal Çıkışını Kaydet** (Post Goods Issue).

1. Status: Open — items reserved on the order
2. Post Goods Issue
3. Cancel Delivery — before goods issue
4. Packing — optional
3. Change the **Mal çıkışı tarihi** (Goods issue date) if necessary; the default is the planned shipping date.
4. For each line, enter the storage location, stock status and quantity with **Dağılım Ekle** (Add Allocation); for a lot- or serial-managed product, select the lot or the serial numbers. The total of each line must equal the delivery quantity.
5. Click **Mal Çıkışını Kaydet** (Post Goods Issue).

1. Goods issue date — stock is reduced on this date
2. Allocation — location, status, lot or serial
3. Post Goods Issue
**Result:** Stock is reduced on the goods issue date, and the delivery moves to **Mal Çıkışı Kaydedildi** (Goods Issue Posted) status and can no longer be changed. The **Sevk Edilen** (Shipped) quantity of the sales order increases; the delivery appears in **Faturalanmamış Teslimatlar** (Unbilled Deliveries).
## What you need to know
- A **credit check** is performed for the customer at goods issue. If there is a credit block, an authorized user can
release it with **Krediyi Serbest Bırak** (Release Credit).
- When the signed delivery note is returned, record it in the delivery details with **Alındı Teyidi Kaydet** (Record
Proof of Delivery).
## Related
- [Delivery and goods issue screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat)
---
# Sales returns
> Receiving goods returned by the customer into stock — return from a delivery, return without a delivery, warehouse, stock status, batch/serial number and reversal.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-iadeleri
A sales return states "the goods were shipped, the customer received them and sent them back". The document is a
**single step**: it is posted when the goods arrive at the warehouse and **enters stock at the same time** — there is
no draft, and a posted return cannot be changed. The goods enter the selected warehouse, storage location and **stock
status** (e.g. Karantina — Quarantine); the sales order remains **shipped**.
There are two ways:
| Way | From where | When |
|---|---|---|
| **Teslimattan iade** (Return from delivery) | **İade Al** (Receive Return) on the delivery details or **İade Al** on an approved return request | Shipped goods have come back. The goods enter stock at the cost at which they left with the delivery. |
| **Teslimatsız iade** (Return without delivery) | **Teslimatsız İade** (Return Without Delivery) in this list | A return whose delivery is not in the system (e.g. goods brought back by hand without a delivery note). The customer and products are selected manually. |
> **Difference between a return and a delivery correction**
A **Teslimat Düzeltmesi** (Delivery Correction) states "the posting was wrong": it puts the goods back where they came
from, in the status they left in, and reverses the shipped quantity of the sales order. A **return**, on the other
hand, accepts that the delivery took place; the sales order remains shipped. Both reduce the "returnable" quantity of
the same delivery line.
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › İade Yönetimi › Satış İadeleri (Sales › Returns Management › Sales Returns)
- **Screen route:** `/erp/sales/returns`
- **Required permission:** `erp-sales-returns.view (görme) · .create (teslimattan iade, geri alma)`, `erp-sales-free-returns.create (teslimatsız iade)`
## Return list

1. Return without Delivery
2. Type — from delivery / without delivery
3. Source delivery
4. Return reason
Columns: **İade No** (Return No.; a reversed return carries the "Geri alındı" — Reversed — label), **İade Tarihi**
(Return Date), **Müşteri** (Customer), **Kanal** (Channel), **Teslimat No** (Delivery No.; "Teslimatsız" — Without
delivery — for a return without a delivery), **Sipariş No** (Sales Order No.), **Neden** (Reason), **Kalem** (Items).
The row's action menu contains **İadeyi Aç** (Open Return).
Filters: **Ara** (Search; return, delivery or sales order no., or customer), **Neden** (Reason; inactive reasons are
listed with the "· pasif" — inactive — marker), **Tür** (Type; Tümü — All · Teslimattan — From delivery · Teslimatsız —
Without delivery), **İade tarihi** (Return date) range.
## Return from delivery form

1. Return reason
2. Return this line
3. Return quantity — up to the returnable
4. Receiving warehouse and location
5. Stock status — e.g. Quarantine
6. Save — stock increases at once
The header shows the delivery no., delivery date, sales order no. and customer. If opened from an approved request, the
line "IT-2026-000001 onaylı iade talebinden — yalnız talebin kalemleri, talebin kalanı kadar." (From approved return
request IT-2026-000001 — only the request's items, up to the request's remaining quantity.) is shown (the number is an
example).
- **İade Bilgisi** (Return Information): **İade Tarihi** (Return Date; required, cannot be earlier than the delivery
date), **İade Nedeni** (Return Reason; required; for a reason that requires a description, such as "Diğer" — Other —
**Açıklama** (Description) is required), **Açıklama** (Description).
- Each delivery line is a separate section: shipped quantity, returnable quantity, batch and "Çıktığı durum" (Status it
left in). Select the line with **Bu satırı iade al** (Return this line); then:
- **İade Miktarı** (Return Quantity) — at most the returnable quantity ("Kalanı doldur" — Fill remaining — enters the
entire remainder),
- **Giriş Deposu** (Receiving Warehouse; required), **Lokasyon** (Storage Location; required in a warehouse with
storage location tracking; otherwise "Lokasyonsuz" — No storage location — can be selected), **Stok Durumu** (Stock
Status; required),
- on a serial-number-tracked line, select the **Geri Gelen Seriler** (Returned Serial Numbers); the quantity must
equal the number of serial numbers.
- Bottom bar: the number of selected lines ("1 satır iade alınacak" — 1 line will be returned) and **İadeyi Kaydet ve
Stoğa Al** (Save Return and Receive into Stock).
A line that has been fully returned or reversed with a correction shows "Tamamı iade edilmiş ya da geri alınmış — bu
satırdan yeni iade alınamaz." (Fully returned or reversed — no new return can be received from this line.)
## Return without delivery form

1. Customer — active customer cards
2. Currency — price proposal in this currency
3. Add Item — serial-tracked items not listed
- **İade Bilgisi** (Return Information): **Müşteri** (Customer; active customer master records; **Müşteri Seç** — Select
Customer), **Para Birimi** (Currency; the price proposal is searched in this currency, no currency conversion),
**Satış Kanalı** (Sales Channel; the price proposal comes from the channel's list), **İade Tarihi** (Return Date),
**İade Nedeni** (Return Reason), **Açıklama** (Description).
- **Kalem Ekle** (Add Item): each selected master record becomes a separate line. Serial-number-tracked products are not
in the list — they are returned from the delivery.
- On the line: **Birim** (Unit), **Miktar** (Quantity), **Birim Fiyat** (Unit Price; a proposal is provided; **Öneriyi
uygula** — Apply proposal), **İskonto %** (Discount %), **KDV** (VAT), for a batch-tracked product **Lot No** (Batch
No.; "Tanımlı değilse bu iadeyle açılır." — If not defined, it is created with this return.), **Giriş Deposu**
(Receiving Warehouse), **Lokasyon** (Storage Location), **Stok Durumu** (Stock Status), **Birim Maliyet** (Unit Cost)
and **Maliyet Para Birimi** (Cost Currency).
- If **Birim Maliyet** (Unit Cost) is left empty, the cost is assumed from the stock average and marked with ~ in
reports. The unit cost can be entered only with the permission to view stock costs.
For the steps, see [Receive a return without a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimatsiz-iade).
## Return details

1. Receiving warehouse / location
2. Stock status received into
3. Returned lot or serial
4. Reverse Return — for a wrong entry
- Header: return no., customer, **İade Tutarı** (Return Amount); **Çıktı** (Output) and **İadeyi Geri Al** (Reverse
Return).
- **İade Bilgileri** (Return Information): **İade Tarihi** (Return Date), **Neden** (Reason), **Satış Kanalı** (Sales
Channel), **İade Talebi** (Return Request; if received from a request), **Teslimat** (Delivery; for a return without a
delivery, "Teslimatsız iade · Müşteri ve ürünler elle seçildi" — Return without delivery · Customer and products
selected manually), **Sipariş** (Sales Order), **Kaydeden** (Posted By), **Açıklama** (Description).
- **Kalemler** (Items): **Ürün** (Product), **Miktar** (Quantity), **Birim Fiyat** (Unit Price), **Giriş Deposu**
(Receiving Warehouse), **Stok Durumu** (Stock Status), **Lot / Seri** (Batch / Serial Number), **Net Tutar** (Net
Amount), **Toplam** (Total). A line without a delivery whose cost was not entered carries the **Maliyet varsayıldı**
(Cost assumed) label.
- Totals: **Net**, **KDV** (VAT), **İade Tutarı** (Return Amount) — an approximate amount calculated from the sales
order price for a return from a delivery, and from the return price for a return without a delivery. The invoicing
side of the return is in Finance.
### Reversing a return
A return posted by mistake is not deleted; the **İadeyi Geri Al** (Reverse Return) dialog (**İade geri alınsın mı?** —
Reverse the return?) opens:
> Stok girişi bugünün tarihiyle tersine çevrilir; iade belgesi silinmez, geri alınmış olarak kalır ve
> mal yeniden iade alınabilir. Faturalanmış iade geri alınamaz; geri gelen mal satıldıysa ya da
> kullanıldıysa geri alma reddedilir. Geri alma geri alınamaz.
>
> (The stock receipt is reversed with today's date; the return document is not deleted, it remains as reversed and the
> goods can be returned again. An invoiced return cannot be reversed; if the returned goods have been sold or used, the
> reversal is rejected. A reversal cannot be undone.)
**Geri Alma Gerekçesi** (Reversal Reason) is required. A reversed return shows "Bu iade geri alındı — stok girişi
tersine çevrildi." (This return has been reversed — the stock receipt was reversed.)
Server messages:
| Message | Meaning |
|---|---|
| "Bu iade zaten geri alınmış." | This return has already been reversed. |
| "İade faturalanmış (fatura, fatura referansı ya da gelen iade faturası bağlı) — geri almadan önce o bağı kaldırın." | The return has been invoiced (an invoice, invoice reference or incoming return invoice is linked) — remove that link before reversing. |
## Return section on the delivery details

1. Returns only after goods issue
2. Open Return Request — agree first
3. Receive Return — goods arrived
4. Returns taken from this delivery
On a delivery whose goods issue has been posted, the **İade Talebi Aç** (Open Return Request) and **İade Al** (Receive
Return) buttons are shown (they are not available on an open or cancelled delivery). The **İade Geçmişi** (Return
History) section lists the returns received from this delivery.
## Related
- [Receive a return against a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma)
- [Receive a return without a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimatsiz-iade)
- [Return requests](https://erpdocs.corexlogic.com/en/satis/ekranlar/iade-talepleri)
- [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat)
---
# Enter an invoice reference
> Record the invoice number on deliveries whose invoice was issued outside CoreX (in an accounting program or the e-Invoice portal).
URL: https://erpdocs.corexlogic.com/en/satis/islemler/fatura-referansi-girme
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Faturalama › Faturalanmamış Teslimatlar (Sales › Billing › Unbilled Deliveries)
- **Screen route:** `/erp/sales/unbilled-shipments`
- **Required permission:** `erp-invoicing-references.create`
- **Prerequisites:**
- The goods issue for the delivery has been posted.
- The invoice has been issued outside the system, and you have its number and date.
Installations that issue invoices in an accounting program or the e-Invoice portal use this path. If CoreX issues the
invoice (e-Document enabled), [create an invoice from the delivery](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-olusturma) instead.
## Steps
1. Open the **Satış › Faturalama › Faturalanmamış Teslimatlar** (Sales › Billing › Unbilled Deliveries) screen.
2. Check the deliveries that have been invoiced. For a collective invoice, select all deliveries of the same invoice together.
3. Click **Fatura Referansı Gir** (Enter Invoice Reference).

1. Select the deliveries to invoice
2. Invoice deadline — 7 days after delivery
3. Enter Invoice Reference — trace of an externally issued invoice
4. Enter the **Fatura No** (Invoice No.) and the **Fatura Tarihi** (Invoice Date). **Fatura Tutarı** (Invoice Amount) and **KDV Tutarı** (VAT Amount) are optional; if they are entered, **Para Birimi** (Currency) is required.
5. Click **Kaydet** (Save).

1. Invoice number — the same number may cover several deliveries
2. Invoice date
3. Amount and VAT — optional, a mismatch does not block
4. Save — the delivery is marked as invoiced
**Result:** The selected deliveries are marked as invoiced and removed from the **Faturalanmamış Teslimatlar** (Unbilled Deliveries) list. A reference is not an invoice: no tax is calculated and nothing is posted to the customer account — the financial record is kept in the program that issued the invoice.
## What you need to know
- An invoice is expected within **7 days** after the delivery. Deliveries whose **Fatura Son Günü** (Invoice Due Date)
has passed are shown in the list with a warning; they can be isolated with the **Yalnız 7 günü geçenler** (Only
those older than 7 days) filter.
- Saving is **not blocked** even if the amount does not match the document's calculation; the source of truth is the
platform that issued the invoice.
- For an export transaction, the **Gümrük Beyannamesi** (Customs Declaration) number and date are entered together.
## Related
- [Billing screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama)
---
# Rebate agreements
> End-of-period sales volume or quantity rebate with a customer — scales, scope, accrual to date and settlement.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-anlasmalari
A rebate agreement (sales volume rebate) defines the rebate payable to a customer during or at the end of a period,
based on the amount or quantity of goods purchased in that period. The rebate does not change the sales order price; it
**accrues** over the period and becomes a credit memo request through **settlement**.
- **Rebate basis** = **delivery net** in the period − **returns** (at the sales order price, after discounts).
- **Scales are retroactive**: when the basis reaches a threshold, that threshold's rate is applied to **the entire
basis**. If no threshold is reached, there is no rebate.
An agreement is master data; it is not deleted and is closed by the final settlement. Settlements:
[Rebate settlements](https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-hesaplasmalari).
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Ana Veriler › Prim Anlaşmaları (Sales › Master Data › Rebate Agreements)
- **Screen route:** `/erp/sales/rebate-agreements`
- **Required permission:** `erp-sales-rebates.view (görme) · .create (anlaşma, hesaplaşma) · .edit (düzenleme, hesaplaşma iptali)`
## Agreement list — accrual report

1. New Rebate Agreement
2. Accrued — as of today
3. Settled — requested credits
4. Open = accrued − settled
The list is also the accrual report. Columns: **Anlaşma No** (Agreement No.), **Ad** (Name), **Müşteri** (Customer),
**Dönem** (Period), **Esas** (Basis; the rebate basis), **Oran** (Rate; the scale reached), **Tahakkuk** (Accrual),
**Hesaplaşılan** (Settled), **Açık** (Open; accrual − settled), **Durum** (Status). If the open amount becomes negative,
it is shown in red (returns have reduced the accrual below the settled amount). Filters: **Ara** (Search; number, name
or customer) and **Durum** (Status; Tümü — All · Açık — Open · Kapandı — Closed).
## Statuses
| Status | Meaning |
|---|---|
| **Açık** (Open) | Accrual is ongoing; the agreement can be edited and settled. |
| **Kapandı** (Closed) | The final settlement has been made. It cannot be changed ("Kapanmış prim anlaşması değiştirilemez." — A closed rebate agreement cannot be changed.). It is reopened if the final settlement is cancelled. |
## New rebate agreement

1. Basis — value (amount) or quantity
2. Tier threshold
3. Rebate rate
4. Add Tier
5. Scope — empty means all products
6. Create
| Field | Description |
|---|---|
| **Ad** (Name; required) | E.g. "2026 yıllık ciro primi" (2026 annual sales volume rebate). At most 128 characters. |
| **Para Birimi** (Currency; required) | The basis is calculated from deliveries in this currency. |
| **Müşteri** (Customer; required) | The rebate recipient. |
| **Esas** (Basis) | **Değer (tutar)** (Value — amount): the threshold is an amount, the rate is a percentage. **Miktar** (Quantity): the threshold is a quantity in the base unit, the rebate is an amount per unit. |
| **Başlangıç** · **Bitiş** (Start · End; required) | The sales volume period. |
| **Oran Kademeleri** (Rate Scales) | Add lines with **Kademe Ekle** (Add Scale); each line has **Esas eşiği** (Basis threshold) / **Miktar eşiği** (Quantity threshold) and **Prim oranı** (Rebate rate) / **Birim başına prim** (Rebate per unit). At least one and at most 20 scales; each threshold only once. |
| **Kapsam** (Scope) | Products added with **Ürün Ekle** (Add Product); if empty, "Bütün ürünler — müşterinin bütün teslimatları esasa girer." (All products — all of the customer's deliveries are included in the basis.) For a quantity basis, the scope is required and the products must have the same base unit. |
| **Not** (Note) | Optional. |
On an agreement that has settlements, the customer, currency and basis cannot be changed.
## Agreement details

1. Settle — credit memo request
2. Rebate basis = delivered net − returns
3. Accrued rebate
4. Rate tiers
- Header: **Ad** (Name), **Durum** (Status), **Müşteri** (Customer), **Dönem** (Period), **Para Birimi** (Currency),
**Kapsam** (Scope), **Esas** (Basis), **Kayıt** (Record), **Not** (Note).
- **Tahakkuk · 02.11.2026 itibarıyla** (Accrual · as of 02.11.2026; today's date) — to date: **Teslimat neti** (Delivery
net), **İadeler** (Returns), **Prim esası** (Rebate basis), **Oran** (Rate), **Tahakkuk eden** (Accrued),
**Hesaplaşılan** (Settled), **Açık** (Open). If the period has not started, it shows "dönem henüz başlamadı" (the
period has not started yet).
- **Oran Kademeleri** (Rate Scales; "Ulaşılan en yüksek eşiğin oranı esasın tamamına uygulanır." — The rate of the
highest threshold reached is applied to the entire basis.), **Kapsam** (Scope) and the **Hesaplaşmalar**
(Settlements) table (**Talep No** — Request No., **Tarih** — Date, **Esas sonu** — Basis end, **Tutar** — Amount,
**Durum** — Status).
Buttons: **Hesaplaş** (Settle; open agreement, `.create`) and **Düzenle** (Edit; open agreement, `.edit`). For the
steps, see [Settle a rebate](https://erpdocs.corexlogic.com/en/satis/islemler/prim-hesaplasma).
> **Example**
**PRA-2026-000001** — M-0004 Trakya Et, 01.10.2026–31.12.2026, scales 0 TRY → 1%, 50.000 TRY → 2%, 150.000 TRY → 3%.
Delivery net 93.100,00 TRY, returns −2.940,00 TRY, rebate basis 90.160,00 TRY; scale reached 2%, accrual 1.803,20 TRY.
## Related
- [Create a rebate agreement](https://erpdocs.corexlogic.com/en/satis/islemler/prim-anlasmasi-olusturma)
- [Settle a rebate](https://erpdocs.corexlogic.com/en/satis/islemler/prim-hesaplasma)
- [Rebate settlements](https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-hesaplasmalari)
---
# Create an invoice from a delivery
> In an installation with e-Document enabled, create an outgoing e-Invoice / e-Archive invoice from deliveries whose goods issue has been posted, finalize it and send it to the Turkish Revenue Administration (GİB).
URL: https://erpdocs.corexlogic.com/en/satis/islemler/fatura-olusturma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Faturalama › Faturalanmamış Teslimatlar (Sales › Billing › Unbilled Deliveries)
- **Screen route:** `/erp/sales/unbilled-shipments`
- **Required permission:** `erp-invoicing-invoices.create`, `erp-invoicing-invoices.finalize`
- **Prerequisites:**
- **e-Document is enabled** in the installation (Yönetim › e-Belge Ayarları — Administration › e-Document Settings). If it is disabled, the **Fatura Oluştur** (Create Invoice) button is not displayed; an [invoice reference](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-referansi-girme) is entered instead.
- The goods issue for the delivery has been posted.
> **Screenshots**
The screenshots for this page will be added from a demo installation with e-Document enabled.
## Steps
1. Open the **Satış › Faturalama › Faturalanmamış Teslimatlar** (Sales › Billing › Unbilled Deliveries) screen; **Belge türü** (Document type) must be **Teslimat** (Delivery).
2. Check the deliveries to be invoiced and click **Fatura Oluştur** (Create Invoice).
3. In the draft invoice, check the date, note, exchange rate and the exemption / withholding code of the lines; if you made changes, click **Kaydet** (Save). Price, discount and VAT come from the sales order and cannot be changed here.
4. Click **Kesinleştir** (Finalize). A finalized invoice is frozen: the parties, the channel (e-Invoice or e-Archive) and the totals no longer change.
5. Click **GİB'e Gönder** (Send to GİB). The transmission is queued; the integrator's result appears on the screen automatically.
**Result:** The invoice is transmitted to the Turkish Revenue Administration (GİB) through the integrator; its status is tracked in the **Satış › Faturalama › Giden e-Faturalar** (Sales › Billing › Outgoing e-Invoices) list. The delivery is removed from **Faturalanmamış Teslimatlar** (Unbilled Deliveries), and the invoice is posted to the customer account.
## What you need to know
- **Finalizing is not sending.** **Kesinleştir** (Finalize) freezes the invoice; transmission to GİB is a separate step.
- **Kesinleştir** (Finalize) cannot be clicked while there are unsaved changes — click **Kaydet** (Save) first.
- A draft invoice can be deleted with **Taslağı Sil** (Delete Draft); the delivery becomes unbilled again.
- If transmission fails, the button changes to **Yeniden Gönder** (Resend) — or **Aynı Numarayla Yeniden Gönder**
(Resend with Same Number) if a number has already been assigned.
## Related
- [Billing screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama)
- [Enter an invoice reference](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-referansi-girme)
---
# Rebate settlements
> The settlements of a rebate agreement — each one a credit memo request to the customer; partial and final settlement, PDF and cancellation.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-hesaplasmalari
Each rebate settlement deducts the previous settlements from the rebate accrued to date and opens a **credit memo
request** for the remaining amount. The settlement document is a snapshot of the rebate calculation; the credit memo
itself and its accounting are in Finance.
A settlement originates from **Hesaplaş** (Settle) on the rebate agreement details: there is no "Create" entry in the
menu. For the steps, see [Settle a rebate](https://erpdocs.corexlogic.com/en/satis/islemler/prim-hesaplasma).
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Faturalama › Prim Hesaplaşmaları (Sales › Billing › Rebate Settlements)
- **Screen route:** `/erp/sales/rebate-settlements`
- **Required permission:** `erp-sales-rebates.view (görme) · .create (hesaplaşma) · .edit (iptal)`
## Settlement list

1. Credit memo request number
2. Requested amount
3. Interim / final settlement
Columns: **Talep No** (Request No.), **Tarih** (Date), **Prim Anlaşması** (Rebate Agreement; link), **Müşteri**
(Customer), **Esas sonu** (Basis end; the last day for which the basis was calculated), **Talep Tutarı** (Request
Amount), **Tür** (Type; Ara hesaplaşma — Partial settlement · Son hesaplaşma — Final settlement), **Durum** (Status).
Filters: **Ara** (Search; request no., agreement no. or customer) and **Durum** (Status; Tümü — All · Talep Edildi —
Requested · İptal — Cancelled).
## Types
| Type | When | Effect |
|---|---|---|
| **Ara hesaplaşma (dönem içinde)** (Partial settlement — within the period) | Within the agreement period, as many times as needed | The agreement stays open. |
| **Son hesaplaşma (dönem bittikten sonra — anlaşmayı kapatır)** (Final settlement — after the period ends; closes the agreement) | Only after the period has ended | The agreement becomes **Kapandı** (Closed). |
## Statuses
| Status | Meaning |
|---|---|
| **Talep Edildi** (Requested) | The credit memo request has been opened. |
| **İptal** (Cancelled) | The settlement and its request have been cancelled; the amount is requested again in the next settlement. |
## Settlement details (credit memo request)

1. Status
2. Download PDF — request document
3. Basis by product
4. Cancel — latest settlement only
- Header: **Durum** (Status), **Tür** (Type), **Talep tarihi** (Request date), **Esas dönemi** (Basis period), **Prim
anlaşması** (Rebate agreement), **Müşteri** (Customer), **Para Birimi** (Currency), **Kaydeden** (Posted By),
**Alacak dekontu** (Credit memo; the number of the request opened), **Not** (Note) and, if cancelled, **İptal**
(Cancellation).
- **Esas Dökümü** (Basis Breakdown): per product, **Teslimat Neti** (Delivery Net), **İade** (Return), **Prim Esası**
(Rebate Basis) (for a quantity basis, also **Teslim Miktarı** — Delivered Quantity — and **İade Miktarı** — Returned
Quantity).
- **Prim Hesabı** (Rebate Calculation): **Teslimat neti** (Delivery net), **İadeler** (Returns), **Prim esası** (Rebate
basis), **Prim oranı** (Rebate rate) (for a quantity basis, **Birim başına prim** — Rebate per unit), **Tahakkuk eden
prim** (Accrued rebate), **Önceki hesaplaşmalar** (Previous settlements), **Talep edilen alacak** (Credit requested).
| Button | What it does |
|---|---|
| **PDF İndir** (Download PDF) | Downloads the credit memo request document. The document reads "Bu belge prim hesaplaşmasından üretilmiş alacak dekontu TALEBİDİR; mali belge değildir." (This document is a credit memo REQUEST generated from a rebate settlement; it is not a financial document.) |
| **İptal Et** (Cancel) | Only on the agreement's **most recent** active settlement and with the `.edit` permission. **Hesaplaşmayı İptal Et** (Cancel Settlement) dialog, **Gerekçe** (Reason) required. |
The description in the cancellation dialog:
- For a partial settlement: "Alacak dekontu talebi (onaylanmışsa dekont) iptal edilir; tutar sonraki hesaplaşmada
yeniden talep edilir." (The credit memo request — or the credit memo, if approved — is cancelled; the amount is
requested again in the next settlement.)
- For a final settlement: "Son hesaplaşmanın iptali anlaşmayı yeniden açar; alacak dekontu talebi (onaylanmışsa dekont)
da iptal edilir." (Cancelling the final settlement reopens the agreement; the credit memo request — or the credit
memo, if approved — is also cancelled.)
If you try to cancel an older settlement: "Yalnız anlaşmanın en son hesaplaşması iptal edilebilir; önce sonrakini iptal
edin." (Only the agreement's most recent settlement can be cancelled; cancel the later one first.)
> **Example**
**PHS-2026-000001** — partial settlement of agreement PRA-2026-000001, basis period 01.10.2026–02.11.2026, credit
requested 1.803,20 TRY, credit memo request opened ADK-2026-000001.
## Related
- [Rebate agreements](https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-anlasmalari)
- [Settle a rebate](https://erpdocs.corexlogic.com/en/satis/islemler/prim-hesaplasma)
---
# Complete a service (service confirmation)
> Enter the completed quantity for a service line of an approved sales order — the service confirmation is the source of the invoice; stock does not change.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/hizmeti-tamamlama
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Satış Siparişleri (Sales › Sales Orders) › sales order details › Hizmeti Tamamla (Complete Service)
- **Screen route:** `/erp/sales/orders/{id}`
- **Required permission:** `erp-sales-service-confirmations.create`
- **Prerequisites:**
- The sales order is in **Onaylandı** (Approved) status and has not been closed.
- The sales order has a **hizmet** (service) line, or a third-party line, with an open quantity.
A service line is fulfilled by a confirmation, not by a delivery. In the example, 10 of the 16 hours of assembly on
sales order **SS-2026-000016**, created for **M-0010 Bursa Otomotiv Yan Sanayi Parça A.Ş.**, were completed; after the
confirmation the line shows **Tamamlanan 10 SAAT** (Completed 10 HOURS) and **Kalan 6 SAAT** (Open 6 HOURS).
## Steps
1. Open the details of the approved sales order and click **Hizmeti Tamamla** (Complete Service) in the header.
2. In the **Tamamlanan** (Completed) cell of each line, enter the quantity covered by this confirmation. The cell is prefilled with the line's open quantity; reduce it for a partial confirmation. A line left empty or at 0 is not included in the confirmation.

1. Remaining quantity of the line
2. Completed quantity — prefilled with the remainder
3. Completion date
4. Confirm — posts the confirmation
3. Enter the **Tamamlanma tarihi** (Completion date) — it cannot be earlier than the order date — and optionally a **Not** (Note).
4. Click **Teyit Et** (Confirm).
5. Open the confirmation from the **Hizmet Teyitleri** (Service Confirmations) section at the bottom of the sales order details, or from the **Satış › Sipariş Yönetimi › Hizmet Teyitleri** (Sales › Order Management › Service Confirmations) list.

1. Status
2. Create Invoice — outgoing invoice draft
3. Cancel — only while not invoiced
4. Confirmed quantity
**Result:** The confirmation is created with number **HT-yyyy-nnnnnn** in **Kaydedildi** (Posted) status; no stock movement is posted. If an open quantity remains, **Hizmeti Tamamla** (Complete Service) can be used again. The invoice is created as a draft with **Fatura Oluştur** (Create Invoice) in the confirmation details — see [Service confirmations](https://erpdocs.corexlogic.com/en/satis/ekranlar/hizmet-teyitleri).
## What you need to know
- **Hizmeti Tamamla** (Complete Service) is shown only when all of the following apply: the sales order is
**Onaylandı** (Approved), it is not closed, it has a service or third-party line with an open quantity, and you have
the `erp-sales-service-confirmations.create` permission.
- The dialog shows the **Kalan** (Open) and **Teyit edilebilir** (Confirmable) columns side by side. On a service line
the two are the same; on a third-party line the confirmable quantity equals the direct shipment confirmed by the
supplier.
- Validations in the dialog: "Tamamlanma tarihi zorunludur." (Completion date is required.), "En az bir hizmet
satırına miktar girin." (Enter a quantity on at least one service line.), "10. satır: miktar kalanı aşıyor (kalan 6
SAAT)." (Line 10: quantity exceeds the open quantity (open 6 HOURS).) — the line number and open quantity are
examples — and, on a third-party line, "… satır: miktar tedarikçinin teyit ettiği miktarı aşıyor (teyit edilebilir
…)." (Line …: quantity exceeds the quantity confirmed by the supplier (confirmable …).)
- Server messages: "Hizmet teyidi sipariş tarihinden önce olamaz." (The service confirmation cannot be earlier than the
order date.), "Sipariş bu arada değişti; formu yenileyip tekrar deneyin." (The order changed in the meantime; refresh
the form and try again.) If no open quantity remains, the dialog shows "Bu siparişte tamamlanacak hizmet satırı
kalmadı." (No service lines left to complete on this order.)
- If a confirmation is wrong, reverse it with **İptal Et** (Cancel) in the confirmation details (a reason is required).
An invoiced confirmation cannot be cancelled.
## Related
- [Service confirmations screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/hizmet-teyitleri)
- [Approve a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama)
---
# Campaigns
> A campaign price or a discount on the list price for a period — customer and channel scope, minimum quantity threshold, price proposal on the sales order.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/kampanyalar
A campaign defines, for a period, a **fixed campaign price** or a **discount percentage on the list price** for an
item. On the sales order, the price proposal is searched in this order: **customer-specific price → campaign → price
list**; the first one found is applied, and the steps are not stacked. A campaign is proposed only for a sales order in
its own currency, within the period and for a customer in scope.
Other screens of price master data: [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri).
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Ana Veriler › Kampanyalar (Sales › Master Data › Campaigns)
- **Screen route:** `/erp/sales/campaigns`
- **Required permission:** `erp-sales-campaigns.view (görme) · .create (oluşturma) · .edit (düzenleme)`
## Campaign list

1. New Campaign
2. Only those valid today
3. Scope — customer and channel
4. Valid · Out of period · Inactive
Columns: **Kod** (Code), **Ad** (Name), **Dönem** (Period), **Para** (Currency), **Kapsam** (Scope; customer · channel;
if both are empty, "Tüm müşteriler" — All customers), **Kalem** (Items), **Durum** (Status). Filters: **Ara** (Search;
code or name), **Durum** (Status; Tümü — All · Aktif — Active · Pasif — Inactive) and **Dönem › Yalnız geçerli**
(Period › Valid only; those valid today).
| Status | Meaning |
|---|---|
| **Geçerli** (Valid) | Active and today is within the period — proposed on sales orders. |
| **Dönem dışı** (Out of period) | Active, but the period has not started yet or has ended. |
| **Pasif** (Inactive) | Stopped; not proposed. |
## New campaign

1. Code — proposed from the name
2. Period
3. Customer — empty = all customers
4. Form — price or discount %
5. Minimum quantity — threshold
6. Create
| Field | Description |
|---|---|
| **Ad** (Name; required) | E.g. "Ekim yedek parça kampanyası" (October spare parts campaign). |
| **Kod** (Code; required) | "Addan önerilir; üzerine yazabilirsiniz." (Proposed from the name; you can overwrite it.) Converted to upper case; shown as the price source on the sales order. |
| **Başlangıç** · **Bitiş** (Start · End; required) | The campaign period — the sales order date must fall within this range. |
| **Para Birimi** (Currency) | Applied only to sales orders in this currency. |
| **Müşteri** (Customer) | "Boş = bütün müşteriler. Müşteriye özel kampanya genel kampanyadan önce gelir." (Empty = all customers. A customer-specific campaign takes precedence over a general campaign.) |
| **Satış Kanalı** (Sales Channel) | If empty, **Tüm kanallar** (All channels). |
| **Durum** (Status) | Toggle: **Aktif** (Active) when on, **Pasif** (Inactive) when off. |
| **Kalemler** (Items) | Multiple selection from the **Kalem Ekle** (Add Item) dialog (only sellable master records that are usable today). On each line: **Biçim** (Type; **Fiyat** — Price — or **İskonto %** — Discount %), **Değer** (Value) and **En Az Miktar** (Minimum Quantity; if empty, "Eşik yok" — No threshold). |
| **Not** (Note) | Optional. |
The form's rule: "Fiyat ve en az miktar kartın temel biriminde. Yüzde, müşterinin fiyat listesindeki fiyatın üzerinden
uygulanır — listede fiyatı yoksa kampanya o satıra uygulanmaz. Aynı ürün farklı eşikle birden çok satırda olabilir."
(The price and minimum quantity are in the item's base unit. The percentage is applied to the price in the customer's
price list — if the list has no price, the campaign is not applied to that line. The same product can appear on
several lines with different thresholds.)
A campaign cannot be deleted — to stop it, set it to **Pasif** (Inactive). For the steps, see
[Create a campaign](https://erpdocs.corexlogic.com/en/satis/islemler/kampanya-olusturma).
## Campaign details

1. Status — valid today
2. Campaign price or % off list
3. Threshold — in base unit
Header: **Ad** (Name), **Durum** (Status), **Dönem** (Period), **Para Birimi** (Currency), **Müşteri** (Customer),
**Satış Kanalı** (Sales Channel), **Kapsam** (Scope), **Kayıt** (Record), **Not** (Note). Item table: **Ürün**
(Product), **Kampanya** (Campaign; the price or "%10 (liste üzerinden)" — 10% on the list price), **En Az Miktar (temel
birim)** (Minimum Quantity, base unit). **Düzenle** (Edit) is visible with the `.edit` permission.
## Campaigns on the sales order
On a line where a campaign is applied, the source is shown below the unit price, e.g. "Kampanya KASIM26: 255"
(Campaign KASIM26: 255). In the example, the **KASIM26** campaign is specific to **M-0005 Ege Zeytinyağı ve Gıda San.
A.Ş.**: 255 TRY for 50 units and above on MAM-0008, and 10% on the list price on MAM-0009.
## Related
- [Create a campaign](https://erpdocs.corexlogic.com/en/satis/islemler/kampanya-olusturma)
- [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri)
- [Condition records](https://erpdocs.corexlogic.com/en/satis/ekranlar/kondisyon-kayitlari)
---
# Create a sales contract
> Save the item prices and targets agreed with the customer as a draft contract and put it into effect.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/sozlesme-olusturma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Sipariş Yönetimi › Satış Sözleşmesi Oluştur (Sales › Order Management › Create Sales Contract)
- **Screen route:** `/erp/sales/contracts/new`
- **Required permission:** `erp-sales-contracts.create`, `erp-sales-contracts.edit`
- **Prerequisites:**
- The customer is an **Aktif** (Active) business partner.
- The contract items are active, sellable items that do not require configuration.
Example: a one-year cleaning products agreement with **M-0019 Lara Kıyı Otelcilik ve Turizm A.Ş.** — a target of
2,000 units at 235.00 TRY for liquid detergent, and a target of 3,000 units at 90.00 TRY for surface cleaner.
## Steps
1. Open **Satış › Sipariş Yönetimi › Satış Sözleşmesi Oluştur** (Sales › Order Management › Create Sales Contract).
2. Select the **Tür** (Type): **Miktar Sözleşmesi** (Quantity Contract) for a target quantity per item, or **Değer Sözleşmesi** (Value Contract) for a total amount target.
3. In the **Müşteri** (Customer) field, type the customer's code or name and select it from the list. Check the **Satış Kanalı** (Sales Channel) and **Para Birimi** (Currency).
4. Enter the **Geçerlilik Başlangıcı** (Valid From) and **Bitiş** (End) dates. For a value contract, **Hedef Tutar (net)** (Target Amount (net)) is also required.
5. In the **Ürün ekle** (Add item) field, type and select the item. On the line, enter the **Birim** (Unit), **Hedef Miktar** (Target Quantity) and **Birim Fiyat (net)** (Unit Price (net)). Repeat for each item.

1. Type — quantity or value contract
2. Validity range
3. Add product
4. Target quantity — call-offs cannot exceed it
5. Contract price — copied to the order
6. Save Draft
6. Click **Taslağı Kaydet** (Save Draft).
7. In the details, click **Yürürlüğe Al** (Put into Effect).

1. Status: Released — call-offs allowed
2. Called off — from approved orders
3. Remaining target
4. Call-off orders
5. Close — remainder no longer callable
**Result:** The contract becomes **Yürürlükte** (In Effect) with number **SSZ-yyyy-nnnnnn**. The customer's sales orders within the validity period, in the same currency and sales channel, can call off the contract: [Order from a contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesmeden-siparis).
## What you need to know
- A draft contract is changed with **Düzenle** (Edit); a contract in effect cannot be changed ("Yalnız taslak sözleşme
düzenlenir." — Only a draft contract can be edited.).
- Validations in the form: "Müşteriyi seçin." (Select the customer.), "Geçerlilik başlangıç ve bitişini seçin."
(Select the validity start and end.), "Geçerlilik bitişi başlangıçtan önce olamaz." (The validity end cannot be before
the start.), "Sözleşme en az bir kalem ister." (The contract requires at least one item.), "Değer sözleşmesinde hedef
tutar sıfırdan büyük olmalı." (In a value contract, the target amount must be greater than zero.) In a quantity
contract, an empty target quantity gives "…: miktar sözleşmesinde hedef miktar sıfırdan büyük olmalı." (…: in a
quantity contract, the target quantity must be greater than zero.) The same item can appear only once with the same
unit.
- If the server rejects an item: "Sözleşme kalemi aktif, satılabilir ve somut (yapılandırma istemeyen) bir kart
olmalı." (A contract item must be an active, sellable and concrete item (one that does not require configuration).)
- A contract can have at most 200 items.
## Related
- [Sales contracts screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-sozlesmeleri)
- [Contract-based sales process](https://erpdocs.corexlogic.com/en/surecler/sozlesmeli-satis)
---
# Condition records
> Condition type × key → rate or amount — automatic determination of item discounts, freight and surcharges.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/kondisyon-kayitlari
A condition record is a **rate or amount** for a **condition type**, bound to a specific **key** (customer, product,
category, sales channel…). When a document is created, the type's **access sequence** searches the records from
specific to general; the first matching record is applied:
- A record of the **item discount** type flows into the line's price proposal (a percentage or an amount per unit).
- A record of the **freight** and **surcharge** types flows into the document as a charge.
A record is a price; it is managed with the price list permissions.
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Ana Veriler › Kondisyon Kayıtları (Sales › Master Data › Condition Records)
- **Screen route:** `/erp/sales/condition-records`
- **Required permission:** `erp-sales-price-lists.view (görme) · .create (yeni kayıt) · .edit (düzenleme)`
## Record list

1. New Condition Record — needs a type with an access sequence
2. Condition type filter
3. Key — customer, product, category…
4. Rate or amount
Columns: **Tür** (Type), **Anahtar** (Key), **Kapsam** (Scope; the key's value: customer, product, category or "Her
belge" — Every document), **Oran / Tutar** (Rate / Amount), **Eşik** (Threshold; `< tutar` — while the item net is below
this amount), **Geçerlilik** (Validity; if empty, "Süresiz" — Unlimited), **Durum** (Status; Aktif — Active · Pasif —
Inactive). The row's action menu contains **Düzenle** (Edit). Filters: **Kondisyon türü** (Condition type; Tüm türler —
All types) and **Durum** (Status; Tümü — All · Aktif — Active · Pasif — Inactive).
> **Precondition: access sequence**
Records can be entered only for condition types that are not system types and **have an access sequence defined**. The
access sequence is defined in **Yönetim › Özelleştirme › Satış › Kondisyon Türleri** (Administration › Customizing ›
Sales › Condition Types). If no type has an access sequence, **Yeni Kondisyon Kaydı** (New Condition Record) is disabled
(tooltip: "Erişim sırası tanımlı kondisyon türü yok" — No condition type with an access sequence), and the empty list
shows "Henüz kondisyon kaydı yok — önce kondisyon türüne erişim sırası tanımlayın." (No condition records yet — first
define an access sequence for a condition type.) This is the case in the demo installation of the documentation
environment.
## New Condition Record dialog
The dialog's description: "Türün erişim sırası kaydı sırayla arar; ilk eşleşen uygulanır. Kalem iskontosu fiyat
önerisine, navlun ve ek ücret belgeye iner." (The type's access sequence searches the records in order; the first match
is applied. The item discount flows into the price proposal; freight and surcharges flow into the document.)
| Field | Description |
|---|---|
| **Kondisyon türü** (Condition type; required) | Only types with an access sequence. Cannot be changed when editing ("Kaydın türü değişmez — başka bir kayıttır." — A record's type does not change; that would be a different record.). |
| **Anahtar** (Key; required) | The keys in the type's access sequence, with their sequence numbers ("Numara erişim sırasındaki yeri — küçük numara önce aranır." — The number is its position in the access sequence; lower numbers are searched first.). |
| **Müşteri** · **Ürün** · **Kategori** · **Satış kanalı** · **Sevk yöntemi** · **Satış organizasyonu** (Customer · Product · Category · Sales channel · Shipping method · Sales organization) | Only the fields required by the selected key are shown. A category also covers the products in its subcategories. |
| **Yüzde** / **Birim başına tutar** / **Belge başına tutar** (Percentage / Amount per unit / Amount per document; required) | Depending on the type's calculation type: a percentage between 0 and 100; an amount greater than zero, with the amount per unit in the item's base unit. At most four decimal places. |
| **Para birimi** (Currency) | Required for an amount-based type. "Yalnız bu para birimindeki belgeye uygulanır — kur çevrimi yok." (Applied only to documents in this currency — no currency conversion.) |
| **Kalem neti eşiği** (Item net threshold) | Only for freight and surcharges. "Doluysa kalem neti bu tutarın ALTINDAYKEN uygulanır ("bu tutarın altına navlun")." (If filled, it is applied while the item net is BELOW this amount — "freight below this amount".) If empty, it applies at any amount. |
| **Geçerlilik** · **Geçerlilik bitişi** (Valid from · Valid to) | "Boş = sınır yok. Belgenin tarihine göre değerlendirilir." (Empty = no limit. Evaluated against the document date.) |
| **Durum** (Status) | Toggle: **Aktif** (Active) when on, **Pasif** (Inactive) when off. "Silme yok — pasif kayıt aranmaz." (No deletion — inactive records are not searched.) |
### Keys
| Key | Item discount | Freight / surcharge |
|---|---|---|
| Customer × Product | ✓ | — |
| Product | ✓ | — |
| Customer × Category | ✓ | — |
| Category | ✓ | — |
| Customer | ✓ | ✓ |
| Sales channel | ✓ | ✓ |
| Shipping method | — | ✓ |
| Sales organization | — | ✓ |
| No key (every document) | ✓ | ✓ |
The dialog's validations:
| Message | Meaning |
|---|---|
| "Kondisyon türü seçin." | Select a condition type. |
| "Anahtar kombinasyonu seçin." | Select a key combination. |
| "Müşteri seçin." | Select a customer. |
| "Oran/tutar sıfırdan büyük olmalı." | The rate/amount must be greater than zero. |
| "Yüzde 0 ile 100 arasında olmalı." | The percentage must be between 0 and 100. |
| "Tutarlı kayıt üç harfli para birimi ister." | An amount-based record requires a three-letter currency code. |
| "Eşik sıfırdan büyük olmalı." | The threshold must be greater than zero. |
| "Geçerlilik bitişi başlangıçtan önce olamaz." | The valid-to date cannot be earlier than the valid-from date. |
## Conditions on the sales order
On a line where an item discount record is applied, the discount tooltip reads "Önerilen iskonto" (Proposed discount)
("Grup iskontosu" — Group discount — if there is no record); the breakdown of an amount discount is shown in the price
tooltip.
## Related
- [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri)
- [Campaigns](https://erpdocs.corexlogic.com/en/satis/ekranlar/kampanyalar)
---
# Order from a contract (call-off order)
> Link a sales order line to a sales contract in effect — the price comes from the contract and the target cannot be exceeded.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/sozlesmeden-siparis
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Sipariş Yönetimi › Satış Siparişi Oluştur (Sales › Order Management › Create Sales Order) › line details › Sözleşme (Contract)
- **Screen route:** `/erp/sales/orders/new`
- **Required permission:** `erp-sales-orders.create`, `erp-sales-orders.edit`
- **Prerequisites:**
- The customer has a sales contract in **Yürürlükte** (In Effect) status.
- The sales order date is within the contract's validity period; the currency and sales channel are the same as the contract's.
A call-off order is not a separate document type: a line of an ordinary sales order is linked to a contract item. The
link is on the line — the same sales order can contain lines with and without a contract.
## Steps
1. In **Satış Siparişi Oluştur** (Create Sales Order), select the contract's customer.
2. On a line, type and select the contract item and enter the **Miktar** (Quantity). The unit must be the same as the unit in the contract.
3. Click the details button on the right of the line (**10. satır ayrıntısını göster** — Show line 10 details).
4. Select the contract in the **Sözleşme** (Contract) list. Each option shows the contract number, unit price and open quantity.

1. Line details — expanded
2. Contract — number, price and remaining
3. Price from contract, no discount
5. Click **Siparişi Oluştur** (Create Order), then approve the sales order.
**Result:** The approved sales order is added to the contract's **Çağrı Siparişleri** (Call-Off Orders) list; the item's **Çağrılan** (Called Off) quantity increases and **Kalan** (Open) decreases. Approval step: [Approve a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama).
## What you need to know
- The **Sözleşme** (Contract) field appears only if, for the line's item and unit, the customer has a contract that is
in effect, valid on the order date and in the sales order's channel. The **Sözleşmesiz** (No contract) option removes
the link, and the price proposal comes from the price list again.
- If you change the price or give a line discount on a contract line, saving is rejected. If the line's item or unit
changes, the contract link is dropped.
- The called-off quantity is counted only from **approved** sales orders; a draft sales order does not consume the
contract. The target check is performed at save time, including this sales order.
- A free-of-charge item cannot be called off from a contract.
## Server rejection messages
| Message | English | Cause |
|---|---|---|
| "MAM-0008: SSZ-2026-000001 hedefi 2000 ADET — çağrılan 2200." | MAM-0008: SSZ-2026-000001 target 2000 PCS — called off 2200. | Approved call-offs together with this sales order exceed the quantity target. |
| "SSZ-… hedef tutarı … TRY — çağrılan …." | SSZ-… target amount … TRY — called off …. | The target amount of a value contract is exceeded. |
| "SSZ-… yürürlükte değil — çağrı yapılamaz." | SSZ-… is not in effect — it cannot be called off. | The contract is a draft, closed or cancelled. |
| "SSZ-… sipariş gününde geçerli değil." | SSZ-… is not valid on the order date. | The sales order date is outside the validity period. |
| "SSZ-… TRY para biriminde — sipariş EUR." | SSZ-… is in TRY — the sales order is in EUR. | The currency is different. |
| "SSZ-… başka bir satış kanalının sözleşmesi." | SSZ-… is a contract of another sales channel. | The sales order's channel is different. |
| "MAM-0008: fiyat sözleşmeden gelir (235 TRY, satır iskontosu yok)." | MAM-0008: the price comes from the contract (235 TRY, no line discount). | The price or discount on the line was changed manually. |
When saving is rejected, the bottom of the form reads "Kayıt yapılamadı — sunucunun yanıtı eylem şeridinin üstünde."
(Could not save — the server's response is above the action bar.); the message is shown directly above the action
bar.
## Related
- [Sales contracts screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-sozlesmeleri)
- [Create a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparis-olusturma)
- [Contract-based sales process](https://erpdocs.corexlogic.com/en/surecler/sozlesmeli-satis)
---
# Sales reports (Analytics)
> Sales by customer, product and sales rep, quotation win/loss, gross profit and open sales orders — what they show, filters, how to read them.
URL: https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-raporlari
The six reports under **Satış › Analitik** (Sales › Analytics) are calculated live from sales documents. Common rules:
- **Dönem** (Period): if the date range is empty, the last **90 days** are used; above the result rows, the date used
for filtering is shown in the form "Dönem: 04.08.2026 – 02.11.2026 (varsayılan 90 gün) · …" (Period: 04.08.2026 –
02.11.2026 — default 90 days · …).
- The **Ara** (Search) box searches in codes and names; there is no customer, product or warehouse selector.
- The **Kanal** (Channel) filter is available in every report. The **Satış Org.** (Sales Org.) and **Bölüm** (Division)
filters appear only if the installation has more than one option.
- Currencies are shown on separate rows; there is no currency conversion. Amounts are **sales order amounts, not
invoice amounts**.
- **Excel'e Aktar** (Export to Excel) downloads the filtered result. Filters are carried in the address; anyone you
share the link with sees the same report.
- **Type:** Screen
- **Module:** Sales
- **Menu path:** Satış › Analitik › Müşteri Bazında Satış · Ürün Bazında Satış · Temsilci Bazında Satış · Teklif Kazanma/Kaybetme · Brüt Kâr · Açık Satış Siparişleri (Sales › Analytics › Sales by Customer · Sales by Product · Sales by Sales Rep · Quotation Win/Loss · Gross Profit · Open Sales Orders)
- **Screen route:** `/erp/sales/reports/customer-sales`
- **Required permission:** `Müşteri / Ürün / Temsilci Bazında Satış: erp-sales-orders.view + satış fiyatını görme izni (ör. erp-sales-price-lists.view)`, `Teklif Kazanma/Kaybetme: erp-sales-quotations.view`, `Brüt Kâr: erp-sales-shipments.view + erp-inventory-costs.view + satış fiyatını görme izni`, `Açık Satış Siparişleri: erp-sales-orders.view (Kalan Net yalnız satış fiyatını görebilene)`
## Sales by customer

1. Period — last 90 days by default
2. Date range
3. Export to Excel — filtered result
4. Net — after discount
"Who did we sell how much to?" — the after-discount amount of **approved** sales orders, per customer and currency.
Draft and cancelled sales orders are not counted; manually closed sales orders are counted. The date is the **order
date**.
Columns: **Müşteri** (Customer), **Para Birimi** (Currency), **Ara Toplam** (Subtotal), **İskonto** (Discount), **Net**,
**KDV** (VAT), **Brüt** (Gross), **Sipariş** (Orders; the number of sales orders), **Son Sipariş** (Last Order). The
subtotal at the bottom shows net, gross, number of sales orders and number of rows.
## Sales by product

1. Period — last 90 days by default
2. Date range
3. Export to Excel — filtered result
4. Average net unit price
The **quantity** sold on approved sales orders and the after-discount amount — per product, unit and currency.
Columns: **Ürün** (Product), **Miktar** (Quantity), **Para Birimi** (Currency), **İskonto** (Discount), **Net**,
**Brüt** (Gross), **Ort. Net Birim Fiyat** (Avg. Net Unit Price; net ÷ quantity), **Sipariş** (Orders). Search: product
or customer.
## Sales by sales rep

1. Period — last 90 days by default
2. Date range
3. Export to Excel — filtered result
4. Number of the rep's customers
The amount of approved sales orders per **sales representative** of the sales order and currency; sales orders without
a sales representative are totalled on the **Atanmamış** (Unassigned) row. Columns: **Satış Temsilcisi** (Sales Rep),
**Para Birimi** (Currency), **Ara Toplam** (Subtotal), **İskonto** (Discount), **Net**, **KDV** (VAT), **Brüt** (Gross),
**Sipariş** (Orders), **Müşteri** (Customers; the number of distinct customers), **Son Sipariş** (Last Order).
## Quotation win/loss

1. Grouping — rep, customer, loss reason
2. Period — last 90 days by default
3. Date range
4. Export to Excel — filtered result
5. Win % — closed quotations only
"How many quotations did we submit, how many did we win, and why did we lose?" The date is the **quotation date**; the
last revision of the quotation chain is counted, while drafts and older revisions are excluded.
- **Gruplama** (Grouping): **Satış Temsilcisi** (Sales Rep), **Müşteri** (Customer) or **Kayıp Nedeni** (Loss Reason).
- Columns: **Para Birimi** (Currency), **Teklif** (Quotations), **Kazanılan** (Won), **Kaybedilen** (Lost), **Açık**
(Open), **Süresi Dolan** (Expired), **Kazanma %** (Win %), **Teklif Net** (Quotation Net), **Kazanılan Net** (Won Net),
**Kaybedilen Net** (Lost Net).
- **Kazanma %** (Win %) is calculated only from **closed** quotations (open quotations do not lower the rate). If there
are no closed quotations, it shows "—".
## Gross profit

1. Grouping — customer, product, month
2. Period — last 90 days by default
3. Date range
4. Export to Excel — filtered result
5. Cost — booked issue cost
6. Shipment and return line count
"What did we earn on the goods we shipped?" Revenue is the **net sales** of the goods shipped (sales order price, after
discounts); cost is the **issue cost** in the ledger. A delivery correction is deducted from the delivery, and a
**return is entered as a negative on its own date**. The date is the **delivery date**.
- **Gruplama** (Grouping): **Müşteri** (Customer), **Ürün** (Product) or **Ay** (Month).
- Columns: **Net Satış** (Net Sales), **Maliyet** (Cost; in its own currency), **Brüt Kâr** (Gross Profit), **Marj %**
(Margin %), **Sevk / İade** (Shipments / Returns; the number of shipment and return lines).
- If the profit cannot be calculated, the reason is shown on the row: "… satırın maliyeti bilinmiyor" (the cost of …
lines is unknown) or "Maliyet farklı para biriminde — kur çevrimi yok" (Cost is in a different currency — no currency
conversion).
- The subtotal at the bottom shows net sales, profit and margin.
The report requires two permissions (reading deliveries and stock costs); a user without them cannot open the report
at all.
## Open sales orders

1. As of today — no date range
2. Delay — all open lines / overdue only
3. Quantity not shipped
4. Days since requested delivery
"Which sales order lines have not been shipped, and how many days late are they?" At line level, **as of today**: the
lines of approved, non-closed sales orders that have an open delivery quantity. There is no date range; the header
shows the **Rapor tarihi** (Report date). The sort order is by requested delivery date, with undated lines last. A line
reopened by a delivery correction is also shown here.
- Filters: **Ara** (Search; sales order no., customer or product), **Gecikme** (Delay; **Tüm açık satırlar** — All open
lines · **Yalnız gecikenler** — Late only), **Kanal** (Channel).
- Columns: **Sipariş No** (Sales Order No.), **Müşteri** (Customer), **Ürün** (Product), **Sipariş** (Ordered; the order
quantity), **Sevk Edilen** (Shipped), **Kalan** (Remaining), **Kalan Net** (Remaining Net; the amount of the remaining
quantity after line and overall discounts), **İstenen Teslim** (Requested Delivery), **Yaş (gün)** (Age, days; from
the order date to today), **Gecikme (gün)** (Delay, days; from the requested delivery date to today; "—" if not
late).
- The **Kalan Net** (Remaining Net) column, the totals bar and the Excel export are visible only to users who can view
sales prices.
The remaining quantity of a service line (hours awaiting confirmation) is also shown here.
## Related
- [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri)
- [Sales quotations](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri)
- [Sales returns](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-iadeleri)
---
# Create a return request
> Create a return request from a delivery with a posted goods issue, for the quantity and reason agreed with the customer before the goods come back.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebi-acma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimatlar (Logistics Management › Outbound Delivery › Deliveries) › delivery details › İade Talebi Aç (Create Return Request)
- **Screen route:** `/erp/sales/shipments/{id}/return-requests/new`
- **Required permission:** `erp-sales-return-requests.create`
- **Prerequisites:**
- The delivery is in **Mal Çıkışı Kaydedildi** (Goods Issue Posted) status.
- A delivery line has a quantity that can be returned (shipped − corrections − returns).
A return request is used to agree on "how many units will come back, and why" before the goods arrive at the
warehouse. A request is not mandatory; if the goods have already arrived, you can
[receive the return directly against the delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma).
## Steps
1. Open the delivery details and click **İade Talebi Aç** (Create Return Request).

1. Returns only after goods issue
2. Open Return Request — agree first
3. Receive Return — goods arrived
4. Returns taken from this delivery
2. Check the **Talep Tarihi** (Request Date) — it cannot be earlier than the delivery date — and select the **İade Nedeni** (Return Reason).
3. In **Açıklama** (Description), describe the problem reported by the customer. It is required for reasons that ask for a description, such as "Diğer" (Other).
4. In the **Kalemler** (Items) table, enter the quantity in the **Talep** (Requested) cell of the line to be returned. The **Dönebilir** (Returnable) column shows the maximum quantity that can be entered.

1. Return reason
2. Returnable — shipped − reversed − returned
3. Requested quantity
4. Open Request — stock unchanged
5. Click **Talebi Aç** (Create Request).

1. Status
2. Approve — someone other than the requester
3. Reject — with a reason
4. Segregation of duties
5. Quantity returned against the request
**Result:** The request is created with number **IT-yyyy-nnnnnn** in **Onay Bekliyor** (Awaiting Approval) status; stock does not change. The decision is made by an authorized user other than the requester: [Approve or reject a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebini-onaylama).
## What you need to know
- The bottom of the form reads "Talebi açan kişi onu onaylayamaz — kararı başka bir yetkili verir." (The person who
creates the request cannot approve it — another authorized user makes the decision.)
- Validations in the form: "Talep tarihi zorunlu." (Request date is required.), "Talep tarihi teslimat tarihinden önce
olamaz." (The request date cannot be earlier than the delivery date.), "İade nedenini seçin." (Select the return
reason.), "En az bir satıra talep miktarı girin." (Enter a requested quantity on at least one line.), and on a line
that exceeds the returnable quantity, a message such as "20. satır: talep (13) geri dönebilecek miktarı (12 ADET)
aşıyor." (Line 20: the requested quantity (13) exceeds the returnable quantity (12 PCS).) — the numbers are examples.
- If the entire delivery has been returned or reversed by a correction, the form shows "Talep edilebilecek satır yok —
teslimatın tamamı iade edilmiş ya da düzeltmeyle geri alınmış." (No lines can be requested — the entire delivery has
been returned or reversed by a correction.)
- Return reasons are defined in **Yönetim › Özelleştirme › Satış › İade Nedenleri** (Administration › Customization ›
Sales › Return Reasons).
- To withdraw a request before a decision is made, use **İptal Et** (Cancel) in the request details (a reason is
required).
## Related
- [Return requests screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/iade-talepleri)
- [Sales return process](https://erpdocs.corexlogic.com/en/surecler/satis-iadesi)
---
# Approve or reject a return request
> Decide on a return request awaiting approval — approve or reject with a reason; close an approved request.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebini-onaylama
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › İade Yönetimi › İade Talepleri (Sales › Returns Management › Return Requests) › request details
- **Screen route:** `/erp/sales/return-requests/{id}`
- **Required permission:** `erp-sales-return-requests.approve`
- **Prerequisites:**
- The request is in **Onay Bekliyor** (Awaiting Approval) status.
- You did not create the request (the requester cannot approve it).
## Steps
1. Open **Satış › İade Yönetimi › İade Talepleri** (Sales › Returns Management › Return Requests); in the **Durum** (Status) filter, select **Onay Bekliyor** (Awaiting Approval).

1. Request number
2. Approver's queue: Awaiting Approval
3. Source delivery
4. Requester — cannot approve
2. Click the request number to open the details; review the **Kalemler** (Items), the **Neden** (Reason) and the **Açıklama** (Description).

1. Status
2. Approve — someone other than the requester
3. Reject — with a reason
4. Requested · Returned · Remaining
3. If you accept the request, click **Onayla** (Approve). The approval is saved immediately, without a dialog.

1. Status
2. Receive Return — form linked to the request
3. Close — remainder not expected, with a reason
4. Who decided and when
4. If you do not accept the request, click **Reddet** (Reject), enter the **Red gerekçesi** (Rejection reason) and click **Reddet** (Reject) in the dialog.
**Result:** When the goods for an approved request arrive, the return is received with **İade Al** (Receive Return): [Receive a return against a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma). A rejected request is in a final status and cannot be changed.
## What you need to know
- Segregation of duties: for the person who created the request, the **Onayla** (Approve) button is disabled and the
screen reads "Kendi açtığınız talebi onaylayamazsınız; kararı başka bir yetkili verir." (You cannot approve a request
you created; another authorized user makes the decision.) The server also rejects it: "Kendi açtığınız iade talebini
onaylayamazsınız. Kararı başka bir yetkili vermeli." (You cannot approve a return request you created. Another
authorized user must make the decision.) There is no exception to this rule, not even for administrators.
- A decision can only be made on a request in **Onay Bekliyor** (Awaiting Approval) status; otherwise the message
"Talep karar beklemiyor." (The request is not awaiting a decision.) appears.
- If the remaining quantity of an approved request is no longer expected, close it with **Kapat** (Close) — **Kapatma
gerekçesi (kalan artık beklenmiyor)** (Closing reason (remaining quantity no longer expected)) is required. An
approved request cannot be cancelled: "Yalnız karar bekleyen talep iptal edilebilir; onaylanmış talep kapatılır."
(Only a request awaiting a decision can be cancelled; an approved request is closed.)
- If someone else changed the request at the same time: "İade talebi siz bakarken değişti; sayfayı yenileyip yeniden
deneyin." (The return request changed while you were viewing it; refresh the page and try again.)
> **Demo example**
IT-2026-000001 was created by Demo Kullanıcı; on that user's screen **Onayla** (Approve) is disabled. The request was
approved by **Demo Onaylayıcı** (Sales Manager): the request became **Onaylandı** (Approved), the **Karar** (Decision)
field recorded the approver and the time (02.11.2026 01:13), and the buttons changed to **İade Al** (Receive Return)
and **Kapat** (Close). **İade Al** opens the **Yeni Satış İadesi** (New Sales Return) form with the line
"IT-2026-000001 onaylı iade talebinden — yalnız talebin kalemleri, talebin kalanı kadar." (From approved return
request IT-2026-000001 — only the request's items, up to the request's remaining quantity.):
[Receive a return against a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma).

1. Request link — only its items, up to the remainder
2. Line with nothing left to return
3. Return this line
4. Return quantity — up to the request remainder
5. Stock status — e.g. Quarantine
6. Save — stock increases at once
## Related
- [Return requests screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/iade-talepleri)
- [Create a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebi-acma)
---
# Receive a return against a delivery
> Record goods returned by the customer after shipment — warehouse, storage location, stock status, batch and serial number; stock increases at the same time.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Lojistik Yönetimi › Giden Teslimat › Teslimatlar (Logistics Management › Outbound Delivery › Deliveries) › delivery details › İade Al (Receive Return)
- **Screen route:** `/erp/sales/shipments/{id}/returns/new`
- **Required permission:** `erp-sales-returns.create`
- **Prerequisites:**
- The delivery is in **Mal Çıkışı Kaydedildi** (Goods Issue Posted) status and a line has a returnable quantity.
- On the return request path, the return request is in **Onaylandı** (Approved) status.
In the example, 12 units of **MAM-0008 Sıvı Deterjan 5 LT** from line 20 of delivery **SV-2026-000001** (batch
**DET-2609-002**) were returned and received into **Mamul Deposu / RAF-M2** in **Karantina** (Quarantine) status.
After the return, the stock of this batch shows 12 units; stock in quarantine status is not counted as
**kullanılabilir** (available).
## Steps
1. When the goods arrive at the warehouse, click **İade Al** (Receive Return) in the delivery details. If there is an approved return request, use **İade Al** in the request details instead; the form then opens limited to the request's items and open quantity.
2. Check the **İade Tarihi** (Return Date) and select the **İade Nedeni** (Return Reason); enter an **Açıklama** (Description) if needed.
3. On the returned line, select the **Bu satırı iade al** (Return this line) check box and enter the **İade Miktarı** (Return Quantity).
4. Select the **Giriş Deposu** (Receiving Warehouse), **Lokasyon** (Storage Location) and **Stok Durumu** (Stock Status). For goods awaiting quality inspection, select a quarantine status. On a serial-tracked line, select the **Geri Gelen Seriler** (Returned Serial Numbers).

1. Return reason
2. Return this line
3. Return quantity — up to the returnable
4. Receiving warehouse and location
5. Stock status — e.g. Quarantine
6. Save — stock increases at once
5. Click **İadeyi Kaydet ve Stoğa Al** (Save Return and Receive into Stock).

1. Receiving warehouse / location
2. Stock status received into
3. Returned lot or serial
4. Reverse Return — for a wrong entry
**Result:** The return is saved with number **SI-yyyy-nnnnnn** and the goods are received into the selected warehouse, storage location and stock status at the same time. The sales order remains shipped; the return is added to the delivery's **İade Geçmişi** (Return History) and to the return request's **Talepten Doğan İadeler** (Returns from This Request) list. The invoicing side of the return is handled in Finance.
## What you need to know
- The goods are received into stock **at the cost at which they left** with the delivery. A saved return cannot be
changed; if it is wrong, reverse it with **İadeyi Geri Al** (Reverse Return) in the return details.
- Validations: "İade tarihi teslimat tarihinden önce olamaz." (The return date cannot be earlier than the delivery
date.), "İade nedenini seçin." (Select the return reason.), "En az bir satırı iade için seçin." (Select at least one
line for return.), "… satır: iade deposunu seçin." (Line …: select the return warehouse.), "… satır: stok durumunu
seçin." (Line …: select the stock status.), and in a warehouse with storage location tracking, "'MAMUL' deposunda
lokasyon zorunlu." (A storage location is required in warehouse 'MAMUL'.) — the warehouse code is an example.
- On a serial-tracked line, the quantity must equal the number of selected serial numbers: "Seri takipli satırda
miktar seri adedine eşit olmalıdır (seri: 1, miktar: 2)." (On a serial-tracked line, the quantity must equal the
number of serial numbers (serial: 1, quantity: 2).) — the numbers are examples.
- A return cannot be received from an unapproved request: "İade talebi henüz onaylanmadı; onaysız talepten iade
alınamaz." (The return request has not been approved yet; a return cannot be received from an unapproved request.)
For a closed request: "İade talebi kapalı; bu talepten iade alınamaz." (The return request is closed; no return can
be received from this request.)
- If the stock or the delivery changed at the same time: "Stok bu sırada başka bir işlemle değişti. Sayfayı yenileyip
tekrar deneyin." (Stock was changed by another transaction in the meantime. Refresh the page and try again.) In this
case, **İade bilgilerini yenile** (Refresh return data) refills the form with the current data.
## Related
- [Sales returns screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-iadeleri)
- [Return requests](https://erpdocs.corexlogic.com/en/satis/ekranlar/iade-talepleri)
- [Sales return process](https://erpdocs.corexlogic.com/en/surecler/satis-iadesi)
---
# Receive a return without a delivery
> Record a return that has no delivery in the system — the customer and items are selected manually, a price is proposed, and if no cost is entered it is assumed from the average.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/teslimatsiz-iade
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › İade Yönetimi › Satış İadeleri › Teslimatsız İade (Sales › Returns Management › Sales Returns › Return Without Delivery)
- **Screen route:** `/erp/sales/returns/new`
- **Required permission:** `erp-sales-free-returns.create`
- **Prerequisites:**
- The customer has an active customer master record.
- The item is a stock item and is not serial-tracked (a serial-tracked item can only be returned against a delivery).
A return without a delivery is for goods coming back that have no shipment record in the system (for example, the
customer brought the goods to the warehouse by hand, without a delivery note). A return of shipped goods is always
received against the delivery: [Receive a return against a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma).
## Steps
1. In the **Satış › İade Yönetimi › Satış İadeleri** (Sales › Returns Management › Sales Returns) list, click **Teslimatsız İade** (Return Without Delivery).

1. Customer — active customer cards
2. Currency — price proposal in this currency
3. Add Item — serial-tracked items not listed
2. Select the customer with **Müşteri Seç** (Select Customer); check the **Para Birimi** (Currency) and **Satış Kanalı** (Sales Channel).
3. Enter the **İade Tarihi** (Return Date) and **İade Nedeni** (Return Reason); in **Açıklama** (Description), explain why the goods came back without a delivery note.
4. Select the items with **Kalem Ekle** (Add Item). On each line, enter the **Birim** (Unit), **Miktar** (Quantity), **Birim Fiyat** (Unit Price) — you can take the proposal with **Öneriyi uygula** (Apply proposal) — **İskonto %** (Discount %) and **KDV** (VAT).
5. Select the **Giriş Deposu** (Receiving Warehouse), **Lokasyon** (Storage Location) and **Stok Durumu** (Stock Status) into which the line is received; for a batch-tracked item, **Lot No** (Batch No.) is required. If you know the cost, enter the **Birim Maliyet** (Unit Cost).
6. Click **İadeyi Kaydet ve Stoğa Al** (Save Return and Receive into Stock).
**Result:** A sales return with an empty delivery link is saved in the same **SI-yyyy-nnnnnn** number series, and the goods are received into stock. You can find it in the list with the **Tür: Teslimatsız** (Type: Without Delivery) filter.
## What you need to know
- This transaction requires a separate permission (`erp-sales-free-returns.create`) because it increases stock without
a source document.
- The price proposal is looked up in the selected currency and in the channel's price list; no exchange rate
conversion is applied.
- If **Birim Maliyet** (Unit Cost) is empty, the cost is assumed from the stock average and marked with ~ in reports;
in the details, the line shows the **Maliyet varsayıldı** (Cost assumed) label. The unit cost can only be entered
with the permission to view stock costs.
- For a batch-tracked item, if the entered batch is not defined, it is created with this return.
- A return without a delivery has no header discount; discounts are given on the line.
- Server messages: "'TIC-0005' seri takipli — seri numarası sevk edildiği teslimattan iade alınır (teslimat detayında
İade Al). Teslimatsız iadede seri takipli ürün kabul edilmez." ('TIC-0005' is serial-tracked — the serial number is
returned against the delivery it was shipped with (İade Al in the delivery details). A return without a delivery does
not accept serial-tracked items.), "'HIZ-0001' stok ürünü değil — iadesi stoğa alınamaz." ('HIZ-0001' is not a stock
item — its return cannot be received into stock.) — the item codes are examples.
## Related
- [Sales returns screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-iadeleri)
---
# Create a rebate agreement
> Define a period-end sales volume rebate for a customer — basis, period, rate tiers and item scope.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/prim-anlasmasi-olusturma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Ana Veriler › Prim Anlaşmaları › Yeni Prim Anlaşması (Sales › Master Data › Rebate Agreements › New Rebate Agreement)
- **Screen route:** `/erp/sales/rebate-agreements/new`
- **Required permission:** `erp-sales-rebates.create`
- **Prerequisites:**
- The customer has an active customer master record.
## Steps
1. In **Satış › Ana Veriler › Prim Anlaşmaları** (Sales › Master Data › Rebate Agreements), click **Yeni Prim Anlaşması** (New Rebate Agreement).
2. Enter the **Ad** (Name), check the **Para Birimi** (Currency) and select the **Müşteri** (Customer).
3. Select the **Esas** (Basis): **Değer (tutar)** (Value (amount)) for a percentage rebate on the amount, or **Miktar** (Quantity) for a per-unit rebate on the quantity.
4. Enter the sales volume period with **Başlangıç** (Start) and **Bitiş** (End).
5. Enter the threshold and rate of the first tier; add further tiers with **Kademe Ekle** (Add Tier).

1. Basis — value (amount) or quantity
2. Tier threshold
3. Rebate rate
4. Add Tier
5. Scope — empty means all products
6. Create
6. To limit the rebate to specific items, select the scope with **Ürün Ekle** (Add Item); if you leave it empty, all items are included in the basis. The scope is required for the quantity basis.
7. Click **Oluştur** (Create).

1. Settle — credit memo request
2. Rebate basis = delivered net − returns
3. Accrued rebate
4. Rate tiers
**Result:** The agreement is saved with number **PRA-yyyy-nnnnnn** as **Açık** (Open), and the accrual is recalculated as of today each time it is opened. For payment, see [Settle a rebate](https://erpdocs.corexlogic.com/en/satis/islemler/prim-hesaplasma).
## What you need to know
- Tiers are retroactive: if the basis is 90,160 TRY, the highest threshold reached is 50,000 TRY, and 2% is applied
to the entire basis (1,803.20 TRY).
- Validations in the form: "Anlaşma adı zorunludur." (Agreement name is required.), "Primin muhatabı müşteriyi
seçin." (Select the customer who receives the rebate.), "Anlaşmanın başlangıç ve bitiş gününü seçin." (Select the
agreement's start and end day.), "Anlaşmanın bitişi başlangıcından önce olamaz." (The agreement end cannot be before
its start.), "Anlaşma en az bir oran kademesi içermelidir." (The agreement must contain at least one rate tier.), and
on a tier "1. kademe: prim oranı 0 ile 100 arasında olmalı." (Tier 1: the rebate rate must be between 0 and 100.)
and "… aynı eşik bir kez tanımlanır." (… the same threshold can be defined only once.)
- For the quantity basis: "Miktar esaslı primde kapsam zorunludur — miktar üründen ürüne toplanır (ürünler aynı temel
birimde)." (The scope is required for a quantity-based rebate — the quantity is summed across items (the items have
the same base unit of measure).) The scope dialog lists only sellable items.
- The period can be entered retroactively; the basis is calculated from the delivery and return dates.
- An agreement cannot be deleted. On an agreement that has settlements, the customer, currency and basis cannot be
changed.
## Related
- [Rebate agreements screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-anlasmalari)
---
# Settle a rebate
> Turn an accrued rebate into a credit memo request with a partial or final settlement.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/prim-hesaplasma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Ana Veriler › Prim Anlaşmaları (Sales › Master Data › Rebate Agreements) › agreement details › Hesaplaş (Settle)
- **Screen route:** `/erp/sales/rebate-agreements/{id}`
- **Required permission:** `erp-sales-rebates.create`
- **Prerequisites:**
- The rebate agreement is in **Açık** (Open) status and its period has started.
- The accrued rebate is greater than the previous settlements.
## Steps
1. In the rebate agreement details, click **Hesaplaş** (Settle).
2. In the **Hesaplaşma** (Settlement) list, select the type: **Ara hesaplaşma (dönem içinde)** (Partial settlement (within the period)) if the period is still running, or **Son hesaplaşma (dönem bittikten sonra — anlaşmayı kapatır)** (Final settlement (after the period ends — closes the agreement)) if the period has ended.

1. Interim or final settlement
2. Requested credit = accrued − previous
3. Request Credit Memo
3. In the preview, check the **Prim esası** (Rebate basis), **Prim oranı** (Rebate rate), **Tahakkuk eden prim** (Accrued rebate), **Önceki hesaplaşmalar** (Previous settlements) and **Talep edilen alacak** (Requested credit); optionally enter a **Not** (Note).
4. Click **Alacak Dekontu Talep Et** (Request Credit Memo).

1. Status
2. Download PDF — request document
3. Basis by product
4. Cancel — latest settlement only
**Result:** The settlement is saved with number **PHS-yyyy-nnnnnn** in **Talep Edildi** (Requested) status, and a credit memo request is created for the amount; the agreement's **Hesaplaşılan** (Settled) amount increases. A final settlement sets the agreement to **Kapandı** (Closed). Approval and posting of the request are handled in Finance.
## What you need to know
- The amount is not taken from the form; it is the **Talep edilen alacak** (Requested credit) in the server preview
(accrued rebate − previous settlements).
- If a settlement cannot be made, the button is disabled and the reason is shown in a yellow box in the dialog. The
image above shows the dialog opened after PHS-2026-000001: because the entire accrual has been requested, it reads
"Hesaplaşılacak prim tutarı yok." (There is no rebate amount to settle.) and **Alacak Dekontu Talep Et** (Request
Credit Memo) is disabled.
| Message | English | Cause |
|---|---|---|
| "Hesaplaşılacak prim tutarı yok." | There is no rebate amount to settle. | Previous settlements have taken the entire accrual. |
| "Son hesaplaşma anlaşma dönemi bittikten sonra yapılır; dönem içinde ara hesaplaşma yapın." | A final settlement is made after the agreement period ends; make a partial settlement within the period. | A final settlement was selected while the period is still running. |
| "Anlaşma dönemi henüz başlamadı." | The agreement period has not started yet. | The start date has not been reached. |
| "Anlaşma son hesaplaşmayla kapandı." | The agreement was closed by the final settlement. | The agreement is closed. |
| "Tahakkuk önceki hesaplaşmaların altında (… TRY) — iadeler primi azalttı. Borç dekontu kapsam dışı; son hesaplaşmayı iptal edip yeniden hesaplaşın." | The accrual is below the previous settlements (… TRY) — returns reduced the rebate. Debit memos are out of scope; cancel the last settlement and settle again. | Returns received after the settlement reduced the basis. |
- If a settlement is wrong, reverse it with **İptal Et** (Cancel) in the settlement details; only the most recent
settlement can be cancelled.
## Related
- [Rebate settlements screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-hesaplasmalari)
- [Rebate agreements screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/prim-anlasmalari)
---
# Create a campaign
> Define a campaign price or a discount off the price list for a period — code, period, scope and items.
URL: https://erpdocs.corexlogic.com/en/satis/islemler/kampanya-olusturma
- **Type:** Task
- **Module:** Sales
- **Menu path:** Satış › Ana Veriler › Kampanyalar › Yeni Kampanya (Sales › Master Data › Campaigns › New Campaign)
- **Screen route:** `/erp/sales/campaigns/new`
- **Required permission:** `erp-sales-campaigns.create`
- **Prerequisites:**
- For the percentage type, the item has a price in the customer's price list.
## Steps
1. In **Satış › Ana Veriler › Kampanyalar** (Sales › Master Data › Campaigns), click **Yeni Kampanya** (New Campaign).
2. Enter the **Ad** (Name); the **Kod** (Code) is suggested from the name — change it if you want.
3. Enter the **Başlangıç** (Start) and **Bitiş** (End) dates and the **Para Birimi** (Currency).
4. If the campaign is for a specific customer, select the **Müşteri** (Customer); if it is for a specific channel, select the **Satış Kanalı** (Sales Channel). If you leave them empty, the campaign applies to all customers and channels.
5. Click **Kalem Ekle** (Add Item), click the add buttons next to the items in the dialog and confirm with **… kalem ekle** (Add … items).
6. On each line, enter the **Biçim** (Type) — **Fiyat** (Price) or **İskonto %** (Discount %) — the **Değer** (Value) and, if needed, the **En Az Miktar** (Minimum Quantity).

1. Code — proposed from the name
2. Period
3. Customer — empty = all customers
4. Form — price or discount %
5. Minimum quantity — threshold
6. Create
7. Click **Oluştur** (Create).

1. Status — valid today
2. Campaign price or % off list
3. Threshold — in base unit
**Result:** The campaign is saved and, within its period, is proposed as the price on sales orders of the customers in scope in the same currency (if there is no special price). The line shows the source, such as "Kampanya KASIM26: 255" (Campaign KASIM26: 255).
## What you need to know
- Validations in the form: "Kampanya kodu zorunludur." (Campaign code is required.), "Kampanya adı zorunludur."
(Campaign name is required.), "Kampanyanın başlangıç ve bitiş gününü seçin." (Select the campaign's start and end
day.), "Kampanyanın bitişi başlangıcından önce olamaz." (The campaign end cannot be before its start.), "Kampanya en
az bir kalem içermelidir." (The campaign must contain at least one item.), and on a line "…: iskonto yüzdesi 0 ile
100 arasında olmalı." (…: the discount percentage must be between 0 and 100.), "…: en az miktar sıfırdan büyük
olmalı." (…: the minimum quantity must be greater than zero.) and "…: aynı ürün aynı eşikle kampanyada bir kez yer
alır." (…: the same item can appear only once in the campaign with the same threshold.)
- The price and the minimum quantity are in the item's base unit of measure. A percentage is applied to the price in
the customer's price list; if the list has no price, the campaign is not applied to that line.
- A customer-specific campaign takes precedence over a general campaign. A customer special price always takes
precedence over a campaign.
- A campaign cannot be deleted; to stop it, edit it and turn off the **Durum** (Status) switch (**Pasif** —
Inactive).
## Related
- [Campaigns screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/kampanyalar)
---
# Inventory Management
> The Inventory Management module — product master data, warehouses and storage locations, goods movements, stock balance, batches and serial numbers, physical inventory, quality and inventory reports.
URL: https://erpdocs.corexlogic.com/en/stok
Inventory Management records how much of an item is in the warehouse, where it is, and in what condition. Stock is a
**ledger**: every change is added as a **stock movement**, and a posted record is never changed afterwards; corrections
are made with a new movement in the opposite direction or with a correction document. Balance screens are read-only.
End-to-end processes: [Physical inventory](https://erpdocs.corexlogic.com/en/surecler/stok-sayimi) · [Batch and serial number tracking](https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme).
## Key concepts
| Concept | Meaning |
|---|---|
| **Ürün kartı** (Product master record) | The master data of the material: type, base unit, tracking type (batch / serial number), quality inspection requirement, min/max stock. **Ana Veriler › Ürünler › Ürün Ana Verileri** (Master Data › Products › Product Master Data). |
| **Depo** (Warehouse) and **lokasyon** (storage location) | Stock is kept per warehouse; within a warehouse, a storage location (bin, shelf, area) is optional or mandatory depending on the warehouse setting. Warehouses belong to a **tesis** (plant). |
| **Stok durumu** (Stock status) | The physical condition (segment) of the stock: Sıfır (New), İkinci El (Used), Tamir Edilmiş (Repaired), Yenilenmiş (Refurbished), Karantina (Quarantine), Reddedildi (Rejected). The same item can carry stock in several statuses in the same warehouse. Statuses flagged as **Karantina** (Quarantine) are blocked for shipment, consumption and transfer. |
| **Lot** (Batch) and **seri** (serial number) | For a batch-managed item, each batch carries a batch number, a production date and an expiry date (SKT); for a serial-managed item, each unit has its own number. |
| **Mevcut · Rezerve · Kullanılabilir** (On Hand · Reserved · Available) | On Hand is the physical quantity; Reserved is the quantity allocated to a document; Available = On Hand − Reserved. |
| **Dondurma** (Freeze) | No movement can be posted for items within the scope of an open physical inventory count until the count is posted or cancelled. |
| **İkinci imza** (Second signature) | The person who entered quantities in a count cannot post the difference; the person who put goods into quarantine cannot make the quality decision; the person who created a reservation cannot withdraw against it (unless they have the permission for movements without a reference document). |
## Tasks
- [Create a product master record](https://erpdocs.corexlogic.com/en/stok/islemler/urun-karti-olusturma) — Type, unit, tracking, quality inspection, min/max.
- [Define units and barcodes](https://erpdocs.corexlogic.com/en/stok/islemler/birim-ve-barkod-tanimlama) — Carton/box conversion, adding and generating barcodes.
- [Post a goods receipt](https://erpdocs.corexlogic.com/en/stok/islemler/mal-girisi-yapma) — Receipt without a reference document; batch, expiry date and serial number.
- [Post a goods issue](https://erpdocs.corexlogic.com/en/stok/islemler/mal-cikisi-yapma) — Issue without a reference document; FEFO batch selection.
- [Post a stock transfer](https://erpdocs.corexlogic.com/en/stok/islemler/stok-transferi-yapma) — Single step between warehouses or storage locations.
- [Change the stock status](https://erpdocs.corexlogic.com/en/stok/islemler/stok-durumu-degistirme) — Segment change such as New → Used.
- [Create a reservation](https://erpdocs.corexlogic.com/en/stok/islemler/rezervasyon-olusturma) — Announce material to be withdrawn from the warehouse in advance, and withdraw it.
- [Create a transfer order](https://erpdocs.corexlogic.com/en/stok/islemler/transfer-siparisi-olusturma) — Two-step transfer: shipment, stock in transit, arrival.
- [Open a physical inventory count](https://erpdocs.corexlogic.com/en/stok/islemler/stok-sayimi-acma) — Scope selection and freeze.
- [Enter count results](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-girisi-yapma) — Counted quantity, found items, serial number count, completion.
- [Post the count difference](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-farkini-kaydetme) — Posting the difference to the ledger with a second signature, recount, cancellation.
- [Change the batch status](https://erpdocs.corexlogic.com/en/stok/islemler/lot-durumu-degistirme) — Block a batch and remove the block.
- [Make a quality decision](https://erpdocs.corexlogic.com/en/stok/islemler/kalite-karari-verme) — Release or reject goods in quarantine.
- [Trace a batch or serial number](https://erpdocs.corexlogic.com/en/stok/islemler/lot-izleme) — Where a batch came from and where it went.
- [Post a stock adjustment](https://erpdocs.corexlogic.com/en/stok/islemler/stok-duzeltmesi-yapma) — Increase/decrease with a reason code, scrap, reversal.
## Menu map
In the menu, the module is under **Stok Yönetimi** (Inventory Management); the product master record is under **Ana
Veriler** (Master Data), and warehouse and inventory settings are under **Yönetim › Özelleştirme** (Administration ›
Customization).
| Section | Screen | Description |
|---|---|---|
| Ana Veriler › Ürünler (Master Data › Products) | Ürün Ana Verileri · Ürün Aktarımı · Üreticiler (Product Master Data · Product Import · Manufacturers) | [Product master data](https://erpdocs.corexlogic.com/en/stok/ekranlar/urun-ana-verileri) |
| Ana Veriler › Sınıflandırma (Master Data › Classification) | Sınıflandırmalar · Özellikler · Varyant Tabloları (Classifications · Characteristics · Variant Tables) | [Product master data](https://erpdocs.corexlogic.com/en/stok/ekranlar/urun-ana-verileri#siniflandirma) |
| Yönetim › Özelleştirme › Kuruluş Yapısı (Administration › Customization › Organizational Structure) | Tesisler · Depolar (Plants · Warehouses) | [Warehouses and plants](https://erpdocs.corexlogic.com/en/stok/ekranlar/depolar) |
| Yönetim › Özelleştirme › Stok · Malzeme (Administration › Customization › Inventory · Material) | Stok Durumları · Hareket Nedenleri · Seri ve Lot Numarası Profilleri · Malzeme Durumları · Ürün Türleri · Ölçü Birimleri (Stock Statuses · Movement Reasons · Serial and Batch Number Profiles · Material Statuses · Product Types · Units of Measure) | [Inventory settings](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-tanimlari) |
| Mal Hareketleri (Goods Movements) | Stok Hareketleri · Mal Girişi · Mal Çıkışı · Stok Transferi · Stok Durumu Değişimi (Stock Movements · Goods Receipt · Goods Issue · Stock Transfer · Stock Status Change) | [Stock movements](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-hareketleri) |
| Mal Hareketleri (Goods Movements) | Rezervasyonlar (Reservations) | [Reservations](https://erpdocs.corexlogic.com/en/stok/ekranlar/rezervasyonlar) |
| Mal Hareketleri (Goods Movements) | Transfer Siparişleri (Transfer Orders) | [Transfer orders](https://erpdocs.corexlogic.com/en/stok/ekranlar/transfer-siparisleri) |
| Stok Görünümü (Stock Overview) | Stok Bakiyesi · Stok Tahsisleri (Stock Balance · Stock Allocations) | [Stock balance](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-bakiyesi) |
| Stok Görünümü · Fiziksel Envanter (Stock Overview · Physical Inventory) | Lotlar · Seri Etiketleri (Batches · Serial Number Labels) | [Batches and serial number labels](https://erpdocs.corexlogic.com/en/stok/ekranlar/lotlar) |
| Özel Stoklar · Proje Stoğu (Special Stocks · Project Stock) | Tedarikçi Konsinye Stoğu · Konsinye Çekişleri · Müşteride Konsinye Stoğu · Müşteride Konsinye Belgeleri · Projeler · Proje Stoğu · Proje Stok Belgeleri (Supplier Consignment Stock · Consignment Withdrawals · Consignment Stock at Customer · Consignment Documents at Customer · Projects · Project Stock · Project Stock Documents) | [Special stocks](https://erpdocs.corexlogic.com/en/stok/ekranlar/ozel-stoklar) |
| Depo Yürütme (Warehouse Execution) | Depo İzleme · Depo Görevleri · Dalgalar · El Terminali (Warehouse Monitor · Warehouse Tasks · Waves · Handheld Terminal) | [Warehouse execution](https://erpdocs.corexlogic.com/en/stok/ekranlar/depo-yurutme) |
| Stok İşlemleri (Inventory Transactions) | Açılış Bakiyeleri · Stok Düzeltmeleri · Hurda İşlemleri (Opening Balances · Stock Adjustments · Scrap Transactions) | [Inventory transactions](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-islemleri) |
| Fiziksel Envanter (Physical Inventory) | Stok Sayımları · Dönemsel Sayım (Physical Inventory Counts · Periodic Count) | [Physical inventory counts](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-sayimlari) |
| Kalite Yönetimi (Quality Management) | Kontrol Partileri · Kalite Kontrol · Muayene Planları · Kalite Bildirimleri · Kusur Kodları (Inspection Lots · Quality Inspection · Inspection Plans · Quality Notifications · Defect Codes) | [Quality management](https://erpdocs.corexlogic.com/en/stok/ekranlar/kalite-yonetimi) |
| Değerleme (Valuation) | Yeniden Değerleme · Malzeme Değerleme · Standart Fiyat Değişiklikleri · Materyal Defteri · Gerçekleşen Maliyet Kapanışları (Revaluation · Material Valuation · Standard Price Changes · Material Ledger · Actual Costing Closings) | [Valuation](https://erpdocs.corexlogic.com/en/stok/ekranlar/degerleme) |
| Analitik (Analytics) | Stok Durum Raporu · Stok Hareket Dökümü · Lot/Seri İzlenebilirlik · Stok Değerleme Raporu · Hareketsiz Stok · Stok Yaş Analizi · ABC Analizi · Stok Devir Hızı (Stock Status Report · Stock Movement Listing · Batch/Serial Traceability · Stock Valuation Report · Slow-Moving Stock · Stock Aging Analysis · ABC Analysis · Inventory Turnover) | [Inventory reports](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-raporlari) |
## Documents that change stock
Stock changes only in the following ways; each appears in **Stok Hareketleri** (Stock Movements) together with its
source.
| Source | Movement type | Effect |
|---|---|---|
| Mal Girişi (Goods Receipt, without a reference document) | Mal Kabul (Goods Receipt) | Increase in the selected warehouse, storage location and status |
| Mal Çıkışı (Goods Issue, without a reference document), reservation withdrawal | Sarf / Çıkış (Consumption / Issue) | Decrease from the selected status |
| Stok Transferi (Stock Transfer), Transfer Siparişi (Transfer Order), Depo Görevi (Warehouse Task) | Transfer | Issue from the source + receipt at the destination (two lines) |
| Stok Durumu Değişimi (Stock Status Change) | Stok Durumu Değişimi (Stock Status Change) | Issue from the source status + receipt into the target status; the location stays the same |
| Stok Sayımı (Physical Inventory Count, difference posting) | Stok Fazlası / Stok Eksiği Düzeltmesi (Stock Surplus / Stock Shortage Adjustment) | Increase or decrease by the count difference |
| Stok Düzeltmesi (Stock Adjustment) | Stok Fazlası / Stok Eksiği Düzeltmesi (Stock Surplus / Stock Shortage Adjustment) | Increase or decrease with a reason code |
| Hurda Fişi (Scrap Document) | Hurda (Scrap) | Decrease |
| Açılış Bakiyesi (Opening Balance) | Açılış Bakiyesi (Opening Balance) | Initial carry-forward receipt |
| Kalite Kararı (Quality Decision) | Stok Durumu Değişimi (Stock Status Change) | Quarantine → available, or Reddedildi (Rejected) |
| Purchasing goods receipt, sales delivery, production consumption and output | Mal Kabul · Sarf / Çıkış · Üretim Sarfı · Üretim Girişi (Goods Receipt · Consumption / Issue · Production Consumption · Production Receipt) | From the document of the related module |
There is no negative stock: an issue cannot exceed the available stock.
---
# Product master data
> The product master record — list, new record dialog, detail tabs, units and barcodes, classification, variants, tracking type and warehouse data.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/urun-ana-verileri
Raw materials, semi-finished products, finished products, trading goods, consumables, packaging, spare parts and
services — all product definitions are on a single screen. Most stock-related behavior comes from the master record:
base unit, tracking type (batch / serial number), quality inspection at receipt, minimum/maximum stock and
warehouse-specific data.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Ana Veriler › Ürünler › Ürün Ana Verileri (Master Data › Products › Product Master Data)
- **Screen route:** `/erp/catalog/products`
- **Required permission:** `erp-catalog-items.view (görme) · .create (Yeni Ürün) · .edit (düzenleme, barkod üretme, İzleme Tipini Değiştir) · .delete (silme) · .import (Dışa Aktar / İçe Aktar, Ürün Aktarımı)`, `erp-inventory-warehouses.view / .edit (Depo Verileri) · erp-inventory-costs.view (Maliyet sekmesi) · erp-inventory-movements.view (Hareketler)`
## List

1. New Product — new item
2. Search: code, name, foreign name or barcode
3. Advanced filters — usage, manufacturer, category…
4. Tracking — none, lot or serial
5. Usage — sales, purchasing, production
Columns: **Kod** (Code), **Ad** (Name), **Barkod** (Barcode), **Ürün türü** (Product type), **Temel Birim** (Base Unit),
**Takip** (Tracking: İzleme Yok · Lot Takipli · Seri No Takipli (No Tracking · Batch-Managed · Serial-Managed)),
**Kategori** (Category), **Kalite Kontrol** (Quality Inspection; "Gerekli değil" (Not required) or required),
**Yapılandırma** (Configuration: Standart · Yapılandırılabilir (Standard · Configurable)), **Durum** (Status),
**Kullanım** (Usage; Satış · Alım · Üretim (Sales · Purchasing · Production) badges, planning strategy; "Gözden geçir"
(Review) = came from an import, not yet verified).
- **Durum** (Status) badges: **Aktif** (Active) / **Pasif** (Inactive); **Süre dışı** (Out of validity; active but
outside its validity period — cannot be selected in documents); the material status; **Kesildi…** (Discontinued…) or
**Kesilecek · \{gün\}** (To be discontinued · \{gün\}).
- Filters: **Ara** (Search; code, name, foreign name or barcode), **Ürün türü** (Product type), **Durum** (Status). Under
**Gelişmiş** (Advanced): Yapılandırma (Configuration), Kullanım (Usage), Gözden Geçirme (Review), Üretici
(Manufacturer), Özellik (Characteristic), Malzeme durumu (Material status), Kategori (Category).
- Row menu: **Ürünü Aç** (Open Product), **Düzenle** (Edit), **Gözden Geçirildi** (Reviewed), **Geçmiş** (History),
**Sil** (Delete).
- When rows are selected, the bulk action bar appears: **Toplu Güncelle** (Mass Update), **Barkod Üret** (Generate
Barcode), **Sil** (Delete), **Seçimi Temizle** (Clear Selection). At most 1000 records are processed at once.
- **Dışa Aktar** (Export) / **İçe Aktar** (Import) use the Ürün Aktarımı (Product Import) workbook (.xlsx).
Deleting removes the record from the list; past documents continue to show it. A record that is in use cannot be
deleted: "'\{kod\}' kullanımda (\{…\}) — silinemez. Kullanımdan kaldırmak için kartı pasife alın ya da geçerlilik bitiş
tarihi verin." ('\{kod\}' is in use (\{…\}) — it cannot be deleted. To withdraw it from use, deactivate the record or
give it a validity end date.)
## New record dialog

1. Product name — required
2. Product code — proposed from name and type prefix
3. Usage boxes — unticked ones disable their tab
4. Measures — base unit required, cannot change later
5. Tracking: none, lot or serial
6. Inspection on receipt — receipts go to quarantine
7. Create
Title **Ürün Ana Verileri — Yeni** (Product Master Data — New). Step by step:
[Create a product master record](https://erpdocs.corexlogic.com/en/stok/islemler/urun-karti-olusturma).
| Field | Mandatory | Note |
|---|---|---|
| **Ürün tanımı** (Product description) | Yes | At most 256 characters. |
| **Ürün Kodu** (Product Code) | Yes (if no series is selected) | Proposed from the name and the prefix of the product type (e.g. HAM-KOSTIK). At most 64 characters, unique. If the installation has an active number series, the **Seri** (Series) field appears; when a series is selected, the code is assigned on saving. |
| **Ürün türü** (Product type) | Yes | The organization's product types; the type determines the permitted views (sales, purchasing, production) and the defaults for the new record. Switching between service and material is not possible. |
| **Yabancı ad** (Foreign name), **Barkod** (Barcode) | No | |
| **Stok ürünü** (Stock item) · **Satış ürünü** (Sales item) · **Satınalma ürünü** (Purchasing item) · **Üretim ürünü** (Production item) | — | The tab of an unchecked box is disabled ("\{X\} işaretli değil" (\{X\} is not checked)). |
Tabs: **Genel** (General) · **Ölçü Verileri** (Units of Measure Data; mandatory for a new record) · **Satış Verileri**
(Sales Data) · **Satınalma Verileri** (Purchasing Data) · **Stok Verileri** (Stock Data) · **Planlama Verileri**
(Planning Data) · **Üretim Verileri** (Production Data) · **Ekler** (Attachments).
- **Genel** (General): Açıklama (Description), Kategori (Category), Üretici (Manufacturer), Üretici parça no
(Manufacturer part no.; manufacturer first), Ek tanımlayıcı (Additional identifier), GTİP (customs tariff code; 12
digits), **Ürün yönetme ölçütü** (Product management criterion; the tracking type — can be selected only for a new
record), **Seri/Lot profili** (Serial/Batch profile), **Girişte kalite kontrol › Gerekli** (Quality inspection at
receipt › Required), **Durum › Etkin** (Status › Active), **Geçerlilik** (Validity; empty = unlimited), **Malzeme
durumu** (Material status).
- **Ölçü Verileri** (Units of Measure Data): **Stok ölçü birimi** (Stock unit of measure; the base unit; cannot be
changed later), length, width, height, volume, net and gross weight per unit. The gross weight cannot be less than the
net weight.
- **Satış / Satınalma Verileri** (Sales / Purchasing Data): default sales and purchasing unit (the base unit for a
serial-managed item), customs group, purchasing group.
- **Stok Verileri** (Stock Data): **Minimum stok** (Minimum stock) and **Maksimum stok** (Maximum stock). When the
position falls below the minimum, Malzeme İhtiyaçları (Material Requirements) proposes an order; if the maximum is
empty, it replenishes up to the minimum.
- **Planlama Verileri** (Planning Data): planning strategy (Planlama Yok · Stoğa Üretim · Siparişe Üretim (No Planning ·
Make-to-Stock · Make-to-Order)), default procurement type (Üret · Satın Al (Produce · Purchase); mandatory for an item
included in planning), MRP controller, lead time, minimum order quantity, order multiple, discontinuation date and
successor item.
### Validation rules
| Rule | Message |
|---|---|
| Duplicate code | "'\{kod\}' kodlu stok kartı zaten mevcut." (A stock item with code '\{kod\}' already exists.) |
| Base unit | "Stok ölçü birimi zorunlu." (The stock unit of measure is mandatory.) · "'\{kod\}' birimi pasif — temel birim olarak seçilemez." (Unit '\{kod\}' is inactive — it cannot be selected as the base unit.) |
| Service item | "Hizmet kartı stok ürünü olamaz." (A service item cannot be a stock item.) · "Hizmet ürünü lot veya seri numarası ile izlenemez." (A service item cannot be tracked by batch or serial number.) |
| Non-stock item | "Stok tutmayan kart lot veya seri numarası ile izlenemez." (An item that does not carry stock cannot be tracked by batch or serial number.) · "Stok tutmayan kartta minimum/maksimum stok tanımlanmaz." (No minimum/maximum stock is defined for an item that does not carry stock.) |
| Min / max | "Minimum stok eksi olamaz." (The minimum stock cannot be negative.) · "Maksimum stok tek başına tanımlanmaz — öneriyi minimum tetikler. Minimumu da girin (sıfır olabilir)." (The maximum stock cannot be defined on its own — the proposal is triggered by the minimum. Enter the minimum as well (it can be zero).) · "Minimum stok maksimum stoktan büyük olamaz." (The minimum stock cannot be greater than the maximum stock.) |
| Lead time | "Tedarik süresi tam gün olmalı (ör. 7)." (The lead time must be in whole days (e.g. 7).) · "Tedarik süresi en fazla 999 gün olabilir." (The lead time can be at most 999 days.) |
| Planning | "Planlamaya giren kartın varsayılan tedarik yolu belirlenmelidir (ihtiyaç doğduğunda üretilecek mi, satın alınacak mı)." (The default procurement type must be specified for an item included in planning (whether it will be produced or purchased when a requirement arises).) |
| Product type permissions | "'\{ad\}' ürün türü satış görünümüne izin vermiyor — kart satılabilir işaretlenemez." (Product type '\{ad\}' does not permit the sales view — the item cannot be marked as sellable.) |
| Service ↔ material | "Kartın stoklanabilirliği (hizmet ↔ malzeme) sonradan değiştirilemez. Yeni kart açın." (The stockability of the item (service ↔ material) cannot be changed later. Create a new item.) |
## Details

1. Edit — opens the item window
2. Units — unit conversions
3. Barcodes
4. Stock — balances, warehouse data, movements
5. Change Tracking Type — only while the item is unused
The header shows the name, code, status badges, usage boxes (read-only) and the **Düzenle** (Edit) button; below it are
Ürün türü (Product type), Temel birim (Base unit), Kategori (Category), Takip (Tracking) and Kalite kontrol (Quality
inspection; "Girişte gerekli" (Required at receipt) / "Gerekmiyor" (Not required)). Tabs:
| Tab | Visibility | Content |
|---|---|---|
| **Temel Veriler** (Basic Data) | Always | Description and status/dimensions; **İzleme Tipini Değiştir** (Change Tracking Type) button. |
| **Birimler** (Units) | Always | Unit conversions. |
| **Barkodlar** (Barcodes) | Always | Product barcodes; serial number generation for a serial-managed item. |
| **Sınıflandırma** (Classification) | Always | Classifications and general characteristics. |
| **Yapılandırma** (Configuration) / **Varyantlar** (Variants) / **Varyant Bilgisi** (Variant Information) | Depending on the form of the item | For a standard item, making it configurable; for a header item, characteristics and variants; for a variant, header item information. |
| **Satış** (Sales) | Sellable item | Prices, Channel Data, Division, Alternatives. |
| **Satın Alma** (Purchasing) | Purchasable item | Suppliers, Price History. |
| **Planlama** (Planning) | Stock item | Planning data and open documents (demand, on hand, in transit). |
| **Stok** (Stock) | Stock item | **Bakiyeler** (Balances) · **Depo Verileri** (Warehouse Data) · **ABC Sınıfı** (ABC Class) · **Hareketler** (Movements). |
| **Maliyet** (Cost) | Stock item + cost permission | Value information. |
| **Üretim** (Production) | Produced item | Where-Used. |
| **Belgeler** (Documents), **Geçmiş** (History) | | Attachments and change history. |
### Units {#birimler}

1. Add Unit — new conversion
2. Rate — base units per unit
Stock is kept in the base unit; a conversion is specific to the item itself, and the reverse direction is derived as
1/multiplier. In the **Birim Ekle** (Add Unit) dialog, enter the **Kaynak Birim** (Source Unit), **Hedef Birim**
(Target Unit) and **Çarpan** (Multiplier; how many target units 1 source unit equals; at most 6 decimal places). For a
saved conversion, only the multiplier can change (**Oranı Düzelt** (Correct Ratio)); past movements are stored with the
multiplier valid at the time of the movement. Example: for MAM-0008, 1 KUTU (box) = 4 ADET (pieces).
Rejection messages: "Bu ürün için aynı yönde bir dönüşüm zaten tanımlı." (A conversion in the same direction is already
defined for this product.) · "Bu iki birim arasında ters yönde bir dönüşüm zaten tanımlı." (A conversion in the reverse
direction is already defined between these two units.) · "Kaynak ve hedef birim aynı olamaz." (The source and target
unit cannot be the same.) · "Bu dönüşüm kartın varsayılan satış birimini taşıyor — önce Satış Verileri'nde varsayılan
birimi değiştirin." (This conversion carries the item's default sales unit — first change the default unit in Satış
Verileri (Sales Data).)
### Barcodes

1. Add Barcode — scan or type
2. Generate Barcode — in-house EAN-13
3. Print Labels for Selected
- **Barkod Ekle** (Add Barcode): **Barkod** (Barcode; mandatory; scan or type it, converted to upper case), **Birim**
(Unit), **Açıklama** (Description), **Varsayılan** (Default). The item's first barcode automatically becomes the
default.
- **Barkod Üret** (Generate Barcode): an in-house EAN-13 (starting with "20"); the system assigns the number.
- **Seçilenlerin Etiketini Bas** (Print Labels for Selected): labels for the selected barcodes (thermal label printer).
- While the tab is open, a scanned barcode opens the record if it exists on the item; otherwise, the add dialog appears.
- The barcode text cannot be changed; if it is wrong, delete it and add a new one. At most 50 barcodes per item.
Rejection messages: "'\{barkod\}' barkodu '\{kart\}' kartında tanımlı." (Barcode '\{barkod\}' is defined on item
'\{kart\}'.) · "Barkodun birimi kartın temel birimi ya da birim dönüşümlerinden biri olmalı. Önce Birimler sekmesinden
dönüşümü tanımlayın." (The unit of the barcode must be the item's base unit or one of its unit conversions. First define
the conversion on the Birimler (Units) tab.) · "Barkod yalnız harf, rakam ve işaret içerebilir — boşluk ve Türkçe harf
kullanılamaz." (A barcode can contain only letters, digits and symbols — spaces and Turkish letters are not allowed.) ·
"GTIN kontrol hanesi tutmuyor — \{n\} haneli barkodun son hanesi \{x\} olmalı. Dahili bir kodsa harf ya da farklı
uzunluk kullanın." (The GTIN check digit does not match — the last digit of the \{n\}-digit barcode must be \{x\}. If it
is an internal code, use letters or a different length.)
Step by step: [Define units and barcodes](https://erpdocs.corexlogic.com/en/stok/islemler/birim-ve-barkod-tanimlama).
### Stock › Warehouse Data

1. Balances — warehouse, location, lot
2. Warehouse data — per-warehouse min/max, default location
3. Movements — the item ledger
4. Add Warehouse Data
With **Depo Verisi Ekle** (Add Warehouse Data), enter the warehouse-specific **Minimum**, **Maksimum** (Maximum; in the
base unit) and **Varsayılan lokasyon** (Default storage location). When the warehouse's unrestricted stock falls below
the minimum, Malzeme İhtiyaçları (Material Requirements) generates a proposal; the default storage location fills in the
storage location in the Goods Receipt, Transfer and purchasing goods receipt forms when the warehouse is selected.
Columns: Depo (Warehouse), Minimum, Maksimum (Maximum), Varsayılan Lokasyon (Default Storage Location), Depo Stoğu
(Warehouse Stock). There is no separate "safety stock" or "reorder point" field — the trigger is the minimum.
The **Hareketler** (Movements) subtab shows the item's ledger (Tarih (Date), Tür (Type), Miktar (Quantity), Depo
(Warehouse), Stok Durumu (Stock Status), Lot / Seri (Batch / Serial Number)).
### Change the tracking type
In the **Temel Veriler › İzleme Tipini Değiştir** (Basic Data › Change Tracking Type) dialog, enter the **Yeni izleme
tipi** (New tracking type), **Seri/Lot profili** (Serial/Batch profile) and **Gerekçe** (Reason; mandatory, written to
the audit trail). Batch or serial number tracking can change **only before any stock is received and while there are
no open documents**; the profile can always change. If there is an obstacle, the server lists the reasons:
"İzleme tipi değiştirilemez — \{sebepler\}. Lot ya da seri takibi stok girmeden ve açık belge yokken değişir." (The
tracking type cannot be changed — \{sebepler\}. Batch or serial number tracking can change only before stock is
received and while there are no open documents.) Reasons: "\{n\} stok hareketi var" (has \{n\} stock movements),
"stoğu var" (has stock), "\{n\} açık rezervasyonda kalemi var" (has lines in \{n\} open reservations), "\{n\} açık satın
alma siparişinde bekleyen miktarı var" (has outstanding quantities in \{n\} open purchase orders), "\{n\} açık satış
siparişinde teslim edilecek miktarı var" (has quantities to be delivered in \{n\} open sales orders), "\{n\} açık üretim
emrinin çıktısı" (is the output of \{n\} open production orders), "\{n\} açık üretim emrinin bileşeni" (is a component
of \{n\} open production orders). A variant's tracking type comes from the header item.
## Classification {#siniflandirma}
On the **Sınıflandırma** (Classification) tab, a classification is assigned to the item, and item-specific
characteristic values are entered with **Özellik Ekle** (Add Characteristic) on the **Genel Özellikler** (General
Characteristics) card. If a characteristic set has been assigned to the category, the fields are brought in together.
Classifications, characteristics and variant tables are defined under **Ana Veriler › Sınıflandırma** (Master Data ›
Classification).
## Configurable products and variants

1. Configurable parent — not selectable in documents
2. Configuration — characteristics that split variants
3. Create Variant — opens a concrete item
Differences of the same product such as size, color or dimensions are set up not as separate flat records, but as a
**configurable header item + variants** (example: TIC-0001 İş Eldiveni (Work Gloves), size variants TIC-0001-S … XL).
- On the **Yapılandırma** (Configuration) tab of a standard item, click **Yapılandırılabilir Yap** (Make Configurable).
A header item is not considered a concrete material: it cannot be selected in sales, purchasing, production or
inventory documents, and no stock movement can be posted to it; this work is done with the variant items. Existing
stock and past movements remain as they are.
- On the **Yapılandırma** (Configuration) tab of the header item, the **Yapılandırma Özellikleri** (Configuration
Characteristics; mandatory flag, permitted values, condition) are defined; on the **Varyantlar** (Variants) tab, a
concrete item is created with **Varyant Oluştur** (Create Variant; characteristic values, Kod (Code), Ad (Name)).
- A product with variants cannot be converted back to standard: "Bu ürünün materyalize varyant kartları var;
yapılandırılabilirlik kaldırılamaz." (This product has materialized variant items; configurability cannot be
removed.)
## Related
- [Create a product master record](https://erpdocs.corexlogic.com/en/stok/islemler/urun-karti-olusturma)
- [Inventory settings](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-tanimlari) — product type, unit of measure, serial and batch number profile
---
# Create a product card
> Create a new product card — description, code, product type, usage, base unit, tracking type, quality control and minimum/maximum stock.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/urun-karti-olusturma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Ana Veriler › Ürünler › Ürün Ana Verileri › Yeni Ürün (Master Data › Products › Product Master Data › New Product)
- **Screen route:** `/erp/catalog/products`
- **Required permission:** `erp-catalog-items.create`
- **Prerequisites:**
- The unit of measure to be used is active in **Ölçü Birimleri** (Units of Measure), and the product type in **Ürün Türleri** (Product Types).
- If lot or serial numbers will be assigned automatically, a profile is defined in **Seri ve Lot Numarası Profilleri** (Serial and Lot Number Profiles).
The product card is the source of stock-related behavior: the base unit, the tracking type and the quality control
requirement are read from the card's definition in all movements. Screen details:
[Product master data](https://erpdocs.corexlogic.com/en/stok/ekranlar/urun-ana-verileri).
## Steps
1. Open the **Ana Veriler › Ürünler › Ürün Ana Verileri** (Master Data › Products › Product Master Data) screen and click **Yeni Ürün** (New Product).
2. Type the product name in the **Ürün tanımı** (Product description) field. The **Ürün Kodu** (Product Code) is suggested from the name and the product type's prefix; overwrite it if needed.
3. Select the **Ürün türü** (Product type). The type brings the permitted usages and the defaults of the new card.
4. Select the usage check boxes: **Stok ürünü** (Stock item), **Satış ürünü** (Sales item), **Satınalma ürünü** (Purchasing item), **Üretim ürünü** (Production item). The tab of an unselected box is closed.
5. On the **Genel** (General) tab, select the **Kategori** (Category). If lots or serial numbers will be tracked, select the **Ürün yönetme ölçütü** (Product management criterion) (Lot Takipli / Seri No Takipli (Lot-managed / Serial-managed)) and, if needed, the **Seri/Lot profili** (Serial/Lot profile). If inspection is required on receipt, select **Girişte kalite kontrol › Gerekli** (Quality control on receipt › Required).

1. Product name — required
2. Product code — proposed from name and type prefix
3. Usage boxes — unticked ones disable their tab
4. Measures — base unit required, cannot change later
5. Tracking: none, lot or serial
6. Inspection on receipt — receipts go to quarantine
7. Create
6. On the **Ölçü Verileri** (Units of Measure Data) tab, select the **Stok ölçü birimi** (Stock unit of measure). This unit cannot be changed after the card is saved.
7. If it is a stock item, enter the **Minimum stok** (Minimum stock) and **Maksimum stok** (Maximum stock) on the **Stok Verileri** (Stock Data) tab, and the planning strategy and procurement type on the **Planlama Verileri** (Planning Data) tab.
8. Click **Oluştur** (Create).
**Result:** The product card is saved as **Aktif** (Active). For unit conversions and barcodes, see [Define units and barcodes](https://erpdocs.corexlogic.com/en/stok/islemler/birim-ve-barkod-tanimlama); the initial stock is received with a [goods receipt](https://erpdocs.corexlogic.com/en/stok/islemler/mal-girisi-yapma), a purchasing goods receipt or an opening balance.
## What you need to know
- The **base unit** cannot be changed later; a **service ↔ material** switch is not possible (a new card is
created).
- The tracking type is selected on the new card; afterwards it can only be changed with **İzleme Tipini Değiştir**
(Change Tracking Type) while the card is not in use (no stock, movements or open documents).
- Every receipt of a card with **Girişte kalite kontrol** (Quality control on receipt) selected is posted to
KARANTINA status and cannot be used until a quality decision is made.
- **Maksimum stok** (Maximum stock) cannot be entered on its own; a minimum (which can be zero) must also be entered.
The minimum cannot be greater than the maximum.
- Do not create separate flat cards for size, color or dimension differences of the same product; use a
configurable parent card and variants.
- A duplicate code is rejected: "'\{kod\}' kodlu stok kartı zaten mevcut." (A stock card with code '\{kod\}'
already exists.)
## Related
- [Product master data screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/urun-ana-verileri)
- [Inventory settings](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-tanimlari)
---
# Warehouses and plants
> Definitions of plants, warehouses and storage locations (bins) within a warehouse — mandatory storage location, putaway, warehouse managers.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/depolar
Stock movements are kept per **warehouse**. A warehouse belongs to a **plant** (factory, branch, distribution center);
**storage locations** (bin, shelf, block storage, goods receipt and shipping staging area) are defined within the
warehouse. Warehouses in the demo company: **HAMMADDE** (Hammadde Deposu — Raw Materials Warehouse), **KIMYA** (Kimya
Deposu — Chemicals Warehouse), **MAMUL** (Mamul Deposu — Finished Goods Warehouse), **MERKEZ** (Merkez Depo — Central
Warehouse).
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Yönetim › Özelleştirme › Kuruluş Yapısı › Tesisler · Depolar (Administration › Customization › Organizational Structure › Plants · Warehouses)
- **Screen route:** `/erp/inventory/warehouses`
- **Required permission:** `erp-inventory-warehouses.view (görme) · .create (Yeni Depo, Yeni Tesis) · .edit (düzenleme, lokasyon, sorumlu) · .import`
## Plants
**Yönetim › Özelleştirme › Kuruluş Yapısı › Tesisler** (Administration › Customization › Organizational Structure ›
Plants) (`/erp/inventory/plants`). Columns: Kod (Code), Ad (Name), İl / İlçe (Province / District), Depo (Warehouse),
Varsayılan (Default), Durum (Status). The **Yeni Tesis** (New Plant) dialog: **Ad** (Name) and **Kod** (Code)
(mandatory), İl (Province), İlçe (District), Adres (Address), **Fabrika takvimi** (Factory calendar), **Aktif**
(Active), and in the **Nakil sevki** (Stock transport shipment) group, İç müşteri (Internal customer) and Sevk adresi
(Ship-to address).
- The default plant cannot be deactivated: "Varsayılan tesis pasife alınamaz — önce başka bir tesisi varsayılan yapın."
(The default plant cannot be deactivated — first make another plant the default.)
- A plant that has an active warehouse cannot be deactivated: "'\{kod\}' tesisinde aktif depo var — önce depoları
pasife alın ya da başka tesise bağlayın." (Plant '\{kod\}' has an active warehouse — first deactivate the warehouses
or assign them to another plant.)
## Warehouse list
Columns: **Kod** (Code), **Ad** (Name), **Depo Türü** (Warehouse Type: Genel · Hammadde · Karantina · Üretim · Mamul ·
Yedek Parça · Hurda (General · Raw Material · Quarantine · Production · Finished Goods · Spare Parts · Scrap)),
**Tesis** (Plant), **Adres** (Address), **Sorumlular** (Managers), **Lokasyon** (Storage Location; count), **Durum**
(Status). Filters: Ara (Search), Depo türü (Warehouse type), Durum (Status). **Yeni Depo** (New Warehouse) opens the
dialog.
## New Warehouse / Edit Warehouse
| Tab | Field | Note |
|---|---|---|
| Genel (General) | **Ad** (Name) \*, **Kod** (Code) \* | The code is proposed from the name, converted to upper case, and must be unique; at most 32 characters. The name is at most 128 characters. |
| Genel (General) | **Depo Türü** (Warehouse Type), **Tesis** (Plant) \*, **Aktif** (Active) | A warehouse with stock cannot be moved to another plant. A warehouse with a stock balance cannot be deactivated. |
| Genel (General) | **Lokasyon seçimi zorunlu** (Storage location selection mandatory) | When enabled, selecting a storage location is mandatory for new movements in this warehouse. Before enabling it, no stock without a storage location may remain in the warehouse. |
| Adres (Address) | Adres, Ülke, İl, İlçe, Posta Kodu, Yetkili, Telefon (Address, Country, Province, District, Postal Code, Contact Person, Phone) | If empty, the plant's address applies. |
| Yerleştirme ve Kabul (Putaway and Receipt) | **Yerleştirme önerisi** (Putaway proposal: Mevcut stoğa ekle · Boş göz öner (Add to existing stock · Propose an empty bin)), **Görevli yerleştirme** (Task-based putaway), **Mal kabul** (Goods receipt) | Task-based putaway can be enabled after a goods receipt area bin has been defined; when enabled, incoming goods first enter the goods receipt area, and the movement to the shelf is performed with **Depo Görevleri** (Warehouse Tasks). |
Storage locations are added after the warehouse has been created.
## Warehouse details and storage locations

1. Edit — type, plant, location requirement
2. Warehouse owners
3. Add Location — bin, rack, area
4. Type — rack, block, receiving, staging
Buttons: **Düzenle** (Edit), **Sorumlu Ekle** (Add Manager), **Lokasyon Ekle** (Add Storage Location), **Etiket
Yazdır** (Print Labels; labels of the selected bins; no label is printed for an inactive bin). The **Lokasyonlar**
(Storage Locations) table: Kod (Code), Ad (Name), Tip (Type), Tek ürün (Single product), Kapasite (Capacity;
"Sınırsız" (Unlimited)), Doluluk (Occupancy; "Boş" (Empty)), Durum (Status).
The **Yeni Lokasyon** (New Storage Location) dialog:
| Field | Note |
|---|---|
| **Ad** (Name) \*, **Kod** (Code) \* | The code is unique within the warehouse and cannot be changed after it has been saved (printed labels and the handheld terminal read this code). |
| **Aktif** (Active) | A storage location with stock cannot be deactivated. |
| **Tip** (Type) | Raf (Shelf) · Blok istif (Block storage) · Mal kabul alanı (Goods receipt area) · Sevk hazırlık alanı (Shipping staging area). Goods receipt and shipping staging areas are not included in putaway proposals. |
| **Ağırlık kapasitesi (kg)** (Weight capacity (kg)), **Hacim kapasitesi (L)** (Volume capacity (L)) | Empty = unlimited. A receipt into a bin without sufficient capacity is rejected. |
| **Tek ürün gözü** (Single-product bin) | When enabled, a new product cannot enter the bin while it holds stock of another product. |
**Depo sorumluları** (Warehouse managers): users assigned as managers see their own warehouses with the "Sorumlu
olduğum depolar" (Warehouses I manage) filter in the lists.
## Rejection messages
| Situation | Message |
|---|---|
| Duplicate code | "'\{kod\}' kodlu depo zaten mevcut." (A warehouse with code '\{kod\}' already exists.) |
| Deactivating a warehouse with stock | "'\{kod\}' deposunda stok var — pasife alınamaz. Önce stoğu transfer edin veya çıkışını yapın." (Warehouse '\{kod\}' has stock — it cannot be deactivated. First transfer or issue the stock.) |
| Moving a warehouse with stock to another plant | "'\{kod\}' deposunda (ya da özel stoğunda) stok var — tesisi değiştirilemez." (Warehouse '\{kod\}' (or its special stock) has stock — its plant cannot be changed.) |
| Mandatory storage location, no storage location | "'\{kod\}' deposunda aktif lokasyon yok — lokasyon zorunluluğu açılamaz. Önce depo içi lokasyonları tanımlayın." (Warehouse '\{kod\}' has no active storage location — the storage location requirement cannot be enabled. First define the storage locations within the warehouse.) |
| Duplicate storage location code | "'\{depo\}' deposunda '\{kod\}' kodlu lokasyon zaten mevcut." (A storage location with code '\{kod\}' already exists in warehouse '\{depo\}'.) |
| Deactivating a storage location with stock | "'\{kod\}' lokasyonunda stok var — pasife alınamaz. Önce stoğu başka lokasyona transfer edin." (Storage location '\{kod\}' has stock — it cannot be deactivated. First transfer the stock to another storage location.) |
| Task-based putaway | "Görevli yerleştirme için depoda aktif bir mal kabul alanı gözü olmalı — önce lokasyonlarda 'Mal kabul alanı' tipinde bir göz tanımlayın." (Task-based putaway requires an active goods receipt area bin in the warehouse — first define a bin of type 'Mal kabul alanı' (Goods receipt area) under storage locations.) |
| Special stock warehouse | "Özel stok deposu sistem tarafından yönetilir — düzenlenemez." (The special stock warehouse is managed by the system — it cannot be edited.) (such as the in-transit stock warehouse of a transfer order) |
## Related
- [Inventory settings](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-tanimlari)
- [Warehouse execution](https://erpdocs.corexlogic.com/en/stok/ekranlar/depo-yurutme)
---
# Define units and barcodes
> Add a unit conversion (carton, box) to a product card and define a product barcode or generate an in-house barcode.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/birim-ve-barkod-tanimlama
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Ana Veriler › Ürünler › Ürün Ana Verileri › ürün detayı › Birimler · Barkodlar (Master Data › Products › Product Master Data › product details › Units · Barcodes)
- **Screen route:** `/erp/catalog/products/{id}`
- **Required permission:** `erp-catalog-items.edit`, `erp-catalog-units.view`
- **Prerequisites:**
- The unit to be added is active in **Ölçü Birimleri** (Units of Measure) (e.g. KUTU, KOLI).
Stock is always kept in the card's **base unit**; a quantity entered in another unit is converted using the
card-specific conversion. A barcode identifies the product and its unit.
## Steps
1. Open the product details (e.g. **MAM-0008 SIVI DETERJAN 5 LT**) and switch to the **Birimler** (Units) tab.

1. Add Unit — new conversion
2. Rate — base units per unit
2. Click **Birim Ekle** (Add Unit). Enter the **Kaynak Birim** (Source Unit) (e.g. KUTU), the **Hedef Birim** (Target Unit) (the base unit, e.g. ADET) and the **Çarpan** (Factor) (how many target units one source unit equals), then click **Kaydet** (Save).
3. Switch to the **Barkodlar** (Barcodes) tab. To add a barcode you already have, click **Barkod Ekle** (Add Barcode); for an in-house number, click **Barkod Üret** (Generate Barcode).

1. Add Barcode — scan or type
2. Generate Barcode — in-house EAN-13
3. Print Labels for Selected
4. In the **Barkod Ekle** (Add Barcode) window, scan or type the **Barkod** (Barcode), enter the **Birim** (Unit) the barcode belongs to (a carton barcode with the carton unit) and an optional **Açıklama** (Description), then click **Ekle** (Add).
5. To print labels, select the barcodes and click **Seçilenlerin Etiketini Bas** (Print Labels for Selected).
**Result:** A unit with a defined conversion can be selected on sales, purchasing and inventory forms; the quantity is converted to the base unit when it is posted. When the barcode is scanned, the product and the unit are filled in together.
## What you need to know
- The reverse direction of a conversion is not defined separately (1/factor). A second conversion between the
same two units is rejected: "Bu iki birim arasında ters yönde bir dönüşüm zaten tanımlı." (A conversion in the
reverse direction between these two units is already defined.)
- On a saved conversion, only the factor can be changed (**Oranı Düzelt** (Correct Ratio)); past movements are not
affected.
- A conversion must be defined for the barcode's unit first: "Barkodun birimi kartın temel birimi ya da birim
dönüşümlerinden biri olmalı. Önce Birimler sekmesinden dönüşümü tanımlayın." (The barcode's unit must be the
card's base unit or one of its unit conversions. Define the conversion on the Units tab first.)
- A barcode can be defined on only one card: "'\{barkod\}' barkodu '\{kart\}' kartında tanımlı." (Barcode
'\{barkod\}' is defined on card '\{kart\}'.)
- A warning appears for a barcode that looks like a GS1 number but whose check digit does not match; if you are
adding it deliberately, click **Yine de Ekle** (Add Anyway).
- **Barkod Üret** (Generate Barcode) produces an in-house EAN-13 starting with "20". You can also select several
cards in the list and run **Barkod Üret** in bulk; cards that already have a barcode, non-stock cards and
configurable parent cards are skipped.
## Related
- [Product master data › Units](https://erpdocs.corexlogic.com/en/stok/ekranlar/urun-ana-verileri#birimler)
---
# Inventory settings
> Stock statuses, movement reasons, serial and batch number profiles, material statuses, product types and units of measure.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-tanimlari
The settings that feed the selection lists of the inventory screens. There is **no deletion** on these screens; a
record that is no longer used is deactivated (the list shows only active records when opened; **Pasifleri göster**
(Show inactive) shows all of them). Settings that have a default have a **Varsayılan Yap** (Make Default) menu; the
default record cannot be deactivated.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Yönetim › Özelleştirme › Stok · Malzeme (Administration › Customization › Inventory · Material)
- **Screen route:** `/erp/inventory/conditions`
- **Required permission:** `erp-inventory-conditions.view / .create / .edit (Stok Durumları)`, `erp-inventory-movement-reasons.view / .create / .edit (Hareket Nedenleri)`, `erp-catalog-tracking-profiles.* · erp-catalog-material-statuses.* · erp-catalog-material-types.* · erp-catalog-units.*`
## Stock Statuses

1. New Stock Status
2. Default — entries without a status land here
3. Show inactive
The stock status is a dimension of the stock, not of the product: the same item can carry new, used and repaired stock
at the same time. Each balance row belongs to one status; selecting a status is mandatory for issues and transfers.
Statuses delivered with the installation:
| Code | Name | Property |
|---|---|---|
| SIFIR | Sıfır (New) | Default — receipts whose status is left empty are posted here. |
| IKINCIEL | İkinci El (Used) | |
| TAMIRLI | Tamir Edilmiş (Repaired) | |
| YENILENMIS | Yenilenmiş (Refurbished) | |
| KARANTINA | Karantina (Quarantine) | Quarantine (locked segment). |
| RED | Reddedildi (Rejected) | Quarantine; rejected goods do not return to available stock and leave through scrap or a return. |
**Yeni Stok Durumu** (New Stock Status) fields: **Ad** (Name) \*, **Kod** (Code) \* (converted to upper case, unique),
**Sıra** (Sequence), **Durum** (Status: Aktif / Pasif (Active / Inactive) — no new movement can be posted to an inactive
status), **Karantina** (Quarantine: Kilitli segment / Kullanılabilir (Locked segment / Available)). Stock in quarantine
is blocked for shipment, consumption and transfer; it can leave only through a quality decision, a stock status change
or scrap. The default status cannot be a quarantine status: "'\{kod\}' karantina durumu — karantina varsayılan
yapılamaz. Durumu belirtilmeyen her giriş sessizce kilitlenirdi." ('\{kod\}' is a quarantine status — a quarantine
status cannot be made the default. Every receipt without a specified status would be silently locked.)
## Movement Reasons {#hareket-nedenleri}
**Yönetim › Özelleştirme › Stok › Hareket Nedenleri** (Administration › Customization › Inventory › Movement
Reasons). The mandatory, reportable reason per line of stock adjustment and scrap documents. Fields: **Ad** (Name) \*,
**Kod** (Code) \*, **Tür** (Type: Stok Artırma Düzeltmesi · Stok Azaltma Düzeltmesi · Hurda (Stock Increase
Adjustment · Stock Decrease Adjustment · Scrap) — cannot be changed later), **Sıra** (Sequence), **Aktif** (Active).
> **No adjustment can be saved without a reason**
If there is no active reason of the selected type, the adjustment and scrap forms cannot be saved:
"Uygun bir hareket nedeni tanımlanana kadar bu belge kaydedilemez." (This document cannot be saved until a suitable
movement reason is defined.) Goods Receipt, Goods Issue and transfers without a reference document have no reason
field.
## Serial and Batch Number Profiles
**Yönetim › Özelleştirme › Malzeme › Seri ve Lot Numarası Profilleri** (Administration › Customization › Material ›
Serial and Batch Number Profiles). The profile assigned to an item determines whether serial and batch numbers are
assigned **Elle** (Manually; the supplier's number is scanned or typed) or **Otomatik** (Automatically; from a
template). Fields: **Ad** (Name) \*, **Kod** (Code) \*, for the serial number and the batch number **Numaralama**
(Numbering) and **Şablon** (Template; mandatory for automatic; suggested serial number `MYS-{YY}-{######}`, batch
`LOT-{YY}{MM}-{#####}`), **Garanti (ay)** (Warranty (months)), **Durum** (Status). Tokens in the template are
`{YYYY} {YY} {MM} {ITEM}` and exactly one sequence token `{#####}` (3–10 #); spaces and `|` are not allowed. An
inactive profile cannot be assigned to a new item.
## Material Statuses
A per-process block or warning on an item (e.g. "Kesilecek" (To be discontinued)). For each process — **Satış**
(Sales), **Satın Alma** (Purchasing), **Üretim** (Production), **Stok Hareketi** (Stock Movement) — Serbest / Uyarı /
Engel (Allowed / Warning / Block) is selected; at least one process must have a warning or a block. It is assigned on
the item with **Malzeme durumu** (Material status) and a start date.
## Product Types
The organization's product types: **Taban tür** (Base type: Hammadde, Yarı Mamul, Mamul, Ticari Mal, Sarf Malzemesi,
Ambalaj, Yedek Parça, Hizmet (Raw Material, Semi-Finished Product, Finished Product, Trading Goods, Consumables,
Packaging, Spare Part, Service) — cannot be changed later), **Kod öneki** (Code prefix; e.g. HAM, YM, TIC), **İzinli
görünümler** (Permitted views: Satış / Satın alma / Üretim (Sales / Purchasing / Production)), the defaults for a new
item (stock item, quality inspection at receipt, tracking, planning strategy, procurement type) and **Kod serisi** (Code
series).
## Units of Measure
Fields: Ad (Name), Kod (Code), Sembol (Symbol), UN/ECE Kodu (UN/ECE Code), **Birim Türü** (Unit Type: Adet, Ağırlık,
Hacim, Uzunluk, Alan, Süre, Diğer (Count, Weight, Volume, Length, Area, Time, Other)), **Ondalık Basamak** (Decimal
Places; 0–6, e.g. 0 for ADET, 3 for KG), Aktif (Active). The decimal places and the unit type cannot be changed later.
Product-specific conversions are defined on the **Birimler** (Units) tab of the product master record.
## Related
- [Product master data](https://erpdocs.corexlogic.com/en/stok/ekranlar/urun-ana-verileri)
- [Post a stock adjustment](https://erpdocs.corexlogic.com/en/stok/islemler/stok-duzeltmesi-yapma)
---
# Post a goods receipt
> Goods receipt without a reference document — post a receipt to the stock ledger with product, warehouse, storage location, stock status, quantity and lot (expiry date) or serial number.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/mal-girisi-yapma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Mal Girişi (Inventory › Goods Movements › Goods Receipt)
- **Screen route:** `/erp/inventory/movements/new/receipt`
- **Required permission:** `erp-inventory-movements.create`
- **Prerequisites:**
- The product card is active, is a stock item, and is not a configurable parent card.
- The product is not in the scope of an open physical inventory count in that warehouse.
A goods receipt without a reference document; goods from a supplier are normally received with a **goods receipt**
linked to the purchase order. Use this screen for receipts without an order (samples, found goods, returned
consumption).
## Steps
1. Open the **Stok Yönetimi › Mal Hareketleri › Mal Girişi** (Inventory › Goods Movements › Goods Receipt) screen.
2. Type the code in the **Ürün** (Product) field and press `Enter`, select it from the list and press `Enter` again. To search in the picker, press `F4`.
3. Select the **Depo** (Warehouse) and, if needed, the **Lokasyon** (Storage Location).
4. Select the **Stok Durumu** (Stock Status) or leave it blank: if blank, the receipt is posted to the default status (SIFIR), or to KARANTINA status for a card subject to quality control.
5. Enter the **Miktar** (Quantity); the unit is selected from the card's units.
6. For a lot-managed card, enter the **Lot Numarası** (Lot Number), **Üretim Tarihi** (Production Date), **Son Kullanma Tarihi** (Expiry Date) and **Tedarikçi Lot No** (Supplier Lot No). For a serial-managed card, scan the **Seri Numaraları** (Serial Numbers) and press **Ekle** (Add).

1. Product — tracking and unit come from the item
2. Warehouse — required
3. Stock status — default if empty; quarantine for inspected items
4. Quantity
5. Lot number — created by this receipt if new
6. Expiry date
7. Post Goods Receipt
7. If needed, enter an **Açıklama** (Description) and click **Mal Girişi Kaydet** (Save Goods Receipt).
**Result:** A receipt movement of type **Mal Kabul** (Goods Receipt) is posted to the stock ledger; stock increases in the selected warehouse, storage location and status. If the lot is received for the first time, a lot record is created. For a quality-controlled card, the receipt is in KARANTINA status and an inspection lot is opened; the goods become available with a [quality decision](https://erpdocs.corexlogic.com/en/stok/islemler/kalite-karari-verme).
## What you need to know
- Demo example: **HAM-0070 SLES %70**, 400 KG, KIMYA / IBC-ALANI, lot **SLES-2611-004** (expiry date 20.04.2028) was
received with the status left blank; because the card is quality-controlled, the receipt was posted to
**KARANTINA** status and inspection lot **KP-2026-000001** was opened.
- Lot information (production date, expiry date, supplier lot) is saved only when the lot is created for the first
time; if an existing lot number is entered, the existing information is kept.
- The form has no unit cost; a quantity received without a cost appears as an assumption in the stock value.
- If a status other than quarantine is selected for a quality-controlled card: "'\{kod\}' kalite kontrolü şartlı —
giriş yalnız karantina durumuna yazılabilir. Seçilen durum: '\{durum\}'. Mal muayeneden sonra kalite kararıyla
kullanılabilir stoğa alınır." ('\{kod\}' is subject to quality control — the receipt can only be posted to
quarantine status. Selected status: '\{durum\}'. After inspection, the goods are moved to available stock with a
quality decision.)
- An incorrect receipt is not deleted; it is corrected with an opposite [goods issue](https://erpdocs.corexlogic.com/en/stok/islemler/mal-cikisi-yapma)
or a [stock adjustment](https://erpdocs.corexlogic.com/en/stok/islemler/stok-duzeltmesi-yapma).
## Related
- [Stock movements screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-hareketleri)
- [Lot and serial number tracing process](https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme)
---
# Stock movements
> The stock ledger, movement types, and the forms for goods receipt, goods issue, stock transfer and stock status change without a reference document.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-hareketleri
**Stok Hareketleri** (Stock Movements) is the stock ledger: every receipt, issue, transfer and status change is added
as a row, and a posted record is never changed. The four forms in the same section post movements without a reference
document (manually); document-based movements such as purchasing goods receipts, sales deliveries and production come
from their own modules and appear in the ledger with their sources.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Stok Hareketleri · Mal Girişi · Mal Çıkışı · Stok Transferi · Stok Durumu Değişimi (Inventory Management › Goods Movements › Stock Movements · Goods Receipt · Goods Issue · Stock Transfer · Stock Status Change)
- **Screen route:** `/erp/inventory/movements`
- **Required permission:** `erp-inventory-movements.view (defteri görme) · .create (Mal Girişi, Mal Çıkışı, Stok Durumu Değişimi) · .transfer (Stok Transferi)`, `erp-inventory-lots.view (Lot süzgeci) · erp-inventory-costs.view (birim maliyet)`
## Stock ledger

1. New Movement — receipt, issue, transfer, status change
2. Source document filter
3. Movement type filter
4. Source — the document behind the movement
5. Movement detail — read only
Columns: **Tarih** (Date; business date, with the creation time below it), **Hareket** (Movement; type + Giriş/Çıkış
(Receipt/Issue) badge; for pairs, "Transfer çifti" (Transfer pair) or "Stok durumu değişimi çifti" (Stock status change
pair)), **Ürün** (Product), **Miktar** (Quantity; with the base quantity below it if there is a unit conversion),
**Konum** (Location; warehouse and storage location), **Stok** (Stock; status and batch/serial number), **Kaynak**
(Source; document and its number; a link if you have permission), **İşlem** (Action; eye icon: movement details).
Filters: **Ara** (Search; product, batch, description), **Ürün** (Product), **Depo** (Warehouse), **Stok Durumu** (Stock
Status), **Lot** (Batch), **Kaynak Belge** (Source Document), **Hareket Türü** (Movement Type), **Yön** (Direction),
**Tarih Aralığı** (Date Range). The **Yeni Hareket** (New Movement) menu: Mal Giriş · Mal Çıkış · Transfer · Stok Durumu
Değişimi (Goods Receipt · Goods Issue · Transfer · Stock Status Change).
The movement details are read-only: "Stok defteri kaydı salt okunurdur. Düzeltme, ters yönlü yeni bir hareketle
yapılır." (A stock ledger record is read-only. Corrections are made with a new movement in the opposite direction.) A
movement without a reference document has no cancel or reversal button — correct an incorrect entry with a new
movement in the opposite direction (a Goods Issue for a receipt, a Goods Receipt for an issue) or with a
[stock adjustment](https://erpdocs.corexlogic.com/en/stok/islemler/stok-duzeltmesi-yapma).
### Movement types
| Type | Direction | Where it originates |
|---|---|---|
| Açılış Bakiyesi (Opening Balance) | Receipt | Açılış Bakiyeleri (Opening Balances) |
| Mal Kabul (Goods Receipt; "Mal Giriş" if without a reference document) | Receipt | Mal Girişi (Goods Receipt) form, purchasing goods receipt |
| Sarf / Çıkış (Consumption / Issue) | Issue | Mal Çıkışı (Goods Issue) form, sales delivery, reservation withdrawal |
| Transfer | Issue + Receipt | Stok Transferi (Stock Transfer), transfer order shipment/arrival, warehouse task |
| Stok Fazlası Düzeltmesi / Stok Eksiği Düzeltmesi (Stock Surplus Adjustment / Stock Shortage Adjustment) | Receipt / Issue | Stok Düzeltmesi (Stock Adjustment), count difference |
| Üretim Sarfı / Üretim Girişi (Production Consumption / Production Receipt) | Issue / Receipt | Production order |
| Çıkış Geri Alma / Giriş Geri Alma (Issue Reversal / Receipt Reversal) | Receipt / Issue | Reversals of adjustments, scrap and deliveries |
| Hurda (Scrap) | Issue | Hurda Fişi (Scrap Document) |
| Stok Durumu Değişimi (Stock Status Change) | Issue + Receipt | Stok Durumu Değişimi (Stock Status Change) form, quality decision |
| Müşteri İadesi (Customer Return) | Receipt | Sales return |
| Yeniden Değerleme (Revaluation) | No quantity | Valuation documents |
## Common form layout
The four forms use the same shell: the section heading on the left, the fields on the right; at the bottom **Temizle**
(Clear) and the save button ("Kaydediliyor…" (Saving…) while saving). When a product is selected, the tracking type
badge and "Temel birim: X" (Base unit: X) appear; for a batch- or serial-managed item, the **İzlenebilirlik**
(Traceability) section opens. The system asks for confirmation when you leave with unsaved changes. The success screen
shows the movement number, a summary and the **Hareket Geçmişini Aç** (Open Movement History) link.
**Hareket Tarihi** (Movement Date) defaults to now; the earliest value is the day allowed by the posting period.
Back-dated posting is available only to users with the 'Geçmiş Tarihli Kayıt' (Back-Dated Posting) permission.
## Goods Receipt

1. Product — tracking and unit come from the item
2. Warehouse — required
3. Stock status — default if empty; quarantine for inspected items
4. Quantity
5. Lot number — created by this receipt if new
6. Expiry date
7. Post Goods Receipt
| Field | Mandatory | Note |
|---|---|---|
| **Ürün** (Product) | Yes | For an item that requires quality inspection, the note "Bu ürün kalite kontrol gerektiriyor." (This product requires quality inspection.) is shown. |
| **Depo** (Warehouse) | Yes | |
| **Lokasyon** (Storage Location) | If the warehouse requires it | The default is the putaway proposal or the default storage location in the item's warehouse data. A bin without sufficient capacity: "Bu göz yetmiyor: … — kayıt reddedilir." (This bin is not sufficient: … — the posting is rejected.) |
| **Stok Durumu** (Stock Status) | No | If empty, the default status (SIFIR). **For an item that requires quality inspection at receipt, the receipt is posted to the KARANTINA (Quarantine) status** and an inspection lot is opened; if a non-quarantine status is selected, the posting is rejected. |
| **Miktar** (Quantity), **Birim** (Unit) | Yes | The unit comes from the item's units; for a serial-managed item, quantity = the number of serial numbers added. |
| **Lot Numarası** (Batch Number) | For a batch-managed item | Converted to upper case; if it does not exist for the item, it is created with this receipt. **Üretim Tarihi** (Production Date), **Son Kullanma Tarihi** (Expiry Date) and **Tedarikçi Lot No** (Supplier Batch No.) are saved only when the batch is created for the first time. |
| **Seri Numaraları** (Serial Numbers) | For a serial-managed item | Scan them, or type them and click **Ekle** (Add); serial numbers are unique within the item. |
| **Açıklama** (Description) | No | At most 512 characters. |
The save button is **Mal Girişi Kaydet** (Save Goods Receipt). The form has no unit cost field; a receipt with a cost
comes from a purchasing goods receipt or an opening balance.
## Goods Issue

1. Stock status — required for issues
2. Status breakdown — quarantined stock cannot be issued
3. FEFO suggestion — earliest expiry lot
4. Quantity
5. Post Goods Issue
- **Stok Durumu (zorunlu)** (Stock Status (mandatory)) — the segment to be reduced is not assumed.
- The **Mevcut Stok** (Current Stock) panel shows the On Hand / Reserved / Available quantity of the selected location
and the **Durum kırılımı** (Status breakdown). If the available stock is 0, the save button is disabled.
- For a batch-managed item, batches are listed in **FEFO** order (nearest expiry date first); the first suitable batch
carries the **FEFO önerisi** (FEFO proposal) badge, and the choice is yours. A **Bloke** (Blocked) batch cannot be
selected. An expired batch is not blocked; a warning appears.
- For a serial-managed item, serial numbers in stock are selected; the quantity is the number of serial numbers
selected.
- The save button is **Mal Çıkışı Kaydet** (Save Goods Issue). There is no cost center field; write the purpose in
**Açıklama** (Description).
## Stock Transfer {#stok-transferi}

1. Source warehouse
2. Stock status — same on both legs
3. Target warehouse
4. Target location
5. Complete Transfer — issue and receipt in one step
**Kaynak Depo** (Source Warehouse), **Kaynak Lokasyon** (Source Storage Location), **Stok Durumu (zorunlu)** (Stock
Status (mandatory)), **Hedef Depo** (Target Warehouse), **Hedef Lokasyon** (Target Storage Location), **Miktar**
(Quantity). It is single-step: an issue and a receipt of type Transfer are posted in the same transaction (common
transfer group). A transfer to a different storage location within the same warehouse is allowed; the source and
target locations cannot be the same. The status does not change — both legs are posted in the selected status. If a
batch is selected, the same batch is used at the target. The save button is **Transferi Tamamla** (Complete Transfer).
If the time the goods spend in transit is to be tracked, use a [transfer order](https://erpdocs.corexlogic.com/en/stok/ekranlar/transfer-siparisleri).
## Stock Status Change

1. Warehouse — location does not change
2. Source stock status
3. Target stock status — must differ
4. Quantity — in base unit
5. Change Stock Status
**Depo** (Warehouse), **Lokasyon** (Storage Location), **Kaynak Stok Durumu (zorunlu)** (Source Stock Status
(mandatory)), **Hedef Stok Durumu (zorunlu)** (Target Stock Status (mandatory)), **Miktar** (Quantity; in the base
unit), **İş Tarihi** (Business Date), **Açıklama** (Description). The physical location does not change; a double entry
is created in the ledger as an issue from the source status and a receipt into the target status. The source and target
cannot be the same; an inactive status cannot be selected. The save button is **Stok Durumunu Değiştir** (Change Stock
Status).
> **Goods in quarantine**
Releasing a quality-inspected receipt from quarantine is done with the quality decision on the **Kalite Kontrol**
(Quality Inspection) screen (it is recorded with a second signature and a reason). The Stock Status Change form also
accepts an issue from the quarantine status; do not use it instead of the quality decision.
## Rejection messages {#ret-iletileri}
| Situation | Message |
|---|---|
| No status on an issue/transfer | "Çıkış ve transfer hareketlerinde stok durumu zorunludur — hangi segmentten düşüleceği varsayılamaz." (The stock status is mandatory for issue and transfer movements — the segment to be reduced cannot be assumed.) |
| Insufficient stock | "'\{kod\}' kartının '\{durum\}' durumunda yeterli stok yok. Mevcut: \{x\}, istenen: \{y\}." (There is not enough stock of item '\{kod\}' in status '\{durum\}'. On hand: \{x\}, requested: \{y\}.) |
| Stock allocated to another document | "'\{kod\}' kartının '\{durum\}' durumundaki stoğun bir bölümü başka bir belgeye tahsis edilmiş. Kullanılabilir: \{x\}, istenen: \{y\}. Tahsisi serbest bırakmadan sevk edilemez." (Part of the stock of item '\{kod\}' in status '\{durum\}' is allocated to another document. Available: \{x\}, requested: \{y\}. It cannot be shipped without releasing the allocation.) |
| Issue/transfer from quarantine | "'\{kod\}' kartının '\{durum\}' durumundaki stoğu karantinada — sevk edilemez, sarf edilemez, transfer edilemez. Önce kalite kararı verilmeli (serbest bırak ya da reddet)." (The stock of item '\{kod\}' in status '\{durum\}' is in quarantine — it cannot be shipped, consumed or transferred. A quality decision must be made first (release or reject).) |
| Non-quarantine receipt of an item requiring quality inspection | "'\{kod\}' kalite kontrolü şartlı — giriş yalnız karantina durumuna yazılabilir. Seçilen durum: '\{durum\}'. Mal muayeneden sonra kalite kararıyla kullanılabilir stoğa alınır." ('\{kod\}' requires quality inspection — the receipt can be posted only to the quarantine status. Selected status: '\{durum\}'. After inspection, the goods are moved to available stock with a quality decision.) |
| Item in a count | "'\{kod\}' kartı '\{depo\}' deposunda sayımda (\{sayım no\}) — sayım kaydedilene ya da iptal edilene kadar stok hareketi yazılamaz." (Item '\{kod\}' is being counted in warehouse '\{depo\}' (\{sayım no\}) — no stock movement can be posted until the count is posted or cancelled.) |
| Blocked batch | "'\{lot\}' lotu bloke — çıkış yapılamaz." (Batch '\{lot\}' is blocked — it cannot be issued.) |
| Batch missing | "'\{kod\}' lot takipli — lot numarası zorunludur." ('\{kod\}' is batch-managed — the batch number is mandatory.) |
| Serial number already in stock | "'\{seri\}' seri numarası zaten stokta — ikinci kez giriş yapılamaz." (Serial number '\{seri\}' is already in stock — it cannot be received a second time.) |
| Storage location mandatory | "'\{depo\}' deposunda lokasyon seçimi zorunlu — depo içi lokasyon belirtin." (Selecting a storage location is mandatory in warehouse '\{depo\}' — specify a storage location within the warehouse.) |
| Transfer to the same location | "Transferin kaynağı ile hedefi aynı olamaz." (The source and target of the transfer cannot be the same.) |
| Change to the same status | "Durum değişiminin kaynağı ile hedefi aynı olamaz." (The source and target of the status change cannot be the same.) |
| Inactive item / service item | "'\{kod\}' pasif — pasif stok kartı için hareket oluşturulamaz." ('\{kod\}' is inactive — no movement can be created for an inactive stock item.) · "'\{kod\}' hizmet kartı — stok hareketi oluşturulamaz." ('\{kod\}' is a service item — no stock movement can be created.) |
| Configurable header item | "'\{kod\}' yapılandırılabilir kart — stoğa yalnız sipariş satırına tahsisli girer (satır bağlı üretim emrinin çıktısı). Konfigürasyonu bilinmeyen giriş yapılamaz." ('\{kod\}' is a configurable item — it enters stock only allocated to a sales order line (the output of the production order linked to the line). A receipt with an unknown configuration cannot be posted.) |
| No unit conversion | "'\{kod\}' için '\{birim\}' biriminden temel birime dönüşüm tanımlı değil — farklı birimle hareket oluşturulamaz." (No conversion from unit '\{birim\}' to the base unit is defined for '\{kod\}' — no movement can be created with a different unit.) |
| Closed period | "\{gün\} tarihi kapalı dönemde: kayıtlar \{gün\} dahil kapatıldı. Belgeyi açık bir döneme tarihleyin; kapalı aya kayıt gerekiyorsa dönemin yeniden açılması gerekir (Yönetim › Kayıt Dönemleri)." (The date \{gün\} is in a closed period: postings are closed up to and including \{gün\}. Date the document in an open period; if a posting to the closed month is required, the period must be reopened (Yönetim › Kayıt Dönemleri (Administration › Posting Periods)).) |
| Concurrent change | "Stok bakiyesi bu sırada başka bir işlem tarafından değiştirildi. Lütfen tekrar deneyin." (The stock balance was changed by another transaction in the meantime. Please try again.) |
## Related
- [Post a goods receipt](https://erpdocs.corexlogic.com/en/stok/islemler/mal-girisi-yapma) · [Post a goods issue](https://erpdocs.corexlogic.com/en/stok/islemler/mal-cikisi-yapma)
- [Post a stock transfer](https://erpdocs.corexlogic.com/en/stok/islemler/stok-transferi-yapma) · [Change the stock status](https://erpdocs.corexlogic.com/en/stok/islemler/stok-durumu-degistirme)
---
# Post a goods issue
> Goods issue without a reference document — reduce stock by selecting the source warehouse, stock status, and a FEFO lot or serial number.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/mal-cikisi-yapma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Mal Çıkışı (Inventory › Goods Movements › Goods Issue)
- **Screen route:** `/erp/inventory/movements/new/issue`
- **Required permission:** `erp-inventory-movements.create`
- **Prerequisites:**
- Available stock exists in the selected warehouse, storage location and status; the stock is not in quarantine.
- The product is not in the scope of an open physical inventory count in that warehouse.
A goods issue without a reference document (sample, maintenance consumption, expense). Sales deliveries and
production consumption are posted from their own documents; for planned consumption, a
[reservation](https://erpdocs.corexlogic.com/en/stok/islemler/rezervasyon-olusturma) can be created first.
## Steps
1. Open the **Stok Yönetimi › Mal Hareketleri › Mal Çıkışı** (Inventory › Goods Movements › Goods Issue) screen.
2. Select the **Ürün** (Product).
3. Select the **Depo** (Warehouse) and the **Lokasyon** (Storage Location).
4. From the **Stok Durumu (zorunlu)** (Stock Status (mandatory)) list, select the segment the stock will be reduced from. Check the status breakdown in the **Mevcut Stok** (Current Stock) panel.
5. For a lot-managed card, select the lot from the list; the first eligible lot carries the **FEFO önerisi** (FEFO suggestion) badge. For a serial-managed card, select the serial numbers to be issued.

1. Stock status — required for issues
2. Status breakdown — quarantined stock cannot be issued
3. FEFO suggestion — earliest expiry lot
4. Quantity
5. Post Goods Issue
6. Enter the **Miktar** (Quantity) and the purpose of the issue in **Açıklama** (Description), then click **Mal Çıkışı Kaydet** (Save Goods Issue).
**Result:** A **Sarf / Çıkış** (Consumption / Issue) movement is posted to the stock ledger; the stock and lot quantity in the selected status decrease. In **Stok Hareketleri** (Stock Movements), the movement's source appears as 'Manuel Stok İşlemi' (Manual Stock Transaction).
## What you need to know
- Demo example: 20 KG of HAM-0070 was issued from KIMYA / IBC-ALANI, SIFIR, from the FEFO-suggested lot
**SLES-2609-011**. The 450 KG in KARANTINA status in the same warehouse (lots SLES-2611-004 and -005) could not be
selected in the list.
- Lots are sorted with the nearest expiry date first (FEFO); the choice is yours. A **Bloke** (Blocked) lot cannot
be selected; a lot past its expiry date can be selected with a warning.
- There is no negative stock: "'\{kod\}' kartının '\{durum\}' durumunda yeterli stok yok. Mevcut: \{x\}, istenen:
\{y\}." (There is not enough stock of card '\{kod\}' in status '\{durum\}'. Available: \{x\}, requested: \{y\}.)
- Stock in quarantine cannot be issued: "'\{kod\}' kartının '\{durum\}' durumundaki stoğu karantinada — sevk
edilemez, sarf edilemez, transfer edilemez. Önce kalite kararı verilmeli (serbest bırak ya da reddet)." (The stock
of card '\{kod\}' in status '\{durum\}' is in quarantine — it cannot be shipped, consumed or transferred. A quality
decision must be made first (release or reject).)
- If no status is selected: "Çıkış ve transfer hareketlerinde stok durumu zorunludur — hangi segmentten düşüleceği
varsayılamaz." (The stock status is mandatory for issue and transfer movements — the segment to reduce cannot be
assumed.)
- A quantity allocated to another document cannot be used; the allocation must be released from **Stok Tahsisleri**
(Stock Allocations).
## Related
- [Stock movements screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-hareketleri)
- [Lots](https://erpdocs.corexlogic.com/en/stok/ekranlar/lotlar)
---
# Reservations
> Announcing in advance the material to be withdrawn from the warehouse on a given date — statuses, withdrawal, cancellation and closing the remainder.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/rezervasyonlar
A reservation is an **advance notice** of material that will be withdrawn from the warehouse on a given date
(maintenance, consumption, cost center, or a request for movement between warehouses). It **does not lock stock** and
does not create an allocation; an open issue reservation counts as demand in Malzeme İhtiyaçları (Material
Requirements). The goods move when the warehouse manager **withdraws** them against the reservation.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Rezervasyonlar (Inventory Management › Goods Movements › Reservations)
- **Screen route:** `/erp/inventory/material-reservations`
- **Required permission:** `erp-inventory-material-reservations.view (görme) · .create (oluşturma, İptal Et, Kalanı Kapat) · .issue (çekme)`
## List

1. Create Reservation
2. Requirement date — badge when late
3. Purpose — goods issue or transfer
4. Open the reservation
Columns: **Rezervasyon No** (Reservation No.; RZV-yyyy-nnnnnn), **İhtiyaç Tarihi** (Requirement Date; "Gecikti"
(Overdue) if overdue), **Amaç** (Purpose), **Durum** (Status), **Depo** (Warehouse), **Teslim Alan** (Recipient),
**Kalem** (Lines), **Talep Eden** (Requested By), **Kayıt Zamanı** (Created At). Filters: Ara (Search), Durum (Status:
Tümü / Açık olanlar / individual statuses (All / Open ones / …)), Amaç (Purpose), İhtiyaç (Requirement: start / end).
**Amaç** (Purpose): **Mal Çıkışı** (Goods Issue; issue for consumption, maintenance or a cost center) · **Depolar Arası
Transfer** (Transfer Between Warehouses; single-step transfer; at withdrawal, the goods are moved to the target
warehouse, with no stock in transit).
## Statuses and actions
| Status | Meaning | Actions |
|---|---|---|
| **Açık** (Open) | Nothing has been withdrawn yet. | **Çek** (Withdraw) per line (**Transfer Et** (Transfer) for transfers); **İptal Et** (Cancel; reason mandatory). |
| **Kısmen Çekildi** (Partially Withdrawn) | Part of it has been withdrawn. | **Çek** (Withdraw) / **Transfer Et** (Transfer) on a line that is not closed; **Kalanı Kapat** (Close Remainder; reason mandatory). |
| **Tamamlandı** (Completed) | All lines are closed. | — |
| **İptal Edildi** (Cancelled) | Cancelled without withdrawal; the Malzeme İhtiyaçları (Material Requirements) demand is removed. | — |
The line status is **Açık** (Open) or **Kapalı** (Closed). If **Son çekme** (Final withdrawal) is selected in the
withdrawal dialog, the remainder is no longer expected and the line is closed.
## Details

1. Cancel — only if nothing withdrawn
2. Withdrawn and remaining quantity
3. Withdraw — goods issue per line
Fields: Rezervasyon No (Reservation No.), Durum (Status), Amaç (Purpose), İhtiyaç Tarihi (Requirement Date), Çıkış
Deposu (Issuing Warehouse), Hedef Depo (Target Warehouse), Teslim Alan (Recipient), Talep Eden (Requested By), Kayıt
Zamanı (Created At), Kapanış Gerekçesi (Closing Reason), Açıklama (Description). The **Kalemler** (Lines) table: Ürün
(Product), Miktar (Quantity), Çekilen (Withdrawn), Kalan (Remaining), Birim (Unit), Durum (Status). The **Hareketler**
(Movements) table shows the trace of the withdrawals in the stock ledger (Tarih (Date), Ürün (Product), Yön
(Direction), Depo (Warehouse), Lokasyon (Storage Location), Lot (Batch), Miktar (Quantity), Kaydeden (Posted By)).
## Withdrawal dialog
Title "Mal Çıkışı — \{no\} / \{n\}. kalem" (Goods Issue — \{no\} / line \{n\}) or "Transfer — …". Fields: **Çekme
Tarihi** (Withdrawal Date; mandatory), **Lokasyon** (Storage Location; with the "Lokasyonsuz" (No storage location)
option), **Stok Durumu** (Stock Status; mandatory), **Miktar** (Quantity; defaults to the remainder), for transfers
**Hedef Lokasyon** (Target Storage Location), **Son çekme** (Final withdrawal), batch or serial number selection.
Button **Çıkışı Kaydet** (Save Issue) / **Transferi Kaydet** (Save Transfer). Stock effect: a Sarf / Çıkış
(Consumption / Issue) movement for the Mal Çıkışı (Goods Issue) purpose, a Transfer movement for transfers; source
document "Rezervasyon" (Reservation).
## Rejection messages
| Situation | Message |
|---|---|
| No lines | "Rezervasyon için en az bir kalem gereklidir." (At least one line is required for a reservation.) |
| Target warehouse in a transfer | "Transfer rezervasyonunda hedef depo zorunludur." (The target warehouse is mandatory in a transfer reservation.) · "Hedef depo çıkış deposundan farklı olmalı." (The target warehouse must be different from the issuing warehouse.) |
| Configurable header item | "\{i\}. kalem: '\{kod\}' yapılandırılabilir üst kart — somut kart seçin." (Line \{i\}: '\{kod\}' is a configurable header item — select a concrete item.) |
| Withdrawal exceeding the remainder | "\{n\}. kalemde çekilecek miktar kalanı (\{x\} \{birim\}) aşıyor." (The quantity to withdraw on line \{n\} exceeds the remainder (\{x\} \{birim\}).) |
| Reservation not open | "\{no\} açık değil — çekme yapılamaz." (\{no\} is not open — no withdrawal can be made.) |
| The creator cannot withdraw | "Rezervasyonu açan kişi ondan mal çıkışı yapamaz — çekmeyi başka bir depo sorumlusu yapmalı." (The person who created the reservation cannot post a goods issue against it — another warehouse manager must perform the withdrawal.) (for a user without the permission for movements without a reference document) |
| Cancelling a reservation with withdrawals | "Çekme yapılmış rezervasyon iptal edilmez — kalanı gerekçeyle kapatın." (A reservation with withdrawals cannot be cancelled — close the remainder with a reason.) |
| Reason | "Gerekçe zorunludur." (A reason is mandatory.) |
All stock movement rules (insufficient stock, quarantine, count freeze) apply to withdrawals:
[Stock movements › Rejection messages](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-hareketleri#ret-iletileri).
## Related
- [Create a reservation](https://erpdocs.corexlogic.com/en/stok/islemler/rezervasyon-olusturma)
- [Stock Allocations](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-bakiyesi#stok-tahsisleri) — stock that is actually allocated to a document
---
# Post a stock transfer
> One-step transfer between warehouses or storage locations — the issue from the source and the receipt into the target in a single transaction.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/stok-transferi-yapma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Stok Transferi (Inventory › Goods Movements › Stock Transfer)
- **Screen route:** `/erp/inventory/movements/new/transfer`
- **Required permission:** `erp-inventory-movements.transfer`
- **Prerequisites:**
- Available stock exists at the source location in the selected status; the stock is not in quarantine.
One-step transfer: the goods leave the source and enter the target at the same time; no stock in transit is created.
If time passes between shipping and arrival and the goods in transit need to be tracked, use a
[transfer order](https://erpdocs.corexlogic.com/en/stok/islemler/transfer-siparisi-olusturma).
## Steps
1. Open the **Stok Yönetimi › Mal Hareketleri › Stok Transferi** (Inventory › Goods Movements › Stock Transfer) screen and select the **Ürün** (Product).
2. Select the **Kaynak Depo** (Source Warehouse), if needed the **Kaynak Lokasyon** (Source Storage Location), and the **Stok Durumu (zorunlu)** (Stock Status (mandatory)). For a lot- or serial-managed card, select the lot/serial numbers to be issued.
3. Select the **Hedef Depo** (Target Warehouse) and the **Hedef Lokasyon** (Target Storage Location). A different storage location in the same warehouse can also be selected.
4. Enter the **Miktar** (Quantity) and the **Açıklama** (Description).

1. Source warehouse
2. Stock status — same on both legs
3. Target warehouse
4. Target location
5. Complete Transfer — issue and receipt in one step
5. Click **Transferi Tamamla** (Complete Transfer).
**Result:** Two **Transfer** lines with a common transfer group are posted to the ledger: an issue from the source and a receipt into the target. The stock status and lot do not change.
## What you need to know
- Demo example: TIC-0004 Reflektörlü Yelek (Reflective Vest), 10 ADET, MERKEZ → MAMUL / SEVK.
- A transfer changes the location, not the status; to change the status, use
[Stok Durumu Değişimi (Stock Status Change)](https://erpdocs.corexlogic.com/en/stok/islemler/stok-durumu-degistirme).
- The source and target location cannot be the same: "Transferin kaynağı ile hedefi aynı olamaz." (The source and
target of the transfer cannot be the same.)
- If a storage location is mandatory in the target warehouse, a target storage location must be selected; a receipt
into a bin without enough capacity is rejected.
- Transfers of a configurable card and of allocated stock are not made from this form: "Tahsisli hareket transfer
veya durum değişimi olamaz — önce tahsisi serbest bırakın." (An allocated movement cannot be a transfer or status
change — release the allocation first.)
## Related
- [Stock movements › Stock Transfer](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-hareketleri#stok-transferi)
---
# Transfer orders
> Two-step transfer between warehouses — at shipment the goods move to stock in transit, at arrival they are received into the target warehouse.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/transfer-siparisleri
A transfer order is a **two-step** transfer between warehouses or plants: the **shipment** issues the goods from the
source warehouse and puts them into the target's **stock in transit**, and the **arrival** receives the goods in transit
into the target warehouse. The order itself does not post stock. For a single-step transfer, see
[Stock Transfer](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-hareketleri#stok-transferi).
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Transfer Siparişleri (Inventory Management › Goods Movements › Transfer Orders)
- **Screen route:** `/erp/inventory/transfer-orders`
- **Required permission:** `erp-inventory-transfer-orders.view (görme) · .create (oluşturma, İptal Et, Kalanı Kapat)`, `erp-inventory-movements.transfer (Sevk Et, Varışı Kaydet)`
## List
Columns: **Sipariş No** (Order No.; DTS-yyyy-nnnnnn), **Tarih** (Date), **Kaynak → Hedef** (Source → Target; "·
tesisler arası" (· between plants) if it is between plants), **İstenen Varış** (Requested Arrival), **Durum** (Status;
with a "yolda" (in transit) note if goods are in transit), **Kalem** (Lines). The default filter is **Açık olanlar**
(Open ones). **Transfer Siparişi Oluştur** (Create Transfer Order) opens a new order.
## Creation
**Kaynak Depo** (Source Warehouse) and **Hedef Depo** (Target Warehouse) (mandatory, cannot be the same), **Sipariş
Tarihi** (Order Date; mandatory, defaults to today), **İstenen Varış** (Requested Arrival), **Kalemler** (Lines;
**Kalem Ekle** (Add Line): concrete items that carry stock, quantity in the base unit), **Not** (Note). Button
**Transfer Siparişini Kaydet** (Save Transfer Order). Step by step:
[Create a transfer order](https://erpdocs.corexlogic.com/en/stok/islemler/transfer-siparisi-olusturma).
## Statuses and actions

1. Status: In shipment
2. Ship — from source into transit
3. Post Arrival — from transit to target
4. Shipped · In transit · Arrived
| Status | Meaning | Buttons shown |
|---|---|---|
| **Açık** (Open) | No shipment yet. | **Sevk Et** (Ship), **İptal Et** (Cancel) |
| **Sevkiyatta** (In Shipment) | At least one shipment exists. | **Sevk Et** (Ship) if a remainder is still to be shipped; **Varışı Kaydet** (Post Arrival) if goods are in transit; **Kalanı Kapat** (Close Remainder) if no goods are in transit |
| **Tamamlandı** (Completed) | All lines have arrived. | — |
| **İptal Edildi** (Cancelled) | Cancelled before shipment. | — |
| **Kapatıldı** (Closed) | Closed without waiting for the unshipped remainder. | — |
The details contain the **Kalemler** (Lines; Sipariş · Sevk · Yolda · Varan (Ordered · Shipped · In Transit ·
Arrived)), **Nakil Sevkleri** (Stock Transport Shipments; NSV-yyyy-nnnnnn, e-Delivery Note (e-İrsaliye)) and **Sevk ve
Varış Geçmişi** (Shipment and Arrival History) tables.
## Shipment and arrival
**Sevk Et** (Ship) opens the "Transfer Sevki" (Transfer Shipment) screen: **Sevk Tarihi** (Shipment Date) and the
**Kaynak Deponun Serbest Stoğu** (Unrestricted Stock of the Source Warehouse) table (Ürün (Product), Göz · Durum (Bin ·
Status), Serbest (Unrestricted), Miktar (Quantity)). The quantity is prefilled with the remainder; enter 0 on a row
that is not to be shipped. A row in quarantine cannot be shipped ("Önce kalite kararı" (Quality decision first)); on a
serial-managed row, use **Seri Seç** (Select Serial Numbers). Button **Transfer Sevki Kaydet** (Save Transfer
Shipment).
**Varışı Kaydet** (Post Arrival) opens the "Transfer Varışı" (Transfer Arrival) screen: **Varış Tarihi** (Arrival
Date), the **Yoldaki Stok** (Stock in Transit) table and the **Hedef Göz** (Target Bin) of each row. Button **Transfer
Varışı Kaydet** (Save Transfer Arrival); the goods that arrive become unrestricted stock.
Stock effect: at shipment, a **Transfer** movement from the source warehouse to stock in transit; at arrival, a
**Transfer** movement from stock in transit to the target warehouse; source document "Transfer Siparişi" (Transfer
Order).
## Rejection messages
| Situation | Message |
|---|---|
| Same warehouse | "Kaynak ve hedef depo aynı olamaz." (The source and target warehouse cannot be the same.) |
| Configurable item | "'\{kod\}' yapılandırılabilir kart — transfer edilemez." ('\{kod\}' is a configurable item — it cannot be transferred.) |
| Shipment remainder exceeded | "'\{kod\}' için sevk edilecek kalan aşılıyor — kalan \{x\}, istenen \{y\}." (The remainder to be shipped for '\{kod\}' is exceeded — remaining \{x\}, requested \{y\}.) |
| Quantity in transit exceeded | "'\{kod\}' için yoldaki miktar aşılıyor — yolda \{x\}, istenen \{y\}." (The quantity in transit for '\{kod\}' is exceeded — in transit \{x\}, requested \{y\}.) |
| Date | "Hareket tarihi sipariş tarihinden önce olamaz." (The movement date cannot be earlier than the order date.) |
| Closed order | "'\{no\}' transfer siparişi \{tamamlandı \| iptal edildi \| kapatıldı\} — sevk ya da varış yazılamaz." (Transfer order '\{no\}' is \{completed \| cancelled \| closed\} — no shipment or arrival can be posted.) |
| Cancelling a shipped order | "Yalnız hiç sevk edilmemiş transfer siparişi iptal edilir — sevk edilmişse kalanı kapatın." (Only a transfer order that has never been shipped can be cancelled — if it has been shipped, close the remainder.) |
| Closing while goods are in transit | "Yolda mal var — önce varışı kaydedin, sonra kalanı kapatın." (Goods are in transit — first post the arrival, then close the remainder.) |
| Reason | "İptal gerekçesi zorunludur." (A cancellation reason is mandatory.) · "Kapatma gerekçesi zorunludur." (A closing reason is mandatory.) |
## Related
- [Create a transfer order](https://erpdocs.corexlogic.com/en/stok/islemler/transfer-siparisi-olusturma)
- [Post a stock transfer](https://erpdocs.corexlogic.com/en/stok/islemler/stok-transferi-yapma)
---
# Change the stock status
> Change the segment of stock in the same warehouse and storage location — e.g. move new stock to Second-Hand.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/stok-durumu-degistirme
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Stok Durumu Değişimi (Inventory › Goods Movements › Stock Status Change)
- **Screen route:** `/erp/inventory/movements/new/condition-change`
- **Required permission:** `erp-inventory-movements.create`
- **Prerequisites:**
- There is enough stock in the source status; the target status is active.
The stock status is the physical condition of the goods (new, second-hand, repaired…). A status change changes the
segment of the goods without moving them.
## Steps
1. Open the **Stok Yönetimi › Mal Hareketleri › Stok Durumu Değişimi** (Inventory › Goods Movements › Stock Status Change) screen and select the **Ürün** (Product).
2. Select the **Depo** (Warehouse) and, if needed, the **Lokasyon** (Storage Location). The location does not change.
3. Select the **Kaynak Stok Durumu (zorunlu)** (Source Stock Status (mandatory)) and the **Hedef Stok Durumu (zorunlu)** (Target Stock Status (mandatory)); they must be different.
4. Enter the **Miktar** (Quantity) in the base unit and an **Açıklama** (Description).

1. Warehouse — location does not change
2. Source stock status
3. Target stock status — must differ
4. Quantity — in base unit
5. Change Stock Status
5. Click **Stok Durumunu Değiştir** (Change Stock Status).
**Result:** A pair of **Stok Durumu Değişimi** (Stock Status Change) movements is posted to the ledger: an issue from the source status and a receipt into the target status. The warehouse and storage location stay the same; the lot and serial number identity is preserved.
## What you need to know
- Demo example: TIC-0008 LED Projektör, 2 ADET, MERKEZ, SIFIR → IKINCIEL ("Fuar teşhir ürünü" (Trade fair display
item)).
- The source and target cannot be the same: "Durum değişiminin kaynağı ile hedefi aynı olamaz." (The source and
target of a status change cannot be the same.) You cannot change to an inactive status.
- Goods in quarantine are made available with a [quality decision](https://erpdocs.corexlogic.com/en/stok/islemler/kalite-karari-verme); a quality
decision also posts a status change in the background, but it is recorded with a reason and a second signature.
- The quantity is always in the card's base unit.
## Related
- [Inventory settings › Stock Statuses](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-tanimlari)
---
# Stock balance
> Current stock — on-hand, reserved and available quantities broken down by warehouse, storage location, stock status and batch; stock allocated to documents.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-bakiyesi
The current stock situation — broken down by warehouse, storage location, stock status and batch. The balance is
**read-only**; every change happens through a stock movement.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Stok Görünümü › Stok Bakiyesi · Stok Tahsisleri (Inventory Management › Stock Overview › Stock Balance · Stock Allocations)
- **Screen route:** `/erp/inventory/stock`
- **Required permission:** `erp-inventory-stock.view (Stok Bakiyesi) · erp-inventory-costs.view (Ort. Maliyet, Stok Değeri)`, `erp-inventory-reservations.view (Stok Tahsisleri) · erp-inventory-reservations.release (Serbest Bırak)`
## Stock Balance

1. Product filter
2. Stock status filter
3. Only rows with stock
4. Available = On hand − Reserved
5. Cost columns — cost permission only
Each row is a balance row: item × warehouse × storage location × stock status × batch. Columns: **Stok Kodu** (Item
Code), **Stok Adı** (Item Name), **Depo** (Warehouse), **Lokasyon** (Storage Location), **Stok Durumu** (Stock Status),
**Lot** (Batch), **Mevcut** (On Hand), **Rezerve** (Reserved), **Kullanılabilir** (Available), **Birim** (Unit),
**Ort. Maliyet** (Avg. Cost), **Stok Değeri** (Stock Value), **Son Hareket** (Last Movement).
| Quantity | Meaning |
|---|---|
| **Mevcut** (On Hand) | Physical quantity. |
| **Rezerve** (Reserved) | Quantity allocated to a document (such as production output linked to a sales order). |
| **Kullanılabilir** (Available) | On Hand − Reserved; calculated on the server. Stock in the quarantine segment is blocked for shipment, consumption and transfer. |
- Filters: **Ürün** (Product), **Depo** (Warehouse), **Tesis** (Plant; if there are several plants), **Stok Durumu**
(Stock Status), **Yalnız stoklu satırlar** (Only rows with stock).
- **Ort. Maliyet** (Avg. Cost) and **Stok Değeri** (Stock Value) are visible only with the cost permission. A row that
has not been valuated shows "—"; if part of the value is an assumption, it is prefixed with "~" (an assumption from
the moving average for a quantity that was received without a known cost).
- Clicking a row opens the stock details of the item.
## Item stock details

1. Totals — in base unit
2. Balance rows
At the top: **Toplam Mevcut** (Total On Hand), **Toplam Rezerve** (Total Reserved), **Toplam Kullanılabilir** (Total
Available) (in the item's base unit). If the warehouse holds supplier consignment stock, it is shown separately — it is
not included in the company's stock. The **Depo / Lokasyon / Lot Kırılımı** (Warehouse / Storage Location / Batch
Breakdown) table: Depo (Warehouse), Lokasyon (Storage Location), Lot (Batch), Mevcut (On Hand), Rezerve (Reserved),
Kullanılabilir (Available), (with the cost permission) Ort. Maliyet (Avg. Cost) and Değer (Value), Son Hareket (Last
Movement).
## Stock Allocations {#stok-tahsisleri}
**Stok Yönetimi › Stok Görünümü › Stok Tahsisleri** (Inventory Management › Stock Overview › Stock Allocations)
(`/erp/inventory/reservations`). Stock set aside for a specific document: the goods stay in the warehouse but cannot be
shipped to anyone else. An allocation **is not created manually** — it arises from the output of a production order
linked to a sales order.
Columns: **Sahip Belge** (Owning Document; document no. + counterparty), **Stok Kodu** (Item Code), **Depo**
(Warehouse), **Lot** (Batch), **Tutulan** (Held), **Tahsis** (Allocated), **Sevk Edilen** (Shipped), **Bırakılan**
(Released). Filters: Ürün (Product), Depo (Warehouse), **Çözülmüşleri de göster** (Also show released ones).
The **Serbest Bırak** (Release; with permission) dialog: "Tahsis serbest bırakılsın mı?" (Release the allocation?) —
**Serbest Bırakma Gerekçesi** (Release Reason) is mandatory. The goods physically stay where they are; the quantity
returns to the common stock and can be shipped against another document. This step cannot be undone. No movement is
posted to the stock ledger; only Reserved decreases and Available increases.
Rejection messages: "Tahsisi elle serbest bırakmak için gerekçe zorunludur." (A reason is mandatory to release an
allocation manually.) · "Tahsisin kalanı aşılıyor. Kalan: \{x\}, istenen: \{y\}." (The remainder of the allocation is
exceeded. Remaining: \{x\}, requested: \{y\}.) · "Tahsis bu ekranda görüntülendikten sonra değişti. Sayfayı yenileyip
tekrar deneyin." (The allocation changed after it was displayed on this screen. Refresh the page and try again.)
> **Difference between a reservation and an allocation**
A reservation on the **Rezervasyonlar** (Reservations) screen does not lock stock; it only announces the requirement.
An **allocation** actually sets the stock aside for a document and reduces the Available quantity.
## Related
- [Inventory reports](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-raporlari) — stock at a past date, movement listing
- [Batches](https://erpdocs.corexlogic.com/en/stok/ekranlar/lotlar)
---
# Create and withdraw a reservation
> Announce in advance the material to be withdrawn from the warehouse with its requirement date, and post a goods issue or transfer from the reservation.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/rezervasyon-olusturma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Rezervasyonlar › Rezervasyon Oluştur (Inventory › Goods Movements › Reservations › Create Reservation)
- **Screen route:** `/erp/inventory/material-reservations/new`
- **Required permission:** `erp-inventory-material-reservations.create`, `erp-inventory-material-reservations.issue`
- **Prerequisites:**
- The issuing warehouse (and, for a transfer, the target warehouse) is active.
A reservation announces a requirement in advance; it does not set the goods aside. The goods move when the
withdrawal is posted.
## Steps
1. On the **Stok Yönetimi › Mal Hareketleri › Rezervasyonlar** (Inventory › Goods Movements › Reservations) screen, click **Rezervasyon Oluştur** (Create Reservation).

1. Create Reservation
2. Requirement date — badge when late
3. Purpose — goods issue or transfer
4. Open the reservation
2. Select the **Amaç** (Purpose): **Mal Çıkışı** (Goods Issue) (consumption, maintenance, cost center) or **Depolar Arası Transfer** (Transfer Between Warehouses).
3. Enter the **Çıkış Deposu** (Issuing Warehouse) (and, for a transfer, the **Hedef Depo** (Target Warehouse)), the **İhtiyaç Tarihi** (Requirement Date) and the **Teslim Alan** (Recipient).
4. Select the products with **Kalem Ekle** (Add Item) and enter the quantity and unit of each item.
5. Click **Rezervasyonu Kaydet** (Save Reservation).
6. When handing over the goods (warehouse keeper), click the item's **Çek** (Withdraw) button in the details; for the transfer purpose, the button is **Transfer Et** (Transfer).

1. Cancel — only if nothing withdrawn
2. Withdrawn and remaining quantity
3. Withdraw — goods issue per line
7. In the withdrawal window, enter the **Çekme Tarihi** (Withdrawal Date), **Lokasyon** (Storage Location), **Stok Durumu** (Stock Status) and **Miktar** (Quantity); select a lot or serial number. If no remainder is expected, select **Son çekme** (Final withdrawal) and click **Çıkışı Kaydet** (Save Issue).
**Result:** The reservation is saved as **Açık** (Open) and counts as demand in Malzeme İhtiyaçları (Material Requirements); stock is not locked. Each withdrawal posts a **Sarf / Çıkış** (Consumption / Issue) movement (**Transfer** for a transfer) and appears in the **Hareketler** (Movements) table in the details.
## What you need to know
- Demo example: **RZV-2026-000001**, MERKEZ, Mal Çıkışı (Goods Issue), requirement date 05.11.2026, TIC-0002 × 20
and TIC-0003 × 30 ADET — status **Açık** (Open).
- A reservation that has never been withdrawn is closed with **İptal Et** (Cancel), and the remainder of a partially
withdrawn reservation with **Kalanı Kapat** (Close Remainder), both with a reason.
- The person who created the reservation cannot withdraw from their own reservation unless they have the permission
for movements without a reference document: "Rezervasyonu açan kişi ondan mal çıkışı yapamaz — çekmeyi başka bir
depo sorumlusu yapmalı." (The person who created the reservation cannot post a goods issue from it — another
warehouse keeper must make the withdrawal.)
- A withdrawal cannot exceed the remainder: "\{n\}. kalemde çekilecek miktar kalanı (\{x\} \{birim\}) aşıyor." (The
quantity to be withdrawn on item \{n\} exceeds the remainder (\{x\} \{birim\}).)
- A reservation can have at most 200 items; a configurable parent card cannot be selected.
## Related
- [Reservations screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/rezervasyonlar)
---
# Batches and serial number labels
> Batch list and details, batch statuses (Active, Quarantine, Blocked, Expired, Depleted), expiry date, serial number labels.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/lotlar
A batch is created at the **goods receipt** of a batch-managed item (purchasing goods receipt, goods receipt, production
output, opening balance) and is product-based: the same batch can exist in several warehouses and storage locations, and
the quantities in the list are the totals across all warehouses. A batch whose stock is used up stays in the list.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Stok Görünümü › Lotlar · Fiziksel Envanter › Seri Etiketleri (Inventory Management › Stock Overview › Batches · Physical Inventory › Serial Number Labels)
- **Screen route:** `/erp/inventory/lots`
- **Required permission:** `erp-inventory-lots.view (görme) · .edit (bloke etme, özellik düzenleme) · .release (Aktif yapma — blokeyi çözme)`, `erp-inventory-movements.view (İzlenebilirlik) · erp-inventory-stock.view (Seri Etiketleri)`
## Batch list

1. Lot status filter
2. Expiry (latest) — expiring lots
3. Expiry date
4. Open the lot
Columns: **Lot No** (Batch No.; with a summary of characteristics below it), **Stok Kodu** (Item Code), **Stok Adı**
(Item Name), **Durum** (Status), **Üretim Tarihi** (Production Date), **Son Kullanma** (Expiry), **Tedarikçi Lotu**
(Supplier Batch), **Mevcut** (On Hand), **Rezerve** (Reserved), **Kullanılabilir** (Available), **Birim** (Unit).
Filters: **Ara** (Search; batch no., supplier batch, item code or name), **Durum** (Status), **Depo** (Warehouse),
**SKT (en geç)** (Expiry date (latest)).
## Batch statuses
| Status | Meaning | Does it block movements? |
|---|---|---|
| **Aktif** (Active) | Can be used in issues and transfers. | No |
| **Karantina** (Quarantine) | Awaiting quality inspection (for information). | No — the block is applied by the stock status (KARANTINA segment) |
| **Bloke** (Blocked) | Cannot be used in goods issue and transfer transactions. | **Yes** |
| **Süresi Dolmuş** (Expired) | Marked as expired (for information). | No |
| **Tükenmiş** (Depleted) | Marked as depleted (for information). | No |
Only **Aktif** (Active) and **Bloke** (Blocked) can be set manually. A batch status change **does not post a stock
movement** and does not change quantities. An issue from a blocked batch is rejected: "'\{lot\}' lotu bloke — çıkış
yapılamaz." (Batch '\{lot\}' is blocked — it cannot be issued.)
The **expiry date** is independent of the status: an expired batch is not blocked automatically. The screen shows the
warnings "Süresi dolmuş (\{n\} gün önce)" (Expired (\{n\} days ago); in red), "Bugün son gün" (Today is the last day)
and, at 30 days or less, "\{n\} gün kaldı" (\{n\} days left). In goods issues, batches are proposed in FEFO order; if
an expired batch is selected, a warning appears but the movement is not blocked (scrap and returns are posted with this
batch). To stop the use of an expired batch, set the batch to **Bloke** (Blocked).
> **Receipt into quarantine**
When an item requires quality inspection, its new batch is created at receipt with the **Aktif** (Active) batch status
but in the **KARANTINA** (Quarantine) stock status. What releases the goods for use is not the batch status but the
quality decision on the **Kalite Kontrol** (Quality Inspection) screen.
## Batch details

1. Blocked — not usable in issue or transfer
2. Opens the traceability report
3. Change Status — Active / Blocked
4. Stock distribution — warehouses and locations
Buttons: **İzlenebilirlik** (Traceability; opens the batch in the [Batch/Serial Traceability](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-raporlari#lot-seri-izlenebilirlik)
report), **Durumu Değiştir** (Change Status), **Lotlara dön** (Back to Batches). Banner on a blocked batch: "Bu lot
bloke. Mal çıkış ve transfer işlemlerinde kullanılamaz." (This batch is blocked. It cannot be used in goods issue and
transfer transactions.)
- **Parti Bilgileri** (Batch Information): Durum (Status), Üretim tarihi (Production date), Son kullanma tarihi (Expiry
date), Tedarikçi lot numarası (Supplier batch number), Mevcut (On Hand), Rezerve (Reserved), Kullanılabilir
(Available), Kayıt tarihi (Created on).
- **Stok Dağılımı** (Stock Distribution): Depo (Warehouse), Lokasyon (Storage Location), Mevcut (On Hand), Rezerve
(Reserved), Kullanılabilir (Available), Son hareket (Last movement).
- **Özellikler** (Characteristics): the measured values of the batch (**Düzenle** (Edit), **Özellik Ekle** (Add
Characteristic)); visible to the operator in the batch options.
## Batch Status dialog

1. Current status
2. New status — Active or Blocked
3. Change Status — writes no stock movement
**Mevcut durum** (Current status) and **Yeni durum** (New status: Aktif / Bloke (Active / Blocked)). There is no reason
field. When Bloke (Blocked) is selected: "Bu lot bloke edildiğinde mal çıkış ve transfer işlemlerinde kullanılamaz.
Mevcut stok yerinde kalır, yalnız kullanımı durdurulur." (When this batch is blocked, it cannot be used in goods issue
and transfer transactions. The existing stock stays where it is; only its use is stopped.) Removing the block
(**Aktif** (Active)) requires a separate permission; a user without it receives the message "Lotu kullanılabilir yapma
(blokeyi çözme) yetkiniz yok — Stok Kontrol'ün işi." (You do not have permission to make the batch available (remove
the block) — this is Inventory Control's job.) Step by step:
[Change the batch status](https://erpdocs.corexlogic.com/en/stok/islemler/lot-durumu-degistirme).
## Serial Number Labels
**Stok Yönetimi › Fiziksel Envanter › Seri Etiketleri** (Inventory Management › Physical Inventory › Serial Number
Labels) (`/erp/inventory/serial-labels`). Labels for the units of a serial-managed product: the number is generated
from the template of the item's serial number profile; a labeled serial number enters stock when it is scanned during
a physical inventory count or a goods receipt.
- **Seri Üret ve Etiket Bas** (Generate Serial Numbers and Print Labels) section: **Ürün** (Product; serial-managed)
and **Adet** (Quantity; one serial number per unit, at most 500). Serial numbers are created in the **Etiketlendi**
(Labeled) status; there is no stock effect.
- **Seri Numaraları** (Serial Numbers) list: Seri (Serial Number), Ürün (Product), Durum (Status: Etiketlendi · Stokta ·
Çıkış Yapıldı · Bloke · Hurda (Labeled · In Stock · Issued · Blocked · Scrapped)), Yeri (Location), Kayıt (Created).
The default of the **Durum** (Status) filter is "Etiketlendi (stoğa girmedi)" (Labeled (not yet in stock)). Reprint
with **Seçilenlerin Etiketini Bas** (Print Labels for Selected).
## Related
- [Batch and serial number tracking process](https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme)
- [Quality management](https://erpdocs.corexlogic.com/en/stok/ekranlar/kalite-yonetimi)
---
# Create and ship a transfer order
> Two-step transfer between warehouses — order, shipment (stock in transit) and arrival.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/transfer-siparisi-olusturma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Mal Hareketleri › Transfer Siparişleri › Transfer Siparişi Oluştur (Inventory › Goods Movements › Transfer Orders › Create Transfer Order)
- **Screen route:** `/erp/inventory/transfer-orders/new`
- **Required permission:** `erp-inventory-transfer-orders.create`, `erp-inventory-movements.transfer`
- **Prerequisites:**
- The source and target warehouses are different and active.
Two-step transfer: between shipment and arrival, the goods appear in **stock in transit** and cannot be used at
either the source or the target.
## Steps
1. On the **Stok Yönetimi › Mal Hareketleri › Transfer Siparişleri** (Inventory › Goods Movements › Transfer Orders) screen, click **Transfer Siparişi Oluştur** (Create Transfer Order).
2. Enter the **Kaynak Depo** (Source Warehouse), **Hedef Depo** (Target Warehouse), **Sipariş Tarihi** (Order Date) and **İstenen Varış** (Requested Arrival).
3. Select the products with **Kalem Ekle** (Add Item) and enter the quantities (in the base unit), enter a **Not** (Note) if needed, and click **Transfer Siparişini Kaydet** (Save Transfer Order).
4. When the goods leave, click **Sevk Et** (Ship) in the order details. Enter the **Sevk Tarihi** (Shipping Date); correct the quantities to be shipped in the **Kaynak Deponun Serbest Stoğu** (Unrestricted Stock of the Source Warehouse) table (0 for a line that will not be shipped) and click **Transfer Sevki Kaydet** (Save Transfer Shipment).

1. Status: In shipment
2. Ship — from source into transit
3. Post Arrival — from transit to target
4. Shipped · In transit · Arrived
5. When the goods arrive at the target, click **Varışı Kaydet** (Post Arrival); enter the **Varış Tarihi** (Arrival Date) and the **Hedef Göz** (Target Bin) of each line, then click **Transfer Varışı Kaydet** (Save Transfer Arrival).
**Result:** The shipment posts a **Transfer** movement from the source warehouse to stock in transit, and the arrival posts one from stock in transit to the target warehouse. When all items have arrived, the order becomes **Tamamlandı** (Completed); a remainder that will not be shipped is closed with **Kalanı Kapat** (Close Remainder).
## What you need to know
- Demo example: **DTS-2026-000001**, MERKEZ → MAMUL; 24 ADET of TIC-0002 was shipped (transfer shipment
**NSV-2026-000001**), and the arrival has not yet been posted — status **Sevkiyatta** (In Shipment), TIC-0002 in
transit 24.
- An order that has never been shipped is cancelled with **İptal Et** (Cancel); if shipping has started, use
**Kalanı Kapat** (Close Remainder) instead of cancelling (when no goods are in transit).
- Stock in quarantine cannot be shipped ("Önce kalite kararı" (Quality decision first)).
- The shipping date cannot be earlier than the order date: "Hareket tarihi sipariş tarihinden önce olamaz." (The
movement date cannot be earlier than the order date.)
## Related
- [Transfer orders screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/transfer-siparisleri)
---
# Physical inventory counts
> Physical inventory — scope and freeze, count entry, blind count, difference posting with a second signature, recount, cancellation and periodic count.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-sayimlari
Physical counting and posting the difference to the ledger **with a second signature**. The moment a count is opened,
its scope is **frozen**: until the count is posted or cancelled, no delivery, goods receipt, production or adjustment
can be posted for those items. End-to-end example: [Physical inventory process](https://erpdocs.corexlogic.com/en/surecler/stok-sayimi).
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Fiziksel Envanter › Stok Sayımları · Dönemsel Sayım (Inventory Management › Physical Inventory › Physical Inventory Counts · Periodic Count)
- **Screen route:** `/erp/inventory/counts`
- **Required permission:** `erp-inventory-counts.view (görme) · .create (Yeni Sayım, Sayımı İptal Et, dönemsel Sayım Aç)`, `erp-inventory-counts.edit (sayım girişi, Bulunan Ürün, Okutarak Say, Sayımı Tamamla)`, `erp-inventory-counts.approve (Defter ve Fark kolonları, Farkı Kaydet, Yeniden Saymaya Gönder, sayım döngüsü kuralları)`
## List

1. New Count — freezes the scope
2. Scope — category or all products
3. Counted / total lines
4. Count document
Columns: **Sayım No** (Count No.; SAY-yyyy-nnnnnn), **Durum** (Status), **Depo** (Warehouse; warehouse / storage
location), **Kapsam** (Scope; "Bütün ürünler" (All products) if empty), **Sayım Günü** (Count Day), **Sayılan** (Counted;
counted rows / total rows), **Açan** (Opened By), **Kaydedildi** (Posted). Filters: Ara (Search; count no., category,
description), Durum (Status), **Sorumlu olduğum depolar** (Warehouses I manage). Row menu **Sayımı Aç** (Open Count).
## Statuses
| Status | Meaning | Actions |
|---|---|---|
| **Sayımda** (Counting) | The scope is frozen; quantities are being entered. | **Girişleri Kaydet** (Save Entries), **Sayımı Tamamla** (Complete Count; once all rows have been counted), **Bulunan Ürün** (Found Item), **Okutarak Say** (Count by Scanning), **Sayımı İptal Et** (Cancel Count) |
| **Sayım Tamamlandı** (Count Completed) | The count is finished; the difference is awaiting posting. | **Farkı Kaydet** (Post Difference), **Yeniden Saymaya Gönder** (Send for Recount; → Sayımda (Counting)), **Sayımı İptal Et** (Cancel Count) |
| **Kaydedildi** (Posted) | The difference has been posted to the ledger; the freeze is lifted. The document does not change. | — |
| **İptal Edildi** (Cancelled) | Nothing was posted to the ledger; the freeze is lifted. | — |
There is no "Taslak" (Draft) status. No separate recount document is opened; **Yeniden Saymaya Gönder** (Send for
Recount) returns the same document to **Sayımda** (Counting).
## New Physical Inventory Count

1. Warehouse — required
2. Location — all locations if empty
3. Category — includes subcategories
4. ABC class — class stored on the item
5. Summary of the scope to freeze
6. Start Count
| Field | Mandatory | Note |
|---|---|---|
| **Depo** (Warehouse) | Yes | Selected automatically if there is only one warehouse. |
| **Lokasyon** (Storage Location) | No | All storage locations if empty. |
| **Kategori** (Category) | No | Also includes subcategories. All products if empty. |
| **ABC sınıfı** (ABC class) | No | The class written on the item (ABC Analizi › Karta Yaz (ABC Analysis › Write to Item)); an item without a class is not included in a class-based count and is not frozen. |
| **Açıklama** (Description) | No | At most 1024 characters. |
There is no count date field — the count day is the server's current date. A summary of the "Donacak kapsam" (Scope
to be frozen) is shown at the bottom of the dialog. **Sayımı Başlat** (Start Count) opens the document in the
**Sayımda** (Counting) status and brings in the balance rows with stock in the scope as count rows. A second open count
that overlaps the same shelf cannot be opened.
## Count entry

1. Scope frozen — no movements for these items
2. Counted — empty = not counted, 0 = none on shelf
3. Book and Difference — approvers only
4. Found Item — goods not on the list
5. Save Entries
6. Complete Count — when every line is counted
- Banner: "Kapsam donduruldu (\{tarih saat\}): \{DEPO\} / \{LOK\} · \{kapsam\}. …" (Scope frozen (\{date time\}):
\{WAREHOUSE\} / \{LOC\} · \{scope\}. …)
- The **Sayım Satırları · x / y sayıldı** (Count Rows · x / y counted) table: #, Ürün (Product), Lokasyon (Storage
Location), Stok Durumu (Stock Status), Lot (Batch), **Defter** (Book Quantity), **Sayılan** (Counted), **Fark**
(Difference), Sayan (Counted By).
- The quantity is entered in the base unit in the **Sayılan** (Counted) cell; Enter moves down one row.
**Empty = not counted, 0 = not on the shelf.** On a serial-managed row, the serial numbers found are entered in the
**Seri Gir** (Enter Serial Numbers) dialog.
- **Blind count**: the **Defter** (Book Quantity) and **Fark** (Difference) columns are never sent to a user without the
approval permission.
- **Bulunan Ürün** (Found Item): a new row for goods that are not in the ledger but were found on the shelf (Ürün
(Product), Lokasyon (Storage Location), Stok Durumu (Stock Status), Lot (Batch), Seriler (Serial Numbers), Sayılan
(Counted)). A found row can be deleted from the action menu; a row that came from the ledger cannot be deleted.
- **Okutarak Say** (Count by Scanning): select the storage location and stock status, then scan a label or barcode; a
serial number label brings in the serial number, and a product barcode prompts for the quantity (a carton barcode is
counted by carton).
- The **Sayılmayanlar** (Not counted) and **Farklılar** (With differences) toggles filter the rows.
- **Girişleri Kaydet** (Save Entries) saves what has been entered; **Sayımı Tamamla** (Complete Count) first saves any
unsaved entries, and is disabled until all rows have been counted ("\{n\} satır sayılmadı" (\{n\} rows not counted)).
## Difference posting (second signature)

1. Second signature — another approver posts
2. Difference summary
3. Book · Counted · Difference
4. Send Back for Recount
5. Post Difference — writes stock adjustments
In the **Sayım Tamamlandı** (Count Completed) status, the approver sees the difference ("Fazla a · eksik b · farksız c
satır" (Surplus a · shortage b · no difference c rows)) and posts it to the ledger with **Farkı Kaydet** (Post
Difference). **Second signature**: the person who entered quantities in this count or completed the count cannot post
the difference.

1. Increase and decrease lines to post
2. Post Difference
The difference is posted with today's date:
| Row | Movement posted |
|---|---|
| Counted > Book Quantity | **Stok Fazlası Düzeltmesi** (Stock Surplus Adjustment; receipt), by the difference |
| Counted < Book Quantity | **Stok Eksiği Düzeltmesi** (Stock Shortage Adjustment; issue), by the difference |
| No difference | No movement |
| Serial number difference | Missing serial numbers are issued, surplus serial numbers are received |
The source document of the movements is "Stok Sayımı" (Physical Inventory Count), and their description is the count
number; no movement reason is assigned. After posting, the freeze is lifted and the document becomes **Kaydedildi**
(Posted). If a shortage occurs in allocated stock, posting is rejected — release the allocation first.
Demo example: the difference of SAY-2026-000001 was posted by **Demo Onaylayıcı** (Demo Approver), not by Demo
Kullanıcı (Demo User), who entered and completed the count. The top of the document reads "Fark deftere yazıldı. Belge
artık değişmez." (The difference has been posted to the ledger. The document no longer changes.); the **Farkı Kaydeden**
(Difference Posted By) field shows the person who posted it and the date, and the **Defter** (Book Quantity),
**Sayılan** (Counted) and **Fark** (Difference) columns remain on the document.

1. Status — document is final
2. Freeze lifted
3. Second signature — who posted and when
4. Difference — turned into adjustments
In **Stok Hareketleri** (Stock Movements), the filter **Kaynak Belge = Stok Sayımı** (Source Document = Physical
Inventory Count) lists the adjustments; the **Kaynak** (Source) column shows "Stok Sayımı #1", and the movement details
show SAY-2026-000001 in **Açıklama** (Description) and the **Belge satırı** (Document line; the count row).

1. Source document = Stock Count
2. Surplus — receipt
3. Shortage — issue
4. Source — the count document
In the **Sayımı İptal Et** (Cancel Count) dialog, **Gerekçe** (Reason) is mandatory (at most 512 characters); nothing is
posted to the ledger, and the entered counts remain on the document.
## Rejection messages
| Situation | Message |
|---|---|
| Overlapping open count | "Bu kapsamla çakışan açık bir sayım var: \{no\}. Aynı rafı iki sayım birden donduramaz — önce onu kaydedin ya da iptal edin." (There is an open count that overlaps this scope: \{no\}. Two counts cannot freeze the same shelf — first post or cancel that one.) |
| No items in scope | "'\{yol\}' kategorisinde stok ürünü yok — sayılacak bir şey yok." (Category '\{yol\}' has no stock items — there is nothing to count.) |
| Scope without classes | "\{X\} sınıfında ürün yok — önce ABC Analizi'nden sınıfları karta yazın." (There are no items in class \{X\} — first write the classes to the items from ABC Analizi (ABC Analysis).) |
| Inactive warehouse/storage location | "'\{kod\}' deposu pasif — sayım açılamaz." (Warehouse '\{kod\}' is inactive — no count can be opened.) · "'\{kod\}' lokasyonu pasif — sayım açılamaz." (Storage location '\{kod\}' is inactive — no count can be opened.) |
| Movement for a frozen item | "'\{kod\}' kartı '\{depo\}' deposunda sayımda (\{sayım no\}) — sayım kaydedilene ya da iptal edilene kadar stok hareketi yazılamaz." (Item '\{kod\}' is being counted in warehouse '\{depo\}' (\{sayım no\}) — no stock movement can be posted until the count is posted or cancelled.) |
| Row not counted | "\{n\} satır sayılmadı. Sayılmayan satır "yok" demek değildir — rafta yoksa sıfır girin." (\{n\} rows not counted. A row that has not been counted does not mean "none" — if it is not on the shelf, enter zero.) |
| Negative quantity | "Satır \{n\}: sayılan miktar negatif olamaz." (Row \{n\}: the counted quantity cannot be negative.) |
| Serial number count | "Satır \{n\}: sayılan miktar seri adedine eşit olmalı (seri: a, miktar: b)." (Row \{n\}: the counted quantity must equal the number of serial numbers (serial numbers: a, quantity: b).) |
| Duplicate row | "'\{kod\}' için aynı lokasyon, stok durumu ve lotta zaten bir satır var — o satırın sayılan miktarını güncelleyin." (A row already exists for '\{kod\}' with the same storage location, stock status and batch — update the counted quantity of that row.) |
| Item outside the scope | "'\{kod\}' bu sayımın kapsamında değil (\{kapsam\})." ('\{kod\}' is not within the scope of this count (\{kapsam\}).) |
| Deleting a ledger row | "Satır \{n\} defterden geldi — silinemez. Rafta yoksa sıfır sayın." (Row \{n\} came from the ledger — it cannot be deleted. If it is not on the shelf, count zero.) |
| Second signature | "Sayımı tamamlayan kişi farkı kaydedemez — ikinci imza başka bir kullanıcıdan gelmeli." (The person who completed the count cannot post the difference — the second signature must come from another user.) · "Bu sayımda miktar giren kişi farkı kaydedemez — ikinci imza başka bir kullanıcıdan gelmeli." (The person who entered quantities in this count cannot post the difference — the second signature must come from another user.) |
| Ledger changed during the count | "Sayım açıldıktan sonra şu satırların defter miktarı değişti: … . Sayımı iptal edip yeniden açın." (The book quantity of the following rows changed after the count was opened: … . Cancel the count and open it again.) |
| Status error | "\{eylem\}: sayım '\{durum\}' durumunda." (\{action\}: the count is in status '\{durum\}'.) (e.g. "Fark kaydedilemez: sayım 'Sayımda' durumunda." (The difference cannot be posted: the count is in status 'Sayımda' (Counting).)) |
| Cancellation reason | "İptal gerekçesi zorunludur." (A cancellation reason is mandatory.) |
## Periodic Count {#donemsel-sayim}

1. Due — scopes that are due
2. Cycles — interval per warehouse/category/ABC
**Stok Yönetimi › Fiziksel Envanter › Dönemsel Sayım** (Inventory Management › Physical Inventory › Periodic Count). A
count interval is defined per warehouse, category and ABC class; the count for a scope that is due is opened from here
(counts are not opened automatically).
- The **Sayım Döngüleri** (Count Cycles) tab: **Yeni Kural** (New Rule) — **Depo** (Warehouse; mandatory), **Kategori**
(Category; default "Bütün depo" (Entire warehouse)), **ABC sınıfı** (ABC class), **Aralık (gün)** (Interval (days);
mandatory, 1–3650, default 30; calendar days from the last posted count), **Not** (Note), **Aktif** (Active). The scope
of a saved rule does not change.
- The **Sayımı Gelenler** (Due for Count) tab: Kapsam (Scope), Aralık (Interval), Son Sayım (Last Count), Sonraki Vade
(Next Due), Durum (Status: Hiç sayılmadı · Vadesi geçti · Vadesi bugün · N gün sonra · Sayımda (Never counted ·
Overdue · Due today · In N days · Counting)). The **Sayım Aç** (Open Count) button opens the New Physical Inventory
Count dialog with the scope prefilled.
## Related
- [Open a physical inventory count](https://erpdocs.corexlogic.com/en/stok/islemler/stok-sayimi-acma) · [Enter count results](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-girisi-yapma) · [Post the count difference](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-farkini-kaydetme)
---
# Open a physical inventory count
> Select the count scope by warehouse, storage location, category and ABC class and start the count — the scope is frozen.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/stok-sayimi-acma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Fiziksel Envanter › Stok Sayımları › Yeni Sayım (Inventory › Physical Inventory › Physical Inventories › New Count)
- **Screen route:** `/erp/inventory/counts`
- **Required permission:** `erp-inventory-counts.create`
- **Prerequisites:**
- The warehouse and storage location are active; there is no open count overlapping the scope.
- The people concerned have been informed that no movements will be posted for the products in scope during the count.
The count document is the record of the physical inventory count. As soon as it is opened, the scope is frozen, so
the ledger does not change during the count.
## Steps
1. On the **Stok Yönetimi › Fiziksel Envanter › Stok Sayımları** (Inventory › Physical Inventory › Physical Inventories) screen, click **Yeni Sayım** (New Count).
2. Select the **Depo** (Warehouse).
3. To narrow the count, select a **Lokasyon** (Storage Location), **Kategori** (Category) and/or **ABC sınıfı** (ABC class). A field left blank means all storage locations / all products / all classes.
4. Enter an **Açıklama** (Description) and check the **Donacak kapsam** (Scope to be frozen) summary at the bottom.

1. Warehouse — required
2. Location — all locations if empty
3. Category — includes subcategories
4. ABC class — class stored on the item
5. Summary of the scope to freeze
6. Start Count
5. Click **Sayımı Başlat** (Start Count).
**Result:** The count opens in **Sayımda** (Counting) status, and the balance lines with stock in the scope come in as count lines. Until the count is posted or cancelled, no deliveries, goods receipts, production or adjustments can be posted for these products. Next step: [Enter physical inventory counts](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-girisi-yapma).
## What you need to know
- Demo example: **SAY-2026-000001** — HAMMADDE / RAF-B · Sarf Malzemeleri (Consumables), 7 lines.
- The count date is the server's current date; there is no date field.
- A category also covers its subcategories. The ABC class is the class recorded on the card; a product without a
class is not included in a count by class and is not frozen.
- If the scope overlaps: "Bu kapsamla çakışan açık bir sayım var: \{no\}. Aynı rafı iki sayım birden donduramaz —
önce onu kaydedin ya da iptal edin." (There is an open count overlapping this scope: \{no\}. Two counts cannot
freeze the same shelf at once — post or cancel that one first.)
- If there are no products with stock in the scope: "'\{yol\}' kategorisinde stok ürünü yok — sayılacak bir şey
yok." (There are no stock products in category '\{yol\}' — there is nothing to count.)
- For regular counts, define a rule in **Dönemsel Sayım** (Cycle Count); the **Sayım Aç** (Open Count) button of a
scope that is due opens this window pre-filled.
- The count lines are the balances **with stock** at the time of opening; goods found on the shelf but not in the
book are added during entry with **Bulunan Ürün** (Found Product).
## Related
- [Physical inventories screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-sayimlari)
- [Physical inventory process](https://erpdocs.corexlogic.com/en/surecler/stok-sayimi)
---
# Inventory transactions
> Opening balance, stock adjustment and scrap document — document-based stock postings, movement reason, reversal and opening valuation.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-islemleri
Document-based stock postings: the **opening balance** (initial carry-forward into the ledger), the **stock
adjustment** (aligning the recorded quantity with the physical reality) and the **scrap document** (the physical issue
of unusable stock). None of the three has a draft or approval step: the document is **posted to the ledger the moment
it is saved** and cannot be changed or deleted afterwards. For adjustments and scrap, an incorrect posting is corrected
with **Geri al** (Reverse), which creates a separate reversal document; opening balances cannot be reversed.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Stok İşlemleri › Açılış Bakiyeleri · Stok Düzeltmeleri · Hurda İşlemleri (Inventory Management › Inventory Transactions › Opening Balances · Stock Adjustments · Scrap Transactions)
- **Screen route:** `/erp/inventory/adjustments`
- **Required permission:** `erp-inventory-opening-balances.view / .create / .import · erp-inventory-costs.view (Birim Maliyet)`, `erp-inventory-adjustments.view / .create · erp-inventory-adjustment-reversals.view / .create (Geri al)`, `erp-inventory-scrap.view / .create · erp-inventory-scrap-reversals.view / .create (Geri al)`
## Opening Balances

1. Import — via the data-exchange workbook
2. Opening document
3. Line count
The initial carry-forward of existing physical stock into the ledger — it is not a goods receipt. List columns:
**Açılış No** (Opening No.; AB-yyyy-nnnnnn), **Açılış Tarihi** (Opening Date), **Referans** (Reference), **Satır**
(Lines), **Kaydeden** (Posted By), **Kayıt Zamanı** (Created At). **İçe Aktar** (Import) opens the opening stock
workbook of Veri Aktarımı (Data Import).
The **Yeni Açılış Bakiyesi** (New Opening Balance) form: **Açılış Tarihi** (Opening Date) \* (defaults to today),
**Referans** (Reference; count record, old document no.), **Açıklama** (Description); lines with **Kalem Ekle** (Add
Line): **Ürün** (Product) \*, **Depo** (Warehouse) \*, **Lokasyon** (Storage Location), **Stok Durumu** (Stock Status)
\* (does not fall back to the default), **Miktar** (Quantity) \*, **Birim** (Unit) \*, **Birim Maliyet** (Unit Cost;
only with the cost permission; amount + currency), for a batch-managed item **Lot No** (Batch No.) \*, for a
serial-managed item **Seri Numaraları** (Serial Numbers; count equal to the quantity). Button **Açılış bakiyesini
kaydet** (Save opening balance). If no unit cost is entered, the stock remains without value until the first receipt
with a cost — its value is posted later with **Açılış Değerlemesi** (Opening Valuation; see below). Movement type
**Açılış Bakiyesi** (Opening Balance; receipt).
Rejection messages: "Açılış bakiyesinde stok durumu zorunludur — devralınan stok varsayılan duruma atanamaz." (The stock
status is mandatory in an opening balance — carried-forward stock cannot be assigned to the default status.) · "Birim
maliyet yalnız stok maliyetini görme yetkisiyle girilebilir." (A unit cost can be entered only with the permission to
view inventory cost.) · "\{n\}. satır: birim maliyet ve para birimi birlikte girilir." (Line \{n\}: the unit cost and
the currency are entered together.) · "'\{kod\}' kartı pasif — açılış yazılamaz." (Item '\{kod\}' is inactive — no
opening balance can be posted.)
## Stock Adjustments

1. Adjustment type — increase or decrease
2. Business date
3. Add line
4. Save Adjustment — document is immutable
List columns: **Düzeltme No** (Adjustment No.), **Tür** (Type: Stok Artırma Düzeltmesi · Stok Azaltma Düzeltmesi (Stock
Increase Adjustment · Stock Decrease Adjustment)), **İş Tarihi** (Business Date), **Referans** (Reference), **Satır**
(Lines), **Kaydeden** (Posted By), **Kayıt Zamanı** (Created At). The **Yeni Stok Düzeltmesi** (New Stock Adjustment)
form:
| Field | Mandatory | Note |
|---|---|---|
| **Düzeltme Türü** (Adjustment Type) | Yes | Defaults to Stok Artırma Düzeltmesi (Stock Increase Adjustment); when the type changes, incompatible reason selections are cleared. |
| **İş Tarihi** (Business Date) | Yes | Defaults to today. |
| **Referans** (Reference), **Açıklama** (Description) | No | Count record, inspection report… |
| Line: **Ürün** (Product), **Depo** (Warehouse), **Stok Durumu** (Stock Status), **Neden** (Reason), **Miktar** (Quantity), **Birim** (Unit) | Yes | **Lokasyon** (Storage Location) if the warehouse requires it; batch and serial number according to the tracking type. **Neden** (Reason) comes from the active movement reasons of the selected type. |
Button **Düzeltmeyi kaydet** (Save adjustment). If there is no active movement reason of the selected type, the form
cannot be saved ("Uygun bir hareket nedeni tanımlanana kadar bu belge kaydedilemez." (This document cannot be saved
until a suitable movement reason is defined.)); reasons are defined in **Yönetim › Özelleştirme › Stok › Hareket
Nedenleri** (Administration › Customization › Inventory › Movement Reasons). Stock effect: for an increase, **Stok
Fazlası Düzeltmesi** (Stock Surplus Adjustment; receipt); for a decrease, **Stok Eksiği Düzeltmesi** (Stock Shortage
Adjustment; issue).
**Geri al** (Reverse; in the details): **İş Tarihi** (Business Date), **Gerekçe** (Reason) \*, and "Geri alınacak
miktar" (Quantity to reverse) in the **Geri Alınabilir Satırlar** (Reversible Lines) table (empty = the entire
remainder). Button **Geri almayı kaydet** (Save reversal). The reversal of an increase posts Giriş Geri Alma (Receipt
Reversal; issue), and the reversal of a decrease posts Çıkış Geri Alma (Issue Reversal; receipt). The reversal document
cannot be changed either.
Rejection messages: "\{n\}. satır: hareket nedeni zorunludur." (Line \{n\}: the movement reason is mandatory.) ·
"\{n\}. satır: '\{kod\}' nedeni '\{tür\}' türünde — bu belge '\{tür\}' nedeni bekliyor." (Line \{n\}: reason '\{kod\}'
is of type '\{tür\}' — this document expects a reason of type '\{tür\}'.) · "\{n\}. satır: stok durumu zorunludur —
varsayılana düşülmez." (Line \{n\}: the stock status is mandatory — it does not fall back to the default.) · "Geri
alınabilir miktar aşılıyor. Kalan: \{r\}, istenen: \{q\}." (The reversible quantity is exceeded. Remaining: \{r\},
requested: \{q\}.) · "Bu satır daha önce tamamen geri alınmış." (This line has already been fully reversed.)
## Scrap Transactions {#hurda-islemleri}
The physical issue of stock that has become unusable — it is not an adjustment, and there is no target warehouse. The
**Yeni Hurda Fişi** (New Scrap Document) form has the same line structure as the adjustment (reason type **Hurda**
(Scrap)); batch and serial numbers are selected only from existing stock. Button **Hurda fişini kaydet** (Save scrap
document). Movement type **Hurda** (Scrap; issue). Stock in quarantine or rejected stock can be scrapped: **Kalite
Kontrol › Reddedilen Stok › Hurdaya Ayır** (Quality Inspection › Rejected Stock › Scrap) opens the form prefilled
("Reddedilen stoktan dolduruldu — hurda nedenini seçip kaydedin." (Filled from rejected stock — select the scrap reason
and save.)). **Geri al** (Reverse) brings the scrap back (Çıkış Geri Alma (Issue Reversal)).
## Opening Valuation {#acilis-degerlemesi}
**Açılış Değerlemesi** (Opening Valuation) in the toolbar of the **Stok Yönetimi › Değerleme › Yeniden Değerleme**
(Inventory Management › Valuation › Revaluation) list (`/erp/inventory/revaluations/new/opening`; requires the
permissions to view cost and to create valuations). It posts an authorized opening value for stock whose cost is
unknown — **the quantity does not change**, and posted documents do not change.
1. Enter the **Gerekçe** (Reason), **İş Tarihi** (Business Date) and **Dayanak Referansı** (Supporting Reference), and
select one of the **Muhasebe Etkisi** (Accounting Effect) options (the screen does not preselect one; the decision
belongs to the financial advisor).
2. Select rows from the **Maliyeti Bilinmeyen Stok** (Stock with Unknown Cost) list; in **Değerlenecek Satırlar** (Rows
to Valuate), enter a unit cost for each row (zero cannot be entered).
3. **Önizle** (Preview) — a preview is mandatory before posting; if the form changes, preview again.
4. **Açılış Değerlemesini Kaydet** (Save Opening Valuation) → confirmation "Açılış değerlemesi kaydedilsin mi?" (Save
the opening valuation?).
## Related
- [Post a stock adjustment](https://erpdocs.corexlogic.com/en/stok/islemler/stok-duzeltmesi-yapma)
- [Inventory settings › Movement Reasons](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-tanimlari#hareket-nedenleri)
---
# Enter physical inventory counts
> Enter counted quantities in an open physical inventory count, add found products, count serial numbers and complete the count.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/sayim-girisi-yapma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Fiziksel Envanter › Stok Sayımları › sayım detayı (Inventory › Physical Inventory › Physical Inventories › count details)
- **Screen route:** `/erp/inventory/counts/{id}`
- **Required permission:** `erp-inventory-counts.edit`
- **Prerequisites:**
- The count is in **Sayımda** (Counting) status.
The counter enters the quantity found on the shelf in the count line. A user without approval permission counts
**blind**: they do not see the book quantity or the difference.
## Steps
1. Open the count from the **Stok Sayımları** (Physical Inventories) list (**Sayımı Aç** (Open Count)).
2. In the **Sayım Satırları** (Count Lines) table, type the quantity you counted on the shelf in the base unit in the **Sayılan** (Counted) cell of the first line; `Enter` moves to the next line. If there is none on the shelf, enter 0 — an empty cell means 'not counted'.

1. Scope frozen — no movements for these items
2. Counted — empty = not counted, 0 = none on shelf
3. Book and Difference — approvers only
4. Found Item — goods not on the list
5. Save Entries
6. Complete Count — when every line is counted
3. On a serial-managed line, click **Seri Gir** (Enter Serial Numbers), scan or type the serial numbers found, and press **Serileri Kaydet** (Save Serial Numbers).
4. For goods found on the shelf but not in the list, click **Bulunan Ürün** (Found Product); enter the **Ürün** (Product), **Lokasyon** (Storage Location), **Stok Durumu** (Stock Status), **Lot** for a lot-managed card, and **Sayılan** (Counted), then press **Satır Ekle** (Add Line).
5. When taking a break, click **Girişleri Kaydet** (Save Entries). You can filter the remaining lines with the **Sayılmayanlar** (Not Counted) switch.
6. When all lines have been counted, click **Sayımı Tamamla** (Complete Count).
**Result:** The count moves to **Sayım Tamamlandı** (Count Completed) status; the scope stays frozen. The difference is posted by an authorized user who has not entered quantities in this count: [Post the physical inventory difference](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-farkini-kaydetme).
## What you need to know
- Demo example: **SAY-2026-000002** (MERKEZ · Yedek Parçalar (Spare Parts)) — YP-0001 24 ADET and YP-0002 4 ADET
were entered, 2 lines were not counted; the document is **Sayımda** (Counting).
- In the **Okutarak Say** (Count by Scanning) section, select a storage location and stock status and scan a label
or barcode: a serial number label adds the serial number, a product barcode asks for the quantity ("Ekle" (Add) or
"Üzerine yaz" (Overwrite)).
- Cell errors: "Sayı değil" (Not a number), "Negatif olamaz" (Cannot be negative), "En fazla \{n\} ondalık" (At most
\{n\} decimals).
- The count cannot be completed while there are uncounted lines: "\{n\} satır sayılmadı. Sayılmayan satır "yok"
demek değildir — rafta yoksa sıfır girin." (\{n\} lines have not been counted. An uncounted line does not mean
"none" — if there is none on the shelf, enter zero.)
- A line that came from the book cannot be deleted: "Satır \{n\} defterden geldi — silinemez. Rafta yoksa sıfır
sayın." (Line \{n\} came from the book — it cannot be deleted. If there is none on the shelf, count zero.)
- A second line cannot be added for the same storage location, status and lot; update the quantity of the existing
line.
## Related
- [Physical inventories screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-sayimlari)
---
# Quality management
> Quarantine queue, inspection lot, release and rejection decision, inspection plan, quality notification and defect codes.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/kalite-yonetimi
For a product whose master record has **Girişte kalite kontrol › Gerekli** (Quality inspection at receipt › Required)
set, the goods receipt (purchasing goods receipt, Goods Receipt without a reference document) and the production output
are posted to the **KARANTINA** (Quarantine) stock status, and an **inspection lot** is opened. Stock in quarantine
cannot be shipped, consumed or transferred. The goods move to available stock, or are rejected, through the quality
specialist's **usage decision**.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Kalite Yönetimi › Kontrol Partileri · Kalite Kontrol · Muayene Planları · Kalite Bildirimleri · Kusur Kodları (Inventory Management › Quality Management › Inspection Lots · Quality Inspection · Inspection Plans · Quality Notifications · Defect Codes)
- **Screen route:** `/erp/inventory/quality`
- **Required permission:** `erp-inventory-quality.view (görme) · .edit (sonuç kaydı, muayene planı, kusur kodu) · .release (kalite kararı)`, `erp-inventory-scrap.create (Hurdaya Ayır) · erp-inventory-quality-notifications.view / .create / .edit`
## Quality Inspection (quarantine queue)

1. Awaiting decision
2. Rejected stock — scrap or return
3. Inspection lot
4. Release
5. Reject
Tabs: **Karar Bekleyenler** (Awaiting Decision) and **Reddedilen Stok** (Rejected Stock). Columns: Ürün (Product), Yeri
(Location; warehouse · storage location · batch), Durum (Status), Kontrol Partisi (Inspection Lot), Miktar (Quantity),
Son Hareket (Last Movement). The **Kararlar** (Decisions) button opens the Kalite Kararları (Quality Decisions) list.
| Tab | Row actions |
|---|---|
| Karar Bekleyenler (Awaiting Decision) | **Serbest Bırak** (Release) · **Reddet** (Reject) |
| Reddedilen Stok (Rejected Stock) | **Tedarikçiye İade** (Return to Supplier) · **Hurdaya Ayır** (Scrap; the scrap form opens prefilled) · **Red Kararını Düzelt** (Correct Rejection Decision) |
> **Second signature**
"Malı karantinaya alan kullanıcı kararı veremez — kayıt ikinci imza ister." (The user who put the goods into quarantine
cannot make the decision — the posting requires a second signature.) If the user who received the goods attempts the
decision: "Bu stoğu karantinaya siz aldınız — kalite kararını başka bir kullanıcı vermelidir. Malı içeri alan ile serbest
bırakan aynı kişi olamaz." (You put this stock into quarantine — another user must make the quality decision. The person
who received the goods and the person who releases them cannot be the same.)
## Decision dialog

1. Quantity — partial decision allowed
2. Reason — required
3. Reference — report, certificate no
4. Release
Fields: Ürün (Product), Yeri (Location), **Miktar** (Quantity; a partial decision is possible; the remainder waits in
quarantine), for a serial-managed product **Seriler** (Serial Numbers), **Gerekçe** (Reason; mandatory — the decision
changes the usability of the goods), **Referans** (Reference; inspection report, certificate no., record). Step by step:
[Make a quality decision](https://erpdocs.corexlogic.com/en/stok/islemler/kalite-karari-verme).
| Decision | Stock effect |
|---|---|
| **Serbest Bırakıldı** (Released) | The quantity in quarantine moves to the default (available) stock status. |
| **Reddedildi** (Rejected) | The quantity moves to the **Reddedildi** (Rejected; RED) status; it does not return to available stock and leaves through scrap or a return. |
| Red Kararını Düzelt (Correct Rejection Decision) | The rejection decision is not reversed; a new release decision is posted with its reason. |
Demo example: the decision for KP-2026-000001 (HAM-0070, batch SLES-2611-004, 400 KG) was made by **Demo Onaylayıcı**
(Demo Approver), not by Demo Kullanıcı (Demo User), who received the goods. The **Serbest Bırak — HAM-0070** (Release —
HAM-0070) dialog reads "Mal muayeneden geçti; kullanılabilir stoğa alınıyor ve sevk, sarf, transfer yollarına
açılıyor." (The goods passed inspection; they are being moved to available stock and opened for shipment, consumption
and transfer); under **Miktar** (Quantity) it shows "Karantinada 400 KG — kısmi karar verilebilir; kalan karantinada
bekler." (400 KG in quarantine — a partial decision is possible; the remainder waits in quarantine.), and under
**Gerekçe** (Reason) "Kayıt denetim izidir; boş bırakılamaz." (The record is an audit trail; it cannot be left empty.).

1. Quantity — partial decision allowed
2. Reason — required
3. Reference — certificate of analysis
4. Release — quarantine → unrestricted
The decision posts a **Stok Durumu Değişimi** (Stock Status Change) movement (source document "Kalite Kararı" (Quality
Decision)); the warehouse and storage location do not change. The movement is a pair ("Stok durumu değişimi çifti"
(Stock status change pair)): an issue from the quarantine status and a receipt into the target status — in the example,
an issue of 400 KG from KARANTINA and a receipt of 400 KG into SIFIR.

1. Source document = Quality Decision
2. Status change pair: quarantine out, unrestricted in
3. Stock status and lot
The Kalite Kararları (Quality Decisions) list (Belge No (Document No.), İş Tarihi (Business Date), Karar (Decision),
Gerekçe (Reason), Miktar (Quantity), Kaydeden (Posted By), Kayıt Zamanı (Created At)) does not change; a correction is
made with a new decision. The document number has the format KLT-yyyy-nnnnnn (example: KLT-2026-000001 · Serbest
Bırakıldı (Released) · 400). The list is opened with the **Kararlar** (Decisions) button in **Kalite Kontrol** (Quality
Inspection); the **Karantina Kuyruğu** (Quarantine Queue) button returns to the queue.

1. Decision document — immutable
2. Decision
3. Reason
4. Recorded by — not the person who received the goods
## Inspection Lots

1. Inspection lot status
2. Release
3. Reject
4. Close Lot — with a reason
List: Parti No (Lot No.; KP-yyyy-nnnnnn), Tarih (Date), Kaynak (Source: Mal girişi · Üretim çıktısı · Ara muayene
(Goods receipt · Production output · In-process inspection)), Ürün (Product), Depo · Göz · Lot (Warehouse · Bin ·
Batch), Açık / Miktar (Open / Quantity), Sonuç (Result), Durum (Status).
| Status | Meaning |
|---|---|
| **Sonuç Bekliyor** (Awaiting Results) | Inspection results are to be entered. |
| **Karar Bekliyor** (Awaiting Decision) | Results have been entered; the usage decision is pending. |
| **Karara Bağlandı** (Decided) | The entire quantity has been decided. |
| **İptal** (Cancelled) | The lot was closed with a reason. |
When a decision has been made for the lot, its status becomes **Karara Bağlandı** (Decided); the **Serbest · Red ·
Açık** (Released · Rejected · Open) row shows the distribution (example 400 · 0 · 0), the **Kullanım Kararları** (Usage
Decisions) table shows the decision and the target stock status ("Serbest Bırakıldı → SIFIR" (Released → SIFIR)); the
decision buttons disappear.

1. Inspection lot status
2. Released · Rejected · Open
3. Usage decision and target stock status
The details contain **Muayene Sonuçları** (Inspection Results; Özellik (Characteristic), Şartname (Specification), Sonuç
(Result), Değerlendirme (Evaluation): Uygun / Uygun değil / Girilmedi (Conforming / Nonconforming / Not entered)) and
**Sonuçları Kaydet** (Save Results); the **Serbest Bırak** (Release), **Reddet** (Reject) and **Partiyi Kapat** (Close
Lot) buttons; and the **Kullanım Kararları** (Usage Decisions) table. If the product has no inspection plan, the lot can
be decided without waiting for results. No decision can be made before the results of mandatory characteristics are
entered: "'\{parti\}' partisinde zorunlu özelliklerin sonucu girilmedi — kullanım kararı sonuç kaydından sonra
verilir." (The results of mandatory characteristics have not been entered for lot '\{parti\}' — the usage decision is
made after the results are recorded.)
## Inspection Plans
The characteristics to be measured per product and their limits; the inspection lot copies the plan the moment it is
created. Form: **Ürün** (Product; one plan per item), **Aktif** (Active), **Muayene Özellikleri** (Inspection
Characteristics: Özellik (Characteristic), Tür (Type): Nicel (ölçüm) / Nitel (uygun / değil) (Quantitative
(measurement) / Qualitative (conforming / not)), Alt Sınır (Lower Limit), Üst Sınır (Upper Limit), Birim (Unit),
Zorunlu (Mandatory), Operasyon (Operation)), inspection instructions, **Ara Muayene Noktaları** (In-Process Inspection
Points). Button **Planı Kaydet** (Save Plan). If the item does not require quality inspection, no lot is created.
## Quality Notifications and Defect Codes
**Kalite Bildirimleri** (Quality Notifications): customer complaints, supplier complaints and internal notifications;
they are closed with a root cause and corrective/preventive actions (8D). Statuses: Açık · İşlemde · Tamamlandı · İptal
(Open · In Process · Completed · Cancelled). Priority 1 — Çok yüksek (Very high) … 4 — Düşük (Low). A notification
cannot be completed before the root cause (D4) is written and the actions are completed. There is no stock effect.
**Kusur Kodları** (Defect Codes): the defect type of the notification (Kod (Code), Ad (Name), Durum (Status)).
## Rejection messages
| Situation | Message |
|---|---|
| Stock not in quarantine | "'\{kart\}' kartının '\{durum\}' durumundaki stoğu karantinada değil — kalite kararı yalnız karantinadaki stok için verilir." (The stock of item '\{kart\}' in status '\{durum\}' is not in quarantine — a quality decision is made only for stock in quarantine.) |
| Excess quantity | "'\{kart\}' satırında karantinada \{m\} \{birim\} var; \{q\} için karar verilemez." (Row '\{kart\}' has \{m\} \{birim\} in quarantine; no decision can be made for \{q\}.) |
| Reason | "Gerekçe zorunludur." (A reason is mandatory.) |
| Closed lot | "'\{parti\}' kontrol partisi kapandı — yeni karar verilemez." (Inspection lot '\{parti\}' is closed — no new decision can be made.) |
| Lot without remaining goods | "'\{parti\}' partisinin karantinada malı yok (hurdaya ayrılmış ya da geri alınmış olabilir) — partiyi gerekçeyle kapatın." (Lot '\{parti\}' has no goods in quarantine (they may have been scrapped or reversed) — close the lot with a reason.) |
## Related
- [Batch and serial number tracking process](https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme)
- [Inventory transactions › Scrap](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-islemleri#hurda-islemleri)
---
# Post the physical inventory difference
> Post the difference of a completed physical inventory count to the ledger with a second signature, send it for recount if needed, or cancel the count.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/sayim-farkini-kaydetme
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Fiziksel Envanter › Stok Sayımları › sayım detayı › Farkı Kaydet (Inventory › Physical Inventory › Physical Inventories › count details › Post Difference)
- **Screen route:** `/erp/inventory/counts/{id}`
- **Required permission:** `erp-inventory-counts.approve`
- **Prerequisites:**
- The count is in **Sayım Tamamlandı** (Count Completed) status.
- You are signed in as a user who has not entered quantities in this count and has not completed it (second signature).
Posting the difference to the ledger requires a second signature: the person who entered or completed the count
cannot post the difference.
## Steps
1. Open the completed count. Review the **Defter** (Book), **Sayılan** (Counted) and **Fark** (Difference) columns and the difference summary; to see only the lines with differences, turn on the **Farklılar** (Differences) switch.

1. Second signature — another approver posts
2. Difference summary
3. Book · Counted · Difference
4. Send Back for Recount
5. Post Difference — writes stock adjustments
2. If a difference is doubtful, click **Yeniden Saymaya Gönder** (Send for Recount); the count returns to Sayımda (Counting) status and the lines are counted again.
3. If the difference is correct, click **Farkı Kaydet** (Post Difference).
4. Check the summary in the window and confirm with **Farkı Kaydet** (Post Difference).

1. Increase and decrease lines to post
2. Post Difference — writes the adjustments
5. Check the status of the count: at the top it reads "Fark deftere yazıldı. Belge artık değişmez." (The difference has been posted to the ledger. The document can no longer change.), and the **Farkı Kaydeden** (Difference Posted By) field shows you and the date.

1. Status — document is final
2. Freeze lifted
3. Second signature — who posted and when
4. Difference — turned into adjustments
6. View the adjustment movements in **Stok Yönetimi › Mal Hareketleri › Stok Hareketleri** (Inventory › Goods Movements › Stock Movements) with the filter **Kaynak Belge = Stok Sayımı** (Source Document = Physical Inventory).

1. Source document = Stock Count
2. Surplus — receipt
3. Shortage — issue
4. Source — the count document
**Result:** The difference is posted with today's date: surplus lines as a **Stok Fazlası Düzeltmesi** (Stock Surplus Adjustment) movement and shortage lines as a **Stok Eksiği Düzeltmesi** (Stock Shortage Adjustment) movement (source document 'Stok Sayımı' (Physical Inventory)). The count becomes **Kaydedildi** (Posted), the freeze on its scope is lifted, and the document never changes again.
## Cancel a count
While the count is in **Sayımda** (Counting) or **Sayım Tamamlandı** (Count Completed) status, click **Sayımı İptal
Et** (Cancel Count), enter a **Gerekçe** (Reason) (mandatory, at most 512 characters) and confirm. Nothing is posted
to the ledger, the freeze is lifted, and the entered counts stay on the document. Permission:
`erp-inventory-counts.create`.
## What you need to know
- Demo example: Demo Kullanıcı counted and completed **SAY-2026-000001**. When the same user tried to post the
difference, the server rejected it: "Sayımı tamamlayan kişi farkı kaydedemez — ikinci imza başka bir kullanıcıdan
gelmeli." (The person who completed the count cannot post the difference — the second signature must come from
another user.) **Demo Onaylayıcı** posted the difference: the count became **Kaydedildi** (Posted) and three
movements were posted — SARF-0003 **Stok Eksiği Düzeltmesi** (Stock Shortage Adjustment) 4 ADET, SARF-0004
**Stok Fazlası Düzeltmesi** (Stock Surplus Adjustment) 5 ADET, SARF-0007 **Stok Eksiği Düzeltmesi** (Stock
Shortage Adjustment) 50 ADET (HAMMADDE / RAF-B, SIFIR). The four lines without a difference produced no movement.
- For the person who entered quantities: "Bu sayımda miktar giren kişi farkı kaydedemez — ikinci imza başka bir
kullanıcıdan gelmeli." (The person who entered quantities in this count cannot post the difference — the second
signature must come from another user.)
- If the book changed while the count was open (such as a document posted before the freeze): "Sayım açıldıktan
sonra şu satırların defter miktarı değişti: … . Sayımı iptal edip yeniden açın." (After the count was opened, the
book quantity of the following lines changed: … . Cancel the count and open it again.)
- If a shortage occurs on allocated stock, posting is rejected — first release the allocation from **Stok
Tahsisleri** (Stock Allocations).
- For a serial number difference, missing serial numbers are posted as issues and surplus serial numbers as
receipts.
- No movement reason is assigned when posting a difference; the description is the count number.
## Related
- [Physical inventory process](https://erpdocs.corexlogic.com/en/surecler/stok-sayimi)
- [Physical inventories screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-sayimlari)
---
# Special stocks
> Stock whose ownership or location is tied to a business partner or a project — supplier consignment, consignment at customer and project stock.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/ozel-stoklar
Stock whose ownership or location is tied to a business partner or a project. The documents on these screens have no
status; all of them become final when saved (only a project has the Açık / Kapalı (Open / Closed) status).
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Özel Stoklar · Proje Stoğu (Inventory Management › Special Stocks · Project Stock)
- **Screen route:** `/erp/inventory/vendor-consignment`
- **Required permission:** `erp-inventory-vendor-consignment.view / .create (tedarikçi konsinyesi, çekiş)`, `erp-inventory-customer-consignment.view / .create (müşteride konsinye)`, `erp-inventory-projects.view / .create / .edit / .issue (proje stoğu)`
## Supplier consignment
**Tedarikçi Konsinye Stoğu** (Supplier Consignment Stock): the supplier's goods in our warehouse — they are not
included in the company's stock total or valuation, and are settled as they are withdrawn. Columns: Tedarikçi
(Supplier), Depo (Warehouse), Ürün (Product), Stok Durumu (Stock Status), Karantina (Quarantine), Miktar (Quantity),
Konsinye Değeri (Consignment Value); **Çek** (Withdraw) on the row.
**Konsinye Çekişleri** (Consignment Withdrawals): goods that move from consignment into our own stock; each withdrawal
is a liability to the supplier. The **Konsinye Çekişi Oluştur** (Create Consignment Withdrawal) form: Tedarikçi
(Supplier), Konsinyenin Deposu (Consignment Warehouse), **Hedef Depo** (Target Warehouse; your own warehouse), Çekiş
Tarihi (Withdrawal Date), a table (Ürün (Product), Stok Durumu (Stock Status), Konsinye (Consignment), Çekilecek (To
Withdraw), Hedef Lokasyon (Target Storage Location)), Not (Note). Button **Çekişi Kaydet** (Save Withdrawal). Goods in
quarantine cannot be withdrawn ("Önce kalite kararı" (Quality decision first)).
## Consignment at customer
**Müşteride Konsinye Stoğu** (Consignment Stock at Customer): our goods at the customer's site. Columns: Müşteri
(Customer), Çıktığı Depo (Issuing Warehouse), Ürün (Product), Stok Durumu (Stock Status), Miktar (Quantity), Stok Değeri
(Stock Value); **Geri Al** (Take Back) on the row. Button **Konsinye Doldurma Oluştur** (Create Consignment Fill-Up).
**Müşteride Konsinye Belgeleri** (Consignment Documents at Customer) are of two types:
| Type | Meaning |
|---|---|
| **Konsinye Doldurma** (Consignment Fill-Up) | From your own warehouse into the customer's consignment stock — the goods remain ours and are invoiced with a delivery as the customer consumes them. The ship-to address is mandatory. |
| **Konsinye Geri Alma** (Consignment Pick-Up) | From the customer's consignment stock into your own warehouse — taking back without an invoice. |
## Project stock
| Screen | Content |
|---|---|
| **Projeler** (Projects) | The owner of project stock. Columns: Proje (Project), Müşteri (Customer; "İç proje" (Internal project) if none), Durum (Status: Açık / Kapalı (Open / Closed)), Dönem (Period). **Yeni Proje** (New Project): Ad (Name), Kod (Code), Müşteri (Customer), Başlangıç (Start), Bitiş (End), Açıklama (Description). **Projeyi Kapat** (Close Project) requires a reason. |
| **Proje Stoğu** (Project Stock) | Stock assigned to a project: Proje (Project), Depo · Göz (Warehouse · Bin), Ürün (Product), Miktar (Quantity), Stok Değeri (Stock Value); **Çıkış** (Issue) and **Serbest Bırak** (Release) on the row; **Projeye Stok Ayır** (Assign Stock to Project). |
| **Proje Stok Belgeleri** (Project Stock Documents) | **Projeye Stok Ayırma** (Assign Stock to Project; the warehouse's unrestricted stock moves to the project in place), **Projeye Malzeme Çıkışı** (Material Issue to Project; consumption only from goods assigned to the project), **Proje Stoğunu Serbest Bırakma** (Release Project Stock; the project stock returns to unrestricted stock in place; no movement is posted, a reason is mandatory). |
## Related
- [Stock balance](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-bakiyesi)
---
# Change the status of a lot
> Block a lot to stop its use in goods issues and transfers, or release the block and set it to Active.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/lot-durumu-degistirme
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Stok Görünümü › Lotlar › lot detayı › Durumu Değiştir (Inventory › Stock Overview › Lots › lot details › Change Status)
- **Screen route:** `/erp/inventory/lots/{id}`
- **Required permission:** `erp-inventory-lots.edit`, `erp-inventory-lots.release`
- **Prerequisites:**
- The `erp-inventory-lots.edit` permission to block, and the `erp-inventory-lots.release` permission to release the block (Active).
Block a lot to stop its use for damaged packaging, a questionable analysis or a batch whose expiry date has
passed.
## Steps
1. On the **Stok Yönetimi › Stok Görünümü › Lotlar** (Inventory › Stock Overview › Lots) screen, find the lot (**Ara** (Search): lot number, supplier lot, stock code) and click its number.

1. Lot status filter
2. Expiry (latest) — expiring lots
3. Expiry date
4. Open the lot
2. In the lot details, click **Durumu Değiştir** (Change Status).
3. From the **Yeni durum** (New status) list, select **Bloke** (Blocked) (to stop its use) or **Aktif** (Active) (to release the block).

1. Current status
2. New status — Active or Blocked
3. Change Status — writes no stock movement
4. Confirm with **Durumu Değiştir** (Change Status) in the window.

1. Blocked — not usable in issue or transfer
2. Opens the traceability report
3. Change Status — Active / Blocked
4. Stock distribution — warehouses and locations
**Result:** The status of the lot changes. A blocked lot cannot be selected in goods issues, transfers and deliveries; the stock stays where it is. A status change does not post a stock movement and does not change quantities.
## What you need to know
- Demo example: lot **SLES-2611-005** of HAM-0070 (50 KG, dented drum) was set to **Bloke** (Blocked).
- Only **Aktif** (Active) and **Bloke** (Blocked) can be set manually; Karantina (Quarantine), Süresi Dolmuş
(Expired) and Tükenmiş (Depleted) come from other processes and are for information only.
- There is no reason field; if an explanation is needed, use the lot's **Özellikler** (Characteristics) section or
the related quality notification.
- If a goods issue from a blocked lot is attempted: "'\{lot\}' lotu bloke — çıkış yapılamaz." (Lot '\{lot\}' is
blocked — it cannot be issued.)
- Permission messages: "Lotu bloke etme yetkiniz yok." (You do not have permission to block the lot.) · "Lotu
kullanılabilir yapma (blokeyi çözme) yetkiniz yok — Stok Kontrol'ün işi." (You do not have permission to make the
lot usable (release the block) — this is Inventory Control's job.)
- Lot status is different from stock status: stock in quarantine is released not by the lot status but by a
[quality decision](https://erpdocs.corexlogic.com/en/stok/islemler/kalite-karari-verme).
## Related
- [Lots screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/lotlar)
---
# Warehouse execution
> Warehouse tasks (putaway, picking, internal warehouse movement), waves, warehouse monitor and the handheld terminal.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/depo-yurutme
The movement of goods from bin to bin inside the warehouse is managed with **warehouse tasks**: putaway (from the goods
receipt area to the shelf), picking (from a wave to the shipping staging area) and internal warehouse movement.
Creating a task does not post a stock movement and does not lock stock; the **confirmation** posts a **Transfer**
movement from bin to bin within the same warehouse (source document "Depo Görevi" (Warehouse Task)). Capacity,
quarantine and stock sufficiency are checked at the time of confirmation.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Depo Yürütme › Depo İzleme · Depo Görevleri · Dalgalar · El Terminali (Inventory Management › Warehouse Execution › Warehouse Monitor · Warehouse Tasks · Waves · Handheld Terminal)
- **Screen route:** `/erp/inventory/warehouse-tasks`
- **Required permission:** `erp-inventory-warehouse-tasks.view (görme) · .create (görev ve dalga oluşturma, Ata, İptal Et) · .edit (Üstlen, Bırak, Onayla, El Terminali)`, `erp-inventory-counts.edit (El Terminali › Sayım)`
## Warehouse Tasks
| Field | Values |
|---|---|
| Task type | **Yerleştirme** (Putaway) · **Toplama** (Picking) · **Depo İçi Taşıma** (Internal Warehouse Movement) |
| Source | Elle (Manual) · Mal kabul alanından (From the goods receipt area) · Dalgadan (From a wave) |
| Status | **Açık** (Open) · **Onaylandı** (Confirmed) · **İptal Edildi** (Cancelled) |
List columns: Görev No (Task No.), Tür (Type), Durum (Status), Ürün (Product), Kalan / Miktar (Remaining / Quantity),
Kaynak → Hedef (Source → Destination), Kaynak Belge (Source Document), Atanan (Assignee), Kayıt Zamanı (Created At).
Detail buttons: **Üstlen** (Take Over), **Bırak** (Release), **Onayla** (Confirm), **Ata** (Assign), **İptal Et**
(Cancel; only for a task that has never been confirmed). The confirmation dialog contains the destination bin, batch,
serial numbers, and **Kalanı farkla kapat (rafta bulunamadı)** (Close the remainder as a difference (not found on the
shelf)) + **Fark gerekçesi** (Difference reason) — the difference is not a stock movement; the goods remain in the
source bin, and the correction is made with a physical inventory count.
**Depo Görevi Oluştur** (Create Warehouse Task; internal warehouse movement): Depo (Warehouse) → Kaynak göz (Source bin)
→ Gözdeki stok (Stock in bin) → Hedef göz (Destination bin; proposed, or to be selected at confirmation) → Not (Note);
button **Görevi Oluştur** (Create Task).
For task-based putaway, **Görevli yerleştirme** (Task-based putaway) must be enabled in the warehouse settings and a
**Mal kabul alanı** (Goods receipt area) bin must be defined ([Warehouses](https://erpdocs.corexlogic.com/en/stok/ekranlar/depolar)).
## Waves
A wave is a document that releases open sales order lines (or open deliveries) for picking together; the picked goods
are allocated to the line. Statuses: Açık (Open) · Tamamlandı (Completed) · İptal Edildi (Cancelled). Creation: Depo
(Warehouse), Kaynak (Source: Sipariş kalemleri / Açık teslimatlar (Order lines / Open deliveries)), Planlanan sevk (en
geç) (Planned shipment (latest)), İstenen teslim (en geç) (Requested delivery (latest)), line table; button **Dalgayı
Oluştur** (Create Wave). A wave cannot be opened if the warehouse has no shipping staging area bin. **İptal Et**
(Cancel) is available only for an open wave from which nothing has been picked yet, and requires a reason.
## Warehouse Monitor
Select a warehouse to see open tasks, goods waiting in areas, filling bins and the differences of the last 7 days on a
single screen. Tiles: Açık yerleştirme (Open putaway), Açık toplama (Open picking), Açık taşıma (Open movement),
Atanmamış (Unassigned), Açık dalga (Open wave), Bugün onaylanan (Confirmed today), Son 7 gün fark (Differences in the
last 7 days), Mal kabulde görevsiz (In goods receipt without a task). A tile opens the related list. **Otomatik yenile
(60 sn)** (Auto refresh (60 s)) is optional.
## Handheld Terminal
`/rf` — a phone-layout surface that runs outside the ERP window. Home screen: **Depo Seçin** (Select Warehouse),
**Görevler** (Tasks), **Serbest Taşıma** (Free Movement), **Göz Sorgula** (Query Bin), **Ürün Sorgula** (Query
Product), **Sayım** (Count; count by scanning labels). Task steps: scan the source bin → scan the product → scan the
batch / serial numbers → enter the quantity → scan the destination bin → **Onayla** (Confirm).
## Related
- [Warehouses and plants](https://erpdocs.corexlogic.com/en/stok/ekranlar/depolar)
- [Physical inventory counts](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-sayimlari)
---
# Make a quality decision
> Release or reject goods in quarantine after inspection — partial decision, reason and second signature.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/kalite-karari-verme
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Kalite Yönetimi › Kalite Kontrol (Inventory › Quality Management › Quality Control)
- **Screen route:** `/erp/inventory/quality`
- **Required permission:** `erp-inventory-quality.release`
- **Prerequisites:**
- The stock is in quarantine status (a receipt of a quality-controlled card or a production output).
- You are signed in as a user other than the one who placed the goods in quarantine (second signature).
- If the inspection plan has mandatory characteristics, the results have been entered on the **Kontrol Partileri** (Inspection Lots) screen.
A receipt of a quality-controlled card goes into quarantine, and an inspection lot is opened. After the
inspection, the quality specialist makes the usage decision.
## Steps
1. Open the **Stok Yönetimi › Kalite Yönetimi › Kalite Kontrol** (Inventory › Quality Management › Quality Control) screen; view the lines in quarantine on the **Karar Bekleyenler** (Awaiting Decision) tab.

1. Awaiting decision
2. Rejected stock — scrap or return
3. Inspection lot
4. Release
5. Reject
2. Depending on the inspection result, click **Serbest Bırak** (Release) or **Reddet** (Reject) on the line.
3. Check the **Miktar** (Quantity) (reduce it for a partial decision), and enter the **Gerekçe** (Reason) and, if available, the **Referans** (Reference) (certificate of analysis, inspection report — AK-261020-09 in the example).

1. Quantity — partial decision allowed
2. Reason — required
3. Reference — certificate of analysis
4. Release — quarantine → unrestricted
4. Confirm with **Serbest Bırak** (Release) (or **Reddet** (Reject)) in the window.
5. View the decision in the **Kalite Kararları** (Quality Decisions) list opened with the **Kararlar** (Decisions) button and in the inspection lot details: the lot becomes **Karara Bağlandı** (Decided), and the **Kullanım Kararları** (Usage Decisions) table shows the decision and the target stock status.

1. Decision document — immutable
2. Decision
3. Reason
4. Recorded by — not the person who received the goods
**Result:** The released quantity moves from KARANTINA to the default stock status (SIFIR) and becomes available for shipping, consumption and transfer. The rejected quantity moves to **Reddedildi** (Rejected) (RED) status and goes to scrap or a return to the supplier from the **Reddedilen Stok** (Rejected Stock) tab. The decision posts a **Stok Durumu Değişimi** (Stock Status Change) movement (source 'Kalite Kararı' (Quality Decision)).
## What you need to know
- Demo example: Demo Kullanıcı placed the goods in quarantine, so that user cannot make the decision: "Bu stoğu
karantinaya siz aldınız — kalite kararını başka bir kullanıcı vermelidir. Malı içeri alan ile serbest bırakan aynı
kişi olamaz." (You placed this stock in quarantine — another user must make the quality decision. The person who
received the goods and the person who releases them cannot be the same.) The decision for **KP-2026-000001**
(SLES-2611-004, 400 KG) was made by **Demo Onaylayıcı** (Yönetici (Administrator)): 400 KG was released, the
decision document is **KLT-2026-000001**, and the lot is **Karara Bağlandı** (Decided) (Serbest · Red · Açık
(Released · Rejected · Open): 400 · 0 · 0). In Stok Hareketleri (Stock Movements), a pair of **Stok Durumu
Değişimi** (Stock Status Change) movements with source **Kalite Kararı** (Quality Decision) was posted: an issue
of 400 KG from KARANTINA and a receipt of 400 KG into SIFIR (KIMYA / IBC-ALANI, lot SLES-2611-004).
**KP-2026-000002** (SLES-2611-005, 50 KG) is awaiting a decision.
- The decision can also be made from the inspection lot details (**Serbest Bırak** (Release), **Reddet** (Reject));
if there is an inspection plan, first click **Sonuçları Kaydet** (Save Results).
- A partial decision is possible; the remainder stays in quarantine. Excess quantity: "'\{kart\}' satırında
karantinada \{m\} \{birim\} var; \{q\} için karar verilemez." (There are \{m\} \{birim\} in quarantine on the
'\{kart\}' line; a decision cannot be made for \{q\}.)
- A reason is mandatory: "Gerekçe zorunlu — karar malın kullanılabilirliğini değiştiriyor." (A reason is mandatory —
the decision changes the availability of the goods.)
- A rejection cannot be reversed; **Reddedilen Stok › Red Kararını Düzelt** (Rejected Stock › Correct Rejection
Decision) records a new release decision with a reason.

1. Inspection lot status
2. Released · Rejected · Open
3. Usage decision and target stock status
## Related
- [Quality management screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/kalite-yonetimi)
- [Lot and serial number tracing process](https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme)
---
# Valuation
> The value information shown on inventory screens — revaluation, opening valuation, material valuation and standard price.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/degerleme
The valuation screens correct or display the **value of stock without touching its quantity**. The value comes from
the moving average cost (or, for a product with a standard price, from the standard price); value columns are visible
only with the permission to **view inventory cost**. Accounting entries are outside the scope of this document.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Değerleme (Inventory Management › Valuation)
- **Screen route:** `/erp/inventory/revaluations`
- **Required permission:** `erp-inventory-revaluations.view / .create · erp-inventory-costs.view (değer görme)`
| Screen | Content |
|---|---|
| **Yeniden Değerleme** (Revaluation) | Documents that correct the value of stock on hand. Types: Yeniden Değerleme (Revaluation) · Açılış Değerlemesi (Opening Valuation) · Döviz Değerleme Geçişi (Currency Valuation Transition). Mode: **Birim Maliyet** (Unit Cost) or **Tutar Farkı** (Amount Difference); **Gerekçe** (Reason) is mandatory. The toolbar contains **Açılış Değerlemesi** (Opening Valuation) and **Döviz Değerleme Geçişi** (Currency Valuation Transition). |
| **Malzeme Değerleme** (Material Valuation) | Price control per product × plant — **Hareketli ortalama (V)** (Moving average (V)) or **Standart fiyat (S)** (Standard price (S)) — standard price, stock, stock value, unit value. |
| **Standart Fiyat Değişiklikleri** (Standard Price Changes) | Price change document with plant, date, lines (new price control, standard price, currency) and reason. |
| **Materyal Defteri** (Material Ledger) | The monthly value flow of a product: opening stock, receipts, price change, consumption, period end; difference postings. |
| **Gerçekleşen Maliyet Kapanışları** (Actual Costing Closings) | The monthly actual price of products with a standard price; **Dönemi Kapat** (Close Period). |
The value of stock that was received without a known cost (an opening balance without a unit cost, or a goods receipt
without a reference document) is posted with **Açılış Değerlemesi** (Opening Valuation):
[Inventory transactions › Opening Valuation](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-islemleri#acilis-degerlemesi).
Value reports: [Inventory reports](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-raporlari).
---
# Trace a lot or serial number
> Trace where a lot or serial number went (customers) or where it came from (suppliers, production orders).
URL: https://erpdocs.corexlogic.com/en/stok/islemler/lot-izleme
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Analitik › Lot/Seri İzlenebilirlik (Inventory › Analytics › Lot/Serial Traceability)
- **Screen route:** `/erp/inventory/reports/lot-trace`
- **Required permission:** `erp-inventory-movements.view`
- **Prerequisites:**
- The product is lot- or serial-managed.
In a recall or a customer complaint, the first question is: where did this batch come from, and who did it go to?
## Steps
1. Open the **Stok Yönetimi › Analitik › Lot/Seri İzlenebilirlik** (Inventory › Analytics › Lot/Serial Traceability) screen. If you are in the lot details, the **İzlenebilirlik** (Traceability) button opens the report with that lot.
2. Type the lot or serial number in the **Lot / Seri** (Lot / Serial) field and select it from the list.
3. Select the **Yön** (Direction): **İleri — nereye gitti** (Forward — where it went) (the orders it was consumed in, what they produced, customers) or **Geri — nereden geldi** (Backward — where it came from) (the orders it was produced in, what they consumed, suppliers).
4. In the movement table of the node in the tree, read the **Belge** (Document) and **Karşı Taraf / Bağlam** (Counterparty / Context) columns; if needed, use **Excel'e Aktar** (Export to Excel).

1. Lot or serial number
2. Direction — forward / backward
3. Document — delivery
4. Counterparty — customer
5. Export to Excel
**Result:** All movements of the lot are shown with their documents: its receipt (goods receipt, opening balance, production output), the production orders it was consumed in and the lots they produced, and the deliveries and customers it was shipped to.
## What you need to know
- Demo example: lot **DET-2609-001** of **MAM-0008 SIVI DETERJAN 5 LT** was traced forward: on 01.10.2026 it was
received into the MAMUL warehouse as +160 ADET with Açılış Bakiyesi (Opening Balance) AB-2026-000003; on
01.11.2026 −160 ADET was shipped to **Trakya Et ve Et Ürünleri A.Ş.** with **Teslimat SV-2026-000001** (Delivery
SV-2026-000001). With the same delivery, 220 ADET of lot DET-2609-002 also went to the same customer.
- The link is at order level: every lot a production order consumes is linked to every lot that order produces.
- The chain ends at a component that is not tracked (not lot- or serial-managed): "Takipsiz — zincir burada biter"
(Not tracked — the chain ends here).
- If the tree becomes very large, it is truncated; trace again from a lot deeper down.
- Opening the order link requires permission to view production orders.
## Related
- [Inventory reports › Lot/Serial Traceability](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-raporlari#lot-seri-izlenebilirlik)
- [Lot and serial number tracing process](https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme)
---
# Inventory reports
> Stock status report, movement listing, batch/serial traceability, valuation, slow-moving stock, aging analysis, ABC analysis and inventory turnover.
URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-raporlari
The reports under **Stok Yönetimi › Analitik** (Inventory Management › Analytics) are generated from the stock ledger.
Every report has **Excel'e Aktar** (Export to Excel) and **Raporu yenile** (Refresh report); the default date range is
the last 90 days. Value columns are visible only with the cost permission.
- **Type:** Screen
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Analitik (Inventory Management › Analytics)
- **Screen route:** `/erp/inventory/reports/stock-status`
- **Required permission:** `erp-inventory-stock.view (Stok Durum Raporu, Hareketsiz Stok, Stok Yaş Analizi, ABC Analizi, Stok Devir Hızı)`, `erp-inventory-movements.view (Stok Hareket Dökümü, Lot/Seri İzlenebilirlik)`, `erp-inventory-costs.view (Stok Değerleme Raporu ve değer kolonları) · erp-inventory-counts.approve (ABC › Karta Yaz)`
## Stock Status Report

1. As of date — stock on a past day
2. Warehouse breakdown
3. Show zero balances
4. Export to Excel
How much of each item there is and (with permission) what it is worth. Filters: Ara (Search), **Depo** (Warehouse),
**Stok Durumu** (Stock Status), **Depo kırılımı** (Warehouse breakdown), **Sıfır bakiyeleri de göster** (Also show zero
balances), **Tarih itibarıyla** (As of date). Columns: Kart Kodu (Item Code), Kart Adı (Item Name), (with the
breakdown) Depo (Warehouse), Miktar (Quantity), Ortalama Maliyet (Average Cost), Toplam Değer (Total Value), Son Hareket
(Last Movement). If **Tarih itibarıyla** (As of date) is selected, movements after that day are not included in the
report.
## Stock Movement Listing
The ledger of an item or a warehouse — the opening carry-forward for the period and a running balance on each row.
Either the item or the warehouse is mandatory. Columns: Tarih (Date), Kart (Item), Hareket Türü (Movement Type), Depo /
Lokasyon (Warehouse / Storage Location), Durum / Lot (Status / Batch), Kaynak Belge (Source Document), Miktar
(Quantity), Birim Maliyet (Unit Cost; with permission), Yürüyen Bakiye (Running Balance). A period summary (Giriş /
Çıkış (Receipts / Issues)) is shown at the bottom.
## Batch/Serial Traceability {#lot-seri-izlenebilirlik}

1. Lot or serial number
2. Direction — forward / backward
3. Document — delivery
4. Counterparty — customer
5. Export to Excel
Where a batch or serial number came from and where it went — through production orders. Inputs: **Lot / Seri** (Batch
/ Serial Number; a single search field) and **Yön** (Direction): **İleri — nereye gitti** (Forward — where it went;
the orders in which it was consumed, what they produced and the customers it went to) or **Geri — nereden geldi**
(Backward — where it came from; the orders in which it was produced, what they consumed and the suppliers it came
from). The **İzlenebilirlik** (Traceability) button in the batch details opens the report with that batch.
The output is an indented tree; each node has a movement table: Tarih (Date), Hareket (Movement), Depo (Warehouse),
Miktar (Quantity), **Belge** (Document), **Karşı Taraf / Bağlam** (Counterparty / Context). The link is at the order
level: every batch consumed by an order is related to every batch it produced. The chain ends at an item that is not
tracked ("Takipsiz — zincir burada biter" (Not tracked — the chain ends here)). Step by step:
[Trace a batch or serial number](https://erpdocs.corexlogic.com/en/stok/islemler/lot-izleme).
## Other reports
| Report | What it shows | Key filter / column |
|---|---|---|
| **Stok Değerleme Raporu** (Stock Valuation Report) | Stock value per warehouse and currency (moving average, no currency translation). | Item breakdown, Tarih itibarıyla (As of date); a row with an unknown value shows "Bilinmiyor" (Unknown). |
| **Hareketsiz Stok** (Slow-Moving Stock) | Stock that has not had any movement for the specified period. | Threshold 30 / 60 / 90 / 180 / 365 days (default 90); Hareketsiz Gün (Days Without Movement). |
| **Stok Yaş Analizi** (Stock Aging Analysis) | Age distribution of stock on hand by receipt date. | Age brackets 30, 60, 90, 180, 365 days; Ort. Yaş (Avg. Age), En Eski Giriş (Oldest Receipt). Approximate, based on a first-in, first-out assumption. |
| **ABC Analizi** (ABC Analysis) | A · B · C class by period consumption (value or movement frequency). | Limits A 80%, B 95%; **Karta Yaz** (Write to Item) writes the class to the product master record — the count scope and the periodic count read this class. |
| **Stok Devir Hızı** (Inventory Turnover) | The ratio of period consumption to average stock, and how many days the stock lasts. | Devir Hızı (Turnover Rate), Kapsama (Coverage; "\{n\} gün" (\{n\} days)). |
## Related
- [Stock balance](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-bakiyesi)
- [Batch and serial number tracking process](https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme)
---
# Post a stock adjustment
> A stock increase or decrease document with a reason code that aligns the recorded quantity with physical reality; scrap documents and reversal.
URL: https://erpdocs.corexlogic.com/en/stok/islemler/stok-duzeltmesi-yapma
- **Type:** Task
- **Module:** Inventory
- **Menu path:** Stok Yönetimi › Stok İşlemleri › Stok Düzeltmeleri › Yeni Stok Düzeltmesi (Inventory › Stock Transactions › Stock Adjustments › New Stock Adjustment)
- **Screen route:** `/erp/inventory/adjustments/new`
- **Required permission:** `erp-inventory-adjustments.create`
- **Prerequisites:**
- At least one active **hareket nedeni** (movement reason) of the type to be selected (Stok Artırma Düzeltmesi / Stok Azaltma Düzeltmesi (Stock Increase Adjustment / Stock Decrease Adjustment)) is defined (**Yönetim › Özelleştirme › Stok › Hareket Nedenleri** (Administration › Customization › Inventory › Movement Reasons)).
- The product is not in the scope of an open physical inventory count in that warehouse.
A stock adjustment posts differences detected outside a physical inventory count (breakage, loss, count report) to
the ledger with a reason code. In planned counts, the difference is posted from the
[count document](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-farkini-kaydetme).
## Steps
1. On the **Stok Yönetimi › Stok İşlemleri › Stok Düzeltmeleri** (Inventory › Stock Transactions › Stock Adjustments) screen, click **Yeni Stok Düzeltmesi** (New Stock Adjustment).
2. Select the **Düzeltme Türü** (Adjustment Type): **Stok Artırma Düzeltmesi** (Stock Increase Adjustment) or **Stok Azaltma Düzeltmesi** (Stock Decrease Adjustment). The **İş Tarihi** (Business Date) is today; enter the report number in **Referans** (Reference).

1. Adjustment type — increase or decrease
2. Business date
3. Add line
4. Save Adjustment — document is immutable
3. Open a line with **Satır ekle** (Add line); enter the **Ürün** (Product), **Depo** (Warehouse), if needed **Lokasyon** (Storage Location), **Stok Durumu** (Stock Status), **Neden** (Reason), **Miktar** (Quantity) and **Birim** (Unit). For a lot- or serial-managed card, select the lot/serial numbers.
4. Click **Düzeltmeyi kaydet** (Save adjustment).
**Result:** The document is posted to the ledger as soon as it is saved: an increase as **Stok Fazlası Düzeltmesi** (Stock Surplus Adjustment) (receipt), a decrease as **Stok Eksiği Düzeltmesi** (Stock Shortage Adjustment) (issue). The document cannot be changed or deleted; if it is wrong, a reversal document is posted with **Geri al** (Reverse) in the details.
## Scrap document
For stock that has become unusable, use **Stok İşlemleri › Hurda İşlemleri › Yeni Hurda Fişi** (Stock Transactions ›
Scrap Transactions › New Scrap Document). The lines are the same as for an adjustment, the reason type is **Hurda**
(Scrap); lots and serial numbers are selected only from existing stock. The button is **Hurda fişini kaydet** (Save
scrap document); the movement type is **Hurda** (Scrap) (issue). For rejected quality stock, **Kalite Kontrol ›
Reddedilen Stok › Hurdaya Ayır** (Quality Control › Rejected Stock › Scrap) opens the form pre-filled.
## Reverse
In the adjustment or scrap details, **Geri al** (Reverse) → **İş Tarihi** (Business Date), **Gerekçe** (Reason)
(mandatory), the lines and quantities to reverse (blank = the entire remainder) → **Geri almayı kaydet** (Save
reversal). A reversal posts a movement in the opposite direction and cannot itself be changed.
## What you need to know
- Because no movement reason is defined in the demo environment, the form shows the warning "Uygun bir hareket
nedeni tanımlanana kadar bu belge kaydedilemez." (This document cannot be saved until a suitable movement reason
is defined.); the saving step was not run for this document in the demo.
- The reason is mandatory on every line and must match the type: "\{n\}. satır: '\{kod\}' nedeni '\{tür\}' türünde —
bu belge '\{tür\}' nedeni bekliyor." (Line \{n\}: reason '\{kod\}' is of type '\{tür\}' — this document expects a
reason of type '\{tür\}'.)
- The stock status does not fall back to the default: "\{n\}. satır: stok durumu zorunludur — varsayılana
düşülmez." (Line \{n\}: the stock status is mandatory — it does not fall back to the default.)
- For a decrease, if stock is insufficient or the stock is in quarantine, the movement rules apply
([Stock movements › Rejection messages](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-hareketleri#ret-iletileri)).
- A reversal cannot exceed the remainder: "Geri alınabilir miktar aşılıyor. Kalan: \{r\}, istenen: \{q\}." (The
reversible quantity is exceeded. Remaining: \{r\}, requested: \{q\}.)
## Related
- [Inventory transactions screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-islemleri)
- [Inventory settings › Movement Reasons](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-tanimlari#hareket-nedenleri)
---
# Process guides
> End-to-end business processes — which screens are used, and in which order, with a real demo scenario.
URL: https://erpdocs.corexlogic.com/en/surecler
A business transaction usually spans several screens and several modules: a quotation becomes a sales order, the
sales order becomes production and a delivery, and the delivery becomes an invoice. Process guides walk through this
journey screen by screen, using a concrete scenario from a fictitious demo company. For each stage, they give the
document's new status, its effect on stock and planning, and the task page with the detailed click-by-click steps.
## Sales
- [Quotation to invoice](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya) — Quotation → sales order → delivery and goods issue → invoice.
- [Contract-based sales](https://erpdocs.corexlogic.com/en/surecler/sozlesmeli-satis) — Sales contract → call-off orders → consumption of the contract.
- [Sales return](https://erpdocs.corexlogic.com/en/surecler/satis-iadesi) — Return request → approval → return against the delivery → stock status.
## Purchasing and inventory
- [Requisition to goods receipt](https://erpdocs.corexlogic.com/en/surecler/talepten-mal-kabule) — Requisition → request for quotation → purchase order → approval → goods receipt → return.
- [Physical inventory](https://erpdocs.corexlogic.com/en/surecler/stok-sayimi) — Creating and freezing the count → count entry → difference → posting with a second signature.
- [Batch and serial number tracking](https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme) — Batch-tracked receipt → quarantine and quality decision → FEFO issue → tracing the batch to the customer.
## Production and logistics
- [Order to production](https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime) — Configurable product sales order → production order and sub-orders → consumption, confirmation, output → delivery.
- [Make-to-stock production](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim) — Forecast → MRP → planned order → production order → finished goods stock.
- [Shipment planning](https://erpdocs.corexlogic.com/en/surecler/sevkiyat-planlama) — Open deliveries → picking → packing → shipment → goods issue → proof of delivery.
## Administration and setup
- [Approval workflow](https://erpdocs.corexlogic.com/en/surecler/onay-akisi) — Approval template → submitting for approval → rejection or approval → document status.
- [New user and permissions](https://erpdocs.corexlogic.com/en/surecler/yeni-kullanici-ve-yetki) — Role design → account → restriction → first sign-in → permission check → closing the account.
- [Setup with data import](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum) — Empty installation → workbook import order → Kontrol Et (Validate) → Aktar (Import) → review.
> **Sample data**
The companies, items, document numbers and amounts in the scenarios are taken from a fictitious demo installation. In
your own installation the codes and names are different; the screens and steps are the same.
---
# Quotation to invoice
> The steps of the sales process, from the sales quotation to the e-Invoice.
URL: https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya
The path of a sale in CoreX ERP: a **quotation** is given to the customer; when the quotation is accepted, it is
converted into a **sales order**; the sales order is approved; a **delivery** is created from the warehouse and the
**goods issue** is posted; and an **invoice** is issued from the delivery.
```
Sales Quotation ──► Sales Order ──► Delivery ──► Goods Issue ──► e-Invoice
(Gönderildi) (Onaylandı) (Açık) (stock reduced) (sent to GİB)
```
## Step-by-step tasks
- [1. Create a quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklif-olusturma) — Customer, validity, lines and price.
- [2. Send the quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-gonderme) — Marking as sent, and e-mail.
- [3. Convert to sales order](https://erpdocs.corexlogic.com/en/satis/islemler/teklifi-siparise-donusturme) — Full or partial conversion.
- [4. Approve the sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama) — Commercial approval; delivery and production are opened.
- [5. Create a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimat-olusturma) — One step: delivery and goods issue together.
- [5a. Open delivery + goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/acik-teslimat-olusturma) — Two steps: first an open delivery, then the goods issue.
- [6. Invoice](https://erpdocs.corexlogic.com/en/satis/islemler/fatura-olusturma) — Invoice via e-Document, or the reference of an invoice issued outside the system.
> **Example used in this guide**
From the demo company: sale of **MAM-0008 Sıvı Deterjan 5 LT** (liquid detergent, 5 L) to the customer **M-0004 Trakya
Et ve Et Ürünleri A.Ş.** The price is proposed from the customer's price list (the Standard list).
## 1. Prepare the quotation
**Satış › Teklif Yönetimi › Satış Teklifi Oluştur** (Sales › Quotation Management › Create Sales Quotation)
1. In the **Müşteri** (Customer) field, type the customer's code or name, press **Enter** and select the customer from
the list. The payment term and shipping method are proposed from the customer master record.
2. **Geçerlilik Tarihi** (Valid Until) defaults to 30 days from today; change it if necessary.
3. On an item line, type and select the product, and enter the quantity. The **Birim Fiyat** (Unit Price) is proposed
from the price list; the source of the proposal is shown below the cell.
4. Click **Kaydet** (Save; Ctrl+S). The quotation is saved as **Taslak** (Draft) and its details open.
Details: [Sales quotations](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-teklifleri).
## 2. Send the quotation
In the quotation details, click **Gönder** (Send). A quotation that has been sent is **locked**: any change to prices,
lines or terms now opens a new revision via **Revize Et** (Revise).
- **Gönder** (Send) only marks the quotation. To e-mail it to the customer, use **Çıktı › E-posta ile Gönder** (Output ›
Send by E-mail); the PDF is also available from the same menu.
- If an **approval template** is defined for quotations in your installation, the button is named **Onaya Gönder**
(Submit for Approval). On final approval, the quotation automatically moves to **Gönderildi** (Sent) status.
## 3. Convert the quotation to a sales order
When the customer accepts the quotation, click **Siparişe Dönüştür** (Convert to Order) in the quotation details. In the
dialog that opens, select the sales order type and mark the lines and quantities to be converted. You can also convert
part of the quotation; the remainder is converted to a sales order later with **Kalanı Dönüştür** (Convert Remaining).
The sales order is created as a **draft**; prices and configurations are carried over from the quotation unchanged.
> **Expired quotation**
A quotation whose validity date has passed cannot be converted to a sales order. First open a new revision that
extends the validity with **Revize Et** (Revise).
## 4. Approve the sales order
In the sales order details, click **Siparişi Onayla** (Approve Order). The lines of an approved sales order can no longer
be edited, and the sales order enters planning (inventory and MRP) as demand. Details: [Sales
orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri).
If the customer's credit limit is exceeded, the sales order is flagged with the **Kredi blokesi** (Credit block) badge
and no delivery can be created; the block is released by the credit manager.
## 5. Create the delivery and issue the goods
**Lojistik Yönetimi › Giden Teslimat › Giden Teslimat Oluştur** (Logistics Management › Outbound Delivery › Create
Outbound Delivery)
1. The screen lists the approved sales order lines whose delivery date has been reached. Select the lines to be
delivered.
2. Select the **Depo** (Warehouse) and the **planned shipping date**, then click **Teslimat Oluştur** (Create Delivery).
The delivery is created in **Açık** (Open) status; stock is not yet reduced, and the lines are reserved on the sales
order.
3. In the delivery details, click **Mal Çıkışını Kaydet** (Post Goods Issue); enter the storage location and the lot or
serial number for each line. Posting reduces the stock, and the delivery can no longer be changed.
4. Print the delivery note with **Çıktı › Yazdır** (Output › Print), or, if e-Delivery Note (e-İrsaliye) is enabled,
click **e-İrsaliye Oluştur** (Create e-Delivery Note).
Details: [Delivery and goods issue](https://erpdocs.corexlogic.com/en/satis/ekranlar/teslimat).
## 6. Issue the invoice
**Satış › Faturalama › Faturalanmamış Teslimatlar** (Sales › Billing › Unbilled Deliveries)
1. Select the deliveries to be invoiced and click **Fatura Oluştur** (Create Invoice). The invoice is created as
**Taslak** (Draft); prices and VAT come from the sales order.
2. Check the date and the note in the draft, then click **Kesinleştir** (Finalize). A finalized invoice cannot be
edited or deleted.
3. Transmit the invoice to the integrator with **GİB'e Gönder** (Send to GİB). A sent invoice cannot be withdrawn; an
e-Invoice (e-Fatura) is corrected with a return invoice, and an e-Archive invoice (e-Arşiv) by cancellation.
Details: [Billing](https://erpdocs.corexlogic.com/en/satis/ekranlar/faturalama).
## Common situations
| Situation | What to do |
|---|---|
| The customer did not want the quotation | In the quotation details, click **Kaybedildi** (Lost) and select the loss reason (price, delivery time, competitor…). The quotation appears in the Quotation Win/Loss report. |
| Part of the sales order will no longer be shipped | In the sales order details, click **Siparişi Kapat** (Close Order); a reason is required. A sales order with a shipped quantity cannot be cancelled; it is closed. |
| A line could not be confirmed because of insufficient stock | The sales order line shows **Backorder**. When stock arrives, confirm it again on the **Backorder İşleme** (Backorder Processing) screen. |
| Incorrect goods issue | In the delivery details, click **Teslimat Düzeltmesi Oluştur** (Create Delivery Correction) — the goods issue is not deleted; it is reversed with a correction document. |
---
# Contract-based sales
> Sales contract, call-off orders and consumption of the contract — the price comes from the contract, and the target cannot be exceeded.
URL: https://erpdocs.corexlogic.com/en/surecler/sozlesmeli-satis
When a price and quantity agreement is made with a customer for a long period, such as one year, the agreement is
recorded as a **sales contract** (satış sözleşmesi). The customer places orders as needed; the lines of these sales
orders are linked to the contract (**call-off order** — çağrı siparişi). The price comes from the contract, the target
cannot be exceeded, and the **Çağrılan** (Called Off) / **Kalan** (Remaining) quantities of the contract are tracked
automatically from approved sales orders.
> **Scenario**
A cleaning products agreement was made with **M-0019 Lara Kıyı Otelcilik ve Turizm A.Ş.** for the period
01.11.2026–31.10.2027: **MAM-0008 Sıvı Deterjan 5 LT** (liquid detergent, 5 L), 2,000 units at 235.00 TRY; **MAM-0009
Yüzey Temizleyici 1 LT** (surface cleaner, 1 L), 3,000 units at 90.00 TRY. In November the hotel places two sales
orders: 300 and 400 canisters of detergent.
```
Sales Contract SSZ-2026-000001 ──► Put into Effect ──► Call-off orders ──────────────► Close
(Taslak) (Yürürlükte) SS-2026-000005 · 300 (Onaylandı) (Kapandı)
SS-2026-000009 · 400 (Onaylandı)
Called off 700 · Remaining 1,300
```
## 1. Prepare the contract
**Satış › Sipariş Yönetimi › Satış Sözleşmesi Oluştur** (Sales › Order Management › Create Sales Contract)
1. **Tür** (Type): *Miktar Sözleşmesi* (Quantity Contract — a target quantity per item). For a total amount target,
select *Değer Sözleşmesi* (Value Contract) and enter the **Hedef Tutar (net)** (Target Amount, net).
2. **Müşteri** (Customer): M-0019. The **Satış Kanalı** (Sales Channel) and **Para Birimi** (Currency) determine which
sales orders can call off the contract: a call-off can be made only from a sales order in the same channel and
currency.
3. **Geçerlilik Başlangıcı** (Valid From) 01.11.2026, **Bitiş** (Valid To) 31.10.2027.
4. Add the two products with **Ürün ekle** (Add product); on the lines, enter the **Hedef Miktar** (Target Quantity) and
**Birim Fiyat (net)** (Unit Price, net).
5. Click **Taslağı Kaydet** (Save Draft).

1. Type — quantity or value contract
2. Validity range
3. Add product
4. Target quantity — call-offs cannot exceed it
5. Contract price — copied to the order
6. Save Draft
**Result:** **SSZ-2026-000001** — **Taslak** (Draft). A draft can be edited; no call-off can be made from it.
Details: [Create a sales contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesme-olusturma).
## 2. Put the contract into effect
In the contract details, click **Yürürlüğe Al** (Put into Effect). The status changes to **Yürürlükte** (In Effect); the
buttons change to **Kapat** (Close) and **İptal Et** (Cancel). A contract in effect can no longer be edited.
## 3. Enter the call-off orders
**Satış › Sipariş Yönetimi › Satış Siparişi Oluştur** (Sales › Order Management › Create Sales Order)
1. **Müşteri** (Customer) M-0019; on the line, **MAM-0008**, **Miktar** (Quantity) 300.
2. Open the line details (**10. satır ayrıntısını göster** — Show line 10 details) and select
*SSZ-2026-000001 · 235,00 · kalan 2.000 ADET* from the **Sözleşme** (Contract) list. The unit price changes to 235,
the line discount is reset to zero, and "Fiyat sözleşmeden gelir; hedef aşılamaz" (The price comes from the
contract; the target cannot be exceeded) is shown next to it.
3. Click **Siparişi Oluştur** (Create Order), then **Siparişi Onayla** (Approve Order) in the details.

1. Line details — expanded
2. Contract — number, price and remaining
3. Price from contract, no discount
**Result:** **SS-2026-000005** is approved. The second sales order, **SS-2026-000009** (400 units), was entered the
same way. Although the customer's special price (239 TRY) is shown below the line, on a contract line the price comes
from the contract. Details: [Order from a contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesmeden-siparis).
## 4. Monitor consumption
Contract details — **Kalemler** (Items) and **Çağrı Siparişleri** (Call-off Orders):

1. Status: Released — call-offs allowed
2. Called off — from approved orders
3. Remaining target
4. Call-off orders
5. Close — remainder no longer callable
| Item | Target | Called off | Remaining |
|---|---|---|---|
| MAM-0008 Sıvı Deterjan 5 LT | 2,000 ADET | 700 | 1,300 |
| MAM-0009 Yüzey Temizleyici 1 LT | 3,000 ADET | 0 | 3,000 |
- **Çağrılan** (Called Off) is counted only from sales orders in **Onaylandı** (Approved) status; a draft or cancelled
sales order does not consume the contract.
- If a sales order or line is closed, only the shipped quantity counts as called off; the rest returns to the contract.
- The sales order selection list shows the contract's current remaining quantity (e.g. "kalan 1.300 ADET" — 1,300
units remaining).
A sales order that exceeds the target is not saved. Example: with 700 units already called off, a new line of 1,500
units → "MAM-0008: SSZ-2026-000001 hedefi 2000 ADET — çağrılan 2200." (MAM-0008: target of SSZ-2026-000001 is 2000
units — called off 2200.)
Call-off orders are delivered and invoiced through the normal sales flow: [Quotation to invoice](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya).
## 5. Close the contract
At the end of the period, or when the agreement ends early, click **Kapat** (Close) in the details → the **Sözleşmeyi
Kapat** (Close Contract) dialog ("Kalan artık çağrılmaz; geçmiş çağrılar değişmez." — The remainder can no longer be
called off; past call-offs do not change.); **Gerekçe** (Reason) is required. The status changes to **Kapandı**
(Closed). A contract that has never been called off can be cancelled with **İptal Et** (Cancel); a contract with
call-offs cannot be cancelled.
## FAQ / Troubleshooting
| What happened | Cause and what to do |
|---|---|
| The **Sözleşme** (Contract) field is not shown on the sales order line | For the line's product and unit, the customer has no contract that is in effect, valid on the order date and in the order's channel; or the currency is different. Make sure the line details are open. |
| "MAM-0008: SSZ-2026-000001 hedefi 2000 ADET — çağrılan 2200." (target of SSZ-2026-000001 is 2000 units — called off 2200) | The approved call-offs together with this sales order exceed the target. Reduce the quantity, or open a line without a contract for the rest. |
| "SSZ-2026-000001 yürürlükte değil — çağrı yapılamaz." (SSZ-2026-000001 is not in effect — no call-off can be made) | The contract is in draft, closed or cancelled. |
| "SSZ-2026-000001 sipariş gününde geçerli değil." (SSZ-2026-000001 is not valid on the order date) | The order date is outside the validity period. |
| "MAM-0008: fiyat sözleşmeden gelir (235 TRY, satır iskontosu yok)." (the price comes from the contract — 235 TRY, no line discount) | The price or discount was changed on a contract line. |
| "MAM-0008: bedelsiz kalem sözleşmeden çağrılmaz." (a free-of-charge item cannot be called off from a contract) | A free-of-charge item category cannot be linked to a contract. |
| "Sözleşmeye bağlı sipariş satırı var — iptal yerine kapatın." (There are sales order lines linked to the contract — close it instead of cancelling) | A contract with call-offs cannot be cancelled; use **Kapat** (Close). |
| "Yalnız taslak sözleşme düzenlenir." (Only a draft contract can be edited.) | A contract in effect cannot be changed; open a new contract. |
## Step-by-step tasks
- [1. Create a contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesme-olusturma) — Type, customer, validity, item and target.
- [2. Order from a contract](https://erpdocs.corexlogic.com/en/satis/islemler/sozlesmeden-siparis) — Selecting the contract on the line.
- [3. Approve the sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama) — An approved sales order consumes the contract.
---
# Sales return
> Goods coming back from the customer — return request, approval, receiving the return from the delivery into stock (warehouse, stock status, batch) and what follows.
URL: https://erpdocs.corexlogic.com/en/surecler/satis-iadesi
In CoreX ERP, goods that were shipped to a customer and come back are handled with two documents: a **return
request** to agree on the quantity and reason before the goods come back, and a **sales return** to take the goods
into stock when they arrive at the warehouse. The request is optional; the return is always received from the
**delivery** with which the goods were shipped.
> **Scenario**
**M-0004 Trakya Et ve Et Ürünleri A.Ş.** reports that 12 cans from batch **DET-2609-002** of the item
**MAM-0008 Sıvı Deterjan 5 LT**, received with delivery **SV-2026-000001** dated 01.11.2026, arrived with cracked
caps. On 02.11.2026 the sales team opens a return request for 12 units; when the goods arrive at the warehouse they
are received into **Mamul Deposu / RAF-M2** (Finished Goods Warehouse / RAF-M2) in the **Karantina**
(Quarantine) stock status, because they will await quality inspection.
```
Delivery SV-2026-000001 ──► Return Request IT-2026-000001 ──► Approval ──► Sales Return SI-2026-000001
(Goods Issue Posted) (Awaiting Approval) (Approved) (stock +12, Quarantine)
│ │
└── Reject / Cancel (final status) └── Reverse Return (for a wrong posting)
```
## 1. Find the delivery
**Lojistik Yönetimi › Giden Teslimat › Teslimatlar** (Logistics › Outbound Delivery › Deliveries) — open the
delivery details. The return buttons appear only on a delivery in **Mal Çıkışı Kaydedildi** (Goods Issue Posted)
status: **İade Talebi Aç** (Open Return Request) and **İade Al** (Receive Return). **İade Geçmişi** (Return History)
at the bottom of the page lists the returns received from this delivery.

1. Returns only after goods issue
2. Open Return Request — agree first
3. Receive Return — goods arrived
4. Returns taken from this delivery
## 2. Open the return request
On the delivery details, click **İade Talebi Aç** (Open Return Request) → **Yeni İade Talebi** (New Return
Request):
1. **Talep Tarihi** (Request Date) (cannot be earlier than the delivery date) and **İade Nedeni** (Return Reason):
*Hasarlı teslim* (Damaged on delivery).
2. **Açıklama** (Description): "Müşteri DET-2609-002 lotundan 12 bidonun kapağının çatlak geldiğini bildirdi."
(The customer reported that 12 cans from batch DET-2609-002 arrived with cracked caps.)
3. In the **Kalemler** (Items) table, enter **12** in the **Talep** (Requested) cell of line 20 (batch
DET-2609-002, **Dönebilir** (Returnable) 220).
4. Click **Talebi Aç** (Open Request).

1. Return reason
2. Returnable — shipped − reversed − returned
3. Requested quantity
4. Open Request — stock unchanged
**Result:** **IT-2026-000001** — **Onay Bekliyor** (Awaiting Approval). The request is a decision document;
**stock does not change**. Details: [Open a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebi-acma).
## 3. Decide on the request
**Satış › İade Yönetimi › İade Talepleri** (Sales › Returns Management › Return Requests) — the approver sees their
queue with the **Durum: Onay Bekliyor** (Status: Awaiting Approval) filter and opens the request.

1. Status
2. Approve — someone other than the requester
3. Reject — with a reason
4. Segregation of duties
5. Quantity returned against the request
The screenshot above is the screen of the person who opened the request (Demo Kullanıcı): **Onayla** (Approve) is
disabled. The decision is made by another approval authority — in the demo environment **Demo Onaylayıcı** (Sales
Manager):

1. Status
2. Approve — someone other than the requester
3. Reject — with a reason
4. Requested · Returned · Remaining
- **Onayla** (Approve) → **Onaylandı** (Approved) (no dialog opens): the return can be received from this request,
for the request's items and up to its remaining quantity. The **Karar** (Decision) field records who made the
decision and when; the buttons become **İade Al** (Receive Return) and **Kapat** (Close).
- **Reddet** (Reject) (a **Red gerekçesi** — rejection reason — is required) → **Reddedildi** (Rejected); **İptal
Et** (Cancel) (an **İptal gerekçesi** — cancellation reason — is required) → **İptal Edildi** (Cancelled). Both are
final statuses.

1. Status
2. Receive Return — form linked to the request
3. Close — remainder not expected, with a reason
4. Who decided and when
The person who opened the request cannot approve it: the button is disabled and reads "Kendi açtığınız talebi
onaylayamazsınız; kararı başka bir yetkili verir." (You cannot approve a request you opened yourself; another
authorized user makes the decision.) Details: [Approve or reject a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebini-onaylama).
> **In the demo environment**
IT-2026-000001 was approved by Demo Onaylayıcı on 02.11.2026. The example return SI-2026-000001 (step 4) was
received directly from the delivery before the request was approved, so it is not linked to the request: the
request's **Dönen** (Returned) quantity is 0 and **Kalan** (Remaining) is 12. The **İade Al** (Receive Return)
button of the approved request opens the same form with the line "IT-2026-000001 onaylı iade talebinden — yalnız
talebin kalemleri, talebin kalanı kadar." (From approved return request IT-2026-000001 — only the request's items,
up to the request's remaining quantity.); the line's **İade edilebilir** (Returnable) quantity is the request's
remaining quantity (12), and no return can be received from a delivery line that is not in the request.

1. Request link — only its items, up to the remainder
2. Line with nothing left to return
3. Return this line
4. Return quantity — up to the request remainder
5. Stock status — e.g. Quarantine
6. Save — stock increases at once
## 4. Receive the return into stock when the goods arrive
On the approved request, click **İade Al** (Receive Return), or on the delivery details click **İade Al** → **Yeni
Satış İadesi** (New Sales Return):
1. **İade Tarihi** (Return Date) and **İade Nedeni** (Return Reason): *Hasarlı teslim* (Damaged on delivery);
**Açıklama** (Description): "12 bidon kapağı çatlak geldi; kalite kontrolü için karantinaya alındı." (12 can
caps arrived cracked; placed in quarantine for quality inspection.)
2. On line 20, click **Bu satırı iade al** (Return this line) → **İade Miktarı** (Return Quantity) 12.
3. **Giriş Deposu** (Receiving Warehouse) *MAMUL — Mamul Deposu*, **Lokasyon** (Storage Location) *RAF-M2 — Mamul
Rafı 2*, **Stok Durumu** (Stock Status) *KARANTINA — Karantina*.
4. Click **İadeyi Kaydet ve Stoğa Al** (Save Return and Receive into Stock).

1. Return reason
2. Return this line
3. Return quantity — up to the returnable
4. Receiving warehouse and location
5. Stock status — e.g. Quarantine
6. Save — stock increases at once
**Result:** **SI-2026-000001** is saved and the goods **enter stock at the same time**. The document cannot be
changed.

1. Receiving warehouse / location
2. Stock status received into
3. Returned lot or serial
4. Reverse Return — for a wrong entry
**Stock effect:**
| | MAM-0008 · batch DET-2609-002 |
|---|---|
| Before the return | On hand 0 (all 220 units had been shipped) |
| After the return | **MAMUL / RAF-M2 / Karantina: on hand 12, available 0** |
| Value | 1.500,00 TRY — the goods come in at the cost at which they left with the delivery (125,00 TRY/unit) |
Stock in the quarantine status is not counted as available; it is not allocated to sales or shipments. After the
quality decision, change the stock status with **Stok Yönetimi › Mal Hareketleri › Stok Durumu Değişimi**
(Inventory › Goods Movements › Stock Status Change).
**Other effects:**
- Sales order **SS-2026-000001** stays **shipped** (a return means the delivery did take place; it is not a
correction).
- The returnable quantity of the delivery line drops from 220 to 208; SI-2026-000001 appears in **İade Geçmişi**
(Return History).
- If the return was received from a request, the request's **Dönen** (Returned) quantity increases; when all items
have come back, the request automatically becomes **Kapandı** (Closed).
- The return amount (3.528,00 TRY, approximately from the order price) is deducted from the customer's rebate
basis — in the example, **İadeler −2.940,00 TRY** (Returns, net) in rebate agreement PRA-2026-000001.
- The invoice side of the return is in Finance.
Details: [Receive a return from a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma).
## 5. Wrong posting: reverse the return
On the return details, click **İadeyi Geri Al** (Reverse Return) → **İade geri alınsın mı?** (Reverse the
return?): the stock receipt is reversed with today's date, the document remains as "geri alınmış" (reversed) and
the goods can be received as a return again. **Geri Alma Gerekçesi** (Reversal Reason) is required. If a return
received from a request is reversed, the quantity goes back to the request.
## FAQ / Troubleshooting
| What happened | Cause and what to do |
|---|---|
| **İade Talebi Aç** (Open Return Request) / **İade Al** (Receive Return) is missing on the delivery | The delivery is **Açık** (Open) or **İptal Edildi** (Cancelled) (the goods did not leave), or you do not have the permission (`erp-sales-return-requests.create`, `erp-sales-returns.create`). |
| **Onayla** (Approve) is disabled: "Kendi açtığınız talebi onaylayamazsınız; kararı başka bir yetkili verir." (You cannot approve a request you opened yourself; another authorized user makes the decision.) | Segregation of duties. Another approval authority must open or approve the request. Server message: "Kendi açtığınız iade talebini onaylayamazsınız. Kararı başka bir yetkili vermeli." (You cannot approve a return request you opened yourself. Another authorized user must make the decision.) |
| "İade talebi henüz onaylanmadı; onaysız talepten iade alınamaz." (The return request has not been approved yet; a return cannot be received from an unapproved request.) | The request is Onay Bekliyor (Awaiting Approval). A decision must be made first — or receive the return from the delivery without a link to the request. |
| "İade talebi kapalı; bu talepten iade alınamaz." (The return request is closed; a return cannot be received from this request.) | The request is Kapandı (Closed), Reddedildi (Rejected) or İptal Edildi (Cancelled). |
| "10. talep satırı: iade miktarı (15) talebin kalanını (12) aşıyor." (Request line 10: the return quantity (15) exceeds the request's remaining quantity (12).) | A return received from a request cannot exceed the requested quantity (the numbers are examples). |
| "20. teslimat satırı daha önce tamamen iade edilmiş ya da geri alınmış." (Delivery line 20 has already been fully returned or reversed.) | No returnable quantity is left on the line. |
| "Yalnız karar bekleyen talep iptal edilebilir; onaylanmış talep kapatılır." (Only a request awaiting a decision can be cancelled; an approved request is closed.) | If the remaining quantity is no longer expected on an approved request, use **Kapat** (Close). |
| "İade tarihi teslimat tarihinden önce olamaz." (The return date cannot be earlier than the delivery date.) | Correct the date. |
| "'MAMUL' deposunda lokasyon seçimi zorunlu." (A storage location must be selected in warehouse 'MAMUL'.) | In a warehouse with storage location tracking, select a **Lokasyon** (Storage Location) (the warehouse code is an example). |
| "Stok bu sırada başka bir işlemle değişti. Sayfayı yenileyip tekrar deneyin." (Stock was changed by another transaction in the meantime. Refresh the page and try again.) | Another transaction at the same time; update the form with **İade bilgilerini yenile** (Refresh return information). |
| "İade faturalanmış (fatura, fatura referansı ya da gelen iade faturası bağlı) — geri almadan önce o bağı kaldırın." (The return has been invoiced (an invoice, invoice reference or incoming return invoice is linked) — remove that link before reversing.) | An invoiced return cannot be reversed. |
## Step-by-step tasks
- [1. Open a return request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebi-acma) — From the delivery, before the goods come back.
- [2. Decide on the request](https://erpdocs.corexlogic.com/en/satis/islemler/iade-talebini-onaylama) — Approval, rejection, closing.
- [3. Receive a return from a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/iade-alma) — Warehouse, stock status, batch and serial number.
- [Return without a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimatsiz-iade) — Goods coming back without a delivery.
---
# From requisition to goods receipt
> The steps of the procurement process, from the purchase requisition to the request for quotation, comparison, order, approval, partial goods receipt and return to supplier, with a sample scenario.
URL: https://erpdocs.corexlogic.com/en/surecler/talepten-mal-kabule
The path of a purchase in CoreX ERP: the need is reported as a **purchase requisition**, purchasing collects prices
from suppliers with a **request for quotation**, **compares** the quotations and selects the winner; the decision
creates a **draft order**. Once the order is **finalized** (after approval, if required), the goods are expected; the
goods that arrive are received into stock with a **goods receipt**; defective goods are returned to the supplier with
a **goods receipt reversal**.
> **Scenario**
The demo company's panel production line needs **200 units of HAM-0001 KONTAKTÖR 9A 4KW 220V AC** for November (need
date 20.11.2026). Purchasing asks two suppliers: **T-0001 Ege Şalt Malzemeleri Elektrik Ticaret Ltd. Şti.** and
**T-0002 Marmara Otomasyon Teknolojileri San. ve Tic. A.Ş.** Ege Şalt wins; the goods arrive at the **RAF-A** storage
location of **HAMMADDE — Hammadde Deposu** in two shipments (120 + 80). Because the 80 units of the second shipment
arrive with the wrong coil voltage, they are returned to the supplier and a replacement is received.
Documents (in the demo environment, 02.11.2026): TLP-2026-000001 → TKL-2026-000001 → SA-2026-000001 →
MK-2026-000001, MK-2026-000002 → MKG-2026-000001 → MK-2026-000003.
```
Purchase Requisition ──► Request for Quotation ──► Comparison and Decision ──► Purchase Order
TLP (Talep Edildi) TKL (Teklif Bekleniyor) (Karara Bağlandı) SA (Taslak)
│ Siparişi Kesinleştir (Finalize Order)
│ (with an approval template: Onaya Gönder → Onayla)
▼
SA (Sipariş Verildi) ── stock: in transit +200
│
┌─────────────────── Goods Receipt MK-1 (120) ─────────────────────┤ stock +120 → SA Kısmi Teslim
│ Goods Receipt MK-2 (80) ──────────────────────┤ stock +80 → SA Teslim Alındı
│ Reversal MKG-1 (80, reopen) ──────────────────┤ stock −80 → SA Kısmi Teslim
│ Goods Receipt MK-3 (80) ──────────────────────┘ stock +80 → SA Teslim Alındı
└── Requisition: Siparişe Bağlandı · Document Flow "teslim 200/200"
```
## 1. Open and submit the requisition
**Satın Alma › Talep Yönetimi › Satınalma Talebi Oluştur** (Procurement › Requisition Management › Create Purchase
Requisition)
The production planning user selects HAM-0001 with **Kalem Ekle** (Add Item); **Miktar** (Quantity) 200, **Ne Zaman
Lazım** (Needed By) 20.11.2026, **Açıklama** (Description) "Kumanda panosu üretimi için" (For control panel
production). With **Kaydet ve Gönder** (Save and Submit), the requisition becomes **Talep Edildi** (Requested) with
the number **TLP-2026-000001** and enters purchasing's agenda.

1. Requisition date (required)
2. Add Item — pick from the item list
3. Quantity — click the cell and type
4. Needed by
5. Save Draft — stays editable
6. Save and Submit — hands over to purchasing
- **Status:** Taslak (Draft) → Talep Edildi (Requested). (If an approval template were defined for the requisition,
it would first be **Onay Bekliyor** (Pending Approval).)
- **Stock / planning:** No effect. A requisition is a request; supply is created with the order.
- Details: [Create a purchase requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talep-olusturma).
## 2. Send a request for quotation
The purchasing specialist clicks **Teklif İsteği Oluştur** (Create Request for Quotation) in the requisition details.
The form opens with the requisition's remaining line (200 ADET, "talepten" (from requisition)). T-0001 and T-0002 are
invited with **Tedarikçi Seç** (Select Supplier); **Son Teklif Tarihi** (Quotation Deadline) 06.11.2026, **Konu**
(Subject) "Kontaktör 9A — kasım pano ihtiyacı" (Contactor 9A — November panel requirement). With **Kaydet ve Gönder**
(Save and Send), **TKL-2026-000001** becomes **Teklif Bekleniyor** (Awaiting Quotations); the item list can no longer
change.

1. Select Suppliers — invitees
2. Quote deadline — informational
3. Subject (required)
4. Currency — all quotes in this currency
5. Line from the requisition; quantity = remainder
6. Save and Send
- The **Teklifte** (In RFQ) mark is shown in the requisition details and the request for quotation appears in the
Belge Akışı (Document Flow).
- Details: [Create a request for quotation](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklif-istegi-olusturma).
## 3. Enter the quotations, compare them and decide
The prices received are entered with **Teklif Gir** (Enter Quotation) on the invitee cards:
| Supplier | Unit price | Disc. % | Net unit | Lead time | Payment |
|---|---|---|---|---|---|
| T-0001 Ege Şalt | 1,150.00 TRY | 3 | **1,115.50 TRY** | 5 days | 30 days' term |
| T-0002 Marmara Otomasyon | 1,196.00 TRY | — | 1,196.00 TRY | 8 days | 45 days' term |
In the **Karşılaştırma** (Comparison) table, the best net price is colored and marked. **En Uygun Teklifleri Seç**
(Select Best Quotations) selects T-0001; "En düşük net fiyat ve en kısa termin" (Lowest net price and shortest lead
time) is entered in **Gerekçe (zorunlu)** (Reason (mandatory)) and **Karara Bağla (1)** (Decide (1)) is clicked.

1. Enter Quote — per supplier
2. Best net price highlighted
3. Winner — supplier per line
4. Selection reason required
5. Selects the best quotes
6. Award — draft order is created

1. Status: Awarded
2. Winner and reason
3. Order created by the award
- **Status:** TKL → **Karara Bağlandı** (Decided). The draft order **SA-2026-000001** is created for the winner:
200 ADET × 1,150.00 TRY, 3% discount, net 223,100.00 TRY, VAT 20%, grand total 267,720.00 TRY; expected delivery
06.11.2026 (the longest lead time), payment terms "30 gün vade" (30 days' term; from the quotation), payment term
45 days and Incoterms DAP (from the supplier card).
- **Master data:** The HAM-0001 / T-0001 supplier price is updated to 1,115.50 TRY and a lead time of 5 days.
- The example shown on the screen (TKL-2026-000002) is an open request for quotation going through the same steps.
- Details: [Compare quotations](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklifleri-karsilastirma).
## 4. Complete and finalize the order
In the order details, **Teslim Deposu** (Delivery Warehouse) "HAMMADDE — Hammadde Deposu" is selected with **Düzenle**
(Edit), followed by **Değişiklikleri Kaydet** (Save Changes). Then **Siparişi Kesinleştir** (Finalize Order) → in the
window, **Siparişi Kesinleştir** again.

1. Confirm Order
- **Status:** Taslak (Draft) → **Sipariş Verildi** (Ordered). Supplier, item, quantity, price and VAT are locked.
- The requisition becomes **Siparişe Bağlandı** (Fully Ordered) (Siparişte (Ordered) 200).
- Because a delivery warehouse was selected, the inbound delivery **GLT-2026-000001** is opened and the responsible
persons of the HAMMADDE warehouse are notified.
- **Planning:** 200 units are counted as in-transit supply in Malzeme İhtiyaçları (Material Requirements); stock does
not change yet.
- The order PDF is delivered to the supplier with **Çıktı › PDF İndir** (Output › Download PDF) or **E-posta ile
Gönder** (Send by E-mail) ([Send an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-gonderme)).
### If approval is required
If there is an active approval template for Satın Alma Siparişi (Purchase Order) (example in the demo data: "Satın
alma siparişi — 50.000 TRY ve üzeri" (Purchase order — 50,000 TRY and above); stage 1 Satın Alma Müdürü (Purchasing
Manager), stage 2 Yönetici (Executive)), **Onaya Gönder** (Submit for Approval) is shown instead of **Siparişi
Kesinleştir** (Finalize Order). The submitted order becomes **Onay Bekliyor** (Pending Approval) and is locked; the
approvers click **Onayla** (Approve) in turn, and with the last approval the order automatically becomes **Sipariş
Verildi** (Ordered). In the demo environment, this path was tested with SA-2026-000005 (T-0002, 4 × HAM-0010,
71,040.00 TRY), approved in two stages by a second user ("Demo Onaylayıcı" (Demo Approver)).

1. Status: Awaiting approval — locked
2. Approve — approver of the current stage
3. Reject — back to draft
4. Current stage
5. Stage 1 decision and note
Details: [Finalize an order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme).
## 5. First shipment: partial goods receipt (120 units)
The supplier delivers 120 units with delivery note EGE-2026-4471. In the order details: **Mal Kabul Gir** (Enter Goods
Receipt) → **Tedarikçi İrsaliye No** (Supplier Delivery Note No) EGE-2026-4471 → the item's **Mal Kabul Ekle** (Add
Goods Receipt) → **Miktar** (Quantity) 120, **Depo** (Warehouse) HAMMADDE, **Lokasyon** (Storage Location) RAF-A →
**Mal Kabulü Kaydet** (Save Goods Receipt).

1. Purchase order
2. Delivery note no. — unique per supplier
3. Remaining order quantity
4. Received quantity — may be partial
5. Warehouse and location
6. Save Goods Receipt — stock is posted
- Document **MK-2026-000001**; the order is **Kısmi Teslim** (Partially Received) (Received 120, Remaining 80).
- **Stock:** HAM-0001 +120 in HAMMADDE / RAF-A (Sıfır (New) status); a "Mal Kabul" (Goods Receipt) receipt in Stok
Hareketleri (Stock Movements). The stock value increases by the order's net price (120 × 1,115.50 TRY).
- **Planning:** The in-transit quantity drops to 80.
- Details: [Create a goods receipt](https://erpdocs.corexlogic.com/en/satin-alma/islemler/mal-kabulu-olusturma).

1. Status: Partially Received
2. Post Goods Receipt — for the rest
3. Close Order — rest not expected
4. Received quantity
5. Remaining quantity
The screen above shows an order in Kısmi Teslim (Partially Received) (SA-2026-000002): **Mal Kabul Gir** (Enter Goods
Receipt) is used for the remainder, **Siparişi Kapat** (Close Order) if the remainder will not arrive.
## 6. Second shipment: goods receipt from the inbound delivery (80 units)
The remaining 80 units arrive with delivery note EGE-2026-4502. The warehouse clerk clicks the **Mal Kabulü Oluştur**
(Create Goods Receipt) button of the GLT-2026-000001 line in **Satın Alma › Mal ve Hizmet Kabulü › Teslim
Alınacaklar** (Procurement › Goods and Service Receipt › Due for Receipt). The form opens filled in with the delivery
(warehouse locked to HAMMADDE); because the quantity is filled with the delivery's remainder (200), it is corrected to
**80**, the order's remainder, storage location RAF-A is selected and the receipt is saved.

1. Open order without inbound delivery
2. Overdue only
3. Create Goods Receipt — from the row
- Document **MK-2026-000002**; the order is **Teslim Alındı** (Received); stock +80 (200 units in total from this
order).
> **Do not mix the two paths**
For an order with a delivery warehouse, make the goods receipt from the inbound delivery. A receipt made directly from
the order (here MK-2026-000001) does not reduce the delivery's open quantity; that is why the delivery form proposed
200. At the end of the process, the unused GLT-2026-000001 was closed with **İptal Et** (Cancel) and a reason in
**Lojistik Yönetimi › Gelen Teslimat › Gelen Teslimatlar** (Logistics Management › Inbound Delivery › Inbound
Deliveries).
## 7. Return the defective goods to the supplier
During quality inspection, it is found that the coil voltage of the second shipment is 24V DC. The goods receipt line
is returned as a whole: **Satın Alma › İade Yönetimi › Mal Kabulünü Geri Al** (Procurement › Return Management ›
Reverse Goods Receipt) → **Mal Kabul** (Goods Receipt) MK-2026-000002 → the line is selected → **Gerekçe** (Reason)
"Hatalı sevkiyat: bobin gerilimi 24V DC geldi, tedarikçiye iade" (Wrong shipment: coil voltage arrived as 24V DC,
returned to supplier) → **Siparişi yeniden aç** (Reopen order) stays selected (a replacement will come) → **Geri Almayı
Kaydet** (Save Reversal).

1. Reason
2. Reversed receipt line
3. Source receipt
- Document **MKG-2026-000001**; the order is **Kısmi Teslim** (Partially Received) again (Remaining 80).
- **Stock:** −80 from RAF-A with a "Giriş Geri Alma" (Receipt Reversal) issue.
- **Planning:** 80 units are counted as in transit again.
If approval is required for the return, a **Tedarikçi İade Talebi** (Supplier Return Request) is first opened from the
goods receipt details; the person who opened the request cannot approve it, another authorized person clicks
**Onayla** (Approve), and the reversal is posted from the request with **Tedarikçiye İade Et** (Return to Supplier).
In the demo environment, this path was tested with TIT-2026-000001 (the 50-unit damaged drum line of MK-2026-000004) →
approval → MKG-2026-000002; when the last line was returned, the request became **Kapandı** (Closed).

1. Status: Closed — all lines returned
2. Decided by
3. Returned quantity
4. Reversal written from the request
Details: [Return to supplier](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikciye-iade).
## 8. Receive the replacement and check the closure
The correct 80 units sent by the supplier are received with delivery note EGE-2026-4535 as **MK-2026-000003**. The
order is **Teslim Alındı** (Received); the requisition's Belge Akışı (Document Flow) shows "SA-2026-000001 · Teslim
Alındı · teslim 200/200" (SA-2026-000001 · Received · delivered 200/200).

1. Status: Received
2. Delivery warehouse
3. Received = ordered
4. Source RFQ

1. Status: Ordered
2. On order — quantity on confirmed orders
3. RFQ
4. Order and receipt status
**Final stock position:** HAM-0001 in HAMMADDE / RAF-A is +200 units compared with before the process (120 + 80 − 80 +
80). Invoicing is outside this guide: the receipt waits for the invoice in **Tedarikçi Faturaları › Faturalanmamış
Kabuller** (Supplier Invoices › Uninvoiced Receipts).
## FAQ / Troubleshooting
| What happened | Cause and what to do |
|---|---|
| "Taslak talep siparişe bağlanamaz. Talebi önce gönderin." (A draft requisition cannot be linked to an order. Submit the requisition first.) | The requisition is still Taslak (Draft). Use **Satın Almaya Gönder** (Submit to Purchasing) in the details. |
| **Teklif İsteği Oluştur** (Create Request for Quotation) is not shown on the requisition | The requisition is not Talep Edildi (Requested) / Kısmen Siparişte (Partially Ordered), has no remainder, or you do not have the `erp-procurement-rfqs.create` permission. |
| "Teklif isteği en az bir tedarikçiye gönderilmelidir." (The request for quotation must be sent to at least one supplier.) | Add invitees with **Tedarikçi Seç** (Select Supplier). |
| "'T-0002' 10. kaleme fiyat vermedi — karara bağlanamaz." ('T-0002' did not quote item 10 — it cannot be decided.) | That supplier's quotation does not include this item; select another supplier or enter its quotation. |
| "10. satır için seçim gerekçesi zorunludur." (A selection reason is mandatory for line 10.) | Fill in the **Gerekçe (zorunlu)** (Reason (mandatory)) field. |
| The order has no **Siparişi Kesinleştir** (Finalize Order), but **Onaya Gönder** (Submit for Approval) | The amount matches an active approval template. Submit it for approval; the approver decides. |
| "Bu sipariş onay gerektiriyor — doğrudan kesinleştirilemez, onaya gönderin." (This order requires approval — it cannot be finalized directly; submit it for approval.) | Same cause; the server rejects direct finalization. |
| **Onayla** (Approve) is not shown on an order in Onay Bekliyor (Pending Approval) | You are not in the role of the stage whose turn it is, or you submitted the order yourself. |
| "'X' için kaynak listesi zorunlu — tedarikçi listede yok (Kaynak Bulma › Tedarikçi Fiyatları'nda tanımlayın)." (A source list is mandatory for 'X' — the supplier is not in the list (define it in Sourcing › Supplier Prices).) | The item's source list is mandatory. Open a supplier price record or select a supplier in the list. |
| The order has no **Mal Kabul Gir** (Enter Goods Receipt) | The order is Taslak (Draft), Onay Bekliyor (Pending Approval), Teslim Alındı (Received), Kapatıldı (Closed) or İptal (Cancelled); or you do not have the `erp-procurement-receipts.create` permission. |
| "'HAM-0001' için kalan miktar aşılıyor. Kalan: 80, girilen: 200." (The remaining quantity for 'HAM-0001' is exceeded. Remaining: 80, entered: 200.) | The form opened from the inbound delivery proposed the delivery's remainder; reduce the quantity to the order's remainder. |
| "'EGE-2026-4471' irsaliye numarası bu tedarikçi için zaten kaydedilmiş." (Delivery note number 'EGE-2026-4471' has already been saved for this supplier.) | The same delivery note was entered twice; check the number. |
| "'HAMMADDE' deposuna mal kabul gelen teslimatla yapılır — Gelen Teslimatlar'dan teslimatı açıp mal kabule oradan geçin." (Goods receipts into the 'HAMMADDE' warehouse are made with an inbound delivery — open the delivery from Inbound Deliveries and proceed to the goods receipt from there.) | The warehouse has the "Mal kabul yalnız gelen teslimattan" (Goods receipt only from inbound delivery) setting. Use the delivery line in Teslim Alınacaklar (Due for Receipt). |
| The goods receipt date was rejected: "Belge tarihi (…) bugünden (…) eski olamaz. …" (The document date (…) cannot be earlier than today (…). …) | You do not have the back-dated posting permission; use today's date. |
| I cannot return part of a line | A reversal is per line and in full. Reverse the line and receive the remainder again; in future, enter the part at risk of return as a separate allocation. |
| "Kendi açtığınız tedarikçi iade talebini onaylayamazsınız. Kararı başka bir yetkili vermeli." (You cannot approve a supplier return request you opened yourself. Another authorized person must make the decision.) | Segregation of duties; another authorized person gives the approval. |
| The supplier will not send the remainder | Use **Siparişi Kapat** (Close Order) in the order details (Kapatma Nedeni (Closing Reason) mandatory). If nothing has been received, use **Siparişi İptal Et** (Cancel Order). |
| "Hiç teslim alınmamış sipariş kapatılmaz; tedarikçiyle ilişki gerçekleşmediyse siparişi iptal edin." (An order with nothing received cannot be closed; if the transaction with the supplier did not take place, cancel the order.) | Closing is possible only in Kısmi Teslim (Partially Received). |
## Step-by-step tasks
- [1. Create a requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talep-olusturma) — Report the need and submit it.
- [1a. Approve the requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talebi-onaylama) — If there is an approval template.
- [2. Create a request for quotation](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklif-istegi-olusturma) — Ask the suppliers.
- [3. Compare quotations](https://erpdocs.corexlogic.com/en/satin-alma/islemler/teklifleri-karsilastirma) — Quotation entry and decision.
- [3a. Order from requisition](https://erpdocs.corexlogic.com/en/satin-alma/islemler/talepten-siparis-olusturma) — Without quotations: Requisition Source Assignment.
- [4. Finalize the order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kesinlestirme) — Approval and finalization.
- [4a. Send the order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-gonderme) — PDF and e-mail.
- [5. Create a goods receipt](https://erpdocs.corexlogic.com/en/satin-alma/islemler/mal-kabulu-olusturma) — Full or partial receipt.
- [6. Return to supplier](https://erpdocs.corexlogic.com/en/satin-alma/islemler/tedarikciye-iade) — Return request and reversal.
- [7. Close the order](https://erpdocs.corexlogic.com/en/satin-alma/islemler/siparisi-kapatma-iptal) — Give up the remainder or cancel.
---
# Physical inventory count
> The physical inventory process, from opening and freezing the count scope to count entry, posting the difference with a second signature, and the stock effect.
URL: https://erpdocs.corexlogic.com/en/surecler/stok-sayimi
The path of a physical inventory in CoreX ERP: the count is **opened** and its scope is frozen, the counter **enters**
what is found on the shelf, the count is **completed**, the approver reviews the difference and **posts it with a second
signature**; the difference is written to the stock ledger as an adjustment movement and the freeze is lifted.
> **Scenario**
In the demo company's **HAMMADDE** (raw materials) warehouse, a monthly count is performed on 02.11.2026 for the **Sarf
Malzemeleri** (Consumables) category (SARF-0001 … SARF-0007, 7 items) in the **RAF-B** storage location. The warehouse
clerk counts and completes the count; the **Stok Yöneticisi** (Inventory Manager) posts the difference. The count
reveals three differences:
| Product | Ledger | Counted | Difference |
|---|---|---|---|
| SARF-0003 TAŞLAMA DİSKİ 115 MM | 70 ADET | 66 ADET | −4 |
| SARF-0004 KESME DİSKİ 115 MM | 120 ADET | 125 ADET | +5 |
| SARF-0007 KABLO BAĞI 200 MM | 2,200 ADET | 2,150 ADET | −50 |
The other four items match the ledger. Document: **SAY-2026-000001**.
## Flow
```
New Count ──► Counting ─────────────► Count Completed ──► Post Difference ──► Posted
(scope) (scope frozen, │ (count ends) (second signature) (adjustment movements,
quantities entered) │ freeze lifted)
▲ │
└── Send for Recount
Counting / Count Completed ──► Cancel Count ──► Cancelled (not written to the ledger, freeze lifted)
```
## 1. Open the count
**Stok Yönetimi › Fiziksel Envanter › Stok Sayımları › Yeni Sayım** (Inventory › Physical Inventory › Physical
Inventories › New Count)

1. Warehouse — required
2. Location — all locations if empty
3. Category — includes subcategories
4. ABC class — class stored on the item
5. Summary of the scope to freeze
6. Start Count
Select **Depo** (Warehouse) HAMMADDE, **Lokasyon** (Storage Location) RAF-B, **Kategori** (Category) Sarf Malzemeleri,
**Açıklama** (Description) "Kasım ayı sarf malzemesi sayımı" (November consumables count), and click **Sayımı Başlat**
(Start Count). The summary at the bottom of the dialog shows the scope that will be frozen.
- **Document status:** SAY-2026-000001 · **Sayımda** (Counting).
- **Stock effect:** None; but the scope is **frozen** — until the count is posted or cancelled, no delivery, goods
receipt, production or adjustment can be posted to the stock of these 7 items in the HAMMADDE warehouse. If a
movement is attempted on a frozen item: "'SARF-0003' kartı 'HAMMADDE' deposunda sayımda (SAY-2026-000001) — sayım
kaydedilene ya da iptal edilene kadar stok hareketi yazılamaz." (Item 'SARF-0003' is being counted in warehouse
'HAMMADDE' (SAY-2026-000001) — no stock movement can be posted until the count is posted or cancelled.)
Step by step: [Open a physical inventory count](https://erpdocs.corexlogic.com/en/stok/islemler/stok-sayimi-acma).
## 2. Enter the counted quantities
**Stok Sayımları › SAY-2026-000001** (Physical Inventories › SAY-2026-000001)

1. Scope frozen — no movements for these items
2. Counted — empty = not counted, 0 = none on shelf
3. Book and Difference — approvers only
4. Found Item — goods not on the list
5. Save Entries
6. Complete Count — when every line is counted
In the **Sayılan** (Counted) cell of each line, the counter enters the quantity found on the shelf in the base unit
(60, 4, 66, 125, 18, 5000, 2150) and clicks **Girişleri Kaydet** (Save Entries). An empty cell means "not counted"; 0
means "not on the shelf". Goods found on the shelf but not on the list are added with **Bulunan Ürün** (Found Item); on
a serial-tracked line, serial numbers are entered with **Seri Gir** (Enter Serials).
A counter without approval permission does not see the **Defter** (Ledger) and **Fark** (Difference) columns (blind
count). The image above shows another, partially counted demo count (SAY-2026-000002, MERKEZ · Yedek Parçalar — spare
parts; 2 of 4 lines counted).
- **Document status:** Sayımda (Counting) ("7 / 7 sayıldı" — 7 / 7 counted).
- **Stock effect:** None.
Step by step: [Enter a physical inventory count](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-girisi-yapma).
## 3. Complete the count
When all lines have been counted, click **Sayımı Tamamla** (Complete Count). The button is disabled while there are
uncounted lines; the server also responds with "\{n\} satır sayılmadı. Sayılmayan satır "yok" demek değildir — rafta
yoksa sıfır girin." (\{n\} lines were not counted. An uncounted line does not mean "none" — if it is not on the shelf,
enter zero.)
- **Document status:** **Sayım Tamamlandı** (Count Completed) — "Sayım tamamlandı. Farkı, bu sayımda miktar girmemiş bir
yetkili kaydeder." (The count is completed. The difference is posted by an authorized user who did not enter
quantities in this count.)
- **Stock effect:** None; the scope is still frozen.
## 4. Review the difference

1. Second signature — another approver posts
2. Difference summary
3. Book · Counted · Difference
4. Send Back for Recount
5. Post Difference — writes stock adjustments
The Inventory Manager opens the count. With approval permission, the **Defter** (Ledger), **Sayılan** (Counted) and
**Fark** (Difference) columns are visible; the summary shows "Fazla 1 · eksik 2 · farksız 4 satır" (1 surplus · 2
shortage · 4 lines without difference). The **Farklılar** (Differences only) switch shows only lines with a difference.
If a difference is suspicious, **Yeniden Saymaya Gönder** (Send for Recount) returns the count to **Sayımda**
(Counting) and the lines are counted again.
## 5. Post the difference (second signature)
The difference is posted by an approver who is different from the user who entered and completed the count — in the demo
environment, **Demo Onaylayıcı** (Demo Approver). The approver opens the count and clicks **Farkı Kaydet** (Post
Difference):

1. Increase and decrease lines to post
2. Post Difference — writes the adjustments
The **Farkı Kaydet — SAY-2026-000001** (Post Difference) dialog ("Fark bugünün tarihiyle deftere yazılır ve dondurma
kalkar. Belge bundan sonra değişmez." — The difference is written to the ledger with today's date and the freeze is
lifted. The document cannot change after this.): "1 satır stok artırma, 2 satır stok azaltma olarak yazılacak; 4 satır
farksız." (1 line will be posted as a stock increase, 2 lines as a stock decrease; 4 lines without difference.) Once
confirmed:
- **Document status:** **Kaydedildi** (Posted) — the document never changes again; the **Farkı Kaydeden** (Difference
Posted By) field is filled.
- **Stock effect** (with today's date, source document "Stok Sayımı" (Physical Inventory), description
SAY-2026-000001):
| Product | Movement | Quantity |
|---|---|---|
| SARF-0003 | Stok Eksiği Düzeltmesi (Stock Shortage Adjustment — issue) | −4 ADET |
| SARF-0004 | Stok Fazlası Düzeltmesi (Stock Surplus Adjustment — receipt) | +5 ADET |
| SARF-0007 | Stok Eksiği Düzeltmesi (Stock Shortage Adjustment — issue) | −50 ADET |
Lines without a difference do not create movements. The freeze is lifted; the items are open to movements again. The top
of the document shows "Fark deftere yazıldı. Belge artık değişmez." (The difference was written to the ledger. The
document can no longer change.)

1. Status — document is final
2. Freeze lifted
3. Second signature — who posted and when
4. Difference — turned into adjustments
The movements can be seen in **Stok Hareketleri** (Stock Movements) with the **Kaynak Belge = Stok Sayımı** (Source
Document = Physical Inventory) filter (Source "Stok Sayımı #1"; in the movement details, Description SAY-2026-000001).

1. Source document = Stock Count
2. Surplus — receipt
3. Shortage — issue
4. Source — the count document
> **The counter cannot post the difference**
A user who entered quantities in this count or completed it cannot post the difference. In the demo document, when the
user who entered the count tried **Farkı Kaydet** (Post Difference), the server rejected it: "Sayımı tamamlayan kişi
farkı kaydedemez — ikinci imza başka bir kullanıcıdan gelmeli." (The person who completed the count cannot post the
difference — the second signature must come from another user.) The difference was therefore posted by the second user
(Demo Onaylayıcı); the stock effect above is the result of that posting.
Step by step: [Post a physical inventory difference](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-farkini-kaydetme).
## Cycle counting
For regular counts, define an interval (days) per warehouse, category and ABC class in **Stok Yönetimi › Fiziksel
Envanter › Dönemsel Sayım › Sayım Döngüleri** (Inventory › Physical Inventory › Cycle Counting › Count Cycles). Scopes
that are due appear on the **Sayımı Gelenler** (Due for Count) tab, and **Sayım Aç** (Open Count) opens the dialog of
step 1 of this process pre-filled. The ABC class is written to the item by **ABC Analizi › Karta Yaz** (ABC Analysis ›
Write to Item).
## FAQ / Troubleshooting
| Situation | Cause and solution |
|---|---|
| "Bu kapsamla çakışan açık bir sayım var: \{no\}. Aynı rafı iki sayım birden donduramaz — önce onu kaydedin ya da iptal edin." (There is an open count overlapping this scope: \{no\}. Two counts cannot freeze the same shelf at once — post or cancel that one first.) | There is an open count in the same warehouse/storage location/category. Finish it first, or narrow the scope. |
| A shipment, goods receipt or production is rejected with "… sayımda (\{no\}) — sayım kaydedilene ya da iptal edilene kadar stok hareketi yazılamaz." (… is being counted (\{no\}) — no stock movement can be posted until the count is posted or cancelled.) | The item is in the scope of an open count. Post the count, or cancel it with a reason. |
| "\{X\} sınıfında ürün yok — önce ABC Analizi'nden sınıfları karta yazın." (There are no items in class \{X\} — first write the classes to the items from ABC Analysis.) | For a count by ABC class, first run **ABC Analizi › Karta Yaz** (ABC Analysis › Write to Item). |
| **Sayımı Tamamla** (Complete Count) is disabled | There are uncounted lines. Find them with the **Sayılmayanlar** (Uncounted) switch; if an item is not on the shelf, enter 0. |
| "Satır \{n\} defterden geldi — silinemez. Rafta yoksa sıfır sayın." (Line \{n\} came from the ledger — it cannot be deleted. If it is not on the shelf, count zero.) | A ledger line cannot be deleted; enter 0. |
| "Sayımı tamamlayan kişi farkı kaydedemez — …" / "Bu sayımda miktar giren kişi farkı kaydedemez — …" (The person who completed the count / entered quantities in this count cannot post the difference — …) | Second signature: the difference is posted by another approver. |
| "Sayım açıldıktan sonra şu satırların defter miktarı değişti: … . Sayımı iptal edip yeniden açın." (The ledger quantity of the following lines changed after the count was opened: … . Cancel the count and open it again.) | A document that was being processed while the count was opened changed the ledger. Cancel the count and open it again. |
| A shortage line is not posted; allocation warning | The missing stock is allocated to a document. Release the allocation with a reason in **Stok Tahsisleri** (Stock Allocations). |
| "İptal gerekçesi zorunludur." (A cancellation reason is required.) | Enter a reason in **Sayımı İptal Et** (Cancel Count). |
## Step-by-step tasks
- [1. Open a physical inventory count](https://erpdocs.corexlogic.com/en/stok/islemler/stok-sayimi-acma) — Scope selection and freezing.
- [2–3. Enter a physical inventory count](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-girisi-yapma) — Counted quantity, found item, serial numbers, completion.
- [4–5. Post a physical inventory difference](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-farkini-kaydetme) — Review, recount, posting with a second signature, cancellation.
- [Physical inventories screen](https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-sayimlari) — Statuses, fields, all rejection messages, cycle counting.
---
# Batch and serial number tracking
> End-to-end batch and serial number tracking, from a batch-managed goods receipt through quarantine and the quality decision, blocking and FEFO issue, to tracing the batch to the customer delivery.
URL: https://erpdocs.corexlogic.com/en/surecler/lot-ve-seri-izleme
The path of a batch-managed item: the goods arrive with a **batch number and expiry date**; on an item with
quality inspection they go into **quarantine** and are released for use by a quality decision; a faulty batch
is **blocked**; at issue, batches are selected in **FEFO** order; and because every movement stays linked to
its batch, you can later trace **where a batch came from and where it went**. On a serial-number-managed item
the same path runs unit by unit (by serial number).
> **Scenario**
The demo company uses the raw material **HAM-0070 SLES %70** in detergent production; the item is
batch-managed and requires **quality inspection at receipt**. On 02.11.2026 two drum batches arrive from the
supplier:
- **SLES-2611-004** — 400 KG, produced 20.10.2026, expiry 20.04.2028, supplier batch AK-261020-09
- **SLES-2611-005** — 50 KG, same delivery, drum dented
The laboratory asks for a 20 KG sample on the same day. In addition, following a customer complaint, someone
asks where batch **DET-2609-001** of the finished product **MAM-0008 SIVI DETERJAN 5 LT** went.
## Flow
```
Goods Receipt (batch + expiry) ──► KARANTINA stock status + Inspection Lot (KP-…)
│
Quality Inspection ─┼─► Release ──► SIFIR (new, unrestricted) ──► Goods Issue (FEFO)
(second signature) └─► Reject ───► RED ──► Scrap / Return to Supplier
Batches ──► Change Status ──► Blocked (issue and transfer closed)
Batch/Serial Traceability ──► Forward: delivery and customer · Backward: production order and supplier
```
## 1. Receive the goods with their batch
**Stok Yönetimi › Mal Hareketleri › Mal Girişi** (Inventory › Goods Movements › Goods Receipt) (for
purchase-order-based receipts, the goods receipt in Purchasing)

1. Product — tracking and unit come from the item
2. Warehouse — required
3. Stock status — default if empty; quarantine for inspected items
4. Quantity
5. Lot number — created by this receipt if new
6. Expiry date
7. Post Goods Receipt
Item HAM-0070, warehouse KIMYA / IBC-ALANI, quantity 400 KG; **Lot Numarası** (Batch Number) SLES-2611-004,
**Üretim Tarihi** (Production Date), **Son Kullanma Tarihi** (Expiry Date), **Tedarikçi Lot No** (Supplier
Batch No). Leave **Stok Durumu** (Stock Status) empty. Enter the second batch (SLES-2611-005, 50 KG) the same
way.
- **Document status:** Movement No 301 and 305 (Mal Kabul — goods receipt, inbound).
- **Stock effect:** Because the item requires quality inspection, both receipts were posted to the
**KARANTINA** (Quarantine) stock status and the inspection lots **KP-2026-000001** and **KP-2026-000002**
were opened. The batches were created with the **Aktif** (Active) batch status. Breakdown by status in
KIMYA / IBC-ALANI: SIFIR (new, unrestricted) 320 KG (old batch SLES-2609-011), KARANTINA 450 KG.
- Stock in quarantine cannot be shipped, consumed or transferred.
Step by step: [Post a goods receipt](https://erpdocs.corexlogic.com/en/stok/islemler/mal-girisi-yapma).
## 2. Make the quality decision
**Stok Yönetimi › Kalite Yönetimi › Kalite Kontrol** (Inventory › Quality Management › Quality Inspection)

1. Awaiting decision
2. Rejected stock — scrap or return
3. Inspection lot
4. Release
5. Reject
The two quarantined lines are on the **Karar Bekleyenler** (Awaiting Decision) tab. The quality specialist
reviews the certificate of analysis:

1. Quantity — partial decision allowed
2. Reason — required
3. Reference — report, certificate no
4. Release
- **Serbest Bırak** (Release) (SLES-2611-004, 400 KG, with a reason and reference): the quantity moves from
KARANTINA to **SIFIR** and becomes available for use. Movement: Stock Status Change (source "Kalite Kararı"
— Quality Decision).
- **Reddet** (Reject): the quantity moves to the **RED (Reddedildi)** (Rejected) status; it leaves stock from
the **Reddedilen Stok** (Rejected Stock) tab with **Hurdaya Ayır** (Scrap) or **Tedarikçiye İade** (Return
to Supplier).
> **Second signature**
The user who put the goods into quarantine cannot make the decision: "Bu stoğu karantinaya siz aldınız —
kalite kararını başka bir kullanıcı vermelidir. Malı içeri alan ile serbest bırakan aynı kişi olamaz." (You
put this stock into quarantine — the quality decision must be made by another user. The person who received
the goods and the person who releases them cannot be the same.) In the demo environment the receipts were
posted by Demo Kullanıcı, so the decision was made by a second user, **Demo Onaylayıcı** (the Quality
Specialist in the scenario).
The decision made for KP-2026-000001 in the demo environment (reason "Analiz sertifikası şartnameye uygun;
aktif madde %70,2." — Certificate of analysis meets the specification; active substance 70.2%; **Referans**
(Reference) AK-261020-09):

1. Quantity — partial decision allowed
2. Reason — required
3. Reference — certificate of analysis
4. Release — quarantine → unrestricted
- **Decision document:** KLT-2026-000001 — Serbest Bırakıldı (Released), 400.
- **Inspection lot:** KP-2026-000001 **Karara Bağlandı** (Decided) (Released · Rejected · Open: 400 · 0 · 0).
- **Stock effect:** a pair of **Stok Durumu Değişimi** (Stock Status Change) movements with the source
**Kalite Kararı** (Quality Decision) — KIMYA / IBC-ALANI, batch SLES-2611-004: 400 KG out of KARANTINA,
400 KG into SIFIR. KP-2026-000002 (SLES-2611-005, 50 KG) stays in quarantine.

1. Inspection lot status
2. Released · Rejected · Open
3. Usage decision and target stock status
> **Order in the demo environment**
In the demo data this decision was made after the laboratory issue in step 4 (Movement No 309); at the time of
that issue the new batches were still in quarantine.
Step by step: [Make a quality decision](https://erpdocs.corexlogic.com/en/stok/islemler/kalite-karari-verme).
## 3. Block the faulty batch
**Stok Yönetimi › Stok Görünümü › Lotlar › SLES-2611-005 › Durumu Değiştir** (Inventory › Stock Overview ›
Batches › SLES-2611-005 › Change Status)

1. Blocked — not usable in issue or transfer
2. Opens the traceability report
3. Change Status — Active / Blocked
4. Stock distribution — warehouses and locations
Set the batch of the dented drum to **Bloke** (Blocked). A batch status change does not post a stock movement;
the stock stays where it is but cannot be selected in goods issues, transfers or deliveries. If an issue is
attempted: "'SLES-2611-005' lotu bloke — çıkış yapılamaz." (Batch 'SLES-2611-005' is blocked — it cannot be
issued.) Unblocking (**Aktif** — Active) requires a separate permission.
- **Batch status:** Bloke (Blocked). **Stock effect:** None.
Step by step: [Change the batch status](https://erpdocs.corexlogic.com/en/stok/islemler/lot-durumu-degistirme).
## 4. Issue with FEFO
**Stok Yönetimi › Mal Hareketleri › Mal Çıkışı** (Inventory › Goods Movements › Goods Issue)

1. Stock status — required for issues
2. Status breakdown — quarantined stock cannot be issued
3. FEFO suggestion — earliest expiry lot
4. Quantity
5. Post Goods Issue
For the laboratory sample, select HAM-0070, KIMYA / IBC-ALANI, **Stok Durumu** (Stock Status) SIFIR. The batch
list is in FEFO order; the only available batch, **SLES-2609-011** (expiry 10.03.2028), carries the **FEFO
önerisi** (FEFO suggestion) badge. The new batches in quarantine are not in the list. Enter 20 KG and click
**Mal Çıkışı Kaydet** (Post Goods Issue).
- **Document status:** Movement No 309 (Sarf / Çıkış — consumption / issue).
- **Stock effect:** batch SLES-2609-011 goes from 320 → 300 KG.
The same batch selection applies to sales deliveries and production consumption (in a delivery, **FEFO ile
Dağıt** — Allocate by FEFO).
## 5. Trace where the batch went
**Stok Yönetimi › Analitik › Lot/Seri İzlenebilirlik** (Inventory › Analytics › Batch/Serial Traceability)

1. Lot or serial number
2. Direction — forward / backward
3. Document — delivery
4. Counterparty — customer
5. Export to Excel
**Lot / Seri** (Batch / Serial) DET-2609-001, **Yön** (Direction) İleri (Forward) — where it went. Result
(1 node · 2 movements):
| Date | Movement | Warehouse | Quantity | Document | Counterparty |
|---|---|---|---|---|---|
| 01.10.2026 | Açılış Bakiyesi (Opening Balance) | MAMUL | +160 ADET | Opening Balance AB-2026-000003 | — |
| 01.11.2026 | Sarf / Çıkış (Consumption / Issue) | MAMUL | −160 ADET | Delivery SV-2026-000001 | Trakya Et ve Et Ürünleri A.Ş. |
The entire batch went to **M-0004 Trakya Et ve Et Ürünleri A.Ş.** with delivery **SV-2026-000001**; the same
delivery also contains another 220 ADET from batch **DET-2609-002**. The batch details show Mevcut (Available)
0 ADET; a batch whose stock is used up stays in the list.
The **Geri** (Backward) direction — where it came from — goes down to the production orders that produced a
finished-product batch, to the raw material batches consumed by that order, and to the suppliers that
delivered them. The link is at order level: every batch the order consumed is related to every batch it
produced.
Step by step: [Trace a batch or serial number](https://erpdocs.corexlogic.com/en/stok/islemler/lot-izleme).
## Serial-number-managed item
On a serial-number-managed item (demo: TIC-0005 Frekans İnvertörü — frequency inverter), each unit is received,
issued and traced with its own number:
- At receipt the serial numbers are scanned; the quantity is the number of serials. A serial number is unique
within the item: "'\{seri\}' seri numarası zaten stokta — ikinci kez giriş yapılamaz." (Serial number
'\{seri\}' is already in stock — it cannot be received a second time.)
- For unlabelled units use **Fiziksel Envanter › Seri Etiketleri › Seri Üret ve Etiket Bas** (Physical
Inventory › Serial Labels › Generate Serials and Print Labels); the serial is created as "Etiketlendi"
(Labelled) and enters stock when it is scanned in a count or a goods receipt.
- At issue, serials in stock are selected; in the traceability report, enter the serial number in the
**Lot / Seri** (Batch / Serial) field.
## FAQ / Troubleshooting
| Situation | Cause and solution |
|---|---|
| "'\{kod\}' kartının '\{durum\}' durumundaki stoğu karantinada — sevk edilemez, sarf edilemez, transfer edilemez. Önce kalite kararı verilmeli (serbest bırak ya da reddet)." (The stock of item '\{kod\}' in status '\{durum\}' is in quarantine — it cannot be shipped, consumed or transferred. A quality decision must be made first (release or reject).) | The goods are awaiting a quality decision. Another user makes the decision in **Kalite Kontrol** (Quality Inspection). |
| "'\{kod\}' kalite kontrolü şartlı — giriş yalnız karantina durumuna yazılabilir. …" ('\{kod\}' requires quality inspection — receipts can only be posted to the quarantine status. …) | A receipt with a status other than quarantine was attempted on an item with quality inspection. Leave the status empty. |
| "'\{lot\}' lotu bloke — çıkış yapılamaz." (Batch '\{lot\}' is blocked — it cannot be issued.) | The batch is blocked. If appropriate, an authorized user sets it to **Aktif** (Active); otherwise select another batch. |
| "'\{kod\}' lot takipli — lot numarası zorunludur." ('\{kod\}' is batch-managed — a batch number is required.) | No batch was entered/selected for a batch-managed item. |
| A batch past its expiry date can be selected | Expiry does not block issue (scrapping and returns are posted with this batch); to stop its use, block the batch. |
| A batch appears in the batch list but its quantity is 0 | A batch whose stock is used up is not deleted; it stays in the list for traceability. |
| "Lot numarasında '\{ayraç\}' kullanılamaz — etiketin ayracı." ('\{ayraç\}' cannot be used in a batch number — it is the label separator.) | The label separator was used in the batch number; remove the character. |
| The quality decision is rejected with "Bu stoğu karantinaya siz aldınız — …" (You put this stock into quarantine — …) | Second signature: the person who received the goods cannot make the decision. |
## Step-by-step tasks
- [1. Post a goods receipt](https://erpdocs.corexlogic.com/en/stok/islemler/mal-girisi-yapma) — Receipt with batch, expiry date and serial numbers.
- [2. Make a quality decision](https://erpdocs.corexlogic.com/en/stok/islemler/kalite-karari-verme) — Release or rejection.
- [3. Change the batch status](https://erpdocs.corexlogic.com/en/stok/islemler/lot-durumu-degistirme) — Block and unblock.
- [4. Post a goods issue](https://erpdocs.corexlogic.com/en/stok/islemler/mal-cikisi-yapma) — FEFO batch selection.
- [5. Trace a batch or serial number](https://erpdocs.corexlogic.com/en/stok/islemler/lot-izleme) — Forward and backward tracing.
- [Batches and serial labels](https://erpdocs.corexlogic.com/en/stok/ekranlar/lotlar) — Batch statuses, expiry dates, serial labels.
---
# Order to production
> From the sales order of a configurable product to delivery — sales order, approval, Open Production Order, resolving the super BOM, sub-order, material consumption, confirmation, output and shipment.
URL: https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime
In make-to-order production, the product is produced with the values the customer selected. In CoreX ERP the path
is: the **sales order** for the configurable product is entered with its values and approved; a production order
is opened from the sales order with **Üretim Emri Aç** (Open Production Order); when the order is **released**, the
super bill of materials and super routing are resolved with these values; make-to-order subassemblies are opened as
**sub-orders**; materials are **consumed**; operations are **confirmed**; the finished product enters stock as
**output**; and the **delivery** is made from the same sales order.
> **Scenario**
The demo customer **M-0010 Bursa Otomotiv Yan Sanayi Parça A.Ş.** wants **1 unit of DMO-KSL-01 Demo ölçülü
bantlı konveyör** (Demo custom-size belt conveyor) for its assembly line: length **12.5 m**, belt width
**800 mm**, belt type **PVC Endüstriyel** (PVC Industrial), protective cover **Evet** (Yes). Unit price
385.000 TRY, requested delivery 27.11.2026. The conveyor's drive unit (**DMO-KSL-05**) is a make-to-order
semi-finished product; the other materials come from the raw material warehouse.
The product's BOM and routing rules: [Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar) (Examples 1–8 and 24).
```
Sales Order ──► Production Order ──Release──► Sub-Order (drive unit) ──► Consumption · Confirmation · Output ──► Completed
SS-2026-000017 UE-2026-000009 UE-2026-000012 MS / TYD / UC │
(Approved) (Draft→Released) (Released→Completed) │
│ │
└──► Consumption (MS-…17, MS-…18) · Confirmation (TYD-…17…22) · Output (UC-…06) ──► Completed
│
Delivery SV-2026-000009 (goods issue) ◄──────────────────┘
```
## 1. Enter and approve the configured sales order
**Satış › Sipariş Yönetimi › Satış Siparişi Oluştur** (Sales › Order Management › Create Sales Order)
1. Select the customer and enter **DMO-KSL-01** on the line. Because the item is configurable, the configurator
opens on the line; enter the values. A characteristic with a precondition is asked only when its condition is
met; a calculated characteristic (**Ayak Çifti Sayısı** — Number of Leg Pairs) is filled from its rule.
2. Constraint and range rules are applied when the line is saved. Example: PU belt with a length of 24 m is
rejected with `PU gıda bandı en çok 20 m boyda üretilir.` (PU food belt is produced in lengths of at most
20 m.)
3. Save the sales order and click **Siparişi Onayla** (Approve Order). Sales order **SS-2026-000017**, status
**Onaylandı** (Approved).
Details: [Create a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparis-olusturma), [Approve a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama).

1. Open Production Order — make to order
2. Configuration of the line
3. Shipped and remaining quantity
**Planning effect:** the approved sales order line enters planning as demand. Because the item has the **Siparişe
Üretim** (Make-to-Order) strategy, the demand is covered by a production order linked to this sales order.
## 2. Open a production order from the sales order
On the approved sales order's details, click **Üretim Emri Aç** (Open Production Order). The order form opens with
the sales order: the sales order line to be produced (with its configuration text — `Boy: 12,5 m · Bant Genişliği: 800 mm · Bant Tipi: PVC Endüstriyel · Koruma Kapağı: Evet · Ayak Çifti Sayısı: 10`)
and the item's released BOM (**Rev 1**) are selected; **Üretim Emrini Kaydet** (Save Production Order) saves the
order with number **UE-2026-000009** in **Taslak** (Draft) status.

1. Sales order line and its configuration
2. Released super BOM
3. Save Production Order — draft order
A draft order has no materials or operations yet; the BOM and routing are resolved at release.
Details: [Open a production order from a sales order](https://erpdocs.corexlogic.com/en/uretim/islemler/siparisten-uretim-emri-acma).
## 3. Release the order — the super BOM and routing are resolved
On the order details, click **Yayınla** (Release). The order becomes **Yayınlandı** (Released) and the material
requirements and operations resolved with the configuration are written to the order. The result of the scenario
(10 lines out of the 12-line BOM):
| Line | Material | Rule | On the order |
|---|---|---|---|
| 1 | HAM-0035 Aluminium conveyor profile | `2 * BOY * 1.02` | 25,5 M |
| 2 | HAM-0056 PVC belt | Bant Tipi (Belt Type): PVC · `2 * BOY` + 0,6 | 25,6 M |
| 3 | HAM-0057 PU belt | Bant Tipi (Belt Type): PU | not included |
| 4 | HAM-0058 Carrier roller | 1 + `TAVAN(BOY / 0.5)` | 26 ADET |
| 5 | DMO-KSL-05 Drive unit | unconditional | 1 ADET |
| 6 | HAM-0054 Motor 0,75 kW | `BOY <= 10` | not included |
| 7 | HAM-0055 Motor 1,5 kW | `BOY > 10` | 1 ADET |
| 8 | HAM-0049 Levelling foot | `2 * (TAVAN(BOY / 1.5) + 1)` | 20 ADET |
| 9 | HAM-0030 Stainless steel sheet | `KORUMA = EVET` · `BOY * 2.4` | 30 KG |
| 10 | HAM-0032 Box profile | `BANT_GENISLIGI = '800' VE BOY > 12` · `TAVAN(BOY / 3) * 0.8` | 4 M |
| 11 | HAM-0064 Bolt (backflush) | `EGER(BANT_GENISLIGI IN ('600', '800'), 8, 4) * TAVAN(BOY / 1.5)` | 72 ADET |
| 12 | HAM-0026 Cable | fixed | 5 M |
Operations from the super routing: Profile cutting machine 20 min, Chassis and roller assembly 105 min, Belt
assembly 50 min, **Protective cover assembly** 37.5 min (included by condition), Motor connection 30 min, Running
test 30 min.

1. Configuration from the sales order
2. Open Sub-orders — make-to-order subassembly
3. Sub-order quantity to open
4. Consumption, output and confirmation
5. Materials selected by the conditions

1. Operation selected by condition
2. Labour formula 30 + 6 × LENGTH = 105 min
The screenshots are from a second order opened with the same configuration (UE-2026-000011, sales order
SS-2026-000024); the scenario's order had the same content at this step. Details: [Release a production
order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama).
**Stock effect:** release does not change stock quantities. The **Malzeme** (Material) box at the top shows the
missing items.
## 4. Open and produce the sub-order
The order's **Alt Emirler** (Sub-Orders) section suggests the make-to-order components: for **DMO-KSL-05**,
**Gereken** (Required) 1, **Stoktan** (From Stock) 0, **Açılacak** (To Open) 1. **Alt Emirleri Aç** (Open
Sub-Orders) opens **UE-2026-000012**; the sub-order is linked to the parent order and is created in **Yayınlandı**
(Released) status. Only components with the **Siparişe Üretim** (Make-to-Order) strategy and a released BOM are
suggested; a semi-finished product with the **Stoğa Üretim** (Make-to-Stock) strategy is expected from stock.
Details: [Sub-order suggestion](https://erpdocs.corexlogic.com/en/uretim/islemler/alt-emir-onerisi).
On the sub-order:
1. **Sarf Kaydet** (Post Consumption) — MS-2026-000016: HAM-0037 0,65 M, HAM-0036 0,9 M, HAM-0053 2 ADET
(Hammadde Deposu — Raw Material Warehouse).
2. **Teyit Gir** (Enter Confirmation) — 10 Tube and shaft cutting (TYD-2026-000015) and 20 Welding and bearing
assembly (TYD-2026-000016), final confirmation.
3. **Çıktı Kaydet** (Post Output) — UC-2026-000005: 1 ADET DMO-KSL-05 to Mamul Deposu / Mamul Rafı 2 (Finished
Goods Warehouse / Finished Goods Shelf 2). The order becomes **Üretimde** (In Production).
4. **Tamamla** (Complete) — the sub-order becomes **Tamamlandı** (Completed).
## 5. Consumption, confirmation and output on the main order
1. **Sarf Kaydet** (Post Consumption) — MS-2026-000017: raw materials from their own storage locations (profile and
sheet from Sac ve Profil Alanı — Sheet and Profile Area; belt/roller/motor/bolt from Raf B — Shelf B; foot from
Raf C; cable from Raf A); MS-2026-000018: the drive unit produced by the sub-order (Mamul Rafı 2). Details:
[Post material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme).
2. **Teyit Gir** (Enter Confirmation) — the six operations with final confirmation (TYD-2026-000017 … 000022).
Details: [Enter an operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme).
3. **Çıktı Kaydet** (Post Output) — UC-2026-000006: 1 ADET DMO-KSL-01, Mamul Deposu / Mamul Rafı 1. Details:
[Post production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme).
4. **Tamamla** (Complete) — the order becomes **Tamamlandı** (Completed). If the correction period should also be
closed, use **Kesin Kapat** (Technically Close) ([Close a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma)).

1. Close Finally — closes for corrections too
2. Sub-order — drive unit
3. Consumption documents
4. Output document
> **Backflush and storage location**
The HAM-0064 bolt line is **backflushed**: it is reduced automatically in the planned ratio when the output is
posted. In a warehouse where the storage location is not mandatory, backflush is taken from stock **without a
storage location**; because the demo stock is in shelf locations, the bolt was added manually to the consumption
document in the scenario. If the backflush cannot be posted, the record goes to **Hatalı Geri Sarflar** (Failed
Backflushes): [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar).
## 6. Make the delivery
On the sales order details, click **Teslimat Oluştur** (Create Delivery): warehouse **Mamul Deposu**, storage
location **Mamul Rafı 1**, 1 ADET. Delivery **SV-2026-000009** is saved together with the goods issue; the sales
order's **Sevk Edilen** (Shipped) quantity becomes 1, and the production order and the delivery appear in
**Bağlantılı Belgeler** (Linked Documents). Details: [Create a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimat-olusturma).

1. Shipped quantity
2. Linked production order
3. Delivery and goods issue
## Stock effect summary
| Document | Movement |
|---|---|
| MS-2026-000016 | HAM-0037, HAM-0036, HAM-0053 leave the Hammadde Deposu (Raw Material Warehouse) |
| UC-2026-000005 | DMO-KSL-05 +1, Mamul Deposu / Mamul Rafı 2 |
| MS-2026-000017 | 9 raw material items are issued (e.g. HAM-0035 48 → 22,5 M, HAM-0056 40 → 14,4 M, HAM-0055 1 → 0) |
| MS-2026-000018 | DMO-KSL-05 −1, Mamul Rafı 2 |
| UC-2026-000006 | DMO-KSL-01 +1, Mamul Deposu / Mamul Rafı 1 |
| SV-2026-000009 | DMO-KSL-01 −1 (goods issue) |
## FAQ / Troubleshooting
| Message / situation | Cause and solution |
|---|---|
| `'DMO-KSL-01' yapılandırılabilir kart — üretim emri yalnız yapılandırılmış bir satış siparişi satırından açılır.` ('DMO-KSL-01' is a configurable item — a production order can only be opened from a configured sales order line.) | An attempt was made to open a free-standing order for a configurable item. Open the order from the approved sales order with **Üretim Emri Aç** (Open Production Order). |
| `Bu ürün ağacı konfigürasyona göre çözülür — emir yapılandırılmış bir satış siparişi satırından açılmalı.` (This BOM is resolved by configuration — the order must be opened from a configured sales order line.) | An attempt was made to open a free-standing order for a configurable item. Open the order from the approved sales order with **Üretim Emri Aç** (Open Production Order). |
| `Konfigürasyon ürün ağacının hiçbir satırını seçmiyor — ağacın koşullarını düzeltin.` (The configuration selects no line of the BOM — correct the BOM's conditions.) | With these values, the BOM's conditions select no line. Test the BOM with the same values using **Yapılandırarak Dene** (Try with Configuration). |
| `N. satırın miktar formülü bilinmiyor — okuduğu değerlerden biri konfigürasyonda yok (…)` (The quantity formula of line N is unknown — one of the values it reads is not in the configuration (…)) | The formula reads an empty characteristic (optional or not asked). Protect the formula with `EGER`: [Example 12](https://erpdocs.corexlogic.com/en/uretim/kosullar#ornek-12). |
| `N. satırın konfigürasyona göre hesaplanan miktarı sıfırdan büyük değil.` (The quantity of line N calculated from the configuration is not greater than zero.) | Fixed + formula result is 0 or negative. If the line should not be included, write a condition: [Example 5](https://erpdocs.corexlogic.com/en/uretim/kosullar#ornek-5). |
| `Konfigürasyon aynı kartı iki ürün ağacı satırından seçiyor — ağacın koşullarını düzeltin.` (The configuration selects the same item from two BOM lines — correct the BOM's conditions.) | The conditions of two lines were met at the same time. Set up the conditions so that they exclude each other. |
| `N numaralı operasyonun işçilik formülü hesaplanamadı — konfigürasyonda gereken değer yok.` (The labour formula of operation N could not be calculated — a required value is missing from the configuration.) | The value read by the duration formula is empty. |
| `Konfigürasyon rotanın hiçbir operasyonunu seçmiyor — rotanın seçim koşullarını düzeltin.` (The configuration selects no operation of the routing — correct the routing's selection conditions.) | All of the routing's operations are conditional and none returned Yes. |
| `… satırın bileşeni yapılandırılabilir — çıktının konfigürasyon profili ürün ağacını çok seviyeli patlatmalı.` (The component of line … is configurable — the output's configuration profile must explode the BOM multi-level.) | The BOM contains a configurable component; make the output's configuration profile multi-level. |
| `'Kabin Eni' yalnız Kabin: Özel Ölçü (En x Boy) olduğunda girilir.` ('Kabin Eni' is entered only when Kabin is Özel Ölçü (En x Boy).) | A value was given for a characteristic whose precondition is not met (sales line). |
| `'Boy' değeri izinli aralıkta değil (2–30 m, 0,5 m adım).` (The 'Boy' value is not in the allowed range (2–30 m, 0.5 m step).) | The value does not match the characteristic's range or step. |
| A semi-finished product is missing from the sub-order suggestion | The component does not have the **Siparişe Üretim** (Make-to-Order) strategy or has no released BOM; it is expected from stock. If there is no stock, consumption is rejected with the message `… kartının 'SIFIR' durumunda yeterli stok yok.` (There is not enough stock of item … in status 'SIFIR'.) Set the item's planning strategy to **Siparişe Üretim**, or produce the semi-finished product to stock first. |
| No material lines appear on the order | The order is still **Taslak** (Draft); requirements are written with **Yayınla** (Release). |
## Step-by-step tasks
- [1. Create a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparis-olusturma) — The line for a configurable product.
- [2. Approve a sales order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama) — Demand enters planning.
- [3. Open a production order from a sales order](https://erpdocs.corexlogic.com/en/uretim/islemler/siparisten-uretim-emri-acma) — Üretim Emri Aç (Open Production Order).
- [4. Release the order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama) — The BOM and routing are resolved.
- [5. Open sub-orders](https://erpdocs.corexlogic.com/en/uretim/islemler/alt-emir-onerisi) — Make-to-order subassembly.
- [6. Material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme) — From stock to the order.
- [7. Operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme) — Duration and quantity.
- [8. Production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme) — The finished product enters stock.
- [9. Close the order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma) — Complete, Technically Close.
- [10. Delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimat-olusturma) — Delivery and goods issue.
---
# Make-to-stock production
> From forecast to MRP, from planned order to production order, consumption, confirmation and output into finished goods stock — the end-to-end make-to-stock flow.
URL: https://erpdocs.corexlogic.com/en/surecler/stoga-uretim
In make-to-stock production, the product is manufactured **without waiting for a sales order**; sales orders are
fulfilled from existing stock. **MRP** decides when and how much to produce: it looks at the item's minimum/maximum
stock, open orders and the entered **forecast**, and proposes planned orders for the shortfall. The planner converts the
planned order into a production order; production is completed with consumption, operation confirmation and output.
> **Scenario**
The demo company produces **MAM-0005 Dosya Dolabı 80X40X200 Beyaz** (filing cabinet, white) to stock (planning strategy
*Stoğa Üretim* (Make-to-Stock), procurement type *Üret* (Make)). The item's planning data: **6 units** on hand, minimum
stock **2**, maximum stock **8**, lead time **7 days**. For a dealer campaign, the sales team forecasts sales of **6**
units in December 2026 and **4** units in January 2027. Date: 02.11.2026.
```
Forecast (MAM-0005: Dec 6, Jan 4)
│
▼
MRP Run ──► TLP-2026-000002 (draft purchase requisition, purchased items)
│
▼
PLO-2026-000001 (planned order, 8 ADET, Open) ──Convert to Production Order──► Converted
│
▼
UE-2026-000002 (Draft) ──Release Order──► Released ──consumption/confirmation/output──► In Production
│ │
│ MS-2026-000005 consumption · TYD-2026-000005…8 confirmation · UC-2026-000002 output │
▼ ▼
Completed ──Technically Close──► Closed MAMUL / RAF-M1: 6 → 14 ADET
```
## 1. Enter the forecast
**Üretim › Üretim Planlama › Planlı Bağımsız İhtiyaçlar › Tahmin Gir** (Production › Production Planning › Planned
Independent Requirements › Enter Forecast)
For item **MAM-0005**, period type **Ay** (Month), enter **6** units for the 01.12.2026 period (note "Bayi kampanyası
öngörüsü" — dealer campaign forecast) and **4** units for the 01.01.2027 period, then save.

1. Item — planned stock item
2. Period type — Day, Week, Month
3. Period quantity (base unit)
4. Add next N periods
5. Propose from history — statistical proposal
6. Save — replaces unfinished periods
- Two lines are created in the list: Forecast 6 / Consumed by Orders 0 / Remaining (MRP) 6, and 4 / 0 / 4.
- No stock or document effect. If an approved sales order arrives in the period, it consumes the forecast; MRP plans only
the remainder.
Details: [Enter a planned independent requirement](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-bagimsiz-ihtiyac-girme).
## 2. Review and run MRP
**Üretim › Üretim Planlama › MRP Koşusu** (Production › Production Planning › MRP Run)
The list is a simulation. The **Stok/İhtiyaç Listesi** (Stock/Requirements List) of MAM-0005 shows:
| Date | Element | Quantity | Available |
|---|---|---|---|
| 02.11.2026 | Stock on hand | | 6 |
| 01.12.2026 | Forecast 01.12.2026–31.12.2026 | −6 | 0 |
| 01.12.2026 | MRP proposal | +8 | 8 |
| 01.01.2027 | Forecast 01.01.2027–31.01.2027 | −4 | 4 |
On 01.12.2026 the available quantity is 0, below the minimum (2); because a maximum is defined, the proposal is
8 − 0 = **8 units**. Start = 01.12.2026 − 7 days = **24.11.2026**. In January 8 − 4 = 4 ≥ 2, so there is no proposal.
Run MRP with **MRP'yi Çalıştır › Çalıştır** (Run MRP › Run).

1. Unfirmed MRP orders are rebuilt
2. Make to order: order pegged to sales item
3. Run
The result section shows: "130 planlı ürün · 24 satın alma önerisi taslak talebe yazıldı · 3 planlı üretim emri
açıldı." (130 planned items · 24 purchase proposals written to a draft requisition · 3 planned production orders
opened.), **Açılan taslak talep: TLP-2026-000002** (Draft requisition opened), **Açılan planlı emirler:
PLO-2026-000001, PLO-2026-000002, PLO-2026-000003** (Planned orders opened). The run plans all planned items together;
the planned order of MAM-0005 is **PLO-2026-000001**.
- **Document effect:** a draft purchase requisition (it remains a draft until you submit it) and planned orders. Stock
does not change.
- Because the components of MAM-0005 are sufficiently in stock, no proposals were created for them.
Details: [Run MRP](https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma).
## 3. Convert the planned order to a production order
**Üretim › Üretim Planlama › Planlı Emirler › PLO-2026-000001** (Production › Production Planning › Planned Orders ›
PLO-2026-000001)
The details show Source *MRP koşusu* (MRP run), Firmed *Hayır* (No), Start 24.11.2026, End 01.12.2026, and the
**Bileşen Önizlemesi** (Component Preview): HAM-0038 31.68 M2 · HAM-0041 14.08 M2 · HAM-0042 117.6 M · HAM-0045 32 ·
HAM-0046 16 · HAM-0049 32 · HAM-0066 256 · AMB-0010 8 ADET (scrap included). Click **Üretim Emrine Dönüştür ›
Dönüştür** (Convert to Production Order › Convert).

1. Open Planned Order — manually
2. Source — MRP or Manual
3. Firm — MRP does not rebuild
4. Resulting production order
- The draft production order **UE-2026-000002** is opened (MAM-0005 · Rev 1, 8 ADET; its header shows "Planlı emir
PLO-2026-000001" — Planned order PLO-2026-000001).
- The planned order becomes **Dönüştü** (Converted); in the list, the Production Order column shows a link to
UE-2026-000002.
- The next MRP run no longer rebuilds a converted order.
Details: [Convert a planned order to a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme).
## 4. Release the production order
**Üretim › Üretim Yürütme › Üretim Emirleri › UE-2026-000002 › Yayınla › Emri Yayınla** (Production › Production
Execution › Production Orders › UE-2026-000002 › Release › Release Order)
- The order becomes **Yayınlandı** (Released); **8 material requirements** from the current BOM revision and
**4 operations** from the routing are frozen (10 Panel sizing and drilling — EBATLAMA, planned 8.16 units including
scrap; 20 Edge banding — BANTLAMA; 30 Assembly — MONTAJ; 40 Packaging — PAKETLEME).
- The **Malzeme** (Material) box shows "Hazır — Açık gereksinimler stokla karşılanıyor" (Ready — open requirements are
covered by stock).
- Release does not create stock movements and does not reserve material.
Details: [Release a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama).
## 5. Post the material consumption
**UE-2026-000002 › Sarf Kaydet** (Post Consumption)
The six components that are not backflushed are consumed from their warehouse and storage location: HAM-0038 and
HAM-0041 from Hammadde Deposu (raw materials warehouse) / PANEL-ALANI; HAM-0042, HAM-0045, HAM-0046 from Hammadde Deposu
/ RAF-C; AMB-0010 from Kimya Deposu (chemicals warehouse) / AMBALAJ. Document **MS-2026-000005**.
- **Stock effect:** HAM-0038 −31.68 M2, HAM-0041 −14.08 M2, HAM-0042 −117.6 M, HAM-0045 −32, HAM-0046 −16,
AMB-0010 −8 ADET.
- HAM-0049 (Ayar Ayağı — leveling foot) and HAM-0066 (Sunta Vidası — chipboard screw) are **backflushed**: the
consumption form shows "geri sarf — çıktıyla düşer" (backflush — reduced with the output); they are expected to be
reduced automatically when the output is posted.
Details: [Post a material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme).
## 6. Confirm the operations
**UE-2026-000002 › Teyit Gir** (Enter Confirmation) (or **Üretim › Üretim Yürütme › Operasyon Teyidi Gir** — Production
› Production Execution › Enter Operation Confirmation)
The four operations are posted as final confirmations with 8 good and 0 scrap; because the times are left empty, the
server proposes them: **TYD-2026-000005** (10), **TYD-2026-000006** (20), **TYD-2026-000007** (30),
**TYD-2026-000008** (40).
- No stock effect; the confirmed quantity and actual time of the operations are updated, and the capacity load
decreases.
- If scrap had been entered, it would appear in the **Fire Raporu** (Scrap Report).
Details: [Enter an operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme).
## 7. Post the production output
**UE-2026-000002 › Çıktı Kaydet** (Post Output)
8 units of MAM-0005 are received into **Mamul Deposu / RAF-M1** (finished goods warehouse); the backflush warehouse is
Hammadde Deposu. Document **UC-2026-000002**.
- **Stock effect:** MAM-0005 **6 → 14 ADET**. The order is **Üretimde** (In Production), Produced 8 ADET (100%).
- The system attempts to reduce the backflushed components with the output. In this scenario they **could not be
reduced** — see the troubleshooting below.
Details: [Post a production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme).
### Backflush error and its resolution

1. Order whose output was posted
2. Server error message
3. Status — Open, Resolved, Closed
The output was posted, but two components could not be backflushed and were placed in the **Üretim › Üretim Yürütme ›
Hatalı Geri Sarflar** (Production › Production Execution › Failed Backflushes) queue:
```
6. satır: 'HAM-0049' kartının 'SIFIR' durumunda yeterli stok yok. Mevcut: 0, istenen: 32,000000.
7. satır: 'HAM-0066' kartının 'SIFIR' durumunda yeterli stok yok. Mevcut: 0, istenen: 256,000000.
```
(Line 6/7: item 'HAM-0049' / 'HAM-0066' does not have enough stock in 'SIFIR' (new) status. Available: 0, requested:
32 / 256.)
The queue screen shows the same sentence without the line number. The image above shows the record after resolution
(**Durum** (Status) filter *Tümü* (All), record status **Kapatıldı** (Closed)); while it is open, the line has the
**Yeniden Dene** (Retry) and **Kapat** (Close) buttons.
**Cause:** Storage locations are not mandatory in Hammadde Deposu. In a warehouse where storage locations are not
mandatory, backflush reduces stock **without a storage location**; but the stock of these components is in shelf bins
(RAF-C, RAF-B). In a warehouse where storage locations are mandatory, backflush uses the item's **default storage
location** in that warehouse.
**Resolution (in this scenario):** the two components were consumed manually from the order's **Sarf Kaydet** (Post
Consumption) form by selecting the shelf bins (**MS-2026-000009**: HAM-0049 −32 RAF-C, HAM-0066 −256 RAF-B), and the
records in the queue were closed with **Kapat** (Close) with the reason "Raf gözünden elle sarf edildi — MS-2026-000009"
(Consumed manually from the shelf bin — MS-2026-000009). Alternative: transfer the stock to the breakdown without a
storage location and click **Yeniden Dene** (Retry) (the warehouse and stock status can be changed). The output is not
reversed.
Details: [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar).
## 8. Complete and close the order
**UE-2026-000002 › Tamamla › Emri Tamamla** (Complete › Complete Order), then **Kesin Kapat › Kesin Kapat** (Technically
Close › Technically Close)

1. Created from the planned order
2. Stage strip — Draft → Closed
3. Consumptions and outputs
- **Tamamlandı** (Completed): no new consumption or output can be posted; historical corrections remain possible.
- **Kapatıldı** (Closed): no postings at all can be made, including consumption, output, confirmations and corrections;
this cannot be undone.
- The stage bar shows Taslak (Draft) → Yayınlandı (Released) → Üretimde (In Production) → Tamamlandı (Completed) →
Kapatıldı (Closed), each stage stamped 02.11.2026.
Details: [Close a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma).
## Result
| Item | Before | After | Document |
|---|---|---|---|
| MAM-0005 Dosya Dolabı | 6 ADET | 14 ADET | UC-2026-000002 |
| HAM-0038 Melamin Sunta 18 mm Beyaz | 85 M2 | 53.32 M2 | MS-2026-000005 |
| HAM-0041 MDF 8 mm Ham | 35 M2 | 20.92 M2 | MS-2026-000005 |
| HAM-0042 PVC Kenar Bandı 2 mm Beyaz | 450 M | 332.4 M | MS-2026-000005 |
| HAM-0045 Menteşe 110° Frenli | 80 ADET | 48 ADET | MS-2026-000005 |
| HAM-0046 Kulp 128 mm | 60 ADET | 44 ADET | MS-2026-000005 |
| AMB-0010 Mobilya Kolisi | 34 ADET | 26 ADET | MS-2026-000005 |
| HAM-0049 Ayar Ayağı M8 | 260 ADET | 228 ADET | MS-2026-000009 |
| HAM-0066 Sunta Vidası 4X40 | 5,200 ADET | 4,944 ADET | MS-2026-000009 |
The quantities are the values at the time the scenario was performed; other scenarios in the demo environment may have
posted movements to the same items later. When MRP was recalculated at the time of the scenario, MAM-0005 showed:
14 − 6 (December) = 8, 8 − 4 (January) = 4; both are above the minimum, so there is no new proposal.
## FAQ / Troubleshooting
| Situation | Cause and solution |
|---|---|
| The item is not in the MRP list | The planning strategy is *Planlama Yok* (No Planning) or the item is not stock-managed: "Kart MRP'de planlanmıyor — planlama stratejisi "planlama yok" ya da kart stok tutmuyor." (The item is not planned in MRP — planning strategy is "no planning" or the item is not stock-managed.) Correct the item's Planning Data. |
| Status **Planlanmıyor** (Not Planned), "Tedarik yolu belirlenmemiş." (Procurement type not defined.) | The item's **Varsayılan tedarik yolu** (Default procurement type) is empty. Select *Üret* (Make) or *Satın Al* (Buy). |
| The forecast cannot be entered | "'KOD' planlanmıyor (planlama stratejisi "planlama yok") — tahmin MRP'ye girmez." ('CODE' is not planned (planning strategy "no planning") — the forecast does not enter MRP.) or "N. dönem bitmiş — geçmiş döneme tahmin girilmez." (Period N has ended — no forecast can be entered for a past period.) |
| Exception **Ağaç yok ya da uygun alternatif/geçerli revizyon yok** (No BOM, or no suitable alternative/valid revision) | "Yayınlanmış ürün ağacı yok — üretim önerisi patlatılamadı, bağımlı ihtiyaç doğmadı." (No released BOM — the production proposal could not be exploded, no dependent requirement was created.) Release the BOM. |
| Exception **Yetişmiyor** (Late) | The lead time does not reach the requirement date; the proposal was scheduled for today + lead time. Accept the date or move the demand. |
| A planned order disappeared / its number changed after a run | An MRP planned order that is not firmed is cancelled and rebuilt in every run. To keep it, use **Sabitle** (Firm) or convert it. |
| Convert was rejected | "'KOD' için yayınlanmış üretim ağacı yok — planlı emir ağaçtan üretim emri açar; ağaçsız emri Üretim Emirleri ekranından açın." (There is no released production BOM for 'CODE' — a planned order opens a production order from the BOM; open an order without a BOM from the Production Orders screen.) or "'KOD' için N parti büyüklüğünü kapsayan üretim alternatifi yok — alternatiflerin parti büyüklüğü aralığını düzenleyin ya da miktarı değiştirin." (There is no production alternative for 'CODE' covering lot size N — edit the lot size range of the alternatives or change the quantity.) |
| "Planlı emir bu arada değişti — sayfayı yenileyip yeniden deneyin." (The planned order has changed in the meantime — refresh the page and try again.) | Someone else changed the planned order, or MRP rebuilt it. Refresh the page. |
| The backflush was placed in the queue | See the "Backflush error and its resolution" section above. If there is no default storage location in a warehouse where storage locations are mandatory, the message is: "'DEPO' lokasyon istiyor ve 'KOD' kartının bu depoda varsayılan lokasyonu yok." ('WAREHOUSE' requires a storage location, and item 'CODE' has no default storage location in this warehouse.) |
## Step-by-step tasks
- [1. Enter a forecast](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-bagimsiz-ihtiyac-girme) — Sales forecast period by period.
- [2. Run MRP](https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma) — Proposals to requisitions and planned orders.
- [3. Convert to a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme) — Draft production order from a planned order.
- [4. Release](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama) — Requirements and operations are frozen.
- [5. Material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme) — Components are reduced from stock.
- [6. Operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme) — Good quantity, scrap, time.
- [7. Production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme) — The finished product enters stock; backflush runs.
- [8. Close the order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma) — Complete and technically close.
---
# Shipment planning
> From approved sales order to delivery — open delivery, picking, packing, shipment and carrier, goods issue, transit, proof of delivery and freight settlement.
URL: https://erpdocs.corexlogic.com/en/surecler/sevkiyat-planlama
How do the goods of approved sales orders leave the warehouse, get loaded onto a vehicle and reach the customer?
This guide walks end to end through a shipment that sends two sales orders to Ankara on the same carrier trip.
The sales order itself and the single-step delivery are covered in the [Quotation to invoice](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya)
guide; the screens are detailed in the [Logistics](https://erpdocs.corexlogic.com/en/lojistik/) section.
> **Scenario**
On 02.11.2026 **CoreX Demo Endüstri** (Istanbul, Ümraniye) sends the approved sales orders of two of its
customers in Ankara with the same vehicle:
- **SS-2026-000007** — Başkent Mimarlık ve İç Mimari Ltd. Şti. (M-0015): 2 units of MAM-0005 DOSYA DOLABI
80X40X200 BEYAZ, 1 unit of MAM-0004 TOPLANTI MASASI 240X120 CEVİZ.
- **SS-2026-000008** — Güneş Enerji Sistemleri Mühendislik A.Ş. (M-0006): 2 units of MAM-0002 AYDINLATMA
DAĞITIM PANOSU 12 GRUP.
The goods are in bin RAF-M1 of **MAMUL — Mamul Deposu** (Finished Goods Warehouse). Transport is carried out by
the carrier **Hızlı Hat Nakliyat ve Lojistik Ltd. Şti.** (T-0018); its rate is **HIZLIHAT-2026**: 1.500 TRY per
trip + 12 TRY per km (10 TRY above 500 km). The distance is 450 km. The second customer refuses one of the
panels because it is damaged.
```
SS-2026-000007 ┐ ┌─ DLG-2026-000001 (wave) ─ DG-…001..003 (picking, Approved)
SS-2026-000008 ┴─► SV-2026-000003 ─────┤
(Approved) SV-2026-000004 ├─ TB-2026-000001 · TB-2026-000002 (pallet)
(Open → Picked │
→ Packed) └─► TSM-2026-000001 (Planned)
│ Select Carrier → Assign (freight 6.900,00 TRY)
Goods issue ◄────────┤
(Goods Issue Posted) │ Loaded → Dispatch (In Transit)
│ Delivered × 2 → Complete (Completed)
Proof of delivery ◄─────────┘
(Confirmed; SV-4: 1/2 accepted)
└─► NHS-2026-000001 (Saved, 8.280,00 TRY incl. VAT)
```
## Step-by-step tasks
- [Create an open delivery](https://erpdocs.corexlogic.com/en/satis/islemler/acik-teslimat-olusturma) — Collective delivery from due lines.
- [Pick a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-toplama) — Waves and picking tasks.
- [Pack a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-birimi-olusturma) — Handling unit and label.
- [Create a shipment document](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-belgesi-olusturma) — Trip plan and deliveries.
- [Select the carrier for a trip](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-secme) — Ranking, assignment, freight.
- [Post the goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme) — Stock is reduced at this step.
- [Dispatch a trip](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-yola-cikarma) — The plan is frozen.
- [Record a trip event](https://erpdocs.corexlogic.com/en/lojistik/islemler/sefer-olayi-kaydetme) — Loading, delivery, delay.
- [Complete a trip](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-tamamlama) — Arrival and closing.
- [Record proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/alindi-teyidi-kaydetme) — Accepted quantity.
- [Create a freight settlement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-hesaplasmasi-olusturma) — The carrier's freight.
## Preparation: master data
Done once: the carrier profile ([Define a carrier](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasiyici-tanimlama)), the carrier's vehicle
**34DMO002** and driver ([Vehicle](https://erpdocs.corexlogic.com/en/lojistik/islemler/arac-tanimlama),
[Driver](https://erpdocs.corexlogic.com/en/lojistik/islemler/surucu-tanimlama)) and the carrier's rate
([Create a freight agreement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-anlasmasi-olusturma)). Without a carrier rate the trip
can be planned, but the freight cannot be calculated.
## 1. Create open deliveries from due lines
The **Lojistik Yönetimi › Giden Teslimat › Giden Teslimat Oluştur** (Logistics › Outbound Delivery › Create
Outbound Delivery) screen lists the approved sales order lines to be delivered by the **Vadesi gelen (en geç)**
(Due by (latest)) date. Select the three lines (SS-2026-000007/10, /20 and SS-2026-000008/10), select **MAMUL —
Mamul Deposu** as the **Depo** (Warehouse) and click **Teslimat Oluştur** (Create Delivery).

1. Due by — items to deliver up to this date
2. Select the item to deliver
3. Warehouse
4. Create Delivery — opens an open delivery
The **Sonuç** (Result) field shows two deliveries: **SV-2026-000003 · SS-2026-000007 · 2 kalem** (2 lines) and
**SV-2026-000004 · SS-2026-000008 · 1 kalem** (1 line) — the lines are split into two deliveries because the
recipient and address differ. The deliveries are created as **Açık** (Open): the lines are allocated on the sales
order, but **stock is not reduced yet**. Details: [Create an open delivery](https://erpdocs.corexlogic.com/en/satis/islemler/acik-teslimat-olusturma).
## 2. Pick the goods
In **Stok Yönetimi › Depo Yürütme › Dalgalar › Dalga Oluştur** (Inventory › Warehouse Execution › Waves ›
Create Wave), select **Depo** (Warehouse) MAMUL and **Kaynak** (Source) **Açık teslimatlar** (Open deliveries);
select the three lines and click **Dalgayı Oluştur** (Create Wave).

1. Warehouse — the delivery warehouse
2. Source: Open deliveries
3. Delivery item to pick
4. Create Wave — picking tasks are created
Wave **DLG-2026-000001** is created, with one picking task per line in the RAF-M1 → SEVK direction
(**DG-2026-000001…000003**). The warehouse worker opens each task and saves it with **Onayla** (Confirm); when
all three tasks are confirmed, the wave becomes **Tamamlandı** (Completed).

1. The wave completes when all tasks are confirmed
2. The wave line carries the delivery number
3. Picking task — from source bin to SEVK
The picked goods are allocated to the sales order line in the SEVK (shipping) area. The picking status in the
header of both deliveries becomes **Toplandı** (Picked). Details: [Pick a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-toplama).
## 3. Pack
On each delivery's details, open a pallet with **Taşıma Birimi Oluştur** (Create Handling Unit) on the
**Paketleme** (Packing) card: **Kap Cinsi** (Packaging Type) **Palet (PX)** (Pallet), **Dara (kg)** (Tare
(kg)) 25, **Kalanın Tamamı** (All of the remaining), **Oluştur** (Create). **TB-2026-000001** (total gross
295 kg) is created for SV-2026-000003 and **TB-2026-000002** (97 kg) for SV-2026-000004, and the packing status
becomes **Paketlendi** (Packed). Labels are printed as PDF with **Etiketleri Yazdır** (Print Labels).

1. Picking status
2. Packing status
3. Picked quantity per item
4. New handling unit (carton, pallet…)
5. Handling unit labels (PDF)
Packing is not a precondition for the goods issue; but the pallet tare and the number of pallets go into the
trip's load calculation. Details: [Pack a delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-birimi-olusturma).
## 4. Plan the trip
In **Lojistik Yönetimi › Taşıma › Taşıma Belgesi Oluştur** (Logistics › Transportation › Create Shipment
Document), enter **Yürütücü** (Executed By) **Taşıyıcı** (Carrier), **Planlanan Çıkış** (Planned Departure)
02.11.2026 08:00, **Planlanan Varış** (Planned Arrival) 18:00, **Planlanan Mesafe (km)** (Planned Distance (km))
450; add SV-2026-000003 and SV-2026-000004 with **Teslimat Ekle** (Add Delivery) (order: first Başkent Mimarlık,
then Güneş Enerji) and click **Oluştur** (Create).

1. Executor — own fleet or carrier
2. Carrier
3. Planned departure — required
4. Distance — basis for per-km freight
5. Deliveries — order is stop order
6. Create
The trip opens with number **TSM-2026-000001** in **Planlandı** (Planned) status. The **Yük ve Kapasite** (Load
and Capacity) card shows the gross weight (392 kg) and the number of pallets (2); the capacity is shown once a
vehicle is selected. Details: [Create a shipment document](https://erpdocs.corexlogic.com/en/lojistik/islemler/tasima-belgesi-olusturma).
For deliveries without a trip that will be transported with our own vehicles, [Load Planning](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/yuk-planlama)
suggests loads for vehicles.
## 5. Select the carrier and see the freight
On the trip details, the **Taşıyıcı Seç** (Select Carrier) dialog ranks the active carriers by the agreement valid
on the trip's departure day. The Hızlı Hat line shows **HIZLIHAT-2026** and **6.900,00 TRY**; click **Ata**
(Assign).

1. Ranking: cost or priority
2. Freight from the agreement
3. Assign — carrier is written to the trip
4. Tender with the selected carriers
The header shows the carrier's name, and the **Navlun** (Freight) card shows *Sefer başı 1 sefer × 1.500 =
1.500,00 TRY* (Per trip: 1 trip × 1.500) and *Km başı 450 km × 12 = 5.400,00 TRY* (Per km: 450 km × 12),
**Toplam 6.900,00 TRY** (Total). Then select the carrier's vehicle **34DMO002** and driver with **Düzenle** (Edit);
the load is compared with the capacity (*392 kg / 18.000 kg*, *2 / 18* pallets). If quotations are to be requested
from several carriers, open a tender from the same dialog: [Open a carrier tender](https://erpdocs.corexlogic.com/en/lojistik/islemler/ihale-acma).
If the plan changes later (departure day, distance, deliveries), use **Yeniden Hesapla** (Recalculate) on the
Navlun (Freight) card.
## 6. Post the goods issue
On each delivery's details, open **Mal Çıkışını Kaydet** (Post Goods Issue). Because the delivery has been picked,
the form says *"Teslimat toplandı — toplanan mal dağılımlara yazıldı; gerekirse değiştirebilirsiniz."* (The
delivery has been picked — the picked goods were written to the allocations; you can change them if needed.): the
allocations are filled with the SEVK bin and the SIFIR status. Click **Mal Çıkışını Kaydet**.

1. Goods issue date — stock is reduced on this date
2. Allocation — location, status, lot or serial
3. Post Goods Issue
Stock is reduced, the deliveries become **Mal Çıkışı Kaydedildi** (Goods Issue Posted) and can no longer change;
packing becomes read-only. The delivery note is printed from the delivery's **Çıktı** (Output) menu (if e-Delivery
Note is enabled in the installation, **e-İrsaliye Oluştur** — Create e-Delivery Note — appears). Details: [Post the
goods issue](https://erpdocs.corexlogic.com/en/satis/islemler/mal-cikisi-kaydetme).
> **Order matters**
A trip cannot be dispatched before the goods issue of its deliveries is posted. In the scenario, when **Yola
Çıkar** (Dispatch) was attempted before the goods issue, the server returned: *"Mal çıkışı kaydedilmemiş ya da
iptal edilmiş teslimatla sefer yola çıkamaz: SV-2026-000003, SV-2026-000004."* (A trip cannot be dispatched with a
delivery whose goods issue has not been posted or that has been cancelled: SV-2026-000003, SV-2026-000004.)
## 7. Load and dispatch
On the trip details, record the **Yüklendi** (Loaded) event with **Olay Kaydet** (Record Event) (**Durak** (Stop)
*Seferin geneli* (Whole trip), **Zaman** (Time) 07:30, **Konum** (Location) "Dudullu OSB — sevk rampası" (Dudullu
OIZ — shipping ramp), **Not** (Note) "2 palet yüklendi" (2 pallets loaded)). Then, in the **Yola Çıkar**
(Dispatch) dialog, enter **Yola çıkış** (Departure) 08:15 and click **Yola Çıkar**.

1. Departure time — now if empty
2. Dispatch
The trip becomes **Yolda** (In Transit): the plan and the deliveries are frozen, and the **Olaylar** (Events) card
shows *Yüklendi* (Loaded) and *Yola çıktı* (Dispatched). In Delivery Tracking the deliveries move to the **Yolda**
(In Transit) stage.

1. Status: In transit
2. Complete — arrival is written, trip closes
3. Record Event — arrival, delivery, delay, problem
4. Event timeline
A delay or problem on the road is recorded with the **Gecikme bildirildi** (Delay reported) / **Sorun bildirildi**
(Problem reported) event (the screenshot above is from the Izmir trip TSM-2026-000002). Details: [Dispatch a
trip](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-yola-cikarma).
## 8. Record the deliveries and complete the trip
At each stop, record **Teslim edildi** (Delivered) with **Olay Kaydet** (Record Event): stop 1 SV-2026-000003,
**Teslim Alan** (Received By) "Depo Sorumlusu" (Warehouse Supervisor), 13:40; stop 2 SV-2026-000004, "Mal Kabul
Sorumlusu" (Goods Receipt Supervisor), 15:10, **Not** (Note) "1 panonun kapağı ezik" (the cover of 1 panel is
dented).

1. Event
2. Stop (delivery)
3. Received by — required on delivery
4. Time — now if empty
After the last stop, enter **Varış** (Arrival) 17:30 in the **Tamamla** (Complete) dialog. The trip becomes
**Tamamlandı** (Completed); the **Teslim** (Delivery) column shows the delivery time and recipient for each stop.

1. Status: Completed
2. Load compared with capacity
3. Delivery and receiver per stop
4. Settled freight is not recalculated
Details: [Record a trip event](https://erpdocs.corexlogic.com/en/lojistik/islemler/sefer-olayi-kaydetme),
[Complete a trip](https://erpdocs.corexlogic.com/en/lojistik/islemler/seferi-tamamlama).
## 9. Record the proof of delivery
When the signed delivery notes come back, open **Alındı Teyidi Kaydet** (Record Proof of Delivery) on each
delivery's details. The dialog suggests the delivery day and the recipient from the trip's delivery event.
- **SV-2026-000003:** the accepted quantities are the same as the delivered quantities; **Kaydet** (Save).
- **SV-2026-000004:** for MAM-0002, **Kabul edilen** (Accepted) 1, **Sebep** (Reason) **Taşımada hasar**
(Damaged in transit), **Not** (Note) "1 pano kapağı ezik geldi; müşteri teslim almadı" (1 panel cover arrived
dented; the customer did not accept it); **Kaydet**.

1. Delivery date — cannot be in the future
2. Received by — required
3. Accepted quantity — prefilled with delivered
4. Reason for short acceptance
The card becomes **Teyit edildi** (Confirmed); SV-2026-000004 shows *Teslim edilen 2 · Kabul edilen 1 · Fark 1 ·
Taşımada hasar* (Delivered 2 · Accepted 1 · Difference 1 · Damaged in transit).

1. Confirmation status
2. Undo — only for unbilled deliveries
3. Delivered vs accepted difference
4. Difference reason
With a partial acceptance, the invoice is issued for the accepted quantity. In the **Zamanında-Tam Teslim**
(On-Time In-Full) report, Güneş Enerji's line shows *Zamanında %100 · Tam %0* (On time 100% · In full 0%). Taking
the returned panel back into stock is a separate document ([delivery correction](https://erpdocs.corexlogic.com/en/lojistik/islemler/teslimat-duzeltmesi-olusturma)
or İade Al — Receive Return). If **Alındı teyidinden sonra faturala** (Invoice after proof of delivery) had been
selected on the customer record, the deliveries would have been **Teyit bekleniyor** (Awaiting confirmation)
before the confirmation and would not have been invoiced. Details: [Record proof of delivery](https://erpdocs.corexlogic.com/en/lojistik/islemler/alindi-teyidi-kaydetme).
## 10. Settle the freight
In **Lojistik Yönetimi › Taşıma › Navlun Hesaplaşması Oluştur** (Logistics › Transportation › Create Freight
Settlement), select the **Taşıyıcı** (Carrier) Hızlı Hat; select TSM-2026-000001 (6.900,00 TRY), enter the **Not**
(Note) "Kasım 1. hafta — Ankara seferi" (November week 1 — Ankara trip) and click **Hesaplaşmayı Kaydet** (Save
Settlement).

1. Carrier
2. Currency — one per document
3. Settlement date
4. Completed trip with calculated freight
5. Save Settlement
**NHS-2026-000001** opens in **Kaydedildi** (Saved) status: Amount (excl. VAT) 6.900,00 TRY, VAT 1.380,00 TRY
(KDV20 · 20%), **Genel Toplam 8.280,00 TRY** (Grand Total). The trip's Navlun (Freight) card now says
*"Hesaplaşıldı: NHS-2026-000001 — navlun yeniden hesaplanmaz."* (Settled: NHS-2026-000001 — the freight is not
recalculated.) The carrier's invoice is linked to this document in Finance.

1. Status
2. Total incl. VAT
3. Cancel — if not linked to an invoice
Details: [Create a freight settlement](https://erpdocs.corexlogic.com/en/lojistik/islemler/navlun-hesaplasmasi-olusturma).
## Monitoring the process
**Lojistik Yönetimi › Giden Teslimat › Teslimat İzleme** (Logistics › Outbound Delivery › Delivery Tracking)
counts the deliveries stage by stage: awaiting goods issue, not assigned to a trip, planned trip, in transit,
awaiting proof of delivery. Overdue deliveries appear with the **Gecikmiş** (Overdue) badge.

1. Warehouse filter
2. Look-back window
3. Stage card — count and overdue
4. Overdue delivery
5. Reference check — shows, does not fix
For freight and delivery performance, see [Logistics analytics](https://erpdocs.corexlogic.com/en/lojistik/ekranlar/analitik) (Freight Cost,
On-Time In-Full).
## FAQ / Troubleshooting
| Message or situation | Cause and solution |
|---|---|
| *"Mal çıkışı kaydedilmemiş ya da iptal edilmiş teslimatla sefer yola çıkamaz: …"* (A trip cannot be dispatched with a delivery whose goods issue has not been posted or that has been cancelled: …) | Post the goods issue of the deliveries on the trip; remove the cancelled delivery from the trip. |
| *"Taşıyıcıya verilen sefer taşıyıcı seçilmeden yola çıkamaz."* (A trip given to a carrier cannot be dispatched before a carrier is selected.) | Select the carrier with **Taşıyıcı Seç › Ata** (Select Carrier › Assign) or **Düzenle** (Edit). |
| *"Kendi filomuzla yapılan sefer araç ve sürücü olmadan yola çıkamaz."* (A trip with our own fleet cannot be dispatched without a vehicle and driver.) | Select the vehicle and driver with **Düzenle** (Edit). |
| *"Belgesiz sefer yola çıkamaz — en az bir teslimat atayın."* (A trip without documents cannot be dispatched — assign at least one delivery.) | Add a delivery to the trip. |
| *"Şu belgeler başka bir seferde: …"* (These documents are on another trip: …) | A delivery can be on only one trip at a time; remove it from the other trip. |
| The Navlun (Freight) card shows *"Seferde taşıyıcı yok."* (The trip has no carrier.) | Select the carrier; freight is calculated only for a carrier trip. |
| *"Taşıyıcının seferin çıkış gününde geçerli navlun anlaşması yok."* (The carrier has no freight agreement valid on the trip's departure day.) | Check the agreement's validity period or the trip's departure day. |
| *"Ölçüsü bilinmeyen dayanak hesaba girmez: …"* (A basis with an unknown measure is not included in the calculation: …) | Enter the distance on the trip and the weight and volume on the item record; **Yeniden Hesapla** (Recalculate). |
| *"Sefer ya da anlaşma hesaptan sonra değişti — navlunu yeniden hesaplayın."* (The trip or the agreement changed after the calculation — recalculate the freight.) | **Yeniden Hesapla** (Recalculate) on the Navlun (Freight) card. |
| *"Varış ve teslim bir durağın (belgenin) olayıdır — durağı seçin."* (Arrival and delivery are events of a stop (document) — select the stop.) | Select the **Durak** (Stop) in the event dialog. |
| *"Teslim tarihi bugünden sonra olamaz."* (The delivery date cannot be later than today.) | The delivery date of the proof of delivery must be today or earlier. |
| *"TSM-… tamamlanmadı — yalnız tamamlanmış sefer hesaplaşır."* (TSM-… has not been completed — only a completed trip can be settled.) | **Tamamla** (Complete) the trip first. |
| *"Seferin navlunu NHS-… hesaplaşmasında — önce hesaplaşmayı iptal edin."* (The trip's freight is in settlement NHS-… — cancel the settlement first.) | Settled freight is not recalculated; cancel the settlement if necessary. |
| *"Yalnız planlanan sefer iptal edilir — yola çıkmış sefer tamamlanır."* (Only a planned trip can be cancelled — a dispatched trip is completed.) | A trip in transit cannot be cancelled. |
| In Load Planning a delivery shows *"Ağırlığı ya da hacmi bilinmiyor (ölçüsü tanımsız ürün) — kapasitesi tanımlı araca konamaz."* (Weight or volume unknown (item without defined measures) — it cannot be put on a vehicle with a defined capacity.) | Enter weight/volume on the item record, or create the trip manually. |
---
# Approval workflow
> From approval template to decision — submitting a discounted sales quotation for approval, rejecting it, resubmitting it and approving it.
URL: https://erpdocs.corexlogic.com/en/surecler/onay-akisi
The approval journey of a document: an administrator defines the **approval template**, the sales
representative **submits for approval** a document that the template catches, and the approver **approves** the
document or **rejects it with a reason**; a rejected document is corrected and resubmitted. The same flow applies
to purchase orders, purchase requisitions, journal entries and engineering change requests; only the status of
the document after approval differs. Concepts and all fields: [Approvals](https://erpdocs.corexlogic.com/en/ayarlar/onaylar).
> **Scenario**
The demo company wants sales quotations with a discount of 10% or more to go through management approval. The
sales representative prepares a quotation for **M-0019 Lara Kıyı Otelcilik ve Turizm A.Ş.** for 200 units of
**MAM-0008 Sıvı Deterjan 5 LT** at a unit price of 239 TRY with a **12% discount** (customer reference
LKO-2026-118, grand total 50.476,80 TRY). The template catches the quotation, the manager rejects the first
submission asking for the delivery date to be confirmed, and the quotation is resubmitted. Document:
**ST-2026-000005**.
```
Approval Template ──► Sales Quotation ──Submit for Approval──► Awaiting Approval ──Reject──► Draft ──Submit for Approval──► Awaiting Approval ──Approve──► Sent
(active, 10%) (Draft, 12%) (round 1) (reason) (correct) (round 2) (to customer)
```
## 1. Define the approval template
**Yönetim › Onay Süreci › Onay Şablonları › Yeni Şablon** (Administration › Approval Process › Approval
Templates › New Template)
| Field | Value |
|---|---|
| Belge Türü (Document Type) | Satış Teklifi (Sales Quotation) |
| Şablon Adı (Template Name) | Satış teklifi — iskonto %10 ve üzeri (Sales quotation — discount 10% or more) |
| Hangi belgeler (Which documents) | **Yalnız iskontosu belirli bir oranı aşan belgeler** (Only documents whose discount exceeds a given rate), **İskonto eşiği (%)** (Discount threshold (%)) 10 |
| Stage 1 | Name "Yönetim onayı" (Management approval), **Bir rol** (A role) › Yönetici (Manager), 1 approval required, 1 rejection rejects |
After you save, the Satış Teklifi (Sales Quotation) card shows "1 etkin şablon — onaydan geçer" (1 active
template — goes through approval). Because no amount condition was added, only the discount is decisive,
whatever the quotation amount. In a real installation the stage is usually set up with the **Satış Müdürü**
(Sales Manager) role and escalated to a higher role if it goes unanswered (**Cevapsız kalırsa** — If unanswered
— in the dialog).

1. New Template
2. Document type card — does the type go through approval
3. Condition — amount range / discount threshold
4. Stages are asked in order
5. Active / Inactive
Detailed steps: [Create an approval template](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-sablonu-olusturma).
## 2. Prepare the quotation
**Satış › Teklif Yönetimi › Satış Teklifi Oluştur** (Sales › Quotation Management › Create Sales Quotation) —
customer, item, quantity, and 12 in the line's **İskonto %** (Discount %) field. **Teklifi Oluştur** (Create
Quotation) saves the quotation as **Taslak** (Draft) ([Create a quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklif-olusturma)).
On the draft's details, the send button is named **Onaya Gönder** (Submit for Approval) and the reason is shown
below it: "Bu teklif onay şablonuna takılıyor (tutar ya da iskonto). **Onaya Gönder** teklifi kilitler; son
onayda kendiliğinden gönderildi olur." (This quotation is caught by an approval template (amount or discount).
**Onaya Gönder** locks the quotation; on final approval it becomes sent automatically.) The template matches
because the highest effective discount on the lines, 12%, is ≥ 10%.

1. Send for Approval instead of Send
2. Why it needs approval
## 3. Submit for approval
**Onaya Gönder** (Submit for Approval) › dialog "Teklif onaya gönderilsin mi?" (Submit quotation for approval?)
› **Onaya Gönder**.

1. Quotation locks, approval round opens
- The quotation becomes **Onay Bekliyor** (Awaiting Approval) and is **locked**: it cannot be edited, cannot be
converted to an order and is not considered sent to the customer. The only action is **İptal Et** (Cancel)
(the open round is closed).
- Round 1 opens; the template's stage is copied into the round. Approvers with the Yönetici (Manager) role
receive the notification "Onayınız bekleniyor" (Your approval is awaited) ("ST-2026-000005 numaralı satış
teklifi 1. onay aşamasında sizi bekliyor." — Sales quotation ST-2026-000005 is waiting for you at approval
stage 1.).
- The document enters the approvers' **Onayımı Bekleyenler** (My Pending Approvals) list. It does not appear in
the submitter's own list.
## 4. The approver decides — rejection
The approver opens the document from the notification or from **Yönetim › Onay Süreci › Onayımı Bekleyenler**
(Administration › Approval Process › My Pending Approvals). The top of the document reads "Teklif onay
bekliyor — sırada 1. aşama: Yönetici." (Quotation awaiting approval — next: stage 1: Manager.)
In this scenario the approver wants the delivery date confirmed: **Reddet** (Reject) › **Red gerekçesi**
(Rejection reason) "Teslim tarihini müşteriyle teyit edip yeniden gönderin." (Confirm the delivery date with the
customer and resubmit.) › **Reddet**.

1. Rejection reason — sent to the submitter
2. Reject — document returns to draft at the threshold
- Because the stage has reached its rejection threshold (1), round 1 becomes **Reddedildi** (Rejected).
- The quotation returns to **Taslak** (Draft) and can be edited again.
- The submitter is notified: "Satış teklifi reddedildi — ST-2026-000005 numaralı teklifi … reddetti: Teslim
tarihini müşteriyle teyit edip yeniden gönderin." (Sales quotation rejected — … rejected quotation
ST-2026-000005: Confirm the delivery date with the customer and resubmit.)
> **Segregation of duties**
The person who **submitted** the quotation for approval and the quotation's **sales representative** cannot
approve it — only **Reddet** (Reject) appears on the details. If they try to approve, the system says "Onaya
kendiniz gönderdiğiniz ya da satış temsilcisi olduğunuz teklifi onaylayamazsınız. Kararı başka bir onaycı
vermeli." (You cannot approve a quotation that you submitted for approval yourself or for which you are the sales
representative. Another approver must make the decision.) Rejecting (pulling it back to draft) is allowed.
## 5. Correct and resubmit
The sales representative corrects the quotation (**Düzenle** — Edit — if needed) and clicks **Onaya Gönder**
(Submit for Approval) again. **Round 2** opens; round 1 and its reason remain as they were on the **Onaylar**
(Approvals) card.

1. Decision buttons — server decides (submitter cannot approve)
2. Who it is waiting for
3. Current round — awaiting decision
4. Previous round — rejection and reason kept
The card shows the rounds newest first: round 2 "Onay Bekliyor — Karar bekleniyor" (Awaiting Approval —
Decision pending), round 1 "Reddedildi — Demo Kullanıcı · Reddetti · tarih" (Rejected — Demo Kullanıcı ·
Rejected · date) with the reason below.
## 6. Approval
Approval is given by **another** user with the Yönetici (Manager) role — in the demo environment **Demo
Onaylayıcı** (neither the submitter nor the sales representative of the quotation). The document is in their
**Yönetim › Onay Süreci › Onayımı Bekleyenler** (Administration › Approval Process › My Pending Approvals)
list: **Belge** (Document) ST-2026-000005 (Satış Teklifi — Sales Quotation), **Gönderen** (Submitted By) Demo
Kullanıcı and the submission time, **Tutar** (Amount) 50.476,80 TRY, **Aşama** (Stage) "Tek aşama" (Single
stage) with "Satış teklifi — iskonto %10 ve üzeri — Yönetim onayı" below it.

1. Document — click to open
2. Submitter and date
3. Stage, template and stage name
4. How long the stage has waited
The approver clicks the document number to open the quotation; on the approver's details **Onayla** (Approve)
and **Reddet** (Reject) appear together. **Onayla** › the "Onay verilsin mi?" (Give approval?) dialog shows the
document and its amount ("ST-2026-000005 · 50.476,80 TRY") › **Not (isteğe bağlı)** (Note (optional)) "Teslim
tarihi müşteriyle teyit edildi; %12 iskonto yıllık anlaşma kapsamında." (Delivery date confirmed with the
customer; the 12% discount is covered by the annual agreement.) › **Onayla**.

1. Document and amount being approved
2. Note — saved with the approval
3. Approve — last stage moves the document on
- The stage has reached the required approvals and there is no other stage: the round becomes **Onaylandı**
(Approved). On the **Onaylar** (Approvals) card, round 2 shows "Onaylandı", with "Demo Onaylayıcı · Onayladı ·
02.11.2026 01:13" (Demo Onaylayıcı · Approved · 02.11.2026 01:13) and the approval note below the stage;
round 1 and the rejection reason remain as they were.
- The quotation automatically becomes **Gönderildi** (Sent); the sending rules (item, customer, validity) are
re-evaluated at that moment. The buttons on the details are now **Kopyala** (Copy), **Siparişe Dönüştür**
(Convert to Order), **Revize Et** (Revise), **Kaybedildi** (Lost), **İptal Et** (Cancel) and **Çıktı**
(Output); the **Gönderim** (Sending) field shows the approval time and the person who submitted the quotation
(Demo Kullanıcı).
- The submitter is notified: "Satış teklifi onaylandı — ST-2026-000005 numaralı teklif tüm onayları aldı ve
gönderildi olarak işaretlendi." (Sales quotation approved — quotation ST-2026-000005 received all approvals
and was marked as sent.)

1. Sent automatically on final approval
2. Can now be converted to an order
3. Vote: approver, decision, time
4. Approval note
- The quotation can now be sent to the customer with **Çıktı › E-posta ile Gönder** (Output › Send by Email)
and, once accepted, converted to an order: [Quotation to invoice](https://erpdocs.corexlogic.com/en/surecler/tekliften-faturaya).
## After approval, by document type
| Document | While Onay Bekliyor (Awaiting Approval) | On final approval | On rejection |
|---|---|---|---|
| Satış Teklifi (Sales Quotation) | Locked, not sent to the customer | Gönderildi (Sent) | Taslak (Draft) |
| Satın Alma Siparişi (Purchase Order) | Locked, no goods receipt possible | Sipariş Verildi (Ordered) | Taslak (Draft) |
| Satın Alma Talebi (Purchase Requisition) | Not on Purchasing's agenda | Talep Edildi (Requested) | Taslak (Draft) |
## FAQ / Troubleshooting
| Situation | Cause and solution |
|---|---|
| The button reads **Gönder** (Send) and the document does not go to approval | There is no **active** template matching the document: the condition (discount threshold, amount range, **para birimi** — currency) does not match, or the template is inactive. There is no exchange-rate conversion in the amount condition. |
| The approver does not see the document in **Onayımı Bekleyenler** (My Pending Approvals) | The approver does not have the stage's role, does not have the approval permission for the document type, submitted the document themselves, or has already voted at that stage. |
| "Bu aşamada kararınızı zaten verdiniz — aşama diğer onaycıların oyunu bekliyor." (You have already made your decision at this stage — the stage is waiting for the other approvers' votes.) | The stage requires more than one approval; the other approvers are awaited. |
| "Bu teklif onay beklemiyor." (This quotation is not awaiting approval.) | In the meantime the document was approved, rejected or cancelled — refresh the page. |
| The approver is on leave | The approver or an administrator defines a delegate in **Onay Vekaletleri** (Approval Delegations): [Define an approval delegation](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-vekaleti-tanimlama). |
| The approval has been waiting for days | In **Uyarı ve Bildirim Yönetimi** (Alert and Notification Management), turn on **Onay bekleyen hatırlatması** (Pending approval reminder); in the template, escalate to a higher role with **Cevapsız kalırsa** (If unanswered). |
## Step-by-step tasks
- [1. Create an approval template](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-sablonu-olusturma) — Document type, condition, stages.
- [2. Create a quotation](https://erpdocs.corexlogic.com/en/satis/islemler/teklif-olusturma) — Customer, line item, discount.
- [3. Make an approval decision](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-karari-verme) — Approve, or reject with a reason.
- [Define an approval delegation](https://erpdocs.corexlogic.com/en/ayarlar/islemler/onay-vekaleti-tanimlama) — A delegate for the duration of a leave.
- [Create an alert](https://erpdocs.corexlogic.com/en/ayarlar/islemler/uyari-acma) — Pending approval reminder.
---
# New user and permissions
> From opening an account for a new employee to closing the account of a departing employee — role design, user invitation, role assignment, first sign-in, permission check and deactivation.
URL: https://erpdocs.corexlogic.com/en/surecler/yeni-kullanici-ve-yetki
An employee's access lifecycle in CoreX ERP: when the employee starts, a role is prepared and an account is opened; at
first sign-in the employee sets a password and sees only the screens and buttons of their own job; when the employee
leaves, the account is closed. For the concepts, first read the [Permission model](https://erpdocs.corexlogic.com/en/yonetim/yetki-modeli).
> **Scenario**
On 2 November 2026, a **sales representative** joins the demo company's sales team. The representative will write
quotations and sales orders and give commercial approval to sales orders; they will not write price lists, will not
close sales orders manually (that is the sales manager's job), and will not see the purchasing and administration
screens. On the same day, the account of an employee leaving the team is to be closed.
- Role: **Demo — Satış Temsilcisi** (Demo — Sales Representative; from the ready-made **Satış Temsilcisi** (Sales
Representative) template, with `erp-sales-orders.close` removed — 113 permissions)
- New user: **Demo Satış Temsilcisi** — `satis.temsilcisi@demo.corexlogic.com`
- Departing user: **Demo Eski Çalışan** (Demo Former Employee) — `eski.calisan@demo.corexlogic.com`
```
Role design ──► Open account ──► (Restriction / extra permission) ──► First sign-in ──► Permission check ──► Departing employee
Roles Users Users Change your menu, button, Deactivate
(113 perms) Invitation Actions menu password 403, log (role and record remain)
pending or Active
```
## 1. Prepare the role
**Yönetim › Kullanıcı ve Roller › Roller** (Administration › Users and Roles › Roles)
The person could also have been given the ready-made **Satış Temsilcisi** (Sales Representative) role. Because the
scenario does not want the permission to close sales orders, a new role is created from the template:
1. **Yeni Rol** (New Role) → **Rol adı** (Role name): `Demo — Satış Temsilcisi` → **Rol şablonu** (Role template):
**Satış Temsilcisi · Eleman** (Sales Representative · Staff).

1. Role name — cannot be changed later
2. Role template — starting permissions
3. Scope — modules the role writes in
4. Permissions and Screens tabs
5. Create Role
2. On the **Yetkiler** (Permissions) tab, type `siparis` in the search box and clear the **Satış Siparişleri · Kapat**
(Sales Orders · Close) check box. The tab counter drops from 114 to 113.

1. Granted / total permissions
2. Search — module, page or action
3. Module — ticks all at once
4. Action — a single permission
5. Permission not granted in this role
6. Read Only — keeps only View permissions
3. On the **Ekranlar** (Screens) tab, the catalog comes from the template (31 screens); without changing it, click
**Rolü Oluştur** (Create Role).

1. All screens — every permitted screen in the menu
2. Adds screens the role writes to
3. Area › section › screen — shown in the menu
4. Selected / total screens
The role appears in the list in the "Kurumun rolleri" (Organization's roles) area, with the modules it writes to in the
**Kapsam (yazma)** (Scope — write) column. A role created from a template is not linked to the template; all of its
permissions can be changed. Details: [Create a role](https://erpdocs.corexlogic.com/en/yonetim/islemler/rol-olusturma).
## 2. Open the account
**Yönetim › Kullanıcı ve Roller › Kullanıcılar › Yeni Kullanıcı** (Administration › Users and Roles › Users › New User)
1. **Ad** (First name) `Demo`, **Soyad** (Last name) `Satış Temsilcisi`, **E-posta** (E-mail)
`satis.temsilcisi@demo.corexlogic.com`.
2. **Davet e-postası gönder — kullanıcı şifresini kendisi belirlesin** (Send an invitation e-mail — let the user set
their own password) (recommended).

1. Tabs — information, roles, org unit
2. E-mail — login ID, cannot be changed later
3. Invitation — single-use link valid for 3 days (recommended)
4. Administrator sets the password — account opens at once
5. Lock on failed attempts
6. Send Invitation — needs e-mail settings
3. On the **Roller** (Roles) tab, select **Demo — Satış Temsilcisi**.

1. Roles — count of selected in brackets
2. Search role or area
3. Tick the role; several roles allowed
4. Click **Davet Gönder** (Send Invitation). The account is opened with the **Davet bekliyor** (Invitation pending)
badge; the person sets a password with a link valid for 3 days. Details: [Invite a user](https://erpdocs.corexlogic.com/en/yonetim/islemler/kullanici-davet-etme).
> **Invitation in the demo environment**
The demo installation has no e-mail settings; **Davet Gönder** (Send Invitation) stopped with this message and the
account was not opened: "E-posta gönderimi yapılandırılmamış (Yönetim › Özelleştirme › Genel › E-posta Ayarları). Davet
bağlantısı gönderilemez; hesabı şifre belirleyerek açabilirsiniz." (E-mail sending is not configured (Administration ›
Customization › General › E-mail Settings). The invitation link cannot be sent; you can open the account by setting a
password.) The scenario continued with the second option: **Şifreyi ben belirleyeyim** (I will set the password) →
**Rastgele Üret** (Generate Random) → **İlk girişte şifre değiştirilmesi zorunlu olsun** (Require password change at
first sign-in) selected → **Hesabın açıldığını kullanıcıya e-postayla bildir** (Notify the user by e-mail that the
account was opened) cleared → **Oluştur** (Create). Notification: "Kullanıcı oluşturuldu: Demo Satış Temsilcisi" (User
created: Demo Satış Temsilcisi). Details: [Create a user with a password](https://erpdocs.corexlogic.com/en/yonetim/islemler/kullanici-sifreyle-olusturma).

1. Password — 8+ characters, a digit, a lowercase letter
2. Generate and Copy
3. Change password at first login
4. Notice e-mail — password is not included
5. Create
The account appears in the list in **Aktif** (Active) status, with the new role in the **Roller** (Roles) column:

1. New User — opens an account by invitation or password
2. Search by name or e-mail
3. Role filter
4. Status: Active · Inactive (disabled) · Locked · All
5. Row: name, roles and account (e-mail)
6. Actions — edit, permissions, password, disable
## 3. Restrictions and extra permissions, if needed
Not needed for the sales representative. When needed, use the row's **İşlemler** (Actions) menu:
- **Organizasyon Kısıtlaması** (Organizational Restriction) — narrows a warehouse keeper to their own warehouse, or an
operator to their own work center: [Grant an organizational restriction](https://erpdocs.corexlogic.com/en/yonetim/islemler/organizasyon-kisitlamasi-verme).
- **Ekstra Yetkiler** (Extra Permissions) — a permission outside the role for a single person (e.g. temporary quotation
approval): [Grant an extra permission](https://erpdocs.corexlogic.com/en/yonetim/islemler/ekstra-yetki-verme).

1. Name, phone, roles and org unit
2. Personal permissions on top of roles
3. Narrows rights to warehouses and work centers
4. Reset link or manual password
5. Disables the account — record is kept
## 4. First sign-in
On the sign-in screen, the user signs in with their e-mail and the password provided to them. Because the password was
set by the administrator, the application first opens the **Parolanızı değiştirin** (Change your password) screen:
"Güvenliğiniz için devam etmeden önce parolanızı değiştirmeniz gerekiyor." (For your security, you need to change your
password before continuing.) — **Mevcut parola** (Current password), **Yeni parola** (New password), **Yeni parola
(tekrar)** (New password, again) → **Parolamı Değiştir ve Devam Et** (Change My Password and Continue). The Home page
then opens; the person's role (**Demo — Satış Temsilcisi**) is shown below the greeting.
For an account opened by invitation, instead of this step the **Hesabınızı etkinleştirin** (Activate your account) page
from the e-mail link is used (full name and password → **Hesabımı Etkinleştir** — Activate My Account).
The sign-in and the password change leave a trace on the administrator side:

1. Event filter — login, failed login, lock, logout
2. Search by user or e-mail
3. Event type
4. Source address

1. User filter
2. Entity type — which record
3. Create · Update · Delete
4. Changed fields
5. Old and new value
## 5. Check the permissions
Verified in the demo environment by signing in as the new user:
| Check | What is seen |
|---|---|
| Top menu | **Satış, Stok Yönetimi, Lojistik Yönetimi, Üretim, Ana Veriler, Finans** (Sales, Inventory, Logistics, Production, Master Data, Finance). **Satın Alma, Servis, Bakım, Yönetim** (Purchasing, Service, Maintenance, Administration) are absent. |
| Satış › Sipariş Yönetimi › Satış Siparişleri (Sales › Order Management › Sales Orders) | **Yeni Sipariş** (New Order) is available. On a draft sales order, **Düzenle** (Edit), **Siparişi Onayla** (Approve Order) and **Siparişi İptal Et** (Cancel Order) are available. |
| Satış › Teklif Yönetimi › Satış Teklifleri (Sales › Quotation Management › Sales Quotations) | On a draft quotation: **Gönder** (Send), **Düzenle** (Edit), **İptal Et** (Cancel); on a sent quotation: **Siparişe Dönüştür** (Convert to Order), **Revize Et** (Revise), **Kaybedildi** (Lost). |
| Satış › Ana Veriler › Fiyat Listeleri (Sales › Master Data › Price Lists) | The list can be read; only **Dışa Aktar** (Export) is available — there is no new list button (no `erp-sales-price-lists.create`). |
| The address of the purchase order list | Not in the menu, but it opens via the address and can be read (read baseline); there is no **Yeni Sipariş** (New Order) button. |
| The `/users`, `/roles`, `/module-management` addresses | "Bu işlemi gerçekleştirmek için yetkiniz bulunmuyor." (You do not have permission to perform this operation.) · "Erişim gerekiyorsa sistem yöneticinizle iletişime geçin." (If you need access, contact your system administrator.) · **Ana Sayfa'ya dön** (Back to Home) |
If a user says they cannot see a button, check in this order:
1. Does their role (or their unit's role, or their extra permissions) have the permission for that operation? Find the
button's source in the [Permission list](https://erpdocs.corexlogic.com/en/yonetim/izin-listesi) and check it on the role's **Yetkiler**
(Permissions) tab.
2. Is the feature enabled in **Modül Yönetimi** (Module Management)? If it is disabled, the message is "Bu özellik
kuruluşunuzda etkin değil." (This feature is not enabled in your organization.)
3. If the screen is not in the menu, is it in the role's **Ekranlar** (Screens) catalog?
4. Does the document's status allow the button? If a rule blocks it, the button is visible but disabled; hovering over
it shows the reason.
## 6. Close the departing employee's account
**Yönetim › Kullanıcı ve Roller › Kullanıcılar** (Administration › Users and Roles › Users) — row **Demo Eski Çalışan** ›
**İşlemler** (Actions) › **Devre Dışı Bırak** (Deactivate) → **Devre dışı bırak** (Deactivate).

1. Login closes, open session ends; roles are kept
The account cannot sign in; an open session is dropped on the next request. The record is not deleted: its roles remain,
past documents continue to show the account, and pending invitation and password links become invalid. The account
appears under the **Durum: Pasif (devre dışı)** (Status: Inactive — deactivated) filter and, if necessary, can be
reopened together with its roles with **Geri Yükle** (Restore).

1. Status: Inactive (disabled)
2. Disabled badge
3. Restore — reopens with its roles
Details: [Deactivate a user](https://erpdocs.corexlogic.com/en/yonetim/islemler/kullaniciyi-devre-disi-birakma).
## FAQ / Troubleshooting
| Message or situation | Cause | What to do |
|---|---|---|
| "E-posta gönderimi yapılandırılmamış (Yönetim › Özelleştirme › Genel › E-posta Ayarları). Davet bağlantısı gönderilemez; hesabı şifre belirleyerek açabilirsiniz." (E-mail sending is not configured … The invitation link cannot be sent; you can open the account by setting a password.) | There are no e-mail settings. | Have the e-mail settings configured, or open the account with **Şifreyi ben belirleyeyim** (I will set the password). |
| "Hesap açıldı ama davet e-postası gönderilemedi (…)" (The account was opened but the invitation e-mail could not be sent (…)) | The account was opened; the e-mail did not go out at that moment. | **İşlemler › Daveti Yeniden Gönder** (Actions › Resend Invitation). |
| "Bu davet geçersiz ya da süresi dolmuş." (This invitation is invalid or has expired.) | The link exceeded 3 days, was already used, or a newer one was sent. | **Daveti Yeniden Gönder** (Resend Invitation). |
| "Bu işlemi gerçekleştirmek için yetkiniz bulunmuyor." (You do not have permission to perform this operation.) | No permission (HTTP 403). | Add the permission to the user's role or assign a suitable role; the change takes effect immediately. |
| "Bu özellik kuruluşunuzda etkin değil." (This feature is not enabled in your organization.) | The role has the permission, but the feature is disabled. | Enable the feature in **Modül Yönetimi** (Module Management). |
| "Devam etmeden önce parolanızı değiştirmeniz gerekiyor — bu parolayı sizden başka biri de biliyor." (You need to change your password before continuing — someone other than you also knows this password.) | A password change is required at first sign-in. | The user completes the **Parolanızı değiştirin** (Change your password) screen. |
| "E-posta veya parola hatalı." (Incorrect e-mail or password.) | Wrong e-mail or password. | Check the description in **Erişim Günlüğü** (Access Log) (Hatalı parola (Wrong password) / Bilinmeyen e-posta (Unknown e-mail) / Hesap devre dışı (Account deactivated)). |
| "Hesap … başarısız giriş denemesi nedeniyle kilitlendi. …" (The account was locked due to … failed sign-in attempts. …) | 5 failed attempts, 15-minute lock. | Wait, or [Unlock the account](https://erpdocs.corexlogic.com/en/yonetim/islemler/kilit-kaldirma); if the password was forgotten, send a link. |
| "Çok fazla deneme yapıldı. 60 saniye sonra tekrar deneyin." (Too many attempts. Try again in 60 seconds.) | More than 10 sign-in attempts per minute from the same address. | Wait a minute and try again. |
| `'' deposunda işlem yetkiniz yok.` (You do not have permission to operate in warehouse '<warehouse code>'.) | Organizational restriction. | Add the warehouse to the restriction, or leave the task to an authorized person. |
| An assigned approval role does not appear in the approval inbox | The approval role is read from the session's role names. | The user should refresh the page. |
| "Kendi hesabınızı devre dışı bırakamazsınız. Bunu başka bir yönetici yapmalı." (You cannot deactivate your own account. Another administrator must do this.) | You tried to close your own account. | Another administrator does it. |
| "… Yönetici rolünü taşıyan son etkin hesap. …" (… the last active account with the Administrator role. …) | The role is being removed from the last administrator. | First give the Administrator role to another user. |
| "Lisans en çok … etkin kullanıcıya izin veriyor; …" (The license allows at most … active users; …) | The license's user limit is reached. | Deactivate an unused account or extend the license. |
## Step-by-step tasks
- [1. Create a role](https://erpdocs.corexlogic.com/en/yonetim/islemler/rol-olusturma) — Role from a template, permissions and screens.
- [2a. Invite a user](https://erpdocs.corexlogic.com/en/yonetim/islemler/kullanici-davet-etme) — Invitation by e-mail.
- [2b. Create a user with a password](https://erpdocs.corexlogic.com/en/yonetim/islemler/kullanici-sifreyle-olusturma) — If there are no e-mail settings.
- [3a. Organizational restriction](https://erpdocs.corexlogic.com/en/yonetim/islemler/organizasyon-kisitlamasi-verme) — Warehouse and work center.
- [3b. Extra permission](https://erpdocs.corexlogic.com/en/yonetim/islemler/ekstra-yetki-verme) — A permission specific to one person.
- [Change a role](https://erpdocs.corexlogic.com/en/yonetim/islemler/kullaniciya-rol-atama) — Role assignment when the job changes.
- [Reset a password](https://erpdocs.corexlogic.com/en/yonetim/islemler/sifre-sifirlama) — Link or manual password.
- [6. Deactivate](https://erpdocs.corexlogic.com/en/yonetim/islemler/kullaniciyi-devre-disi-birakma) — Departing employee.
---
# Setup with data import
> From an empty installation to a working company — the load order of the master data workbooks, Validate and Import for each workbook, expected results and post-setup checks.
URL: https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum
In a new installation, products, business partners, BOMs, prices and opening stock are not entered one by one on
screens; they are loaded from Excel workbooks through **Veri Aktarımı** (Data Import). Because the workbooks are linked
to each other by code, the **order** matters: a BOM needs its products, a routing needs its work centers, and the
opening stock needs its warehouses. Every workbook is loaded in the same two steps: first **Kontrol Et** (Validate —
writes nothing), then, if there are no errors, **Aktar** (Import).
Framework and rules: [Data import](https://erpdocs.corexlogic.com/en/veri-aktarimi).
> **Scenario**
A fictitious industrial company (CoreX Demo Endüstri ve Ticaret A.Ş.) — it manufactures electrical panels, office
furniture, stainless steel tanks, conveyors and chemicals, and sells to different sectors. The setup package consists of
eleven workbooks: 141 purchased and manufactured products, 62 business partners, 13 work centers, 19 BOMs and routings,
three price lists, 159 supplier prices, four warehouses, and an opening stock dated 01.10.2026 with a total value of
1,960,810 TL. The result counts below are the **Kontrol Et** (Validate) results of this package on an empty
installation.
```
Empty installation ─► Master data seed ─► Company information ─► Users
│
├─► 01-02 Products ─────────────┬─► 04 Bills of materials
├─► 03 Work centers ────────────┴─► 05 Routings
├─► 06 Business partners ─► 07 Ship-to addresses and contacts
│ ├─► 08 Price lists (product + business partner)
│ └─► 09 Supplier prices (product + supplier)
└─► 10 Warehouses and storage locations ─► 11 Opening stock (product + warehouse)
└─► Checks (stock value, price, BOM)
```
## 1. Prepare the installation
| Step | Screen | What to do | Expected |
|---|---|---|---|
| Master data seed | Server (setup tool) | Once, on first installation: base units, main warehouse and plant, calendar. | The units (ADET, KG, M, M2, LITRE, PAKET, KUTU, SAAT …) and the MERKEZ warehouse are in the list. |
| Company information | Yönetim › Şirket Bilgileri (Administration › Company Information) | Legal name, tax ID (VKN), tax office, address. | The company name appears in the document letterhead. |
| Users and roles | Yönetim › Kullanıcı ve Roller › Kullanıcılar (Administration › Users and Roles › Users) or [Users and Roles import](https://erpdocs.corexlogic.com/en/veri-aktarimi/kullanicilar-ve-roller) | The people who will perform the import and the daily work, with their roles. | Each person sees the menu of their own role. |
When migrating from an existing installation, the **Kullanıcılar ve Roller** (Users and Roles) workbook is loaded first:
the people who will load the other workbooks come with it.
## 2. Load the workbooks in order
For each row: open the screen → **Dosya Seç** (Choose File) → **Kontrol Et** (Validate) → read the result → if
**Hatalı 0** (Errors 0), click **Aktar** (Import).
| Order | Workbook | Screen | Content | Validate (empty installation) |
|---|---|---|---|---|
| B1 | `01-urun-aktarimi.xlsx` | Ana Veriler › Ürünler › [Ürün Aktarımı](https://erpdocs.corexlogic.com/en/veri-aktarimi/urun-aktarimi) (Master Data › Products › Product Import) | Characteristics, categories, manufacturers, 98 purchased materials, unit conversions, alternatives, classification | 363 rows, Hatalı 0 |
| B2 | `02-uretilen-ve-satilan-urunler.xlsx` | Ürün Aktarımı (Product Import) | Finished products, semi-finished products, trading goods, spare parts, services; configuration, size variants, barcodes | 172 rows, Hatalı 0 |
| B3 | `03-is-merkezleri.xlsx` | Veri Aktarımı › [İş Merkezleri](https://erpdocs.corexlogic.com/en/veri-aktarimi/is-merkezleri) (Data Import › Work Centers) | 13 work centers | 13 rows, Hatalı 0 |
| B4 | `04-urun-agaclari.xlsx` | Veri Aktarımı › [Ürün Ağaçları](https://erpdocs.corexlogic.com/en/veri-aktarimi/urun-agaclari) (Data Import › Bills of Materials) | 19 BOMs, released; line conditions for configurable products | 251 rows, Hatalı 0 |
| B5 | `05-rotalar.xlsx` | Veri Aktarımı › [Rotalar](https://erpdocs.corexlogic.com/en/veri-aktarimi/rotalar) (Data Import › Routings) | 19 routings (2 master recipes), selection conditions on operations | 92 rows, Hatalı 0 |
| B6 | `06-cari-hesaplar.xlsx` | Ana Veriler › İş Ortakları › [İş Ortağı Aktarımı](https://erpdocs.corexlogic.com/en/veri-aktarimi/is-ortagi-aktarimi) (Master Data › Business Partners › Business Partner Import) | 43 customers, 20 suppliers (one is both), 2 sole proprietorships, 4 foreign customers | 62 rows, Hatalı 0 |
| B7 | `07-sevk-adresleri-ve-kisiler.xlsx` | Veri Aktarımı › [Sevk Adresleri ve İlgili Kişiler](https://erpdocs.corexlogic.com/en/veri-aktarimi/sevk-adresleri-ve-ilgili-kisiler) (Data Import › Ship-to Addresses and Contacts) | 12 ship-to addresses, 96 contacts | 108 rows, Hatalı 0 |
| B8 | `08-fiyat-listesi-aktarimi.xlsx` | Veri Aktarımı › [Fiyat Listesi Aktarımı](https://erpdocs.corexlogic.com/en/veri-aktarimi/fiyat-listesi-aktarimi) (Data Import › Price List Import) | STANDART, BAYI (Standard × 0.85), IHRACAT (EUR); scales, periods, characteristic surcharges, special prices, group discounts | 109 rows, Hatalı 0 |
| B9 | `09-tedarikci-fiyatlari.xlsx` | Veri Aktarımı › [Tedarikçi Fiyatları](https://erpdocs.corexlogic.com/en/veri-aktarimi/tedarikci-fiyatlari) (Data Import › Supplier Prices) | Main and alternative suppliers, lead time, minimum order; one blocked record | 159 rows, Hatalı 0 |
| B10 | `10-depolar-ve-lokasyonlar.xlsx` | Veri Aktarımı › [Depolar ve Lokasyonlar](https://erpdocs.corexlogic.com/en/veri-aktarimi/depolar-ve-lokasyonlar) (Data Import › Warehouses and Storage Locations) | HAMMADDE, KIMYA, MAMUL warehouses and their bins | 14 rows, Hatalı 0 |
| B11 | `11-stok-acilisi.xlsx` | Veri Aktarımı › [Stok Açılışı](https://erpdocs.corexlogic.com/en/veri-aktarimi/stok-acilisi) (Data Import › Opening Stock) | Opening as of 01.10.2026; batch-managed chemicals (with expiry dates), serial-numbered products | 136 rows, Hatalı 0 |

1. Load order
2. Click an object to open its import screen
3. Import/export or export only
### Loading a workbook (example: warehouses)
**Yönetim › Araçlar › Veri Aktarımı › Depolar ve Lokasyonlar** (Administration › Tools › Data Import › Warehouses and
Storage Locations) › **İçe Aktar** (Import) › **Dosya Seç** (Choose File) (`10-depolar-ve-lokasyonlar.xlsx`) › **Kontrol
Et** (Validate). Result counters and a per-sheet summary appear; on an empty installation all rows are **Açılacak** (To
Be Created). If the same workbook has been loaded before, all rows return **Değişmiyor** (Unchanged) — workbooks can be
run again, and a record is never created twice.

1. Three tabs
2. 1 · File (.xlsx)
3. 2 · Validate — changes nothing
4. 3 · Import — only after a clean validation
5. Result counters
If **Hatalı 0** (Errors 0), click **Aktar** (Import). The job runs on the server; you can leave the screen. When it
finishes, the **Veri aktarımı tamamlandı** (Data import completed) notification arrives and the result is "Aktarım
tamamlandı: N kayıt açıldı, N kayıt güncellendi, N kayıt değişmedi" (Import completed: N records created, N records
updated, N records unchanged).
### If there are rows with errors
The validation result lists the rows with errors with **Sayfa** (Sheet), **Satır** (Row), **Kod** (Code) and
**Açıklama** (Description). Example: when an unrecognized warehouse type, a bin for a non-existent warehouse and a
negative weight capacity are written in the warehouse workbook:

1. Failed row count
2. Import skipping failed rows
3. Create · Update · Unchanged · Failed
4. Error message — with row and code
Correct the file and run **Kontrol Et** (Validate) again. To correct the rows with errors later, **Hatalıları Atlayarak
Aktar** (Import, Skipping Errors) is also possible (not in Business Partner Import — there it is all or nothing).
Details: [Read the validation result](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/sonucu-okuma).
## 3. Verify the installation
| Check | Screen | Expected (demo package) |
|---|---|---|
| Stock value | Stok Yönetimi › Analitik › Stok Değerleme Raporu (Inventory › Analytics › Stock Valuation Report) | HAMMADDE 1,082,150 TL · KIMYA 187,270 TL · MAMUL 270,550 TL · MERKEZ 420,840 TL — total 1,960,810 TL, unvalued quantity 0 |
| Price | Satış › Teklif Yönetimi › Satış Teklifi Oluştur (Sales › Quotation Management › Create Sales Quotation) | For M-0016, MAM-0003 Ofis Çalışma Masası (office desk; 160 cm, Ceviz (Walnut), Kablo kanalı (Cable duct) Var (Yes)): unit price 13,350 TL |
| Bill of materials | Üretim › Ana Veriler › Ürün Ağaçları (Production › Master Data › Bills of Materials) | 19 BOMs released. |
| Approval (optional) | Yönetim › Onay Süreci › Onay Şablonları (Administration › Approval Process › Approval Templates) | Purchase order over 50,000 TL → Satın Alma Müdürü (Purchasing Manager); sales quotation with a discount over 10% → Satış Müdürü (Sales Manager). If there is no template, documents proceed without approval. |
Then the screens in [Settings and workflow](https://erpdocs.corexlogic.com/en/ayarlar): e-mail server, alerts and notification rules, e-Document (Test
environment).
## FAQ / Troubleshooting
| Situation | Cause and solution |
|---|---|
| "'…' ürünü bulunamadı." / "'…' iş ortağı bulunamadı." (Product '…' not found. / Business partner '…' not found.) | The workbook order was skipped. Import the linked object first, then validate this workbook again. |
| "Bu referansla açılış zaten yazılmış (…) — stok ikinci kez girmez." (An opening has already been posted with this reference (…) — stock is not entered a second time.) | The opening stock was imported before. The opening is a document, not an update; the same reference is not posted twice. |
| The leading zero of a code was dropped, or a tax ID turned into a scientific number | The cell is formatted as a number in Excel. The template and Export write text; set a manually added column to the **Metin** (Text) format. |
| "Aktarma yetkiniz yok — kontrol edip dosyayı yetkili kişiye iletebilirsiniz." (You do not have permission to import — you can validate it and pass the file to an authorized person.) | You do not have the object's `import` permission. Validation is still possible. |
| Loading on top of an old installation | If the codes match, the records are updated; if the coding has changed, the same goods are created a second time. If the coding has changed, load the package into an empty installation. |
| Data coming in CSV | Not accepted. Save the file as **Excel Çalışma Kitabı (.xlsx)** (Excel Workbook). |
## Step-by-step tasks
- [Download the template](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/sablon-indirme) — Empty template or existing records.
- [Validate a workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) — Validation without saving.
- [Read the validation result](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/sonucu-okuma) — Rows with errors and correction.
- [Import a workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma) — Writing after an error-free validation.
---
# Production
> The Production module — bill of materials, routing, work center, configurable products and conditions, MRP and planned orders, production order, consumption, confirmation, output, capacity, kanban and analytics.
URL: https://erpdocs.corexlogic.com/en/uretim
The Production module defines **what** a product is made from (bill of materials) and **where and how** it is
produced (work center, routing); it **plans** requirements (MRP, planned order) and **executes** production
(production order, material consumption, operation confirmation, production output). Products manufactured with the
values the customer selects use a single super BOM and super routing; lines and operations are selected by rules:
[Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar).
End-to-end flows:
- [Order to production](https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime) — sales order for a configurable product → **Üretim Emri Aç** (Open Production Order) → sub-orders → consumption, confirmation, output → delivery.
- [Make to stock](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim) — forecast and stock level → MRP → planned order → production order → stock.
## Production order lifecycle
```
Taslak (Draft) ──Yayınla (Release)──► Yayınlandı (Released) ──first consumption/confirmation/output──► Üretimde (In Production) ──Tamamla (Complete)──► Tamamlandı (Completed) ──Kesin Kapat (Close Finally)──► Kapatıldı (Closed)
└────────── İptal Et (Cancel; in Taslak, Yayınlandı and Üretimde statuses; reason required) ──────────► İptal (Cancelled)
```
Material requirements and operations are written to the order with **Yayınla** (Release); for a configurable product
the super BOM and routing are resolved at this point. Details: [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri).
## Conditions and configurable products
- [Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar) — Language, evaluation order, messages and 25 verified examples.
- [Define a configuration characteristic](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirma-ozelligi-tanimlama) — The options asked in sales.
- [Define a precondition](https://erpdocs.corexlogic.com/en/uretim/islemler/on-kosul-tanimlama) — When a characteristic is asked.
- [Add an object dependency](https://erpdocs.corexlogic.com/en/uretim/islemler/nesne-bagimliligi-ekleme) — Constraint and calculated characteristic.
- [Define a line rule](https://erpdocs.corexlogic.com/en/uretim/islemler/satir-kurali-tanimlama) — Selection condition and quantity formula.
- [Write a super routing rule](https://erpdocs.corexlogic.com/en/uretim/islemler/super-rota-kurali-yazma) — Operation condition and duration formula.
- [Try by configuring](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme) — See the result without saving.
## Master data
- [Create a work center](https://erpdocs.corexlogic.com/en/uretim/islemler/is-merkezi-olusturma) — Capacity and cost center.
- [Create a routing](https://erpdocs.corexlogic.com/en/uretim/islemler/rota-olusturma) — Operations and durations.
- [Create a bill of materials](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-olusturma) — Material lines.
- [Open a BOM revision](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-revizyonu-acma) — A draft for a change.
- [Publish a revision](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama) — Validity and change number.
- [Define a production version](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-versiyonu-tanimlama) — BOM and routing pairing.
- [Engineering change](https://erpdocs.corexlogic.com/en/uretim/islemler/muhendislik-degisikligi-olusturma) — Change number and change request.
## Planning
- [Enter a planned independent requirement](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-bagimsiz-ihtiyac-girme) — Sales forecast.
- [Run MRP](https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma) — Net requirements and proposals.
- [Convert a planned order](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme) — Üretim Emrine Dönüştür (Convert to Production Order).
- [Dispatch an operation to capacity](https://erpdocs.corexlogic.com/en/uretim/islemler/kapasite-seviyelendirme) — Capacity planning table.
- [Kanban control cycle](https://erpdocs.corexlogic.com/en/uretim/islemler/kanban-kontrol-dongusu-olusturma) — Replenishment with an empty signal.
## Execution
- [Create a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emri-olusturma) — Make-to-stock or standalone order.
- [Open a production order from a sales order](https://erpdocs.corexlogic.com/en/uretim/islemler/siparisten-uretim-emri-acma) — Üretim Emri Aç (Open Production Order).
- [Open sub-orders](https://erpdocs.corexlogic.com/en/uretim/islemler/alt-emir-onerisi) — Components made to order.
- [Release a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama) — Requirements and operations are written.
- [Post a material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme) — From stock to the order; backflush.
- [Enter an operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme) — Quantity, scrap, duration.
- [Post production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme) — The finished product goes into stock.
- [Complete and close an order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma) — Tamamla, Kesin Kapat, İptal (Complete, Close Finally, Cancel).
- [Correct consumption and output](https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme) — Correction document.
- [Enter a repetitive manufacturing confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/seri-uretim-teyidi-girme) — Production without an order.
## Menu map
| Section | Screen | Documentation |
|---|---|---|
| Üretim Yürütme (Production Execution) | Üretim Emirleri (Production Orders) · Üretim Emri Oluştur (Create Production Order) | [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri) |
| Üretim Yürütme (Production Execution) | Üretim Operasyonları (Production Operations) | [Production operations](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-operasyonlari) |
| Üretim Yürütme (Production Execution) | Operasyon Teyitleri (Operation Confirmations) · Operasyon Teyidi Gir (Enter Operation Confirmation) | [Operation confirmations](https://erpdocs.corexlogic.com/en/uretim/ekranlar/operasyon-teyitleri) |
| Üretim Yürütme (Production Execution) | Hatalı Geri Sarflar (Failed Backflushes) | [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar) |
| Üretim Yürütme (Production Execution) | Eksik Parça Listesi (Missing Parts List) | [Missing parts list](https://erpdocs.corexlogic.com/en/uretim/ekranlar/eksik-parca-listesi) |
| Üretim Yürütme (Production Execution) | Duruş Kayıtları (Downtime Records) | [Downtime records](https://erpdocs.corexlogic.com/en/uretim/ekranlar/durus-kayitlari) |
| Seri Üretim (Repetitive Manufacturing) | Seri Üretim Teyitleri (Repetitive Manufacturing Confirmations) · Seri Üretim Teyidi Gir (Enter Repetitive Manufacturing Confirmation) · Ürün Maliyet Toplayıcıları (Product Cost Collectors) | [Repetitive manufacturing](https://erpdocs.corexlogic.com/en/uretim/ekranlar/seri-uretim) |
| Kapasite Planlama (Capacity Planning) | Kapasite Yükü (Capacity Load) · Kapasite Planlama Tablosu (Capacity Planning Table) · Sonlu Çizelgeleme (Finite Scheduling) | [Capacity planning](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama) |
| Üretim Planlama (Production Planning) | Malzeme İhtiyaçları (Material Requirements) | [Material requirements](https://erpdocs.corexlogic.com/en/uretim/ekranlar/malzeme-ihtiyaclari) |
| Üretim Planlama (Production Planning) | Planlı Bağımsız İhtiyaçlar (Planned Independent Requirements) | [Planned independent requirements](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-bagimsiz-ihtiyaclar) |
| Üretim Planlama (Production Planning) | MRP Koşusu (MRP Run) | [MRP run](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu) |
| Üretim Planlama (Production Planning) | Planlı Emirler (Planned Orders) | [Planned orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-emirler) |
| Kanban | Kanban Panosu (Kanban Board) · Kanban Kontrol Döngüleri (Kanban Control Cycles) | [Kanban](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kanban) |
| Ürün Maliyetlendirme (Product Costing) | Üst Ürün Fiyatlarını Güncelle (Update Parent Product Prices) | [Parent product prices](https://erpdocs.corexlogic.com/en/uretim/ekranlar/ust-urun-fiyatlari) |
| Üretim Mühendisliği (Production Engineering) | Rotalar (Routings) · Rota Oluştur (Create Routing) · Ana Reçeteler (Master Recipes) · Ana Reçete Oluştur (Create Master Recipe) | [Routings and master recipes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar) |
| Üretim Mühendisliği (Production Engineering) | Üretim Versiyonları (Production Versions) | [Production versions](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari) |
| Ana Veriler (Master Data) | Ürün Ağaçları (Bills of Materials) · Ürün Ağacı Oluştur (Create Bill of Materials) | [Bills of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari) |
| Ana Veriler (Master Data) | Çok Seviyeli Ürün Ağacı (Multi-Level Bill of Materials) | [Multi-level bill of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/cok-seviyeli-urun-agaci) |
| Ana Veriler (Master Data) | Mühendislik Değişiklikleri (Engineering Changes) · Değişiklik Talepleri (Change Requests) | [Engineering changes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri) |
| Ana Veriler (Master Data) | İş Merkezleri (Work Centers) | [Work centers](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri) |
| Ana Veriler (Master Data) | Ürün Ağacı Bileşen Yönetimi (BOM Component Management) | [Component management](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-bilesen-yonetimi) |
| Ana Veriler (Master Data) | Ürün Ağacı Karşılaştırma (BOM Comparison) | [BOM comparison](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-karsilastirma) |
| Analitik (Analytics) | Üretim Emri Durumu (Production Order Status) · Malzeme Tüketimi (Material Consumption) · İş Merkezi Yükü (Work Center Load) · Çıktı Düzeltmeleri (Output Corrections) · Fire Raporu (Scrap Report) · İşçilik Raporu (Labor Report) · OEE Raporu (OEE Report) · Üretim Maliyeti (Production Cost) | [Production analytics](https://erpdocs.corexlogic.com/en/uretim/ekranlar/analitik) |
Consumption, output and correction screens have no separate leaf in the menu; they are opened from the order details.
The characteristics and rules of a configurable product are on the **Yapılandırma** (Configuration) tab of the item in
**Ana Veriler › Ürünler › Ürün Ana Verileri** (Master Data › Products › Product Master Data):
[Configurable products](https://erpdocs.corexlogic.com/en/uretim/ekranlar/yapilandirilabilir-urunler).
## Links between documents
An order opened from a sales order is linked to the sales order and its line; the order appears in the sales order
details under **Bağlantılı Belgeler** (Related Documents), and the sales order appears in the order header. A
sub-order is linked to the requirement line of its parent order. An order converted from a planned order carries the
planned order's number. Consumption (MS-…), confirmation (TYD-…) and output (UC-…) documents are listed on the
order's tabs.
---
# Conditions and formulas
> The single BOM and single routing of a configurable product — line condition, expression-based selection condition, quantity formula, operation condition and duration formula, configuration precondition; the language, evaluation order, error messages and 25 verified examples.
URL: https://erpdocs.corexlogic.com/en/uretim/kosullar
A configurable product does not get a separate bill of materials and routing for every combination of options. The
product has **one** bill of materials (super BOM) and **one** routing (super routing); rules are written on the lines
and operations. The values the customer selects on the sales order (the configuration) are carried to the production
order, and when the order is released the rules are resolved with these values: which material line is included, in
what quantity, which operation is performed and how many minutes it takes.
This page describes all of the rules. Every example was set up in the demo company and its result was verified with
the BOM's **Yapılandırarak Dene** (Try by Configuring) window or with a real production order.
> **Demo items**
Most examples use fictitious items created in the demo company for this page: **DMO-KSL-01** Ölçülü bantlı konveyör
(made-to-length belt conveyor), **DMO-KSL-02** Yapılandırılabilir dağıtım panosu (configurable distribution panel),
**DMO-KSL-03** Temizlik ürünü partisi (cleaning product batch), **DMO-KSL-04** Ölçüye göre dolap (made-to-measure
cabinet). Ready-made examples with option conditions: **MAM-0003** Ofis çalışma masası (office desk), **MAM-0006**
Paslanmaz depolama tankı (stainless storage tank), **MAM-0001** Motor kontrol panosu (motor control panel).
> **Number format**
In expressions the decimal separator is always a **dot** (`1.05`). The application itself uses the Turkish number
format: values typed into fields (for example **Miktar** `0,6`) and messages quoted from the screen use a decimal
**comma**. In the explanatory text and result tables below, numbers are written in English format (12.24 M);
option names such as **1.000 L** (1,000 L) are quoted exactly as they appear on screen.
## Map of the rules
| Rule | Where it is defined | What it decides | How it is written | Result type |
|---|---|---|---|---|
| Configuration precondition | **Ürün Ana Verileri** (Product Master Data) › item › **Yapılandırma** (Configuration) › the characteristic's **İşlemler** (Actions) › **Koşul** (Condition) | Whether the characteristic **is asked** in sales | Values are ticked (in the import workbook `KABIN = OZEL_OLCU`) | — |
| Constraint (**Sınır koy**, Set a limit) | Same tab › **Nesne Bağımlılıkları** (Object Dependencies) › **Kural Ekle** (Add Rule) | Whether a disallowed combination can be saved | Expression | Yes/No |
| Procedure (**Değer hesapla**, Calculate value) | Same place | What value a characteristic gets | Expression or decision table | The characteristic's type |
| Line condition (option condition) | **Ürün Ağaçları** (Bills of Materials) › revision › the line's **Kuralı Düzenle** (Edit Rule) button › **Satır Kuralı** (Line Rule) | Whether the material line **is included** in the order | Values are ticked on an option characteristic | — |
| Expression-based selection condition | **Satır Kuralı** › **İfadeli koşul** (Expression condition) › **Koşul** (Condition) | Whether the material line is included in the order | Expression | Yes/No |
| Formula quantity | **Satır Kuralı** › **Formüllü miktar** (Formula quantity) (**Özellik × katsayı** (Characteristic × coefficient) or **İfade** (Expression)) | The line's quantity | Coefficient or expression | Number |
| Operation selection condition | **Rotalar** (Routings) › revision › the operation's **Seçim koşulu ve formüller** (Selection condition and formulas) button › **Seçim koşulu** (Selection condition) | Whether the operation is included in the order | Expression | Yes/No |
| Duration formula | Same place › **Hazırlık formülü (dk)** (Setup formula, min) · **Makine formülü (dk)** (Machine formula, min) · **İşçilik formülü (dk)** (Labor formula, min) | The operation's duration | Expression | Number (minutes) |
BOM line and operation rules can be written **only** in the BOM and routing of a **configurable item**. If a condition
is written in the BOM of an item that is not configurable, saving is rejected with this message:
`Seçim koşulu yalnız yapılandırılabilir kartın ürün ağacında kullanılır.` (A selection condition is used only in the
BOM of a configurable item.) — for a quantity formula
`Miktar formülü yalnız yapılandırılabilir kartın ürün ağacında kullanılır.` (A quantity formula is used only in the
BOM of a configurable item.), and in a routing
`Seçim koşulu ve formüllü süre yalnız yapılandırılabilir kartın rotasında kullanılır.` (Selection conditions and
formula durations are used only in the routing of a configurable item.).
## When and in what order rules are evaluated {#sira}
1. **Value entry** — characteristic values are entered on the sales order line (or in the **Yapılandırarak Dene**
(Try by Configuring) window). A characteristic whose precondition is not met is **not shown**; it cannot be given a
value and its required setting is not applied. A required characteristic that is asked and left blank prevents the
line from being saved.
2. **Object dependencies** are applied in the order of the list: procedures write the calculated value, constraints
check the combination. A constraint is checked only when its result is **known**.
3. **When the production order is released** (**Yayınla**, Release), the BOM is resolved. Material requirements and
operations are written to the order at this point; before release the order has no material lines. Lines are
processed in line-number order, and on each line:
1. **Option condition** — for each condition characteristic, the entered value must be one of the ticked values.
2. **Expression-based selection condition** — the result must be **Yes**. If it is **No** or **unknown**, the line
is not included.
3. **Quantity** — fixed, `Miktar + katsayı × değer` (quantity + coefficient × value) or `Miktar + ifadenin sonucu`
(quantity + result of the expression).
4. The same item must not appear twice among the selected lines; if no line is selected, the order is not opened.
5. **The routing is resolved** — for each operation the selection condition (included if Yes), then the setup,
machine and labor formulas. A duration without a formula is the fixed value in the routing.
6. **Scaling to the order quantity** — `satır miktarı × emir miktarı ÷ ağacın temel miktarı` (line quantity × order
quantity ÷ base quantity of the BOM), increased by the assembly and component scrap if any. If the quantity came
from a formula or there is scrap, the result is rounded **up** to the decimal precision of the component's unit
(ADET (piece) 0, KG/M/M2 3 decimals).
> **Difference between Try by Configuring and the order**
**Yapılandırarak Dene** (Try by Configuring) and the order use **the same** resolver. The window shows values per base
quantity and **without rounding**; the order adds scrap and unit rounding. Example: a sheet-metal line shown as
`60,288 KG` in the window becomes `63,303 KG` on the order with 5% component scrap (60.288 × 1.05 = 63.3024 → rounded
up to 63.303).
## Expression language {#ifade-dili}
Constraints, procedures, expression-based selection conditions, quantity formulas, operation conditions and duration
formulas use **the same language**. Rules are evaluated on the server; the **Sına** (Test) button on the screen performs
the same check without saving.
### Values and notation
| What | How it is written | Example |
|---|---|---|
| Number | Decimal separator is a **dot** | `1.05`, `2.5`, `12` |
| Text, option code | **Single quotes**; a quote inside the text is doubled | `'PVC'`, `'OZEL_OLCU'`, `'Ali''nin'` |
| Yes/No | `EVET` / `HAYIR` (or `TRUE` / `FALSE`) | `KORUMA = EVET` |
| Characteristic | The characteristic's **code**; letters, digits and underscore | `BOY`, `CIKIS_SAYISI` |
| Code with special characters | Square brackets | `[EN-1]`, `[BOY] * 2` |
Codes and keywords are not case-sensitive (`bant_genisligi = '800'` also works). Text comparison also ignores case
and leading/trailing spaces: `BANT_TIPI = 'pvc'` and `BANT_TIPI = ' PVC '` both return Yes.
### Value in the expression by characteristic type
| Characteristic type | What the expression reads | Correct | Wrong |
|---|---|---|---|
| **Seçim** (Selection) | The option's **code** (text) | `BANT_GENISLIGI = '800'` | `BANT_GENISLIGI = 800` (number) · `BANT_GENISLIGI = '800 mm'` (the option's name) |
| **Tam Sayı** (Integer), **Ondalık** (Decimal) | Number | `CIKIS_SAYISI > 12`, `BOY * 2` | `BOY > '10'` |
| **Evet/Hayır** (Yes/No) | Yes/No | `KORUMA = EVET` | `KORUMA = 'EVET'`, `KORUMA = 1` |
| **Tarih** (Date) | Text `'yyyy-MM-dd'` | `TESLIM >= '2027-01-01'` | — |
| **Metin** (Text) | Text (empty text counts as not entered) | `DOLU(ACIKLAMA)` | `ACIKLAMA <> ''` (unknown if empty) |
The option's **name** (shown on screen, e.g. "800 mm") is not used in expressions; comparison is made **by code**. In
the rule window, the **Özellikler** (Characteristics) and **… değerleri** (… values) buttons insert the item's
characteristic and option codes at the cursor position.
### Operators and precedence
Precedence from lowest to highest: `VEYA` → `VE` → `DEĞİL` → comparison → `+ -` → `* /` → unary `-`. Parentheses
always come first.
| Operator | Meaning | Equivalent notation | Example → result |
|---|---|---|---|
| `+ - * /` | Arithmetic | — | `2 + 3 * 4` → 14 · `10 / 4` → 2.5 |
| `+` on text | Concatenation | — | `BANT_TIPI + '-' + BANT_GENISLIGI` → PVC-600 |
| `=` `<>` | Equal · not equal | `!=` = `<>` | `BOY != 6` (BOY 6) → No |
| `<` `<=` `>` `>=` | Comparison | — | `BOY = 6.0` (BOY 6) → Yes |
| `IN ( … )` | One of the listed values | `İÇİNDE` | `BOY IN (6, 12)` (BOY 12) → Yes |
| `VE` | Both (AND) | `AND` | |
| `VEYA` | Either is enough (OR) | `OR` | |
| `DEĞİL` | Negation (NOT) | `DEGIL`, `NOT` | `DEĞİL BOY > 10 VE BOY > 5` (BOY 8) → Yes |
- Comparisons cannot be chained: `BOY > 10 > 2` cannot be written (`Beklenmeyen '>' (konum 10).` — Unexpected '>'
(position 10).). Join two conditions with `VE`.
- `DEĞİL` negates only the comparison immediately to its right: `DEĞİL A VE B` = `(DEĞİL A) VE B`. To negate several
conditions, use parentheses: `DEĞİL (A VEYA B)`.
- Both sides of a comparison must be of the same type; Yes/No is compared only with `=` and `<>`.
- Arithmetic works only with numbers: `KORUMA + 1` → `'+' yalnız sayılarla kullanılır.` ('+' is used only with
numbers.)
### Functions
| Function | Equivalent | What it does | Example → result |
|---|---|---|---|
| `EGER(koşul, a, b)` | `EĞER`, `IF` | If the condition (`koşul`) is Yes, `a`; if No, `b`; if unknown, unknown. **Only the selected branch** is evaluated | `EGER(BOY > 10, 2, 1)` (BOY 12) → 2 |
| `YUVARLA(x[, n])` | `ROUND` | Rounds to n decimals (n 0–10, blank = 0); half rounds up | `YUVARLA(2.345, 2)` → 2.35 · `YUVARLA(2.5)` → 3 |
| `YUKARIYUVARLA(x, adım)` | `ROUNDUP` | Rounds up to the next multiple of the step (`adım`, step > 0) | `YUKARIYUVARLA(2.37, 0.5)` → 2.5 |
| `TAVAN(x)` | `CEIL` | Next integer up | `TAVAN(2.1)` → 3 · `TAVAN(-2.5)` → -2 |
| `TABAN(x)` | `FLOOR` | Next integer down | `TABAN(2.9)` → 2 · `TABAN(-2.5)` → -3 |
| `MIN(a, b, …)` | — | The smallest (one or more values) | `MIN(3, BOY, 8)` (BOY 5) → 3 |
| `MAX(a, b, …)` | — | The largest | `MAX(0.6, CIKIS_SAYISI * 0.05)` (20) → 1 |
| `MUTLAK(x)` | `ABS` | Absolute value | `MUTLAK(2 - BOY)` (BOY 5) → 3 |
| `DOLU(özellik)` | `SPECIFIED` | Yes if the characteristic (`özellik`) has been entered, No if not — **never returns unknown** | `DOLU(KORUMA)` |
| `TABLO('KOD')` | `TABLE` | Whether the values match a row of the variant table | Only in constraints and procedures |
| `TABLODEGER('KOD', 'SÜTUN')` | `LOOKUP`, `TABLODEĞER` | The column (`SÜTUN`) value of the matching row | Only in constraints and procedures |
The selection condition and quantity formula of a BOM line do not query variant tables:
`Seçim koşulu varyant tablosu sorgulamaz.` (A selection condition does not query a variant table.) ·
`Miktar formülü varyant tablosu sorgulamaz.` (A quantity formula does not query a variant table.)
If you need a value from a table, write it to a characteristic calculated by a **procedure** and read that
characteristic on the line ([Example 8](#ornek-8)). An expression can be at most **1000** characters long.
### Unknown value — three-valued logic {#bilinmeyen-deger}
A characteristic that has not been entered (or was not asked because its precondition was not met) is **unknown**.
Arithmetic and comparisons involving an unknown value also return unknown. A result can therefore be Yes, No or
**unknown**.
| Expression | Values | Result |
|---|---|---|
| `KORUMA = EVET` | KORUMA not entered | unknown → the line is **not included** |
| `KORUMA <> EVET` | KORUMA not entered | unknown → the line is **not included** (not No!) |
| `BOY * 2` | BOY not entered | unknown → the quantity formula **prevents the order from opening** |
| `BOY > 10 VEYA KORUMA = EVET` | BOY 12, KORUMA not entered | Yes (`EVET VEYA ?` = Yes) |
| `BOY > 10 VE KORUMA = EVET` | BOY 8, KORUMA not entered | No (`HAYIR VE ?` = No) |
| `DEĞİL DOLU(KORUMA) VEYA KORUMA = HAYIR` | KORUMA not entered | Yes |
| `DEĞİL DOLU(KORUMA) VEYA KORUMA = HAYIR` | KORUMA Yes | No |
| `EGER(KORUMA = EVET, BOY * 2.4, 0)` | BOY 10, KORUMA not entered | unknown → the order is not opened |
The effect of an unknown value depends on the rule:
| Rule | If the result is unknown |
|---|---|
| Expression-based selection condition, operation selection condition | The line / operation is **not included** (as with No) |
| Quantity formula | Error: `N. satırın miktar formülü bilinmiyor — okuduğu değerlerden biri konfigürasyonda yok (…)` (The quantity formula of line N is unknown — one of the values it reads is not in the configuration (…)) |
| Duration formula | Error: `N numaralı operasyonun işçilik formülü hesaplanamadı — konfigürasyonda gereken değer yok.` (The labor formula of operation N could not be calculated — a required value is missing from the configuration.) |
| Constraint | **Not checked** (passes) |
For this reason, write a rule that reads an optional (not required) characteristic with the question "what should
happen if it is not entered?" in mind; use `DOLU(…)` if necessary.
### Syntax and evaluation messages {#iletiler}
The **Sına** (Test) button and saving check the syntax and the codes. Value-dependent errors (division by zero, a
result of the wrong type, a missing value) appear only with values — in **Yapılandırarak Dene** (Try by Configuring)
or when the order is released.
| Notation | Message | English meaning | When |
|---|---|---|---|
| `BOY >= 10 VE` | `İfade eksik bitti.` | The expression ended incomplete. | Test / save |
| `(BOY + 2` | `')' bekleniyordu, ifade bitti.` | ')' was expected, the expression ended. | Test / save |
| `'PVC` | `Kapanmamış metin (konum 1).` | Unclosed text (position 1). | Test / save |
| `BANT_GENISLIGI = "800"` | `Beklenmeyen karakter '"' (konum 18).` | Unexpected character '"' (position 18). | Test / save |
| `BOY * 1,05` | `Beklenmeyen ',' (konum 8).` | Unexpected ',' (position 8). | Test / save |
| `BOY % 2` | `Beklenmeyen karakter '%' (konum 5).` | Unexpected character '%' (position 5). | Test / save |
| `KAREKOK(BOY)` | `Bilinmeyen fonksiyon 'KAREKOK' (konum 1).` | Unknown function 'KAREKOK' (position 1). | Test / save |
| `UZUNLUK > 10` (not on the item) | `Seçim koşulundaki 'UZUNLUK' 'DMO-KSL-01' kartının özelliği değil.` | 'UZUNLUK' in the selection condition is not a characteristic of item 'DMO-KSL-01'. | Test / save |
| `TABLO('X')` on a line | `Seçim koşulu varyant tablosu sorgulamaz.` | A selection condition does not query a variant table. | Test / save |
| `BOY / 0` | `Sıfıra bölme.` | Division by zero. | With values |
| `EGER(BOY > 10, 2)` | `EGER(koşul, a, b) üç değer alır.` | EGER(condition, a, b) takes three values. | With values — Test reports it as valid |
| `EGER(BOY, 1, 2)` | `EGER'in koşulu Evet/Hayır olmalı.` | The condition of EGER must be Yes/No. | With values |
| `BANT_GENISLIGI = 800` | `'=' iki yanında aynı türde değer ister.` | '=' requires values of the same type on both sides. | With values |
| `KORUMA = 'EVET'` | `'=' iki yanında aynı türde değer ister.` | '=' requires values of the same type on both sides. | With values |
| `YUKARIYUVARLA(BOY, 0)` | `YUKARIYUVARLA'nın adımı sıfırdan büyük olmalı.` | The step of YUKARIYUVARLA must be greater than zero. | With values |
| `YUVARLA(BOY, 11)` | `YUVARLA'nın ondalık sayısı 0–10 arası tam sayı olmalı.` | The number of decimals of YUVARLA must be an integer between 0 and 10. | With values |
| `DOLU(BOY * 2)` | `DOLU(özellik) tek özellik kodu alır.` | DOLU(characteristic) takes a single characteristic code. | With values |
| `MAX()` | `MAX için değer sayısı yanlış.` | Wrong number of values for MAX. | With values |
| `BOY * 2` in a selection condition | `N. satırın seçim koşulu Evet/Hayır vermeli.` | The selection condition of line N must return Yes/No. | With values — Test reports it as valid |
| Unknown code in the constraint / procedure form | `ifadedeki 'UZUNLUK' bu kartın özelliği değil.` | 'UZUNLUK' in the expression is not a characteristic of this item. | Test / save |
The position number tells you which character of the expression is meant (counting from 1). An error that appears with
values is reported on the order with the line number: `9. satırın miktar formülü: Sıfıra bölme.` (Quantity formula of
line 9: Division by zero.)
## Line condition (option condition) {#satir-kosulu}
In the upper part of the **Satır Kuralı** (Line Rule) window, every **Seçim** (Selection) characteristic of the item is
listed with its values.
- If no value is ticked for a characteristic, that characteristic is **not** a condition.
- For the same characteristic, **one** of the ticked values is enough (OR): Tank Hacmi (Tank Volume) **1.000 L** or
**2.000 L**.
- Conditions on different characteristics are required **together** (AND): Renk (Color) **Beyaz** (White) and Masa
Genişliği (Desk Width) **140 cm**.
- If the characteristic has not been entered, the line is not included; Try by Configuring states the reason:
`Gelmez — Tank Hacmi girilmedi (koşul: 1.000 L).` (Not included — Tank Volume not entered (condition: 1,000 L).)
- A line can carry conditions on at most 10 characteristics; a characteristic can appear only once on a line.
**The same item on two lines.** An item normally appears on a single line in a revision. Exception: if the option
conditions of two lines **exclude each other** (the ticked values on a shared characteristic do not overlap), the same
item can be on two lines — in MAM-0006, **HAM-0031** 3 mm sheet is on one line with `Tank Hacmi: 2.000 L` at 290 kg and
on the other with `Tank Hacmi: 5.000 L` at 560 kg. Expression-based conditions are **not** taken into account here: the
same item cannot be placed on two lines with the conditions `BOY <= 10` and `BOY > 10`
(`Aynı stok kartı bir revizyonda yalnız bir malzeme satırında yer alabilir.` — The same stock item can appear on only
one material line in a revision.). In such a case, use a single line and write the quantity with `EGER`
([Example 4](#ornek-4)).
**Yes/No characteristics** appear in the window with the **Fark etmez / Evet / Hayır** (Doesn't matter / Yes / No)
buttons; in an expression-based condition the choice is written as `UZAKTAN_IZLEME = EVET`.
## Expression-based selection condition {#secim-kosulu}
The **Satır Kuralı › İfadeli koşul › Koşul** (Line Rule › Expression condition › Condition) field. Any selection that
needs a numeric limit, several characteristics, `VEYA` or `DEĞİL` is written here.
- If the result is **Yes**, the line is included; if it is **No** or **unknown**, it is not.
- It is required **together** (AND) with the ticked option conditions.
- Blank = no expression condition.
## Formula quantity {#miktar-formulu}
**Satır Kuralı › Formüllü miktar** (Line Rule › Formula quantity) has one of three modes:
| Mode | Quantity | Rule |
|---|---|---|
| **Sabit miktar** (Fixed quantity) | The line's **Miktar** (Quantity) field | The quantity must be greater than zero |
| **Özellik × katsayı** (Characteristic × coefficient) | `Miktar + katsayı × özelliğin değeri` (quantity + coefficient × the characteristic's value) | The characteristic is numeric (Tam Sayı/Ondalık, Integer/Decimal); the coefficient is greater than zero |
| **İfade** (Expression) | `Miktar + ifadenin sonucu` (quantity + result of the expression) | The result must be a number |
> **The Quantity field is ADDED to the formula**
On a formula line the **Miktar** (Quantity) field is the "fixed part" and can be zero. On a line with the formula
`2 * BOY` and Miktar `0,6`, the quantity for BOY 6 m is `2 × 6 + 0,6 = 12,6` (2 × 6 + 0.6 = 12.6). If you want the
quantity to come only from the formula, enter `0` in **Miktar**; if you leave 1, every order gets 1 extra unit.
- The calculated quantity (fixed + formula) must be greater than zero:
`N. satırın konfigürasyona göre hesaplanan miktarı sıfırdan büyük değil.` (The quantity of line N calculated from
the configuration is not greater than zero.)
- The formula also applies to alternative items: the alternative's own quantity + the result of the same formula.
- Component scrap and assembly scrap are applied to the formula result; on the order the value is rounded up to the
decimals of the unit.
- In **İfade** (Expression) mode, **Sına** (Test) checks the syntax and the codes; it does not check that the result is
a number.
## Configuration precondition {#on-kosul}
Makes a characteristic **be asked** only when another characteristic has a certain value: "When Kabin (Cabin)
**Özel Ölçü** (Custom Size) is selected, ask **Kabin Eni** (Cabin Width) and **Kabin Boyu** (Cabin Length)."
- The condition characteristic must be a **Seçim** (Selection) or **Evet/Hayır** (Yes/No) characteristic of the same
item; a numeric characteristic cannot be a condition.
- For the same characteristic, one of the ticked values is enough (OR); different characteristics apply together (AND).
- A characteristic that is not asked stays **blank** and its required setting is not applied; if it is given a value,
the line is rejected: `'Kabin Eni' yalnız Kabin: Özel Ölçü (En x Boy) olduğunda girilir.` ('Kabin Eni' is entered
only when Kabin is Özel Ölçü (En x Boy).)
- If an asked, required characteristic is blank: `'Kabin Eni' özelliğinin değeri girilmemiş.` (No value has been
entered for the characteristic 'Kabin Eni'.)
- A characteristic cannot be a condition for itself (`Özellik kendisine koşul olamaz.` — A characteristic cannot be a
condition for itself.); a loop cannot be created
(`Bu koşul döngü kurar: koşul özelliği dolaylı olarak bu özelliğe bağlı.` — This condition creates a loop: the
condition characteristic depends indirectly on this characteristic.).
- A condition that would invalidate an existing variant is not saved: `'…' varyantı bu koşulla geçersiz kalır: …`
(Variant '…' becomes invalid with this condition: …)
- A chain can be built (A → B → C): if the condition characteristic is hidden, the characteristic that depends on it is
hidden too.
**Precondition and BOM rule together:** a characteristic whose precondition is not met is **unknown** in rules.
Protect a formula that reads this characteristic with `EGER` ([Example 12](#ornek-12)), or tie the line to the same
option condition as the precondition ([Example 9](#ornek-9)).
In the import workbook (Ürün Aktarımı (Product Import) › **Yapılandırma** (Configuration) sheet), the precondition is
written in the **OnKosul** column:
| Notation | Meaning |
|---|---|
| `KABIN = OZEL_OLCU` | Asked if Kabin is Özel Ölçü |
| `PERON_SAYISI = 3 / 4` | If 3 **or** 4 (values of the same characteristic separated by `/`) |
| `KABIN = OZEL_OLCU; DIREK = Evet` | If Kabin is Özel Ölçü **and** Direk is Yes (different characteristics separated by `;`) |
| empty cell | The condition is removed (if the column exists); if the column does not exist, the existing condition is kept |
Values are written with the option **code**; a Yes/No characteristic is written with `Evet` / `Hayır`. Unreadable
cell: `'…' okunamadı — biçim "ÖZELLİK = DEĞER" olmalı.` ('…' could not be read — the format must be
"CHARACTERISTIC = VALUE".) · unknown characteristic: `Koşul özelliği '…' bulunamadı.` (Condition characteristic '…'
not found.) · unknown value: `'…' değerlerinde '…' yok.` ('…' is not among the values of '…'.) · numeric
characteristic: `'…' koşul olamaz — yalnız seçim ve Evet/Hayır özellikleri koşul olur.` ('…' cannot be a condition —
only selection and Yes/No characteristics can be conditions.)
## Super routing: operation condition and duration formula {#super-rota}
In a routing revision, the **Seçim koşulu ve formüller** (Selection condition and formulas) button of each operation
opens four fields under the row: **Seçim koşulu** (Selection condition), **Hazırlık formülü (dk)** (Setup formula,
min), **Makine formülü (dk)** (Machine formula, min), **İşçilik formülü (dk)** (Labor formula, min).
- If the **Seçim koşulu** is Yes, the operation is included in the order; if it is No or unknown, it is not. Blank =
always.
- If a formula is filled in, the duration is calculated from the formula and **replaces** the fixed value (it is not
added, unlike the BOM quantity). Blank = the fixed duration in the routing.
- The formula result must be between 0 and 1,000,000 minutes; it is rounded to two decimals.
- If no operation is selected: `Konfigürasyon rotanın hiçbir operasyonunu seçmiyor — rotanın seçim koşullarını düzeltin.`
(The configuration does not select any operation of the routing — correct the routing's selection conditions.)
- Machine and labor durations are **per base quantity**; setup is **per lot**.
## Object dependencies: constraint and procedure {#nesne-bagimliliklari}
Use **Kural Ekle** (Add Rule) in the **Nesne Bağımlılıkları** (Object Dependencies) section of the item's
**Yapılandırma** (Configuration) tab:
- **Sınır koy (Kısıt)** (Set a limit — Constraint) — the expression must return **Yes**. If it returns No, the sales
line is not saved and the rule's message is shown (if the message is blank:
`Konfigürasyon kısıtı sağlanmıyor: ` — The configuration constraint is not met: expression). A rule of the
form "if A, then B must hold" is written as `DEĞİL A VEYA B`: `BANT_TIPI <> 'PU' VEYA BOY <= 20`.
- **Değer hesapla (Prosedür)** (Calculate value — Procedure) — the result of the expression (or decision table) is
written to a characteristic. If the write mode is **Her zaman hesapla** (Always calculate), the user cannot enter a
different value (`'Ayak Çifti Sayısı' değeri kuraldan hesaplanır (8); farklı değer verilemez.` — The value of 'Ayak
Çifti Sayısı' is calculated from the rule (8); a different value cannot be entered.); if it is **Girilmezse hesapla**
(Calculate if not entered), the value is written only while the characteristic is blank, and the user's value is
kept. A procedure that writes a fraction to an integer characteristic is rejected — use `YUVARLA`.
- **Tablodan seç (Tablo kısıtı)** (Select from table — Table constraint) — the combination of values must match a row
of a variant table.
A calculated characteristic is read on BOM lines and in the routing **like any other characteristic**. If the same
calculation is needed on several lines, do it once in a procedure and read the result on the lines.
## Writing rules in the import workbook
Instead of entering rules one by one on screen, you can also load them with an import workbook:
| Workbook › sheet | Column | Content |
|---|---|---|
| **Ürün Aktarımı** (Product Import) workbook › **Yapılandırma** (Configuration) | `OnKosul` | Precondition (`KABIN = OZEL_OLCU`) |
| Veri Aktarımı (Data Import) › **Ürün Ağaçları** (Bills of Materials) workbook › **Ağaç Satırları** (BOM Lines) | `SecimKosulu` | Expression-based selection condition (`BOY > 10`) |
| Same sheet | `MiktarFormulu` | Expression quantity; quantity = `Miktar` + result of the formula |
| Same workbook › **Satır Koşulları** (Line Conditions) | `SatirNo`, `OzellikKodu`, `DegerKodu` | Option condition — one row per value |
| Veri Aktarımı (Data Import) › **Rotalar** (Routings) workbook › **Operasyonlar** (Operations) | `SecimKosulu`, `HazirlikFormulu`, `MakineFormulu`, `IscilikFormulu` | Super routing |
## Examples
Each example gives the requirement, the characteristics, the rule, the values entered and the result, and a common
mistake. The "Result" column shows what the **Yapılandırarak Dene** (Try by Configuring) window displays per base
quantity (1 ADET (piece)).

1. Characteristic values — entered as on the sales line
2. Characteristic computed by a procedure
3. How many lines come, how many do not
4. Calculation of a formula quantity
5. Why the line does not come
6. Expression condition Yes — line comes
### Example 1 — Profile by length (conveyor) {#ornek-1}
**Requirement:** The two side profiles of the conveyor are as long as the conveyor, with a 2% cutting allowance.
**Characteristic:** `BOY` (length; Ondalık (Decimal), m, 2–30, step 0.5). **Line:** HAM-0035 Alüminyum konveyör profili
(aluminum conveyor profile), unit M, **Miktar** (Quantity) `0`. **Formula (İfade, Expression):** `2 * BOY * 1.02`
| BOY | Result |
|---|---|
| 6 | 12.24 M |
| 12.5 | 25.5 M |
**Common mistake:** Leaving the Miktar field at `1` — the result becomes 13.24 M.
### Example 2 — Option condition and formula together (belt) {#ornek-2}
**Requirement:** PVC or PU belt; belt length `2 × BOY` + 0.6 m allowance.
**Lines:** HAM-0056 PVC belt — option condition **Bant Tipi: PVC Endüstriyel** (Belt Type: PVC Industrial); HAM-0057
PU belt — **Bant Tipi: PU Gıdaya Uygun** (Belt Type: PU Food Grade). Both have **Miktar** `0,6` and the formula
`2 * BOY`.
| BOY | Bant Tipi (Belt Type) | HAM-0056 | HAM-0057 |
|---|---|---|---|
| 6 | PVC | 12.6 M | Not included |
| 12.5 | PU | Not included | 25.6 M |
Try by Configuring also shows how the quantity was calculated: `2 * BOY + 0,6 = 12,6`.
### Example 3 — Count by step (carrier roller) {#ornek-3}
**Requirement:** One roller every 0.5 m, plus one extra at the end.
**Line:** HAM-0058 Taşıyıcı makara (carrier roller), ADET (piece), **Miktar** `1`, formula `TAVAN(BOY / 0.5)`.
| BOY | Result |
|---|---|
| 6 | 13 ADET |
| 10 | 21 ADET |
| 12.5 | 26 ADET |
**Common mistake:** Writing `BOY / 0.5 + 1` — if the length is not a multiple of 0.5, a fractional count results; on
the order ADET is rounded up, but the intent becomes unclear. When counting pieces, write `TAVAN` / `TABAN` explicitly.
### Example 4 — Two options with a numeric limit (motor) {#ornek-4}
**Requirement:** 0.75 kW motor up to 10 m, 1.5 kW motor above.
**Lines:** HAM-0054 Motor redüktör 0,75 kW (gear motor 0.75 kW) — expression condition `BOY <= 10`; HAM-0055 Motor
redüktör 1,5 kW (gear motor 1.5 kW) — `BOY > 10`.
| BOY | HAM-0054 | HAM-0055 |
|---|---|---|
| 10 | 1 ADET (`koşul Evet: BOY <= 10` — condition Yes) | Not included (`koşul Hayır: BOY > 10` — condition No) |
| 12.5 | Not included | 1 ADET |
**Common mistake:** Writing the limit on the two lines so that they overlap or leave a gap (`BOY < 10` and `BOY > 10` —
at 10 m no motor is included). Make one side `<=` and the other `>`. The same **item** cannot be used on two lines; if
the item is the same and only the quantity changes, write `EGER(BOY > 10, 2, 1)` on a single line.
### Example 5 — Optional Yes/No (protective cover) {#ornek-5}
**Requirement:** If a protective cover is requested, 2.4 kg of stainless sheet per meter.
**Characteristic:** `KORUMA` (protection; Evet/Hayır (Yes/No), optional). **Line:** HAM-0030 Paslanmaz sac (stainless
sheet), KG, **Miktar** `0`, expression condition `KORUMA = EVET`, formula `BOY * 2.4`.
| BOY | KORUMA | Result |
|---|---|---|
| 12.5 | Yes | 30 KG |
| 10 | No | Not included — `koşul Hayır: KORUMA = EVET` (condition No) |
| 6 | not entered | Not included — `koşulun okuduğu değer girilmedi: KORUMA = EVET` (the value read by the condition was not entered) |
**Common mistake 1:** Writing `KORUMA <> EVET` for the "without cover" case — if it has not been entered, the result is
**unknown** and the line is not included. Correct: `DEĞİL DOLU(KORUMA) VEYA KORUMA = HAYIR`.
**Common mistake 2:** Embedding the condition in the formula: `EGER(KORUMA = EVET, BOY * 2.4, 0)` — if KORUMA is not
entered the formula is unknown and the order is not opened; in addition, when the result is 0 the error
`hesaplanan miktarı sıfırdan büyük değil` (calculated quantity is not greater than zero) appears. Write whether the
line is included with a **condition** and the quantity with a **formula**.
### Example 6 — Option and number together (middle support) {#ornek-6}
**Requirement:** For an 800 mm belt on a conveyor longer than 12 m, 0.8 m of middle support profile every 3 m.
**Line:** HAM-0032 Profil kutu 40x40 (box profile 40x40), M, **Miktar** `0`, expression condition
`BANT_GENISLIGI = '800' VE BOY > 12`, formula `TAVAN(BOY / 3) * 0.8`.
| Bant Genişliği (Belt Width) | BOY | Result |
|---|---|---|
| 800 mm | 12.5 | 4 M |
| 800 mm | 12 | Not included — `koşul Hayır` (condition No) |
| 600 mm | 12.5 | Not included |
**Common mistake:** `BANT_GENISLIGI = 800` (without quotes) — an option code is text:
`'=' iki yanında aynı türde değer ister.` ('=' requires values of the same type on both sides.) This error does not
appear in Test but with values.
### Example 7 — Coefficient from a list (connecting bolt) {#ornek-7}
**Requirement:** For 600 and 800 mm, 8 bolts per 1.5 m; for 400 mm, 4. Bolts are issued by backflush.
**Line:** HAM-0064 Cıvata M8x20 (bolt M8x20), ADET, **Miktar** `0`, **Geri sarf** (Backflush) ticked, formula
`EGER(BANT_GENISLIGI IN ('600', '800'), 8, 4) * TAVAN(BOY / 1.5)`.
| Bant Genişliği (Belt Width) | BOY | Result |
|---|---|---|
| 600 mm | 6 | 32 ADET |
| 400 mm | 10 | 28 ADET |
| 800 mm | 12 | 64 ADET |
| 800 mm | 12.5 | 72 ADET |
### Example 8 — Calculated characteristic (pairs of feet) {#ornek-8}
**Requirement:** The number of pairs of feet is used in several places (BOM lines, routing); the calculation should be
in one place.
**Setup:** Add the characteristic `AYAK_CIFTI` (pairs of feet; Tam Sayı (Integer), optional) to the item; **Nesne
Bağımlılıkları** (Object Dependencies) › **Kural Ekle** (Add Rule) › **Değer hesapla** (Calculate value), target **Ayak
Çifti Sayısı** (Number of Pairs of Feet), **Formül (gelişmiş)** (Formula, advanced), write mode **Her zaman hesapla**
(Always calculate), expression `TAVAN(BOY / 1.5) + 1`.
**Line:** HAM-0049 Ayar ayağı (leveling foot), ADET, **Miktar** `0`, formula `2 * AYAK_CIFTI`.
| BOY | AYAK_CIFTI (calculated) | HAM-0049 |
|---|---|---|
| 10 | 8 | 16 ADET (`2 * AYAK_CIFTI = 16`) |
| 12.5 | 10 | 20 ADET |
The calculated value also appears in the order's configuration text (`Ayak Çifti Sayısı: 10`).
**Common mistake:** Entering a value manually for the calculated characteristic in sales:
`'Ayak Çifti Sayısı' değeri kuraldan hesaplanır (8); farklı değer verilemez.` (The value of 'Ayak Çifti Sayısı' is
calculated from the rule (8); a different value cannot be entered.)
### Example 9 — Dimension with a precondition and a line selected by option (panel cabinet) {#ornek-9}
**Requirement:** The standard cabinet is a semi-finished product from stock; for a custom size, cabinet sheet = width ×
length × 2 faces × 15.7 kg/m².
**Characteristics:** `KABIN` (cabinet; Seçim (Selection): **Standart (800x600)** `STD`, **Özel Ölçü (En x Boy)**
(Custom Size, Width x Length) `OZEL_OLCU`); `KABIN_EN`, `KABIN_BOY` (cabinet width, length; Ondalık (Decimal), m,
required, precondition `KABIN = OZEL_OLCU`).
**Lines:** YM-0001 Pano kabini (panel cabinet) — option condition **Kabin: Standart (800x600)**; HAM-0029 DKP sac 2 mm
(DKP sheet 2 mm), KG, **Bileşen firesi** (Component scrap) 5% — option condition **Kabin: Özel Ölçü (En x Boy)**,
**Miktar** `0`, formula `KABIN_EN * KABIN_BOY * 2 * 15.7`.
| Kabin | Width × Length | YM-0001 | HAM-0029 (Try) | HAM-0029 (on the order) |
|---|---|---|---|---|
| Standart | not asked | 1 ADET | Not included | — |
| Özel Ölçü | 1.2 × 1.6 | Not included | 60.288 KG | 63.303 KG (5% scrap, rounded up) |
| Özel Ölçü | not entered | Not included | Error | The sales line is not saved |
In the last row the window shows two warnings:
`Satış satırı bu değerlerle kaydedilemez: 'Kabin Eni' özelliğinin değeri girilmemiş.` (The sales line cannot be saved
with these values: no value has been entered for the characteristic 'Kabin Eni'.) and
`2. satırın miktar formülü bilinmiyor — okuduğu değerlerden biri konfigürasyonda yok (KABIN_EN * KABIN_BOY * 2 * 15.7).`
(The quantity formula of line 2 is unknown — one of the values it reads is not in the configuration.)
### Example 10 — Fixed + characteristic-dependent count (terminal blocks) {#ornek-10}
**Requirement:** 4 terminal blocks per output, plus 2 extra for ground.
**Characteristic:** `CIKIS_SAYISI` (number of outputs; Tam Sayı (Integer), 1–24). **Line:** HAM-0014 Klemens (terminal
block), ADET, **Miktar** `2`, formula `4 * CIKIS_SAYISI`.
| CIKIS_SAYISI | Result |
|---|---|
| 4 | 18 ADET |
| 6 | 26 ADET |
| 14 | 58 ADET |
| 20 | 82 ADET |
The same result is obtained with the **Özellik × katsayı** (Characteristic × coefficient) mode: characteristic **Çıkış
Sayısı** (Number of Outputs), coefficient `4`, Miktar `2`.
### Example 11 — Tiered quantity (cable) {#ornek-11}
**Requirement:** 3 m of cable per output for the first 6 outputs, 2 m for the rest.
**Line:** HAM-0024 Kablo NYAF 2,5 mm² (cable NYAF 2.5 mm²), M, **Miktar** `0`, formula
`EGER(CIKIS_SAYISI <= 6, 3 * CIKIS_SAYISI, 18 + 2 * (CIKIS_SAYISI - 6))`.
| CIKIS_SAYISI | Result |
|---|---|
| 4 | 12 M |
| 6 | 18 M |
| 14 | 34 M |
| 20 | 46 M |
For three tiers, nest `EGER`: `EGER(X <= 6, …, EGER(X <= 12, …, …))`.
### Example 12 — EGER protecting a characteristic that is not asked (DIN rail) {#ornek-12}
**Requirement:** 1.2 m of rail in the standard cabinet; for a custom size, width × 2, rounded up to the half meter.
**Line:** HAM-0021 DIN ray (DIN rail), M, **Miktar** `0`, formula
`EGER(KABIN = 'STD', 1.2, YUKARIYUVARLA(KABIN_EN * 2, 0.5))`.
| Kabin | KABIN_EN | Result |
|---|---|---|
| Standart | not asked | 1.2 M |
| Özel Ölçü | 1.2 | 2.5 M (2.4 → 2.5) |
`EGER` evaluates only the selected branch: in the standard cabinet no error occurs even though `KABIN_EN` is unknown.
**Common mistake:** `YUKARIYUVARLA(KABIN_EN * 2, 0.5)` on its own — in the standard cabinet it is unknown and the order
is not opened.
### Example 13 — VEYA and its complement with DEĞİL (PLC or relay module) {#ornek-13}
**Requirement:** PLC module in the professional series or with more than 12 outputs, relay module otherwise.
**Lines:** YM-0009 PLC modülü (PLC module) — `SALT_SERISI = 'PRO' VEYA CIKIS_SAYISI > 12`; YM-0008 Röle modülü (relay
module) — `DEĞİL (SALT_SERISI = 'PRO' VEYA CIKIS_SAYISI > 12)`.
| Şalt Serisi (Switchgear Series) | CIKIS_SAYISI | YM-0009 | YM-0008 |
|---|---|---|---|
| Ekonomik (Economy) | 6 | Not included | 1 ADET |
| Ekonomik (Economy) | 14 | 1 ADET | Not included |
| Profesyonel (Professional) | 4 | 1 ADET | Not included |
Writing the complement with `DEĞİL ( … )` guarantees that the two lines never overlap and that no value is left
uncovered.
**Common mistake:** `DEĞİL SALT_SERISI = 'PRO' VEYA CIKIS_SAYISI > 12` without parentheses — `DEĞİL` applies only to the
first comparison.
### Example 14 — Short-circuit of VE (panel fan) {#ornek-14}
**Requirement:** A fan for a custom cabinet larger than 1.5 m².
**Line:** HAM-0019 Pano fanı (panel fan) — `KABIN = 'OZEL_OLCU' VE KABIN_EN * KABIN_BOY > 1.5`.
| Kabin | Width × Length | Result |
|---|---|---|
| Standart | not asked | Not included — `koşul Hayır` (condition No; even though the size is unknown) |
| Özel Ölçü | 1.2 × 1.6 = 1.92 | 1 ADET |
`HAYIR VE ?` returns No; that is why the standard cabinet shows a plain "No" instead of "value not entered".
### Example 15 — Characteristic × coefficient mode (circuit breaker) {#ornek-15}
**Requirement:** One circuit breaker per output.
**Line:** HAM-0008 Sigorta otomat C10 (circuit breaker C10), ADET, **Miktar** `0`, mode **Özellik × katsayı**
(Characteristic × coefficient): characteristic **Çıkış Sayısı** (Number of Outputs), coefficient `1`.
| CIKIS_SAYISI | Result (calculation shown in Try) |
|---|---|
| 6 | 6 ADET (`1 × Çıkış Sayısı (6) = 6`) |
| 14 | 14 ADET |
In **İfade** (Expression) mode, `1 * CIKIS_SAYISI` gives the same result. In Characteristic × coefficient mode the
coefficient must be greater than zero (`Formül katsayısı sıfırdan büyük olmalıdır.` — The formula coefficient must be
greater than zero.); the mode and an expression cannot be used together
(`Miktar ya özellik × katsayı ya da ifadeli formülle hesaplanır — ikisi birden olmaz.` — The quantity is calculated
either with characteristic × coefficient or with an expression formula — not both.).
### Example 16 — Quantity with a lower limit (busbar) {#ornek-16}
**Requirement:** In the professional series, 5 cm of busbar per output, at least 0.6 m.
**Line:** HAM-0020 Bakır bara (copper busbar), M — option condition **Şalt Serisi: Profesyonel** (Switchgear Series:
Professional), **Miktar** `0`, formula `MAX(0.6, CIKIS_SAYISI * 0.05)`.
| Şalt Serisi (Switchgear Series) | CIKIS_SAYISI | Result |
|---|---|---|
| Profesyonel (Professional) | 4 | 0.6 M |
| Profesyonel (Professional) | 20 | 1 M |
| Ekonomik (Economy) | 14 | Not included |
For an upper limit use `MIN(upper, …)`; for both, `MIN(upper, MAX(lower, …))`.
### Example 17 — Recipe proportional to the batch quantity (chemicals) {#ornek-17}
**Requirement:** Raw materials in proportion to how many kg one batch (1 ADET) produces; salt rounded to one decimal.
**Characteristic:** `PARTI_KG` (batch kg; Ondalık (Decimal), kg, 100–2000, step 50). **Lines:** HAM-0070 SLES —
`PARTI_KG * 0.12`; HAM-0071 Tuz (salt) — `YUVARLA(PARTI_KG * 0.015, 1)`; HAM-0075 Saf su (purified water) —
`PARTI_KG * 0.865` (all with **Miktar** `0`).
| PARTI_KG | SLES | Salt | Water |
|---|---|---|---|
| 500 | 60 KG | 7.5 KG | 432.5 KG |
| 1250 | 150 KG | 18.8 KG (18.75 → 18.8) | 1081.25 KG |
> **Proportional scaling does not require a formula**
For a recipe that only grows proportionally, set the BOM's **Temel Miktar** (Base Quantity) to the batch (e.g. 1000 KG)
and enter the order quantity as the kg to be produced; every line scales with the order quantity automatically. A
formula is needed for the **non-proportional** part: a rounded packaging count, an option-dependent additive.
### Example 18 — Packaging count and cartons (packing) {#ornek-18}
**Requirement:** 5 L canister (5.2 kg fill) or 1 L bottle (1.04 kg); canisters go into cartons of 4, bottles into
cartons of 12.
**Characteristic:** `AMBALAJ` (packaging; Seçim (Selection): **5 L bidon** (5 L canister) `B5L`, **1 L şişe** (1 L
bottle) `S1L`). **Lines** (all with **Miktar** `0`):
| Line | Option condition | Formula |
|---|---|---|
| AMB-0001 Bidon 5 LT (canister 5 L) | Ambalaj: 5 L bidon | `TAVAN(PARTI_KG / 5.2)` |
| AMB-0004 Bidon kapağı (canister cap) | Ambalaj: 5 L bidon | `TAVAN(PARTI_KG / 5.2)` |
| AMB-0007 Koli 4'lü (carton of 4) | Ambalaj: 5 L bidon | `TAVAN(TAVAN(PARTI_KG / 5.2) / 4)` |
| AMB-0002 Şişe 1 LT (bottle 1 L) | Ambalaj: 1 L şişe | `TAVAN(PARTI_KG / 1.04)` |
| AMB-0008 Koli 12'li (carton of 12) | Ambalaj: 1 L şişe | `TAVAN(TAVAN(PARTI_KG / 1.04) / 12)` |
| PARTI_KG | Ambalaj (Packaging) | Canister | Cap | Carton of 4 | Bottle | Carton of 12 |
|---|---|---|---|---|---|---|
| 500 | 5 L bidon | 97 | 97 | 25 | Not included | Not included |
| 1250 | 1 L şişe | Not included | Not included | Not included | 1202 | 101 |
**Common mistake:** Writing the carton count as `TAVAN(PARTI_KG / 5.2 / 4)` — dividing into cartons before rounding the
canisters to a whole number can result in too few cartons. Use nested `TAVAN`.
### Example 19 — Option-dependent additive (fragrance) {#ornek-19}
**Line:** HAM-0072 Parfüm (fragrance), KG, **Miktar** `0`, expression condition `PARFUM = EVET`, formula
`PARTI_KG * 0.003`.
| PARTI_KG | PARFUM | Result |
|---|---|---|
| 1250 | Yes | 3.75 KG |
| 500 | not entered | Not included — `koşulun okuduğu değer girilmedi: PARFUM = EVET` (the value read by the condition was not entered) |
### Example 20 — Panel area and color by dimensions (cabinet) {#ornek-20}
**Requirement:** Body: two sides (height × 60 cm depth), top, bottom and one shelf every 40 cm (width × 60 cm); the
color selects the panel item. 10% cutting scrap.
**Characteristics:** `GEN_CM`, `YUK_CM` (width, height; Tam Sayı (Integer), cm), `RENK` (color; Seçim (Selection)),
`KAPAK` (door; Seçim (Selection)).
**Lines:** HAM-0038 / HAM-0039 / HAM-0040 Melamin sunta Beyaz / Ceviz / Antrasit (melamine chipboard White / Walnut /
Anthracite), M2, **Bileşen firesi** (Component scrap) 10% — option condition **Renk: Beyaz** / **Ceviz** /
**Antrasit**, **Miktar** `0`, formula `(2 * YUK_CM * 60 + (TABAN(YUK_CM / 40) + 1) * GEN_CM * 60) / 10000`.
| Width × Height | Renk (Color) | Line included | Result |
|---|---|---|---|
| 120 × 200 | Ceviz (Walnut) | HAM-0039 | 6.72 M2 |
| 180 × 160 | Beyaz (White) | HAM-0038 | 7.32 M2 |
Use `/ 10000` for cm² → m². Back panel (HAM-0041 MDF) `GEN_CM * YUK_CM / 10000`: 120 × 200 → 2.4 M2.
### Example 21 — Hinges by number of doors and height (cabinet) {#ornek-21}
**Lines:** HAM-0045 Menteşe (hinge) — option condition **Kapak Tipi: Menteşeli** (Door Type: Hinged), formula
`EGER(YUK_CM > 180, 4, 3) * TAVAN(GEN_CM / 60)`; HAM-0046 Kulp (handle) — no condition, formula
`EGER(KAPAK = 'SURGULU', 2, TAVAN(GEN_CM / 60))`; HAM-0033 Profil (sürgü rayı) (profile, sliding rail) — **Kapak Tipi:
Sürgülü** (Door Type: Sliding), formula `2 * GEN_CM / 100`; HAM-0049 Ayar ayağı (leveling foot) —
`EGER(GEN_CM > 120, 6, 4)`.
| Width × Height | Kapak (Door) | Hinge | Handle | Rail | Foot |
|---|---|---|---|---|---|
| 120 × 200 | Menteşeli (Hinged) | 8 | 2 | Not included | 4 |
| 180 × 160 | Sürgülü (Sliding) | Not included | 2 | 3.6 M | 6 |
### Example 22 — BOM with option conditions only (office desk, MAM-0003) {#ornek-22}
A product that needs no formula, where the quantity of every combination is fixed: the panel item is selected from the
combination of **Renk** (Color) × **Masa Genişliği** (Desk Width) (nine lines, each with one value on each of two
characteristics); the edge band reads only the color.
| Masa Genişliği (Desk Width) | Renk (Color) | Kablo Kanalı (Cable Duct) | Panel included | Band | Duct |
|---|---|---|---|---|---|
| 140 cm | Beyaz (White) | Var (Yes) | HAM-0038 1.47 M2 (`Renk Beyaz, Masa Genişliği 140 cm`) | HAM-0042 6 M | HAM-0048 1 ADET |
### Example 23 — The same item on two mutually exclusive lines (tank, MAM-0006) {#ornek-23}
HAM-0031 3 mm sheet is on two lines: **Tank Hacmi: 2.000 L** (Tank Volume: 2,000 L) → 290 KG, **Tank Hacmi: 5.000 L**
(Tank Volume: 5,000 L) → 560 KG. This is allowed because the conditions on the same characteristic do not overlap.
HAM-0034 pipe is on a single line with **1.000 L / 2.000 L** (OR) → 4 M.
| Tank Hacmi (Tank Volume) | Karıştırıcı (Agitator) | HAM-0031 | HAM-0034 | HAM-0059 / HAM-0060 |
|---|---|---|---|---|
| 2.000 L | Var (Yes) | 290 KG | 4 M | 1 / 1 ADET |
### Example 24 — Super routing: duration and operation selection (conveyor) {#ornek-24}
The routing of DMO-KSL-01; durations on order **UE-2026-000009**, opened with BOY 12.5, Bant Tipi (Belt Type) PVC and
Koruma (Protection) Yes:
| Op. | Operation | Rule | Duration on the order |
|---|---|---|---|
| 10 | Profil kesim (profile cutting) | Machine formula `2 * BOY * 0.8` (setup 10, labor 5 fixed) | Machine 20 min |
| 20 | Şase ve makara montajı (chassis and roller assembly) | Labor formula `30 + 6 * BOY` | 105 min |
| 30 | Bant montajı ve gerdirme (belt assembly and tensioning) | Labor formula `EGER(BANT_TIPI = 'PU', 40, 25) + 2 * BOY` | 50 min |
| 40 | Koruma kapağı montajı (protective cover assembly) | Selection condition `KORUMA = EVET`, labor `3 * BOY` | 37.5 min |
| 50 | Motor bağlantısı (motor connection) | Fixed 30 | 30 min |
| 60 | Çalışma testi (operating test) | Labor `EGER(BOY > 10, 30, 20)` | 30 min |
In the panel routing (DMO-KSL-02), the labor of the cabinet fabrication included with `KABIN = 'OZEL_OLCU'` is
`60 + 40 * KABIN_EN * KABIN_BOY` → 136.8 min for 1.2 × 1.6 m; `20 + 8 * CIKIS_SAYISI` → 132 min for 14 outputs; the PLC
programming operation is included with `SALT_SERISI = 'PRO' VEYA CIKIS_SAYISI > 12` (UE-2026-000010).
### Example 25 — Constraint (disallowed combination) {#ornek-25}
**Requirement:** The PU food-grade belt is produced at most 20 m long.
**Rule:** **Sınır koy** (Set a limit), expression `BANT_TIPI <> 'PU' VEYA BOY <= 20`, message
`PU gıda bandı en çok 20 m boyda üretilir.` (The PU food-grade belt is produced at most 20 m long.)
| Bant Tipi (Belt Type) | BOY | Result |
|---|---|---|
| PU | 24 | The sales line is not saved — `PU gıda bandı en çok 20 m boyda üretilir.` |
| PU | 12.5 | Passes |
| PVC | 24 | Passes |
An out-of-range value does not need a constraint; the characteristic's **En az / En çok / Adım** (Minimum / Maximum /
Step) fields check it: `'Boy' değeri izinli aralıkta değil (2–30 m, 0,5 m adım).` (The value of 'Boy' is not within
the allowed range (2–30 m, step 0.5 m).) (BOY 31 or 6.3).
## Checklist for writing rules
1. Write **whether** the line is included with a condition and its **quantity** with a formula; do not combine the two
inside `EGER(…, …, 0)`.
2. On a formula line, fill in the **Miktar** (Quantity) field deliberately (usually `0`).
3. Write option codes in single quotes and Yes/No without quotes; use a dot as the decimal separator.
4. Build rules that read optional characteristics and characteristics with preconditions for the "no value" case
(`DOLU`, `EGER`).
5. Write limits so that they cover every value: one side `<=`, the other `>`; for the complement use `DEĞİL ( … )`.
6. If the same item is needed on two lines, set up the conditions so that they exclude each other **by option**; an
expression condition is not enough.
7. Before saving, use **Sına** (Test); after saving, use **Yapılandırarak Dene** (Try by Configuring) to try the extreme
values (smallest, largest, both sides of a limit, optional field blank).
## Related
- [Define a line rule](https://erpdocs.corexlogic.com/en/uretim/islemler/satir-kurali-tanimlama)
- [Try by configuring](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme)
- [Define a precondition](https://erpdocs.corexlogic.com/en/uretim/islemler/on-kosul-tanimlama)
- [Write a super routing rule](https://erpdocs.corexlogic.com/en/uretim/islemler/super-rota-kurali-yazma)
- [Configurable products](https://erpdocs.corexlogic.com/en/uretim/ekranlar/yapilandirilabilir-urunler)
- [Order to production process](https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime)
---
# Production orders
> Production order list and order details — statuses, what can be done in each status, tabs, consumption/output/confirmation and stock effects.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri
A production order is a work order that states **with which BOM revision** and **in what quantity** a product is to be
produced. The order is created as a draft; when it is **released**, its material requirements and operations are
frozen; then material is consumed on the shop floor, operations are confirmed, the finished product enters stock as
output, the order is completed and, finally, closed for good.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Üretim Emirleri · Üretim Emri Oluştur (Production › Production Execution › Production Orders · Create Production Order)
- **Screen route:** `/erp/manufacturing/orders`
- **Required permission:** `erp-manufacturing-orders.view (görme) · .create (oluşturma) · .edit (düzenleme, yayınlama, tamamlama, kapatma, iptal)`, `erp-manufacturing-postings.view · .create (sarf, çıktı, operasyon teyidi)`, `erp-manufacturing-corrections.view · .create (sarf ve çıktı düzeltmesi)`
> **Plan and actuals are read separately**
The order status is not derived from the quantity produced. Even if the full planned quantity is produced, the order
does not automatically become **Tamamlandı** (Completed); completion is a separate command. Conversely, an order that
falls short of the plan can also be completed.
## List
**Üretim › Üretim Yürütme › Üretim Emirleri** (Production › Production Execution › Production Orders) shows all
orders.

1. New order from a bill of materials
2. Order without BOM — components typed in
3. Status and work center filters
4. Planned and produced quantities side by side
5. Click the number to open the order
| Column | Meaning |
|---|---|
| **Emir No** (Order No.) | `UE-yyyy-nnnnnn`. Clicking it opens the order details. |
| **Üretilen Ürün** (Product Produced) | The output item's code and name. |
| **Durum** (Status) | One of the six statuses below. |
| **Planlanan** · **Üretilen** (Planned · Produced) | The order's planned quantity and the quantity for which output has been posted so far (in the output unit). |
| **Revizyon** (Revision) | The BOM revision the order is based on; an order without a BOM shows **Ağaçsız** (Without BOM). |
| **İş Merkezi** (Work Center) | The work center the order is planned for; if not entered, **Kaydedilmedi** (Not recorded). |
| **Planlanan Bitiş** · **Yayın Tarihi** (Planned End · Release Date) | The planning date and the day the order was released. |
- The **Ara** (Search), **İş Merkezi** (Work Center) and **Durum** (Status) filters narrow the list.
- **Yeni Üretim Emri** (New Production Order) creates an order from a BOM:
[Create a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emri-olusturma).
- **Ağaçsız Emir** (Order Without BOM) creates an order for an item that has no BOM; you enter the components yourself,
and the components are not scaled when the quantity changes.
- You can select draft orders in the list and release them in bulk with **Yayınla** (Release). The other lifecycle
commands are not in the list; they are performed in the order details.
## Statuses and available actions
The step line at the top of the order shows the sequence **Taslak → Yayınlandı → Üretimde → Tamamlandı → Kapatıldı**
(Draft → Released → In Production → Completed → Closed) and the date of each step. **İptal** (Cancelled) is a separate
end state.
| Status | What it means | Buttons in the details |
|---|---|---|
| **Taslak** (Draft) | The order has been saved; no requirements or operations. No stock effect. | **Düzenle** (Edit), **Yayınla** (Release), **Böl** (Split), **Tarihleri Planla** (Schedule Dates), **Malzeme Talebi** (Material Requisition), **İptal Et** (Cancel) |
| **Yayınlandı** (Released) | Requirements were copied from the revision and operations from the routing, and frozen. No physical postings yet. | **Sarf Kaydet** (Post Consumption), **Çıktı Kaydet** (Post Output), **Teyit Gir** (Enter Confirmation; on an order with operations), **Malzeme Hazırla** (Stage Material), **Malzeme Talebi** (Material Requisition), **Böl** (Split), **Tarihleri Planla** (Schedule Dates), **İptal Et** (Cancel) |
| **Üretimde** (In Production) | The first physical posting (consumption, output or confirmation) has been made. | **Sarf Kaydet** (Post Consumption), **Çıktı Kaydet** (Post Output), **Teyit Gir** (Enter Confirmation), **Malzeme Hazırla** (Stage Material), **Malzeme Talebi** (Material Requisition), **Tarihleri Planla** (Schedule Dates), **Tamamla** (Complete; conditional), **İptal Et** (Cancel) |
| **Tamamlandı** (Completed) | Production has finished. New consumption, output and confirmations are not accepted; past postings can be corrected. | **Kesin Kapat** (Close Finally) |
| **Kapatıldı** (Closed) | The order is closed for good. No postings can be made, including consumption, output, confirmations and **their corrections**. Irreversible. | None (read-only) |
| **İptal** (Cancelled) | The order was cancelled; it cannot be reopened. | None |
- There is no button that moves an order from **Yayınlandı** (Released) to **Üretimde** (In Production): the order
becomes **Üretimde** automatically with the first consumption, output or confirmation.
- **Tamamla** (Complete) is shown only on an order in **Üretimde** status for which at least one **output** and at
least one **material consumption** have been posted. If there is output but no consumption, the button is replaced
by "Tamamlamak için en az bir malzeme sarfı gerekir." (At least one material consumption is required to complete.)
Incomplete consumption (falling short of the plan) does not prevent completion.
- If the order has an **open failed backflush**, the server rejects completion: first retry it or close it with a
reason on the [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar) screen.
- **İptal Et** (Cancel) is available on draft, released and in-production orders; if there is consumption or output
that has not been reversed, the server rejects it — make a [correction](https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme) first.
- Buttons are shown according to permissions: lifecycle commands require `erp-manufacturing-orders.edit`, and
consumption/output/confirmation require `erp-manufacturing-postings.create`; neither includes the other.
## Order details

1. Linked sales order — output reserved for this item
2. Post Consumption
3. Post Output
4. Enter Confirmation — operation confirmation
5. Configuration from the sales order
6. Availability — missing quantity
The header shows the order number, status badge, output item and revision. If the order was opened from a sales order,
the line **Satış siparişi SS-… · müşteri (stok tahsisli)** (Sales order SS-… · customer (stock allocated)) appears
below it: when the output enters stock, it is allocated to that sales order item and cannot be shipped on another
document.
Summary boxes:
| Box | Content |
|---|---|
| **Planlanan** (Planned) | The planned quantity. |
| **Üretilen** (Produced) | The quantity for which output was posted, and a percentage bar. |
| **Planlanan Başlangıç · Bitiş** (Planned Start · End) | The dates entered with **Tarihleri Planla** (Schedule Dates); otherwise **Planlanmadı** (Not scheduled). |
| **Malzeme** (Material) | On a released order: **Hazır** (Ready; "Açık gereksinimler stokla karşılanıyor" — open requirements are covered from stock) or "**n kalem eksik**" (n items missing). |
| **Plan Kaynağı** (Plan Source) | BOM and revision (`#25 · Rev 1`). |
| **Yapılandırma** (Configuration) | Only for a configurable product: the characteristic values from the sales order (e.g. **Tank Hacmi 2.000 L** (Tank Volume 2,000 L), **Karıştırıcı Var** (Agitator: Yes)). |
### Tabs
| Tab | What it shows |
|---|---|
| **Malzeme Gereksinimleri** (Material Requirements) | The component list frozen at release: **Sıra** (Seq.), **Malzeme** (Material), **Planlanan** (Planned), **Tüketilen** (Consumed), **Birim** (Unit), **Kullanılabilirlik** (Availability; Hazır / Eksik n — Beklenen tedarik, Ready / Missing n — Expected supply). A component flagged for backflush shows **Geri sarf** (Backflush) below it. Empty on a draft order. |
| **Operasyonlar** (Operations) | Operations copied from the routing: **Operasyon** (Operation), **Açıklama** (Description), **İş merkezi** (Work center), **Kontrol** (Control), **Miktar** (Quantity), **Hazırlık** (Setup), **Makine** (Machine), **İşçilik** (Labor), **Plan. tarih** (Planned date), **Sağlam / fire** (Good / scrap), **Fiili süre** (Actual time) and **Teyit gir** (Enter confirmation) on the row. Machine and labor times are scaled by the order quantity; setup is fixed. |
| **Malzeme Sarfları** (Material Consumptions) | The order's consumption documents (`MS-…`). |
| **Üretim Çıktıları** (Production Outputs) | The order's output documents (`UC-…`). |
| **Maliyet** (Cost) | The order's cost summary (with the cost view permission). |
| **Ekler** (Attachments) | Files attached to the order. |

1. Operations — plan copied from the routing
2. Confirmed yield and scrap
3. Actual time from confirmations
4. Complete — when output and consumption exist
> **How the requirement quantity is calculated**
Requirement = BOM line quantity × (planned quantity ÷ base output quantity of the BOM) × (1 + component scrap / 100),
rounded **up** to the decimal precision of the unit. Example: on **UE-2026-000001**, 3 ADET (pieces) of MAM-0010 were
planned; the BOM has HAM-0030 18 KG with 5% scrap → 18 × 3 × 1.05 = **56.7 KG**. For a configurable product, only the
lines whose condition is met are included and formula quantities are calculated: [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar).
### Other buttons
| Button | What it does |
|---|---|
| **Çıktı** (Print) | Print output of the order (PDF). |
| **Böl** (Split) | On a draft or released order, splits part of the quantity off into a **new draft order** with the same BOM and dates. On a released order, the requirements and operations are scaled to the remaining quantity. An order with consumption, output, confirmations, an external processing requisition or by-product receipts, an order without a BOM and a linked sub-order cannot be split. |
| **Tarihleri Planla** (Schedule Dates) | **Planlanan başlangıç** (Planned start) and **Planlanan bitiş** (Planned end). Does not post stock; MRP writes the component requirements to the start date and the output to the end date. |
| **Malzeme Hazırla** (Stage Material) | Opens a transfer reservation from the source warehouse to the work center's **supply warehouse**; the warehouse picks the goods from the reservation. Only on released/in-production orders. |
| **Malzeme Talebi** (Material Requisition) | Opens the purchase requisition form with this order preselected (`erp-procurement-requisitions.create`). |
| **Dış İşlem Talebi Aç** (Open External Processing Requisition) | Shown on an order with an external processing (subcontracting) operation if the requisition could not be opened at release. |
If a released order has a requirement for a semi-finished product with the **make-to-order** strategy, the **Alt
Emirler** (Sub-Orders) card appears in the details: [Sub-order proposal](https://erpdocs.corexlogic.com/en/uretim/islemler/alt-emir-onerisi).
## Stock effects — summary
| Posting | Stock effect |
|---|---|
| Creating, releasing an order | None. Does not allocate material or make reservations; release only freezes the requirement list. |
| **Sarf Kaydet** (Post Consumption) | The component is **issued immediately** from the selected warehouse/storage location/stock status. |
| **Teyit Gir** (Enter Confirmation) | Does not post stock; records the operation's good/scrap quantity and times. |
| **Çıktı Kaydet** (Post Output) | The finished product **enters** the selected warehouse; components flagged for backflush are issued at the same time with a separate consumption document. On an order linked to a sales order, the finished product enters stock allocated to that sales order item. |
| **Tamamla** (Complete) | Does not post new stock; stock allocated to this order from sub-orders and not consumed is released. |
| Correction | A consumption correction returns the component to stock; an output correction removes the finished product from stock. |
## Common messages
| Message (from the server, verbatim) | English meaning | Cause / what to do |
|---|---|---|
| Yalnız Taslak durumundaki üretim emri yayınlanabilir. | Only a production order in Draft status can be released. | The order is already released or closed. |
| Üretim emri en az bir malzeme gereksinimi olmadan yayınlanamaz. | A production order cannot be released without at least one material requirement. | The order without a BOM has no components, or the BOM is empty. |
| 'AMB-0007' için gereksinim (12,5000000000), 'ADET' biriminin 0 ondalık basamak sınırını aşıyor. Sessiz yuvarlama yapılmaz. | The requirement for 'AMB-0007' (12.5000000000) exceeds the 0-decimal limit of the unit 'ADET'. No silent rounding is done. | The planned quantity produces a fraction for a piece-counted component. Make the quantity a multiple of the BOM's base quantity (e.g. 100 instead of 50 for MAM-0008). |
| Rotanın '…' iş merkezi pasif — emir yayınlanamaz; rotayı düzeltin. | Work center '…' of the routing is inactive — the order cannot be released; correct the routing. | A work center in the routing is inactive. |
| Seçili ürün ağacı revizyonu artık geçerli değil. Taslakta revizyonu yeniden seçin. | The selected BOM revision is no longer valid. Select the revision again in the draft. | The revision's validity changed. |
| Yalnız Üretimde durumundaki üretim emri tamamlanabilir. | Only a production order in In Production status can be completed. | The order is still in Released status or is closed. |
| Üretim çıktısı olmayan emir tamamlanamaz — önce çıktı kaydedin ya da emri iptal edin. | An order without production output cannot be completed — post output first or cancel the order. | No output. |
| Malzeme sarfı olmayan emir tamamlanamaz — önce sarf kaydedin ya da emri iptal edin. | An order without material consumption cannot be completed — post consumption first or cancel the order. | No consumption. |
| Emirde çözülmemiş 1 hatalı geri sarf var — tamamlamadan önce yeniden deneyin ya da gerekçeyle kapatın: 'HAM-0049' 8 ADET — … | The order has 1 unresolved failed backflush — retry it or close it with a reason before completing: 'HAM-0049' 8 pieces — … | Open failed backflush. |
| Yalnız tamamlanmış üretim emri kesin kapatılabilir — önce emri tamamlayın. | Only a completed production order can be closed finally — complete the order first. | **Kesin Kapat** (Close Finally) only on a **Tamamlandı** (Completed) order. |
| Emirde geri alınmamış malzeme sarfı var (…). İptalden önce sarf düzeltmesi yapılmalıdır. | The order has material consumption that has not been reversed (…). A consumption correction must be made before cancellation. | Correct the consumption before cancelling. |
| Emirde geri alınmamış üretim çıktısı var (…). İptalden önce çıktı düzeltmesi yapılmalıdır. | The order has production output that has not been reversed (…). An output correction must be made before cancellation. | Correct the output before cancelling. |
| İptal gerekçesi zorunludur. | A cancellation reason is required. | The reason is blank. |
| Bu üretim emri bu sırada başka bir kullanıcı tarafından değiştirildi. Sayfayı yenileyip tekrar deneyin. | This production order was changed by another user in the meantime. Refresh the page and try again. | Someone else posted to the same order; use **Emri yeniden yükle** (Reload order). |
## Related
- [Create a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emri-olusturma) ·
[Open a production order from a sales order](https://erpdocs.corexlogic.com/en/uretim/islemler/siparisten-uretim-emri-acma)
- [Release](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama) · [Material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme) ·
[Operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme) · [Production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme) ·
[Complete and close](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma)
- [Order to production process](https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime) · [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
---
# Create a work center
> Define a new work center (line, workshop, workbench) — code, type, supply warehouse, person responsible and shift capacity.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/is-merkezi-olusturma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › İş Merkezleri › Yeni İş Merkezi (Production › Master Data › Work Centers › New Work Center)
- **Screen route:** `/erp/manufacturing/work-centers`
- **Required permission:** `erp-manufacturing-work-centers.create`
- **Prerequisites:**
- If a supply warehouse will be used, the warehouse is defined and active.
- If a parent work center will be selected, that work center is active.
A work center is the place where the operations in a routing are performed. Its capacity is the calendar of the
production plan and of the capacity load; the supply warehouse is the warehouse where the production order's material
is staged and consumed.
## Steps
1. Open the **Üretim › Ana Veriler › İş Merkezleri** (Production › Master Data › Work Centers) screen and click **Yeni İş Merkezi** (New Work Center).
2. Enter the work center's name in the **Ad** (Name) field. The **Kod** (Code) is proposed from the name (upper case, Turkish characters simplified); overwrite it if necessary.
3. Select **Makine** (Machine), **İşçilik** (Labor) or **Diğer** (Other) from the **Tür** (Type) list.
4. If necessary, select the **Üst iş merkezi** (Parent work center), **Tesis** (Plant), **Besleme deposu** (Supply warehouse) and **Sorumlu** (Responsible); enter a **Açıklama** (Description) and **Sıra** (Sequence).
5. To define capacity, turn on the **Kapasite tanımlı** (Capacity defined) switch; enter **Vardiya** (Shift), **Mola (dk)** (Break, min), **Kullanım oranı (%)** (Utilization, %), **Bireysel kapasite** (Individual capacities) and **Çalışma günleri** (Working days). The **Günlük kapasite** (Daily capacity) is calculated.

1. Code — suggested from name, unique
2. Type — Machine, Labour, Other
3. Supply warehouse — issues from here
4. Capacity defined
5. (Shift − break) × utilisation × units
6. Create
6. If there are several machines or workbenches of the same type, add each with a name and code using **Bireysel Kapasite Ekle** (Add Individual Capacity).
7. Click **Oluştur** (Create).
**Result:** The work center is saved as **Aktif** (Active) and appears in the list; it can now be selected for [routing](https://erpdocs.corexlogic.com/en/uretim/islemler/rota-olusturma) operations. If capacity is defined, the [capacity load](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama) uses this calendar.
## What you need to know
- If no capacity is defined, planning assumes an 8-hour weekday for the work center; the capacity load does not show
available time.
- Daily capacity = (shift − break) × utilization × individual capacities. The break must be shorter than the shift,
utilization must be greater than 0 and at most 100, and at least one working day must be selected.
- If the shift end is before the start, the shift runs past midnight (night shift).
- Work centers and individual capacities are not deleted; to take one out of use, turn off the **Aktif** (Active)
switch. An inactive work center cannot be selected for a new routing or document; past orders are not affected.
- Workstations, equipment and activity rates are added from the work center card: [Work centers](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri).
## Related
- [Work centers screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri)
- [Create a routing](https://erpdocs.corexlogic.com/en/uretim/islemler/rota-olusturma)
---
# Production operations
> The shop floor's work list — operations of open orders without a final confirmation, per work center and machine; confirm from the row.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-operasyonlari
This is the shop floor's daily work list: every operation of released and in-production orders that **has not
received its final confirmation** is a row. The supervisor filters by their own work center, sees the next job and
enters a confirmation from the row.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Üretim Operasyonları (Production › Production Execution › Production Operations)
- **Screen route:** `/erp/manufacturing/operations`
- **Required permission:** `erp-manufacturing-orders.view (liste)`, `erp-manufacturing-postings.create (Teyit Gir)`

1. Work center filter
2. Only my work centers
3. Remaining quantity
4. Enter Confirmation — opens for this operation
## Columns
| Column | Meaning |
|---|---|
| **Üretim emri** (Production order) | The order number (link to the order details). |
| **Operasyon** (Operation) | Operation number and description (from the routing: 10 Sac ve boru kesim (sheet and tube cutting), 20 Büküm (bending)…). |
| **İş merkezi** (Work center) | The operation's work center. |
| **Tezgâh** (Machine) | The planned individual capacity (machine); blank if no machines are defined for the work center. |
| **Planlanan** (Planned) | The planned quantity of the operation (the order quantity). |
| **Sağlam / fire** (Good / scrap) | Good and scrap quantities confirmed so far. |
| **Kalan** (Remaining) | Planned − (good + scrap). |
| **Durum** (Status) | **Başlamadı** (Not started), **Kısmi teyit** (Partially confirmed) or **Son teyit** (Final confirmation). |
**Teyit Gir** (Enter Confirmation) on the row opens the [Enter Operation Confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme)
form with the order and operation preselected. An operation that receives its final confirmation drops off the list.
## Filters
- **Ara** (Search) — order number, product or operation text.
- **İş Merkezi** (Work Center) — in work center hierarchy order; selecting a parent work center also brings its child
work centers. When the work center changes, the machine filter is reset.
- **Tezgâh** (Machine) — visible only in a setup with machines defined.
- **Başlangıç** · **Bitiş** (Start · End) — the period that overlaps the operation's planned dates.
- **Sorumlu olduğum iş merkezleri** (Work centers I am responsible for) — only jobs of the work centers you are
responsible for.
> **The plan, confirmation totals, remaining quantity and status come from the server; the screen does not calculate them.**
The operation's planned dates come from **Tarihleri Planla** (Schedule Dates),
[capacity planning](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama) or finite scheduling.
## Related
- [Operation confirmations](https://erpdocs.corexlogic.com/en/uretim/ekranlar/operasyon-teyitleri)
- [Enter an operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme)
- [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
---
# Create a routing
> Create an operation plan (routing) or a master recipe for a produced card — work center, times, scrap; the first revision is created as a draft.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/rota-olusturma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Mühendisliği › Rota Oluştur (Production › Production Engineering › Create Routing)
- **Screen route:** `/erp/manufacturing/routings/new`
- **Required permission:** `erp-manufacturing-routings.create`
- **Prerequisites:**
- The output card is a produced (Üretim ürünü (Production item) flagged) and active card.
- The work centers of the operations are defined and active ([Create a work center](https://erpdocs.corexlogic.com/en/uretim/islemler/is-merkezi-olusturma)).
A routing defines the card's operations in sequence. Saving opens the first revision as a **draft**; it can be edited
until it is released, and it does not change once released.
## Steps
1. Open the **Üretim › Üretim Mühendisliği › Rota Oluştur** (Production › Production Engineering › Create Routing) screen. For a process item, use **Ana Reçete Oluştur** (Create Master Recipe) (the form is the same).
2. Check the **Tür** (Type): **Rota** (Routing) or **Ana reçete** (Master recipe). The type cannot change after saving.
3. Open the **Çıktı kartı** (Output card) picker, type the code and select the card from the list.
4. If the card has another routing, this routing becomes the next alternative. Enter the **Rota adı** (Routing name) and, if necessary, the **Parti büyüklüğü** (Lot size) (minimum – maximum); an empty range means any quantity.
5. Enter the **Temel miktar** (Base quantity) (default 1). Machine and labor times apply to this quantity.
6. In the first operation row, enter a **Açıklama** (Description), select the **İş merkezi** (Work center), and enter the **Kontrol anahtarı** (Control key) (internal or external processing) and the **Hazırlık (dk)** (Setup, min), **Makine (dk)** (Machine, min), **İşçilik (dk)** (Labor, min) and **Fire (%)** (Scrap, %) values.

1. Type — fixed after saving
2. Output item — produced items only
3. Lot size — alternative selection
4. Internal or external (subcontract)
5. Minutes; machine/labour per base quantity
6. Add Operation — number +10
7. Save — revision 1 as draft
7. For the next operation, click **Operasyon Ekle** (Add Operation); the number is assigned in increments of 10. Fill in the rows the same way.
8. Click **Rotayı Kaydet** (Save Routing) (**Ana Reçeteyi Kaydet** (Save Master Recipe) for a master recipe).
9. Check the operations on the detail; when ready, click **Yayınla** (Release) and confirm with **Revizyonu Yayınla** (Release Revision).

1. Edit Draft
2. Release — with change number or from today
3. Routing name and lot size
4. Operation work center
**Result:** The routing is saved as **Rev. 1 Taslak** (Draft). The draft is changed with **Taslağı Düzenle** (Edit Draft); it becomes final with **Yayınla** (Release), and from then on its operations are passed down to production orders released afterwards. In the demo environment, the draft routing **Alt. 2 · Demo — büyük parti hattı** (large lot line) (500–999 ADET (pcs)) was created for MAM-0010 with these steps.
## What you need to know
- The operation number is between 1 and 9999 and unique within the routing; a routing has at least 1 and at most 99
operations.
- The setup time is fixed; machine and labor times are per base quantity and scale with the quantity on the order.
Times are 0 or positive, in minutes with at most two decimals.
- For an **Dış işlem** (External processing, subcontracting) operation, a purchased service card is selected as the
**Dış işlem hizmet kartı** (External processing service card).
- To assign a tool/fixture (PRT), use the tool icon on the row (the maintenance module must be enabled).
- In the routing of a configurable card, a selection condition and a time formula can be written for an operation:
[Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar).
- Which routing alternative the order uses is determined by the [production version](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari)
or by the lot size.
## Related
- [Routings and master recipes screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar)
- [Define a production version](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-versiyonu-tanimlama)
---
# Operation confirmations
> The list of operation confirmations and the Enter Operation Confirmation form — good quantity, scrap, rework, actual time, employees; cancelling a confirmation.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/operasyon-teyitleri
An operation confirmation records **how many good units and how many scrapped units** came out of an operation and
**how much time** was spent. A confirmation **does not post stock**: the finished product enters stock with
[production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme), and components leave stock with
[material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme). Confirmations are the source for capacity, the labor
report, the scrap report, OEE and the order's activity cost.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Operasyon Teyitleri · Operasyon Teyidi Gir (Production › Production Execution › Operation Confirmations · Enter Operation Confirmation)
- **Screen route:** `/erp/manufacturing/confirmations`
- **Required permission:** `erp-manufacturing-postings.view (liste) · .create (teyit girme)`, `erp-manufacturing-corrections.create (teyit iptali)`
## List

1. New confirmation
2. Include cancelled confirmations
3. Setup + machine + labor
4. Partial / Final / Cancelled
| Column | Meaning |
|---|---|
| **Teyit** (Confirmation) | `TYD-yyyy-nnnnnn` and the confirmation date. |
| **Üretim emri** (Production order) | Link to the order. |
| **Operasyon** (Operation) | Operation number, description and work center. |
| **Tezgâh** (Machine) | The machine the confirmation was posted to (if any). |
| **Sağlam** · **Fire** (Good · Scrap) | The quantities of this confirmation. |
| **Fiili süre** (Actual time) | Setup + machine + labor (minutes). |
| **Durum** (Status) | **Kısmi** (Partial), **Son teyit** (Final confirmation) or **İptal edildi** (Cancelled). |
| **Çalışanlar** · **Teyit eden** (Employees · Confirmed by) | The employees entered on the confirmation and the user who entered the record. |
- Filters: **Ara** (Search), **Başlangıç** · **Bitiş** (Start · End), **Tezgâh** (Machine; in a setup with machines),
**İptal edilenleri göster** (Show cancelled), **Sorumlu olduğum iş merkezleri** (Work centers I am responsible for).
When opened from the order details, the list is narrowed to that order (**Tek emrin teyitleri**, Confirmations of a
single order).
- The row's **İşlemler** (Actions) menu has **İptal Et** (Cancel): the **Teyidi İptal Et — TYD-…** (Cancel
Confirmation — TYD-…) window opens, and **Gerekçe** (Reason) is required. Cancellation reverses the operation's
totals; if a final confirmation is cancelled, the operation is reopened. Cancellation is possible only for a
confirmation of an order in **Yayınlandı** (Released), **Üretimde** (In Production) or **Tamamlandı** (Completed)
status.
## Enter Operation Confirmation form

1. Pick the operation — remaining = planned − (yield + scrap)
2. Yield quantity
3. Fill remaining
4. Scrap quantity
5. Actual times — server proposes when empty
6. Save Confirmation — no stock posting
| Field | Rule |
|---|---|
| **Emir** (Order) | A released or in-production order. When opened via **Teyit Gir** (Enter Confirmation) in the order details or from the work list, it opens preselected. |
| **Operasyon** (Operation; table) | The row to be confirmed. **Kalan = planlanan − (sağlam + fire)** (Remaining = planned − (good + scrap)). An operation with a final confirmation cannot be selected; to enter a new confirmation, first cancel the final confirmation. |
| **Teyit tarihi** (Confirmation date) | Required; cannot be in the future and cannot be posted to a closed posting period. |
| **Sağlam (birim)** (Good, unit) | The quantity that came out good. **Kalanı yaz** (Enter remaining) enters the remaining quantity. |
| **Fire (birim)** (Scrap, unit) | The quantity scrapped. |
| **Yeniden işlemeye (birim)** (To rework, unit) | Quantity not counted as good that is to be reworked. While some is pending, the **Yeniden işlenmiş pay** (Reworked portion) field appears. |
| **Hazırlık (dk)** · **Makine (dk)** · **İşçilik (dk)** (Setup · Machine · Labor, min) | If left blank, the server proposes values: setup is the planned value on the operation's **first** confirmation; machine and labor are proportional to the quantity. The gray value is a preview of this proposal. |
| **Tezgâh** (Machine) | Only if the operation's work center has active machines; the default is the planned machine. |
| **Çalışanlar** (Employees) | Added with **Çalışan ekle** (Add employee). If the time is blank, the labor time is split equally among the employees; if entered, it is entered for each, and the total is the labor time. |
| **Son teyit — operasyon kapanır** (Final confirmation — operation closes) | If ticked, the operation becomes **Son teyit** (Final confirmation) and drops off the work list. |
| **Not** (Note) | Optional. |
**Teyidi Kaydet** (Save Confirmation) posts the record; a line such as "**TYD-2026-000001 kaydedildi — operasyon 10,
sağlam 3, fire 0 (son teyit).**" (TYD-2026-000001 saved — operation 10, good 3, scrap 0 (final confirmation).) appears
below the form, and the form is cleared for the next confirmation.
> **The confirmation of the last operation proposes the output**
The production output form shows the good quantity confirmed on the last operation that has not yet been posted as
output as **Son operasyonun teyidi** (Confirmation of last operation); **Öneriyi Uygula** (Apply Proposal) enters it in
the quantity. A confirmation does not post output automatically.
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| Teyit edilecek operasyonu seçin. | Select the operation to confirm. | No row was selected in the table. |
| Teyit tarihi zorunlu. · Teyit ileri tarihli olamaz. | The confirmation date is required. · A confirmation cannot be dated in the future. | The date is blank or after today. |
| Teyit boş olamaz — miktar ya da süre girin. | A confirmation cannot be empty — enter a quantity or a time. | No field is filled in. |
| Sağlam, fire ve yeniden işleme miktarı eksi olamaz. | Good, scrap and rework quantities cannot be negative. | Negative value. |
| Yeniden işlenmiş miktar bu teyidin sağlam + firesini aşamaz. | The reworked quantity cannot exceed the good + scrap of this confirmation. | The portion is too large. |
| Yeniden işleme bekleyen miktar var — son teyitten önce yeniden işlemeyi teyit edin. | There is quantity awaiting rework — confirm the rework before the final confirmation. | Final confirmation before rework is finished. |
| Çalışanların süreleri toplamı işçilik süresine eşit olmalı. | The total of the employees' times must equal the labor time. | Employee times do not add up. |
| Yalnız Yayınlandı ya da Üretimde durumundaki üretim emrine operasyon teyidi girilebilir. | Operation confirmations can be entered only for production orders in Released or In Production status. | The order is a draft, completed or closed. |
| Operasyon \{n\} ara muayenesi (\{no\}) karar bekliyor — kullanım kararı verilmeden sonraki operasyon teyit edilemez. | The in-process inspection (\{no\}) of operation \{n\} is awaiting a decision — the next operation cannot be confirmed until a usage decision is made. | An in-process inspection decision is pending. |
| Üretim emri bu arada değişti — bağlamı yenileyip yeniden deneyin. | The production order changed in the meantime — refresh the context and try again. | Someone else posted to the order; use **Bağlamı yenile** (Refresh context). |
| İptal gerekçesi zorunlu. | A cancellation reason is required. | The reason in the cancellation window is blank. |
## Related
- [Enter an operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme)
- [Production operations](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-operasyonlari)
- [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
---
# Create a bill of materials
> Create a bill of materials (recipe) for a produced card — base quantity, usage, material lines, scrap and backflush; draft revision 1 is opened.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-olusturma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Ürün Ağacı Oluştur (Production › Master Data › Create BOM)
- **Screen route:** `/erp/manufacturing/boms/new`
- **Required permission:** `erp-manufacturing-boms.create`
- **Prerequisites:**
- The output card is flagged "Üretim ürünü" (Production item) (semi-finished or finished product), is active and is not a service card.
- The material cards are active and the units to be used can be converted to the base unit.
A bill of materials is the card's recipe. A saved BOM is created with a **Taslak** (Draft) revision; releasing it is a
separate operation. If the card already has a BOM for this usage, the new BOM becomes the **next alternative**.
## Steps
1. Open the **Üretim › Ana Veriler › Ürün Ağacı Oluştur** (Production › Master Data › Create BOM) screen or click **Yeni Ürün Ağacı** (New BOM) in the **Ürün Ağaçları** (Bills of Materials) list.
2. Type the card's code in the **Çıktı Kartı** (Output Card) field and press `Enter`, select the card from the list and press `Enter` again (`F4` or the magnifier opens the list).
3. Enter the **Temel Miktar** (Base Quantity) and its unit. Line quantities apply to this output quantity (e.g. 1 ADET (pc) or 100 ADET).
4. If there is a loss of finished product in the process, enter the **Montaj Firesi (%)** (Assembly Scrap, %); all components are increased by this percentage.
5. Select the **Kullanım** (Usage): **Üretim** (Production) for actual production, **Mühendislik** (Engineering) for the design phase. If necessary, enter an **Alternatif adı** (Alternative name) and **Parti büyüklüğü** (Lot size).
6. Click **Malzeme Ekle** (Add Material), check the required cards in the window and add them; each card becomes a separate line. To enter by typing a code, use **Boş Satır** (Empty Line).
7. On each line, enter the **Miktar** (Quantity) and **Birim** (Unit); if necessary, enter the **Bileşen firesi (%)** (Component scrap, %) and check **Geri sarf** (Backflush) for consumables to be deducted automatically with the output.

1. Output item — produced items only
2. Base quantity — line quantities refer to it
3. Usage — Production or Engineering
4. Add Material — pick several items
5. Component scrap (%)
6. Backflush — consumed automatically with output
7. Save — draft revision 1 is created
8. If an equivalent card can be used, add an alternative with **Ekle** (Add) in the line's **Alternatif** (Alternative) column and select the **Strateji** (Strategy) (**Öncelik** (Priority) or **Kullanım olasılığı** (Usage probability)).
9. If a by-product or co-product arises together with the order's output, add it with **Yan / Ortak Ürün Ekle** (Add By-Product / Co-Product).
10. Click **Ürün Ağacını Kaydet** (Save BOM).
**Result:** The BOM is saved with **draft revision 1** and its detail opens. A draft is not used in planning or on orders; to use it, [release the BOM](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama). In the demo environment, BOM #49 (Alt. 1 · Demo tasarım ağacı (Demo design BOM)) with **Mühendislik** (Engineering) usage was created for MAM-0010 with these steps.
## What you need to know
- When the order is released, the requirement is scaled as `satır miktarı × planlanan miktar / temel miktar` (line
quantity × planned quantity / base quantity); component scrap increases it by `(1 + fire/100)` (1 + scrap/100), and
the result is rounded up to the unit's precision.
- A card can appear in the BOM only once, either as primary or as alternative; the BOM's own output card cannot be a
material.
- For a serial-managed output, the base quantity must be an integer; for a serial-managed component, the material
quantity must be an integer.
- A backflushed component is consumed in the planned proportion when the output is posted; a serial-managed component
is not backflushed.
- Before saving, the form is validated on the server for item eligibility, unit conversion and cycles; if there is an
error, the **Ürün ağacı kaydedilemedi** (BOM could not be saved) summary lists the incorrect fields.
- If the output card is configurable, conditions and formulas are written on the lines: [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar).
## Related
- [Bills of materials screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
- [Release a BOM](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama)
- [Open a BOM revision](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-revizyonu-acma)
---
# Failed backflushes
> The queue of components that could not be backflushed at output — causes, Retry and Close; an open record blocks completion of the order.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar
**Backflush** (geri sarf) means that a component flagged in the BOM is issued automatically **together with the
output**, without a separate consumption posting (small materials such as screws, rivets, labels). If a component
cannot be issued when output is posted, **the output is not reversed**; the component goes into this queue and waits
until it is resolved.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Hatalı Geri Sarflar (Production › Production Execution › Failed Backflushes)
- **Screen route:** `/erp/manufacturing/backflush-failures`
- **Required permission:** `erp-manufacturing-postings.view (liste) · .create (Yeniden Dene)`, `erp-manufacturing-corrections.create (Kapat)`

1. Order whose output was posted
2. Error — why the backflush failed
3. Retry — with another warehouse or stock status
4. Close — with a reason, no consumption
## How backflush works
- Quantity to issue = planned quantity of the requirement × (total produced ÷ planned quantity of the order) − quantity
consumed so far (rounded up to the precision of the unit). Manual consumption is not counted twice. Example: on
**UE-2026-000008**, planned for 2 ADET (pieces), the leveling foot requirement is 8 ADET; 1 ADET output, no
consumption → **4 ADET** backflushed.
- The component is issued from the **Geri sarf deposu** (Backflush warehouse) **in the output form**; if it is left
blank, the warehouse of the first output line is used. If the stock status is blank, the default status (SIFIR, new).
- A batch-managed component is issued with the FEFO proposal. A component without batch management: if the warehouse
requires a storage location, from the item's **default storage location** in that warehouse; otherwise from stock
**without a storage location**.
- A serial-number-managed component is not backflushed; it must be consumed manually.
- A successful backflush is recorded as a separate **material consumption document** on the order's **Malzeme
Sarfları** (Material Consumptions) tab.
> **Watch out for stock in storage locations**
If the component's stock is in a storage location and the backflush warehouse does not require storage locations, the
backflush looks at stock without a storage location and returns a "yeterli stok yok" (insufficient stock) error. Either
define a **default storage location** in the item's warehouse data, or issue the component manually with a
[material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme) and close the record with a reason. In the demo
example, HAM-0049 was in HAMMADDE / RAF-C; the backflush reported "Mevcut: 0" (Available: 0).
## Columns and filters
| Column | Meaning |
|---|---|
| **Üretim emri** (Production order) | The order whose output was posted and the output date. |
| **Bileşen** (Component) | The item that could not be issued. |
| **Miktar** (Quantity) | The quantity that must be issued. |
| **Hata** (Error) | The server's reason, verbatim (e.g. "'HAM-0049' kartının 'SIFIR' durumunda yeterli stok yok. Mevcut: 0, istenen: 8,000000." — Insufficient stock of item 'HAM-0049' in status 'SIFIR'. Available: 0, requested: 8.000000.). |
| **Durum** (Status) | **Açık** (Open), **Çözüldü** (Resolved) or **Kapatıldı** (Closed). |
- The **Durum** (Status) filter defaults to **Açık** (Open; the work queue); **Tümü** (All) also brings resolved and
closed records.
- **Sorumlu olduğum iş merkezleri** (Work centers I am responsible for) shows only orders of the work centers you are
responsible for.
- The "bu emrin hatalı geri sarfları" (failed backflushes of this order) link in the order details narrows the list to
that order (**Tek emrin kayıtları**, Records of a single order).
- Records are not created on this screen; they arise only from output.
## Retry

1. Warehouse to issue the component from
2. Stock status (empty = recorded status)
3. Retry — consumption posted, record resolved
If stock has arrived, or the component is to be issued from another warehouse, use **Yeniden Dene** (Retry): the
window shows the last error, and you select the **Depo** (Warehouse) and **Stok durumu** (Stock status). If it
succeeds, a consumption document is posted, the record becomes **Çözüldü** (Resolved) and the message "Bileşen sarf
edildi — kayıt kapandı." (Component consumed — record closed.) appears. If it fails, the error is shown in the window
and the record stays open.
## Close
**Kapat** (Close) does not post consumption; it closes the record with a reason (**Hatalı Geri Sarfı Kapat — kart**
(Close Failed Backflush — item) window, **Gerekçe** (Reason) required, at most 500 characters). Use it if you consumed
the component manually or if the component was actually not used. A closed record cannot be retried. Example reason:
"Bileşen RAF-C lokasyonundan elle sarf edildi." (The component was consumed manually from storage location RAF-C.)
> **An open record prevents closing the order**
If the order has an open failed backflush, **Tamamla** (Complete) is rejected: "Emirde çözülmemiş 1 hatalı geri sarf
var — tamamlamadan önce yeniden deneyin ya da gerekçeyle kapatın: 'HAM-0049' 8 ADET — …" (The order has 1 unresolved
failed backflush — retry it or close it with a reason before completing: 'HAM-0049' 8 pieces — …)
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| 'KART' kartının 'SIFIR' durumunda yeterli stok yok. Mevcut: …, istenen: … | Insufficient stock of item 'KART' in status 'SIFIR'. Available: …, requested: … | There is not enough stock in the selected warehouse/status (without storage location). |
| 'DEPO' lokasyon istiyor ve 'KART' kartının bu depoda varsayılan lokasyonu yok. | 'DEPO' requires a storage location and item 'KART' has no default storage location in this warehouse. | Enter a default storage location in the item's warehouse data. |
| 'KART' için depoda yeterli lot yok — eksik … | Not enough batches in the warehouse for 'KART' — missing … | FEFO was not sufficient for a batch-managed component. |
| 'KART' seri takipli — geri sarf edilemez, elle sarf edin. | 'KART' is serial-number managed — it cannot be backflushed; consume it manually. | Serial-number-managed component. |
| Yalnız açık hatalı geri sarf yeniden denenir. · Hatalı geri sarf zaten kapanmış. | Only an open failed backflush can be retried. · The failed backflush is already closed. | The record has been resolved or closed. |
| Kapatma gerekçesi zorunlu. | A closing reason is required. | The reason is blank. |
## Related
- [Post production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme)
- [Post a material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme)
- [Complete and close a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma)
---
# Open a BOM revision
> Open a new draft revision to change a released bill of materials; the base quantity and lines are entered again.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-revizyonu-acma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Ürün Ağaçları › ağaç detayı › Yeni Revizyon (Production › Master Data › Bills of Materials › BOM detail › New Revision)
- **Screen route:** `/erp/manufacturing/boms/{id}/revisions/new`
- **Required permission:** `erp-manufacturing-boms.edit`
- **Prerequisites:**
- The BOM has no open draft revision (if it does, release or edit that one first).
A released revision cannot be changed or deleted. A change is made with a new draft revision, which replaces the
previous revision when it is released (or on the date of the selected change number).
## Steps
1. In the **Üretim › Ana Veriler › Ürün Ağaçları** (Production › Master Data › Bills of Materials) list, click the output card to open the BOM detail.
2. Click **Yeni Revizyon** (New Revision) in the header. The button is visible only when the BOM has no draft.

1. New Revision — only when no draft exists
2. Multi-level explosion
3. Revision status
3. Enter the **Temel Miktar** (Base Quantity). The form opens empty: nothing is copied from the previous revision.

1. Output item is locked
2. Base quantity — entered again
3. Lines are entered from scratch
4. Create Revision — draft
4. Enter the lines with **Malzeme Ekle** (Add Material) or **Boş Satır** (Empty Line); on each line, set the **Miktar** (Quantity), **Birim** (Unit), **Bileşen firesi (%)** (Component scrap, %) and **Geri sarf** (Backflush).
5. Click **Revizyonu Oluştur** (Create Revision).

1. Edit — draft only
2. Release
3. Component scrap
4. Backflushed line
**Result:** The new revision is saved as **Taslak** (Draft); the released revision remains effective as it is. Change the draft with **Düzenle** (Edit) and [release it](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama). In the demo environment, the Revision 2 draft for BOM #49 was opened with these steps.
## What you need to know
- A BOM can have only one draft at a time. While there is a draft, **Yeni Revizyon** (New Revision) is not visible;
the server also rejects it with "Bu ürün ağacında zaten düzenlenebilir bir taslak revizyon var. Önce mevcut taslağı
yayınlayın ya da güncelleyin." (This BOM already has an editable draft revision. Release or update the existing draft
first.)
- In the BOM form, a new revision opens **empty**; enter the unchanged lines again as well. To change a component in
many BOMs at the same time, [BOM component management](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-bilesen-yonetimi) opens a new
revision by copying the latest released revision.
- If the Base Quantity is left empty, the **Revizyon kaydedilemedi** (Revision could not be saved) summary says
"Temel çıktı miktarı zorunlu." (The base output quantity is required.)
- Decimal quantities are entered in Turkish format (with a comma): `4,2`.
- The output card does not change in a new revision; for a different card, a new BOM is opened.
- A new revision is different for a routing: it opens prefilled with the operations of the highest-numbered revision
([Routings](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar)).
## Related
- [Bills of materials screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
- [Release a BOM revision](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama)
- [Engineering changes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri)
---
# Missing parts list
> Materials of released and in-production orders that cannot be covered from stock, in requirement date order, with expected supply.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/eksik-parca-listesi
Collects the material requirements of open orders that **cannot be covered from stock** in a single list. Stock is
allocated to orders **in requirement date order**: the order that starts earliest takes the stock first, and the
remaining shortage is written to the next order.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Eksik Parça Listesi (Production › Production Execution › Missing Parts List)
- **Screen route:** `/erp/manufacturing/missing-parts`
- **Required permission:** `erp-manufacturing-orders.view`

1. Requirement date
2. Missing = required − covered
3. Expected supply (purchase, sub-order)
4. Work center filter
| Column | Meaning |
|---|---|
| **İhtiyaç** (Requirement) | The requirement date; the list is allocated in this order. |
| **Üretim emri** (Production order) | Link to the order. |
| **Malzeme** (Material) | The component's code and name. |
| **Gereken** (Required) | The open (not yet consumed) quantity of the requirement. |
| **Karşılanan** (Covered) | The share allocated to this order from stock. |
| **Eksik** (Missing) | Required − covered. |
| **Birim** (Unit) | The unit of the requirement. |
| **Beklenen tedarik** (Expected supply) | Supply in transit (purchase order, sub-order) and its date; otherwise **Yok — talep açın** (None — open a requisition). If no unit conversion is defined, **Birim çevrimi tanımsız** (Unit conversion not defined). |
- Filters: **Ara** (Search) and **İş Merkezi** (Work Center). The list is calculated on the server and cached for a
short time; **Yenile** (Refresh) reads it again.
- If nothing is missing, the screen shows "Eksik malzeme yok — açık emirlerin bütün gereksinimleri stokla
karşılanıyor." (No missing material — all requirements of open orders are covered from stock.)
- The same information also appears in the order details: the **Malzeme** (Material) box ("1 kalem eksik" — 1 item
missing) and the **Kullanılabilirlik** (Availability) column of the **Malzeme Gereksinimleri** (Material
Requirements) tab ("Eksik 24,5 · Beklenen tedarik yok" — Missing 24.5 · No expected supply). If something is missing
when the order is released, a notification appears: "Emir yayınlandı — 1 kalem eksik: HAM-0031 (24,5 KG). Eksik
Parça Listesi" (Order released — 1 item missing: HAM-0031 (24.5 KG). Missing Parts List).
> **Example**
When **UE-2026-000003** (MAM-0006 Paslanmaz Depolama Tankı (stainless storage tank), 2.000 L) was released, 304.5 KG of
HAM-0031 304 sheet was required; stock was 280 KG → **24.5 KG missing**. The shortage is covered with a purchase
requisition or with **Malzeme Talebi** (Material Requisition) in the order details.
A shortage is a warning, not a block: the order is released; if stock is insufficient when consumption is posted, the
server rejects that line.
## Related
- [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
- [Material requirements](https://erpdocs.corexlogic.com/en/uretim/ekranlar/malzeme-ihtiyaclari)
- [Post a material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme)
---
# Release a BOM revision
> Release a draft BOM revision — valid from today or from the date of a change number; a released revision does not change.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Ürün Ağaçları › ağaç detayı › Yayınla (Production › Master Data › Bills of Materials › BOM detail › Release)
- **Screen route:** `/erp/manufacturing/boms/{id}`
- **Required permission:** `erp-manufacturing-boms.edit`
- **Prerequisites:**
- The BOM has a revision in **Taslak** (Draft) status.
- If it is to be valid from a future date, an **Etkin** (Active) change number has been opened ([Create an engineering change](https://erpdocs.corexlogic.com/en/uretim/islemler/muhendislik-degisikligi-olusturma)).
- If it is the BOM of a configurable item, the revision has been tested with **Yapılandırarak Dene** (Configure and Test) ([Configure and test](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme)).
Releasing makes a draft revision final. A released revision is a historical production definition: it cannot be
changed, cannot be deleted and does not return to draft.
## Steps
1. Open the BOM detail. Click **Yayınla (Rev. N)** (Release, Rev. N) in the header (the same command is also in the **İşlemler** (Actions) menu of the revision row and in the **Yayınla** (Release) button on the revision detail).

1. Release the draft
2. Copy engineering BOM to production
3. Revision effective today
4. Usage, alternative name, lot size
5. Revision valid-from date
2. If you leave the **Değişiklik numarası** (Change number) field empty, the revision is valid from today. If it is to be valid from a future day, select an active change number from the list.
3. Click **Revizyonu Yayınla** (Release Revision).

1. Change number — empty means valid from today
2. Open orders keep their revision
3. Release Revision
4. In the revisions table, check that the status is **Yayınlandı** (Released) and that **Yayın Tarihi** (Release Date) and **Geçerlilik** (Validity) are filled in; if it is valid today, the **Etkin** (Active) badge appears on the row.
**Result:** The revision becomes **Yayınlandı** (Released) and can never be changed again; from the validity day onwards, planning (MRP, planned orders) and new production orders use it. For a change, [open a new revision](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-revizyonu-acma).
## What you need to know
- **Existing production orders are not affected**: each order selects its own revision, and the material requirements
of a released order remain frozen. To use the new revision, the order is reopened.
- The **effective revision** is the highest-numbered revision whose validity has started on that day. A revision
released with a change number stays pending until the number's date; until then, the previous revision is effective.
MRP explodes a planned order with the BOM valid on its start day.
- Validity progresses in revision order. If the date of the selected number is earlier than that of the previous
revision, the release is rejected: "Revizyon N gg.aa.yyyy tarihinden geçerli olamaz — önceki revizyon M gg.aa.yyyy
tarihinden geçerli; geçerlilik revizyon sırasıyla ilerler." (Revision N cannot be valid from dd.mm.yyyy — the
previous revision M is valid from dd.mm.yyyy; validity progresses in revision order.)
- A locked number cannot be selected: "MDN-… kilitli — yeni yayında kullanılamaz." (MDN-… is locked — it cannot be used
in a new release.)
- On release, the BOM graph is checked; if a sub-BOM uses this card indirectly: "Bu revizyon yayınlanırsa ürün ağacı
grafında döngü oluşur — bir malzeme zinciri dolaylı olarak bu çıktı kartına geri dönüyor." (If this revision is
released, a cycle is created in the BOM graph — a material chain leads back indirectly to this output card.)
- If the window shows a 409 conflict message (someone else changed it at the same time, the card became inactive…),
refresh the page with **Ürün ağacını yeniden yükle** (Reload BOM) and try again.
- If an approved request is mandatory in Üretim Ayarları (Production Settings), the revision can be released only with
the number of an approved change request ([Engineering changes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri)).
- A routing revision is released the same way (**Rota revizyonu yayınlansın mı?** (Release the routing revision?)).
## Related
- [Bills of materials screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
- [Engineering changes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri)
- [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
---
# Downtime records
> Recording work center downtime — planned/unplanned reason, ongoing downtime, ending and cancelling; an input to OEE and capacity.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/durus-kayitlari
Records the time a work center is not working (breakdown, waiting for material, setup, planned maintenance…). Downtime
records feed the availability component of the **OEE Raporu** (OEE Report) and the capacity load. The reason for the
downtime is selected from the list of **downtime reasons** defined during setup; each reason is either **planned** or
**unplanned**.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Duruş Kayıtları (Production › Production Execution › Downtime Records)
- **Screen route:** `/erp/manufacturing/downtimes`
- **Required permission:** `erp-manufacturing-postings.view (liste) · .create (Duruş Kaydet, Duruşu Bitir)`, `erp-manufacturing-corrections.create (İptal Et)`

1. New downtime
2. Only ongoing downtimes
3. Duration — until end
## List
| Column | Meaning |
|---|---|
| **Duruş** (Downtime) | Downtime number (`DUR-yyyy-nnnnnn`). |
| **İş Merkezi** (Work Center) | The work center (and machine) that is down. |
| **Neden** (Reason) | Downtime reason. |
| **Başlangıç** · **Bitiş** (Start · End) | If the end is blank, **Sürüyor** (Ongoing) is shown. |
| **Süre** (Duration) | From start to end. |
| **Emir** (Order) | If the downtime is linked to an order/operation, the order number and operation. |
Filters: **İş Merkezi** (Work Center), **Yalnız süren duruşlar** (Ongoing downtimes only), **Duruş tarihi** (Downtime
date; start–end). The row's **İşlemler** (Actions) menu offers, for an ongoing downtime, **Duruşu Bitir** (End
Downtime; end time required) and **İptal Et** (Cancel; reason required; a cancelled downtime is not included in OEE or
capacity load).
## Record Downtime

1. Work center — required
2. Reason — planned / unplanned
3. Empty end = ongoing
4. Save
| Field | Rule |
|---|---|
| **İş merkezi** (Work center) | Required; active work centers. |
| **Neden** (Reason) | Required; the list shows "ad · planlı" (name · planned) or "ad · plansız" (name · unplanned). |
| **Başlangıç** (Start) | Required; cannot be in the future. |
| **Bitiş** (End) | If left blank, the downtime is opened as "sürüyor" (ongoing) and later closed with **Duruşu Bitir** (End Downtime). The end must be after the start and cannot be in the future; a downtime can last at most 31 days. |
| **Not** (Note) | At most 500 characters. |
> **Downtime reasons first**
Reasons are defined on the **Yönetim › Özelleştirme › Üretim › Duruş Nedenleri** (Administration › Customization ›
Production › Downtime Reasons) screen. If the list is empty, no **Neden** (Reason) can be selected and the downtime
cannot be saved. No reasons are defined in the demo installation; for this reason there are no sample records.
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| Duruş ileri tarihli başlayamaz. · Duruş ileri tarihte bitemez. | A downtime cannot start in the future. · A downtime cannot end in the future. | The date is after today. |
| Duruşun bitişi başlangıcından sonra olmalı. | The end of the downtime must be after its start. | End ≤ start. |
| Bir duruş en çok 31 gün sürebilir — tarihi kontrol edin. | A downtime can last at most 31 days — check the date. | The duration is too long. |
| '\{kod\}' duruş nedeni pasif. | Downtime reason '\{kod\}' is inactive. | The reason has been deactivated. |
| DUR-… zaten bitirilmiş. · DUR-… zaten iptal edilmiş. | DUR-… has already been ended. · DUR-… has already been cancelled. | The record is closed. |
| İptal gerekçesi zorunlu. | A cancellation reason is required. | The reason is blank. |
## Related
- [Analytics](https://erpdocs.corexlogic.com/en/uretim/ekranlar/analitik) — OEE Report
- [Capacity planning](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama)
---
# Define a production version
> Use a production version to determine with which BOM alternative and routing, and for which lot size and date, a card is produced.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-versiyonu-tanimlama
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Mühendisliği › Üretim Versiyonları › Üretim Versiyonu Oluştur (Production › Production Engineering › Production Versions › Create Production Version)
- **Screen route:** `/erp/manufacturing/production-versions`
- **Required permission:** `erp-manufacturing-boms.create`
- **Prerequisites:**
- The card has at least one BOM with **Üretim** (Production) usage (an engineering BOM cannot be selected).
- If a routing will be used, the card's routing is defined.
A version fixes the card's production method (BOM + routing) with a lot size and date. When the same card is produced
on different lines in different quantities, one version is opened for each line.
## Steps
1. Open the **Üretim › Üretim Mühendisliği › Üretim Versiyonları** (Production › Production Engineering › Production Versions) screen and click **Üretim Versiyonu Oluştur** (Create Production Version).
2. Open the **Çıktı kartı** (Output card) picker, type the code and select the card.
3. Enter the **Versiyon** (Version) number and the **Ad** (Name). If several versions match, the lowest number is selected.
4. Select the BOM alternative from the **Ürün ağacı** (BOM) list.
5. Select the routing alternative from the **Rota** (Routing) list or leave **Rota yok — emir operasyonsuz** (No routing — order without operations).

1. Version — smallest number wins
2. Production BOM alternative
3. Routing — empty means no operations
4. Lot-size range
5. Repetitive — production without orders
6. If necessary, enter the **Parti büyüklüğü** (Lot size) (minimum – maximum); the **Geçerlilik** (Validity) start is today, an empty end = unlimited. If order-less repetitive manufacturing will be used, check **Seri üretim** (Repetitive manufacturing).
7. Click **Oluştur** (Create).

1. New production version
2. BOM and routing alternative
3. Validity range
4. Status — Open or Locked
**Result:** The version is saved in **Açık** (Open) status. From then on, the card's planning, explosion and production order take the BOM and routing from the matching version. In the demo environment, version 1 for MAM-0010 was created with these steps.
## What you need to know
- If a card has even **one** version, the selection is made only from versions: if there is no open version that fits
the quantity and date, no BOM is selected and the order cannot be opened. Define versions so that they cover the
entire quantity and date range.
- A version is not deleted. To take it out of use, check **Kilitli** (Locked) in the **İşlemler › Düzenle** (Actions ›
Edit) window of the row; locking the only version of a card makes the card's BOM impossible to find.
- A version flagged **Seri üretim** (Repetitive manufacturing) is produced without orders: the Repetitive
Manufacturing Confirmation explodes the BOM on the confirmation day, the components are deducted by backflush, and
open planned orders are reduced.
- The version number is unique per card: "'MAM-0010' için 1 numaralı versiyon zaten var." (Version 1 already exists for
'MAM-0010'.)
## Related
- [Production versions screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari)
- [Bills of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
- [Routings](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar)
---
# Repetitive manufacturing
> Repetitive manufacturing without orders — Repetitive Manufacturing Confirmations, Enter Repetitive Manufacturing Confirmation and Product Cost Collectors; goods receipt and backflush in a single posting.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/seri-uretim
Repetitive manufacturing is for lines on which the same product is produced continuously and repeatedly (filling,
packing, assembly line). No production order is opened for each lot: the produced quantity is **confirmed**; the system
explodes the BOM valid on that day for the confirmed quantity, **receives the finished product into stock** and
**issues the components with the backflush rule** — in a single posting. Open planned orders are reduced by the
confirmed quantity.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Seri Üretim › Seri Üretim Teyitleri · Seri Üretim Teyidi Gir · Ürün Maliyet Toplayıcıları (Production › Repetitive Manufacturing › Repetitive Manufacturing Confirmations · Enter Repetitive Manufacturing Confirmation · Product Cost Collectors)
- **Screen route:** `/erp/manufacturing/repetitive`
- **Required permission:** `erp-manufacturing-repetitive.view (liste) · .create (teyit girme)`, `erp-manufacturing-corrections.create (teyit iptali)`, `erp-inventory-costs.view (Ürün Maliyet Toplayıcıları ve tutar kolonları)`
> **Prerequisite — repetitive manufacturing version**
A confirmation is posted to a **production version** (BOM alternative + routing). On the **Üretim › Üretim Mühendisliği
› Üretim Versiyonları** (Production › Production Engineering › Production Versions) screen, the version must have
**Seri üretim** (Repetitive manufacturing) ticked and must not be locked. If no version is ticked, the list shows
"Henüz seri üretim teyidi yok. Önce üretim versiyonunu "Seri üretim" işaretleyin, sonra "Teyit Gir"." (No repetitive
manufacturing confirmations yet. First tick "Seri üretim" on the production version, then "Teyit Gir".) Details:
[Production versions](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari).
## Repetitive Manufacturing Confirmations

1. New repetitive confirmation
2. Product cost collectors
3. Planned order quantity reduced
4. Cancelled ones
| Column | Meaning |
|---|---|
| **Teyit** (Confirmation) | Confirmation number and date. |
| **Mamul · versiyon** (Finished product · version) | Product and production version (`KOD · ad · V1`). |
| **Miktar** (Quantity) | The confirmed quantity (base unit). |
| **Planlı emirden düşülen** (Deducted from planned orders) | The open planned order quantity reduced by the confirmation. |
| **Birim maliyet** (Unit cost) | Unit cost from the material + activity value (with the cost view permission). |
| **Durum** (Status) | **Kaydedildi** (Posted) or **İptal edildi** (Cancelled). |
| **Teyit eden** (Confirmed by) | The user who entered the record. |
- Filters: **Başlangıç** · **Bitiş** (Start · End), **İptal edilenleri göster** (Show cancelled); when opened from a
version, **Tek versiyonun teyitleri** (Confirmations of a single version).
- A row opens the confirmation's lines in a window: **Mamul girişi** (Finished product receipt) and **Geri sarf**
(Backflush) sections, quantity and (with permission) value.
- Cancellation is done from the row, with a reason (**Teyidi İptal Et** (Cancel Confirmation), **Gerekçe** (Reason)
required). Cancellation reverses the receipt and the consumption.
- The **Maliyet Toplayıcılar** (Cost Collectors) link opens Product Cost Collectors.
## Enter Repetitive Manufacturing Confirmation

1. Production version flagged repetitive
2. Quantity — in the base unit
3. Receiving warehouse
4. Warehouse to issue components from
5. Save Confirmation — receipt and issue together
| Field | Rule |
|---|---|
| **Seri üretim versiyonu** (Repetitive manufacturing version) | Only versions ticked for repetitive manufacturing and not locked. |
| **Teyit tarihi** (Confirmation date) | Cannot be in the future; cannot be posted to a closed posting period. The BOM is exploded with the revision valid on this day. |
| **Miktar (temel birim)** (Quantity, base unit) | Greater than zero, at most 6 decimals. |
| **Mamul girişi — Depo** · **Lokasyon** (Finished product receipt — Warehouse · Storage location) | Where the finished product is received; only your own warehouses. |
| **Lot** · **Üretim tarihi** · **Son kullanma** (Batch · Production date · Expiry) | For a batch-managed finished product, the batch is required (rule enforced on the server). |
| **Geri sarf — Sarf deposu** (Backflush — Consumption warehouse) | The warehouse from which components are issued; blank = **Mamulün giriş deposu** (the finished product's receiving warehouse). |
| **Stok durumu** (Stock status) | Blank = default status. |
| **Not** (Note) | At most 500 characters. |
**Teyidi Kaydet** (Save Confirmation) calculates the explosion, the consumption breakdown and the value on the server;
the form does not preview them. The component breakdown follows the
[backflush rules](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar) (batch FEFO, default storage location in a warehouse with
storage locations, serial-number-managed components are not backflushed).
## Product Cost Collectors
Sums up the repetitive manufacturing confirmations in the period per **finished product · version**: number of
**Teyit** (Confirmations), **Miktar** (Quantity), **Malzeme** (Material), **Faaliyet** (Activity) and **Birim
maliyet** (Unit cost). A row with an unknown value shows **Değer bilinmiyor** (Value unknown) (zero is not shown). The
screen requires `erp-manufacturing-repetitive.view` **and** `erp-inventory-costs.view`. Accounting entries are outside
the scope of this document.
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| Üretim versiyonu seri üretim için işaretli değil — emirle üretin. | The production version is not flagged for repetitive manufacturing — produce with an order. | The version is not ticked. |
| Versiyonun kartı üretilebilir değil. | The version's item is not producible. | "Üretilir" (Produced) is off on the item. |
| Versiyonun ağacı \{gün\} gününde patlatılamadı (…) — versiyonun geçerliliğini ve ağacın yayınını kontrol edin. | The version's BOM could not be exploded on \{gün\} (…) — check the version's validity and the BOM's release. | There is no published revision valid on that day. |
| Teyit ileri tarihli olamaz. | A confirmation cannot be dated in the future. | The date is after today. |
| Teyit miktarı sıfırdan büyük ve en çok 6 ondalık olmalı. | The confirmation quantity must be greater than zero and have at most 6 decimals. | Invalid quantity. |
| Stok durumu seçilemedi — varsayılan durum tanımlı değil. | No stock status could be selected — no default status is defined. | No default stock status in the setup. |
| İptal gerekçesi zorunlu. · \{no\} zaten iptal edilmiş. | A cancellation reason is required. · \{no\} has already been cancelled. | Cancellation rules. |
## Related
- [Enter a repetitive manufacturing confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/seri-uretim-teyidi-girme)
- [Production versions](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari)
- [Planned orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-emirler)
---
# Create an engineering change
> Open a change number to make BOM and routing revisions valid from a future date — directly or through an approved change request.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/muhendislik-degisikligi-olusturma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Mühendislik Değişiklikleri › Değişiklik Numarası Oluştur (Production › Master Data › Engineering Changes › Create Change Number)
- **Screen route:** `/erp/manufacturing/engineering-changes/new`
- **Required permission:** `erp-manufacturing-engineering-changes.create`
- **Prerequisites:**
- The day from which the change will be valid is known.
- If an approved request is mandatory in the installation, the number is not opened directly but through the approval of a change request (the second path below).
A change number makes changes in several BOMs and routings valid **from the same day**: the revisions are released in
advance and become effective together when the number's date arrives.
## Steps
1. In the **Üretim › Ana Veriler › Mühendislik Değişiklikleri** (Production › Master Data › Engineering Changes) list, click **Değişiklik Numarası Oluştur** (Create Change Number).

1. New change number
2. Valid-from date of the number
3. Revisions released with it
4. Active or Locked
2. Enter the **Başlık** (Title) and **Değişiklik nedeni** (Reason for change) (both are required).
3. Select the **Geçerlilik başlangıcı** (Valid from). Revisions released with this number become valid from this day; until then, the previous revision remains effective.

1. Title
2. Reason — required
3. Valid from — revisions take effect that day
4. Save — number assigned on save
4. Click **Değişiklik Numarasını Kaydet** (Save Change Number).
5. When releasing the revision, select this number in the **Değişiklik numarası** (Change number) field of the release window.
**Result:** The number is saved in **Etkin** (Active) status (e.g. **MDN-2026-000001**). The **Nesne Listesi — Ürün Ağacı Revizyonları** (Object List — BOM Revisions) in its detail shows the revisions released with this number; when it will no longer be used, click **Kilitle** (Lock).
## With an approved change request (second path)
If the reason for and impact of the change must go through approval, the request opens the number:
1. In the **Üretim › Ana Veriler › Değişiklik Talepleri** (Production › Master Data › Change Requests) list, click
**Değişiklik Talebi Aç** (Open Change Request).
2. Enter the **Başlık** (Title), **Neden** (Reason), **Etki notu** (Impact note) and **Önerilen geçerlilik** (Proposed
validity).
3. In the **Etkilenen Nesneler** (Affected Objects) section, select the object type (**Ürün ağacı** (BOM), **Rota**
(Routing), **Ürün** (Item)), add at least one record with **Nesne ekle** (Add object), and click **Taslağı Kaydet**
(Save Draft). The request becomes **Taslak** (Draft) with the number `DTL-yyyy-nnnnnn`.
4. On the request detail, click **Gönder** (Submit). If an approval template is defined, the request becomes **Onay
Bekliyor** (Awaiting Approval) and the approver chooses **Onayla** (Approve) or **Reddet** (Reject); if not, the
request becomes **Onaylandı** (Approved) immediately.
5. The `MDN-` number that was opened appears in the **Değişiklik numarası** (Change number) field of the approved
request; its validity is the proposed validity day. Release the revision with this number.

1. Submit — for approval or approved directly
2. Edit — draft only
3. Cancel
4. Change number is opened on approval
In the demo environment, DTL-2026-000001 was submitted and, because there is no approval template, it was approved
directly and opened MDN-2026-000002; DTL-2026-000002 remains as a draft.
## What you need to know
- The date of a number that has taken effect and is in use cannot be changed; a new number is opened. Shifting the
date also shifts the revisions released with the number, and it cannot be moved into the past.
- A **Kilitli** (Locked) number cannot be selected for a new release; releases made with this number remain valid.
**Kilidi Kaldır** (Unlock) makes the number selectable again.
- You cannot approve a request you opened yourself; a rejection reason is mandatory, and a rejected request returns to
draft.
## Related
- [Engineering changes screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri)
- [Release a BOM revision](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama)
---
# Define a configuration characteristic
> Make an item configurable and add the characteristics to be asked in sales — type, mandatory setting, allowed values, range and default.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirma-ozelligi-tanimlama
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Ana Veriler › Ürünler › Ürün Ana Verileri › ürün detayı › Yapılandırma (Master Data › Items › Item Master Data › item detail › Configuration)
- **Screen route:** `/erp/catalog/products/{id}?tab=yapilandirma`
- **Required permission:** `erp-catalog-items.edit`
- **Prerequisites:**
- The item card is open and its type is a produced item (Mamul (Finished product) or Yarı Mamul (Semi-finished product)).
- The characteristic to be used exists in the **Özellikler** (Characteristics) dictionary or will be created in the window; its code consists of letters, digits and underscores (rules read it by this code).
A configuration characteristic is an option of a configurable item that is asked of the customer: length, color,
power, series. The characteristic type determines how it is read in a rule (option code as text, number as number,
Yes/No): [Expression language](https://erpdocs.corexlogic.com/en/uretim/kosullar#ifade-dili).
## Steps
1. Open the item in **Ürün Ana Verileri** (Item Master Data) and go to the **Yapılandırma** (Configuration) tab.
2. If the card is standard, click **Yapılandırılabilir Yap** (Make Configurable) and confirm the question "Ürün yapılandırılabilir yapılsın mı?" (Make the item configurable?) with **Yapılandırılabilir Yap**.
3. Click **Özellik Ekle** (Add Characteristic). In the **Özellik** (Characteristic) field, search for and select the characteristic from the dictionary; if it does not exist, enter the **Ad** (Name), **Kod** (Code) and type of the new characteristic.
4. If the characteristic is to be entered on every order, turn on **Zorunlu** (Mandatory).
5. For a characteristic with options, if only some values can be selected for this item, turn on **Değerleri sınırla** (Restrict values) and check the valid values. For a numeric characteristic, fill in the **En az** (Minimum), **En çok** (Maximum) and **Adım** (Step) fields of the **İzinli aralık** (Allowed range).
6. If necessary, select a **Varsayılan değer** (Default value) and click **Ekle** (Add).

1. Add Characteristic
2. Characteristic with a precondition
3. Required
4. Default value
5. Object dependency — constraint, procedure, table
**Result:** The characteristic is asked in the configurator of the sales line and in the BOM's Configure and Test window; rules read it by its code. Next step: if necessary, a [precondition](https://erpdocs.corexlogic.com/en/uretim/islemler/on-kosul-tanimlama), then [line rules](https://erpdocs.corexlogic.com/en/uretim/islemler/satir-kurali-tanimlama).
## What you need to know
- In sales, the question order is the order in the table; it is changed with the up/down arrows on the row.
- An optional characteristic can be left empty; in rules, an empty value is **unknown**. Write a condition that reads
it accordingly: [Unknown value](https://erpdocs.corexlogic.com/en/uretim/kosullar#bilinmeyen-deger).
- An out-of-range value prevents the sales line from being saved:
`'Boy' değeri izinli aralıkta değil (2–30 m, 0,5 m adım).` (The value of 'Boy' (Length) is not in the allowed range
(2–30 m, 0.5 m step).)
- On an item that has variants, a new characteristic can be added only as optional.
- To load characteristics in bulk, use the **Yapılandırma** (Configuration) sheet of the Product Import workbook
(`Zorunlu`, `IzinliDegerler`, `EnAz`, `EnCok`, `Adim`, `Varsayilan`, `OnKosul`).
## Related
- [Configurable items](https://erpdocs.corexlogic.com/en/uretim/ekranlar/yapilandirilabilir-urunler)
- [Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar)
---
# Capacity planning
> Work center load and available time, dispatching an operation to a day, and a finite scheduling proposal based on capacity.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama
Capacity planning shows how heavily work centers are loaded and arranges the day on which operations are performed.
There are three screens:
| Screen | Question | Does it write? |
|---|---|---|
| **Kapasite Yükü** (Capacity Load) | How loaded is each work center on each day/week? | No |
| **Kapasite Planlama Tablosu** (Capacity Planning Table) | Which day should I move this work center's operations to? | Yes — **Yerleştir** / **Kaldır** (Dispatch / Remove) |
| **Sonlu Çizelgeleme** (Finite Scheduling) | How do I sequence all open operations according to capacity? | The proposal does not write; **Öneriyi Uygula** (Apply Proposal) writes |
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Kapasite Planlama › Kapasite Yükü · Kapasite Planlama Tablosu · Sonlu Çizelgeleme (Production › Capacity Planning › Capacity Load · Capacity Planning Table · Finite Scheduling)
- **Screen route:** `/erp/manufacturing/capacity`
- **Required permission:** `erp-manufacturing-capacity.view (görme, sonlu çizelge önerisi)`, `erp-manufacturing-capacity.edit (Yerleştir, Kaldır, Öneriyi Uygula)`
Capacity is defined on the work center: shift hours, break, utilization percentage, individual capacity (number of
machines) and working days; the day rules come from the plant's factory calendar. Details:
[Work centers](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri).
## Capacity Load

1. Bucket — Day or Week
2. Include planned orders load
3. Only work centers I am responsible for
4. Required / available hours and utilization %
Rows are work centers, columns are day or week buckets. A cell shows **required / available hours** and the
utilization percentage; an overloaded cell is marked **Aşırı yük** (Overload). Hovering over the cell shows the
breakdown "Üretim emri … · planlı emir …" (Production order … · planned order …).
- **Required:** the remaining load of open production order operations + (if **Planlı emirler dâhil** (Include planned
orders) is on) the load of open planned orders scheduled from the routing. Operation confirmations reduce the load.
- **Available:** the work center's daily capacity × working days. A work center without defined capacity shows
"kapasite tanımsız" (capacity not defined); only the required hours are shown.
- **Filters:** **Başlangıç** (Start), **Bitiş** (End) (default today … +27 days; the window is at most 366 days;
"Bitiş başlangıçtan önce olamaz." — The end cannot be before the start.), **Kova** (Bucket; **Gün · Hafta**, Day ·
Week), **İş merkezi** (Work center), **Planlı emirler dâhil** (Include planned orders), **Sorumluluk**
(Responsibility; **Sorumlu olduğum iş merkezleri**, Work centers I am responsible for).
- A parent work center row shows "Alt iş merkezleriyle toplam" (Total with child work centers); under a work center
with machines, machine rows and a "tezgâha atanmamış" (not assigned to a machine) note appear.
- From a work center row, the **Planlama Tablosu** (Planning Table) opens with the same period.
## Capacity Planning Table

1. Select a work center
2. Manually dispatched marker
3. Dispatch — choose the start day
4. Remove — back to base date
When a **İş merkezi** (Work center) is selected, the operations in the window are listed: **Kaynak** (Source; Üretim
emri / Planlı emir, Production order / Planned order) · **Belge** (Document) · **Operasyon** (Operation) · **Kart**
(Item) · **Başlangıç** (Start) · **Bitiş** (End) · **Kalan yük** (Remaining load). The total load of the window and the
daily capacity are shown at the top; if no capacity is defined, "Kapasite tanımsız — 8 saatlik hafta içi varsayılır"
(Capacity not defined — 8-hour weekdays are assumed).
- **Yerleştir** (Dispatch; only on a production order row, `capacity.edit`): the **Operasyonu Yerleştir** (Dispatch
Operation) window. Select the **Başlangıç günü** (Start day) and, for a work center with machines, optionally the
**Tezgâh** (Machine). "Operasyon seçilen günden başlar, bitişi iş merkezinin kapasitesinden hesaplanır; sonraki elle
yerleştirilmemiş operasyonlar kayar." (The operation starts on the selected day; its end is calculated from the work
center's capacity; subsequent operations that were not dispatched manually shift.)
- **Kaldır** (Remove; on a manually dispatched row): **Yerleştirmeyi Kaldır** (Remove Dispatch) — "Operasyon emrin
temel tarihinden yeniden çizelgelenir; öteki elle yerleştirilmiş operasyonlar yerinde kalır." (The operation is
rescheduled from the order's basic date; other manually dispatched operations stay in place.)
- A manually dispatched operation carries the **Elle yerleştirildi** (Manually dispatched) flag; the **Operasyonlar**
(Operations) tab of the order details shows the same trace.

1. Start day
2. Dispatch
Step by step: [Dispatch an operation to capacity](https://erpdocs.corexlogic.com/en/uretim/islemler/kapasite-seviyelendirme).
## Finite Scheduling

1. Create Proposal — writes nothing
2. Apply Proposal — dispatches operations
3. Proposed finish and delay
4. Gantt: one lane per work center
Open order operations are sequenced according to work center capacity. If **Başlangıç** (Start) is blank, today is
assumed.
- **Öneri Oluştur** (Create Proposal; `capacity.view`) draws the solver's proposal; it does not write documents. The
solver is time-limited and gives the same proposal for the same data. The result quality is **En iyi plan** (Optimal
plan) or **Süre sınırında bulunan iyi plan** (Good plan found within the time limit).
- **Emirler** (Orders) table: **Emir** (Order) · **Planlanan bitiş** (Planned end) · **Önerilen bitiş** (Proposed
end) · **Gecikme** (Delay; **Zamanında** (On time) or days).
- **Gantt:** one lane per work center (per machine for a work center with machines); a gray bar is a manually
dispatched operation — the solver leaves it in place.
- **Operasyonlar** (Operations) table: **İş merkezi** (Work center) · **Tezgâh** (Machine) · **Emir** (Order) ·
operation · **Kalan yük** (Remaining load) · **Planlanan** (Planned) · **Önerilen** (Proposed).
- **Öneriyi Uygula** (Apply Proposal; `capacity.edit`) dispatches all operations of the proposal; applied operations
count as manually dispatched. Result: "N emrin M operasyonu yerleştirildi." (M operations of N orders dispatched.) If
the orders changed in the meantime: "Çizelge uygulanamadı — emirler bu arada değiştiyse öneriyi yenileyin." (The
schedule could not be applied — if the orders changed in the meantime, refresh the proposal.)
- If there are no operations to schedule: "Çizelgelenecek açık operasyon yok." (No open operations to schedule.); if
the solver finds no plan: "Çözücü süre sınırında bir plan bulamadı — kapasiteyi ya da açık emirleri gözden geçirin."
(The solver could not find a plan within the time limit — review the capacity or the open orders.)
## Related
- [Dispatch an operation to capacity](https://erpdocs.corexlogic.com/en/uretim/islemler/kapasite-seviyelendirme)
- [Work centers](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri)
- [Production operations](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-operasyonlari)
- [MRP run — rough-cut load of the simulation](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu)
---
# Define a configuration precondition
> Make a characteristic be asked only when another characteristic has a specific value — for example, Cabin Width and Length when the cabin is Custom Size.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/on-kosul-tanimlama
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Ana Veriler › Ürünler › Ürün Ana Verileri › ürün detayı › Yapılandırma (Master Data › Items › Item Master Data › item detail › Configuration)
- **Screen route:** `/erp/catalog/products/{id}?tab=yapilandirma`
- **Required permission:** `erp-catalog-items.edit`
- **Prerequisites:**
- The item is configurable; both the condition characteristic (Seçim (Selection) or Evet/Hayır (Yes/No)) and the characteristic to be asked are configuration characteristics of the card.
A precondition answers the question "when is this characteristic asked?". Example: if the cabin has the standard
size, width and length are not asked; when **Özel Ölçü** (Custom Size) is selected, **Kabin Eni** (Cabin Width) and
**Kabin Boyu** (Cabin Length) are asked and become mandatory.
## Steps
1. On the item's **Yapılandırma** (Configuration) tab, click **İşlemler** (Actions) on the row of the characteristic to be asked (e.g. **Kabin Eni** (Cabin Width)).
2. Select **Koşul** (Condition) from the menu.
3. Check the value for which the characteristic is to be asked (e.g. **Özel Ölçü (En x Boy)** (Custom Size, Width x Length) under **Kabin** (Cabin)). If several values of the same characteristic are checked, one of them is enough; if values of different characteristics are checked, all are required together.

1. Condition value — Cabinet Custom Size
2. Readable form of the condition
3. Remove Condition — always asked
4. Save
4. Click **Kaydet** (Save). Set up the same condition for the other dependent characteristics as well (e.g. **Kabin Boyu** (Cabin Length)).
**Result:** The characteristic is asked on the sales line and in Configure and Test only when the condition is met; a characteristic that is not asked remains empty and its mandatory setting is not applied. Test the rules with [Configure and Test](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme).

1. Condition characteristic — Custom Size selected
2. Characteristics shown by the precondition
3. Required, asked and empty — the line cannot be saved
4. Condition reads a missing value — line does not come
## What you need to know
- The condition characteristic must be **Seçim** (Selection) or **Evet/Hayır** (Yes/No):
`'…' koşul olamaz — yalnız seçim ve Evet/Hayır özellikleri koşul olur.` ('…' cannot be a condition — only selection
and Yes/No characteristics can be conditions.)
- A characteristic cannot be its own condition (`Özellik kendisine koşul olamaz.` — A characteristic cannot be a
condition for itself.); an indirect loop cannot be created
(`Bu koşul döngü kurar: koşul özelliği dolaylı olarak bu özelliğe bağlı.` — This condition creates a loop: the
condition characteristic depends indirectly on this characteristic.).
- On a restricted characteristic, the condition value must be allowed:
`'…' '…' özelliğinin izinli değerlerinde değil.` ('…' is not among the allowed values of characteristic '…'.)
- A characteristic that has a value in an existing variant cannot be hidden:
`'…' varyantı bu koşulla geçersiz kalır: …` (Variant '…' becomes invalid with this condition: …)
- **Koşulu Kaldır** (Remove Condition) makes the characteristic always asked again.
- If a value is given to a characteristic that is not asked, the sales line is rejected:
`'Kabin Eni' yalnız Kabin: Özel Ölçü (En x Boy) olduğunda girilir.` ('Kabin Eni' is entered only when Kabin is Özel
Ölçü (En x Boy).) If a mandatory characteristic that is asked is empty:
`'Kabin Eni' özelliğinin değeri girilmemiş.` (No value has been entered for characteristic 'Kabin Eni'.)
- A characteristic that is not asked is **unknown** in BOM and routing rules; protect a formula that reads it with
`EGER`: [Example 12](https://erpdocs.corexlogic.com/en/uretim/kosullar#ornek-12).
- In the import workbook, the **OnKosul** column: `KABIN = OZEL_OLCU`; values of the same characteristic are separated
with `/`, different characteristics with `;`.
## Related
- [Conditions and formulas — precondition](https://erpdocs.corexlogic.com/en/uretim/kosullar#on-kosul)
- [Configurable items](https://erpdocs.corexlogic.com/en/uretim/ekranlar/yapilandirilabilir-urunler)
---
# Material requirements
> Net requirements without a time axis and a min–max proposal — per item and per warehouse; covering a shortage with a requisition or a production order.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/malzeme-ihtiyaclari
**Malzeme İhtiyaçları** (Material Requirements) summarizes the **current** situation of each item in a single row: how
much demand there is, how much is on hand and in transit, how much is short, and how much should be ordered according
to the item's ordering rule. Unlike MRP, it has **no time axis** and does not write documents; to cover a shortage it
opens the requisition or production order form with the item's code.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Planlama › Malzeme İhtiyaçları (Production › Production Planning › Material Requirements)
- **Screen route:** `/erp/demand/material-requirements`
- **Required permission:** `erp-demand-material-requirements.view (görme)`, `erp-procurement-requisitions.create (Satınalma Talebi Aç) · erp-manufacturing-orders.create (Üretim Emri Aç)`
| | Material Requirements | [MRP Koşusu](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu) (MRP Run) |
|---|---|---|
| Time | None — current position | Day by day |
| Forecast (planned independent requirement) | Not counted | Counted |
| BOM explosion | None | Yes (dependent requirement) |
| Document | Does not write; opens the form | The run writes requisitions and planned orders |
## By Item

1. By item / By warehouse
2. Only items with a shortage
3. Shortage = demand − (on hand + in transit)
4. Proposal — when below minimum
5. Availability — if ordered today
The list is a calculation at most 1 minute old; **Listeyi yenile** (Refresh list) recalculates it.
| Column | Meaning |
|---|---|
| **Malzeme** (Material) | The item. For a discontinued item, "Kesildi → HALEF" (Discontinued → SUCCESSOR) or "Kesildi — halef yok" (Discontinued — no successor) and the quantity transferred. |
| **Talep** (Demand) | Production requirements + sales order balance; the sources are in the **Talep** (Demand) table of the details. |
| **Eldeki** (On Hand) | Stock; allocated quantity is not counted. |
| **Yoldaki** (In Transit) | Open purchasing + open production output. |
| **Açık** (Shortage) | Demand − (on hand + in transit). |
| **Öneri** (Proposal) | If the stock position is below the minimum, the quantity that brings it up to the maximum (to the minimum if there is no maximum). |
| **Sipariş** (Order) | The proposal or shortage rounded with the item's ordering rule (minimum order, multiple). |
| **Temin** (Availability) | The availability date if ordered today (today + lead time). |
| **Birim** (Unit) | The item's base unit. If there is a document whose unit cannot be converted, a warning: the totals are incomplete. |
**Filters:** **Ara** (Search), **Yalnız açığı olanlar** (Only with shortage; hides those with zero shortage),
**Minimumun altındakiler** (Below minimum; only those with an order proposal), **Benim ürünlerim** (My products; I am
the MRP controller). If there are no items to calculate, the screen shows "Açık belge ve stok seviyesi tanımlı kart yok
— hesaplanacak bir ihtiyaç bulunmuyor." (No items with open documents or defined stock levels — there are no
requirements to calculate.)
## Product Requirement Details

1. Stock position = on hand + in transit − demand
2. Order quantity — by the item order rule
3. Open Requisition — opens the form with the quantity
4. Warehouse breakdown
Clicking a row opens the details:
- **Talep · Eldeki · Yoldaki · Açık** (Demand · On Hand · In Transit · Shortage) tiles (the allocated quantity is shown
separately).
- **Stok pozisyonu** (Stock position; on hand + in transit − demand), **Minimum / Maksimum** (Minimum / Maximum),
**Min–maks önerisi** (Min–max proposal; "Pozisyon minimumun altında — maksimuma tamamlar" — The position is below the
minimum — tops up to the maximum).
- **Sipariş miktarı** (Order quantity), **Minimum sipariş / katsayı** (Minimum order / multiple), **Tedarik süresi**
(Lead time), **Temin tarihi** (Availability date).
- **Eksiği Kapat** (Cover Shortage; if there is a shortage) or **Stoğu Tamamla** (Top Up Stock; only if there is a
min–max proposal): **Satınalma Talebi Aç** (Open Purchase Requisition) for a purchasable item, **Üretim Emri Aç** (Open
Production Order) for a producible item. The button opens the form with the item's code and the proposed quantity;
the document is not created here, and you set the quantity on the form. If the item is flagged as neither purchasable
nor producible, the screen shows "Kart ne satın alınabilir ne üretilebilir işaretli; önce kartın kullanım alanları
düzeltilmeli." (The item is flagged as neither purchasable nor producible; correct the item's usage settings first.)
- **Depo Kırılımı** (Warehouse Breakdown): **Depo** (Warehouse) · **Eldeki** (On Hand) · **Tahsisli** (Allocated) ·
**Serbest** (Unrestricted) · **Min / Maks** · **Öneri** (Proposal) · **Lokasyon** (Storage Location). If no warehouse
minimum is defined, "Planlanmıyor" (Not planned). If other warehouses have enough unrestricted stock, a transfer
proposal note.
- **Talep** (Demand) and **Arz** (Supply) source tables: **Kaynak** (Source) · **Belge** (Document) · **Karşı taraf**
(Counterparty) · **Miktar** (Quantity) · **Tarih** (Date).
## By Warehouse
The **Depo Bazında** (By Warehouse) tab compares the unrestricted stock (on hand − allocated) of each product ×
warehouse with the warehouse minimum: **Malzeme** (Material) · **Depo** (Warehouse) · **Serbest** (Unrestricted) ·
**Min / Maks** · **Öneri** (Proposal) · **Transfer** (incoming / outgoing) · **Öteki Depolarda** (In Other Warehouses) ·
**Lokasyon** (Storage Location) · **Birim** (Unit). Filters **Tesis** (Plant), **Depo** (Warehouse) and **Minimumun
altındakiler** (Below minimum). The warehouse minimum is defined in **Depo Verileri** (Warehouse Data) in the Stock view
of the product details; if none is defined, the list says "Depo minimumu tanımlı ürün yok …" (No products with a
defined warehouse minimum …).
## Related
- [MRP run](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu)
- [Planned independent requirements](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-bagimsiz-ihtiyaclar)
- [Create a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emri-olusturma)
---
# Add an object dependency (constraint and calculated characteristic)
> On a configurable item, add a constraint that blocks a disallowed combination and a procedure that calculates the value of a characteristic with a formula.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/nesne-bagimliligi-ekleme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Ana Veriler › Ürünler › Ürün Ana Verileri › ürün detayı › Yapılandırma › Nesne Bağımlılıkları (Master Data › Items › Item Master Data › item detail › Configuration › Object Dependencies)
- **Screen route:** `/erp/catalog/products/{id}?tab=yapilandirma`
- **Required permission:** `erp-catalog-items.edit`
- **Prerequisites:**
- The item is configurable; the characteristic that will be the procedure's target is a configuration characteristic of the card (if not, use **Yeni özellik oluştur** (Create new characteristic) in the window).
Object dependencies are the configuration rules of the item: which combination cannot be sold (constraint), which
value is calculated (procedure), and which combinations are allowed in a table (table constraint). Language:
[Expression language](https://erpdocs.corexlogic.com/en/uretim/kosullar#ifade-dili).
## Steps
1. On the item's **Yapılandırma** (Configuration) tab, scroll down to the **Nesne Bağımlılıkları** (Object Dependencies) section and click **Kural Ekle** (Add Rule).

1. Procedure — computes a characteristic
2. Constraint — blocks a forbidden combination
3. Table constraint — variant table
4. Formula — the language of the conditions page
2. For a constraint, select **Sınır koy** (Restrict). In the **Koşul** (Condition) field, enter the expression that returns Evet (Yes) when the combination is valid; an "if A then B" rule has the form `DEĞİL A VEYA B`.
3. In the **Kullanıcıya ileti** (Message to user) field, enter the sentence to be shown in sales. In the **Dene** (Try) panel on the right, enter sample values and see the result.
4. For a calculated characteristic, select **Değer hesapla** (Calculate value); select the target from the **Hesaplanacak özellik** (Characteristic to calculate) list, **Formül (gelişmiş)** (Formula, advanced) in **Nasıl hesaplansın** (How to calculate), **Her zaman hesapla** (Always calculate) or **Girilmezse hesapla** (Calculate if not entered) in **Ne zaman** (When), and enter the expression in the **Formül** (Formula) field.
5. Leave **Etkin (pasif kural uygulanmaz)** (Active — an inactive rule is not applied) checked; click **Ekle** (Add).
**Result:** The rules are applied in list order when the sales line is saved: a procedure writes the value, a constraint checks the combination. A calculated characteristic can be read in BOM and routing rules; see the result with [Configure and Test](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme).
## What you need to know
- A constraint is checked only when its result is **known**; if a characteristic it reads is empty, it passes.
- If the message is empty, sales shows `Konfigürasyon kısıtı sağlanmıyor: ` (Configuration constraint not
satisfied: ``). In the demo example with a PU belt and 24 m:
`PU gıda bandı en çok 20 m boyda üretilir.` (A PU food belt is produced up to 20 m in length.)
- The user cannot change a value written with **Her zaman hesapla** (Always calculate):
`'Ayak Çifti Sayısı' değeri kuraldan hesaplanır (8); farklı değer verilemez.` (The value of 'Number of Leg Pairs' is
calculated by the rule (8); a different value cannot be entered.)
- A procedure that writes a fractional result to an integer target is rejected
(`… tam sayı — prosedür … hesapladı (YUVARLA kullanın).` — … is an integer — the procedure calculated … (use
YUVARLA).). A result written to a target with options must be one of the target's option codes.
- A date characteristic cannot be a procedure target.
- A rule that breaks an existing variant is not saved; a card can have at most 50 rules.
- Constraints and procedures can query a variant table with `TABLO` / `TABLODEGER`; a BOM line rule cannot query it —
write the value from the table to a characteristic with a procedure and read it on the line.
## Related
- [Conditions and formulas — object dependencies](https://erpdocs.corexlogic.com/en/uretim/kosullar#nesne-bagimliliklari)
- [Configurable items](https://erpdocs.corexlogic.com/en/uretim/ekranlar/yapilandirilabilir-urunler)
---
# Planned independent requirements
> Period-by-period sales forecast per item — consumption by orders, the remainder that goes into MRP and a statistical proposal from history.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-bagimsiz-ihtiyaclar
A planned independent requirement (forecast) feeds MRP with demand that is expected but has no orders yet: "6 filing
cabinets will be sold in December". The period's **approved sales orders consume the forecast**; MRP counts only the
**remainder** as demand. This way the same demand is not planned twice, once from the forecast and once from the
order.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Planlama › Planlı Bağımsız İhtiyaçlar (Production › Production Planning › Planned Independent Requirements)
- **Screen route:** `/erp/demand/independent-requirements`
- **Required permission:** `erp-demand-independent-requirements.view (görme)`, `erp-demand-independent-requirements.edit (Tahmin Gir, düzenleme, silme)`
> **Only MRP reads the forecast**
The [Malzeme İhtiyaçları](https://erpdocs.corexlogic.com/en/uretim/ekranlar/malzeme-ihtiyaclari) (Material Requirements) view and the availability check
on the sales order do not count the forecast. The forecast appears in the timeline of the
[MRP run](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu) as a **Tahmin** (Forecast) element, as a requirement on the first day of the
period.
## List

1. Enter Forecast
2. Approved orders in the period consume the forecast
3. Remainder enters MRP as demand
4. Show finished periods too
| Column | Meaning |
|---|---|
| **Malzeme** (Material) | The item for which the forecast was entered. |
| **Dönem Türü** (Period Type) | **Gün · Hafta · Ay** (Day · Week · Month). |
| **Dönem** (Period) | The period range. A finished period shows the **Geçmiş** (Past) badge: "Dönem bitti — MRP'ye girmez, iz olarak kalır" (The period has ended — it does not go into MRP and remains as a record). |
| **Tahmin** (Forecast) | The quantity entered (in the item's base unit). |
| **Siparişle Tüketilen** (Consumed by Orders) | Approved sales orders whose requested delivery date falls in the period (including shipped ones), limited to the forecast. |
| **Kalan (MRP)** (Remaining, MRP) | Forecast − consumed; goes into MRP as demand. If fully consumed, **Karşılandı** (Covered). |
| **Not** (Note) | Period note. |
**Filters:** **Ara** (Search; item code or name) and **Geçmiş dönemleri göster** (Show past periods). When opened via
the **Tahmin** (Forecast) link in the MRP timeline, the list narrows to a single item and the **Tek kart** (Single
item) badge is shown.
From the row's **İşlemler** (Actions) menu you can edit the item's forecast or delete a period. Delete confirmation:
"Tahmin dönemi silinsin mi? … dönemi silinir; MRP bu dönemin kalanını artık talep saymaz." (Delete the forecast
period? Period … is deleted; MRP no longer counts the remainder of this period as demand.)
## Enter / Edit Forecast window

1. Item — planned stock item
2. Period type — Day, Week, Month
3. Period quantity (base unit)
4. Add next N periods
5. Propose from history — statistical proposal
6. Save — replaces unfinished periods
The window opens **all unfinished periods** of the item in a single table, and saving **replaces them completely**
(MD62 planning table). Saving with an empty table deletes the item's future forecast.
| Field | Rule |
|---|---|
| **Kart** (Item) | A planned stock item. An item that is not planned cannot be selected; the reason is shown (e.g. "Planlama stratejisi "planlama yok" — tahmin MRP'ye girmez; kartın planlama verisini düzenleyin." — Planning strategy is "no planning" — the forecast does not go into MRP; edit the item's planning data.). |
| **Dönem türü** (Period type) | **Gün · Hafta · Ay** (Day · Week · Month; default Month). A week is aligned to Monday, a month to the first of the month; all future periods of an item are of a single type. |
| **Dönem başı** (Period start) | Date; a past date cannot be selected. The **Dönem** (Period) column shows the aligned range. |
| **Miktar** (Quantity) | Greater than zero, within the decimal limit of the unit. |
| **Not** (Note) | Optional. |
| **Sonraki [N] … ekle** (Add next [N] …) | Adds the next N periods (at most 60 rows). |
Validation messages (N = row): "N. dönem: dönem başı zorunludur." (Period N: the period start is required.), "N. dönem
bitmiş — geçmiş döneme tahmin girilmez." (Period N has ended — a forecast cannot be entered for a past period.), "N.
dönem tekrar ediyor." (Period N is repeated.), "N. dönem: miktar sıfırdan büyük olmalıdır." (Period N: the quantity
must be greater than zero.), and additionally on the server "gg.aa.yyyy dönemi geçmiş bir tahminle çakışıyor." (Period
dd.mm.yyyy overlaps with a past forecast.) and "'KOD' planlanmıyor (planlama stratejisi "planlama yok") — tahmin MRP'ye
girmez." ('KOD' is not planned (planning strategy "no planning") — the forecast does not go into MRP.)
### Propose from History
The **Geçmişten Öner** (Propose from History) section at the bottom of the window calculates a statistical proposal
from the item's consumption history (it does not write anything):
| Field | Values |
|---|---|
| **Model** | **Otomatik** (Automatic) · **Hareketli ortalama** (Moving average) · **Üstel düzeltme** (Exponential smoothing) · **Trend** · **Mevsimsel** (Seasonal) |
| **Geçmiş dönem** (History periods) | Day 1–365 (default 56) · Week 1–156 (52) · Month 1–36 (24) |
| **Önerilecek dönem** (Periods to propose) | Day 1–90 (14) · Week 1–52 (12) · Month 1–24 (6) |
| **Alfa** (Alpha) | Between 0 and 1, both excluded (hidden for moving average) |
**Öner** (Propose) shows the historical consumption chart, the selected model, the MAD and the period proposals. The
proposal is not saved: **Öneriyi Forma Aktar** (Transfer Proposal to Form) replaces the period rows (asks for
confirmation if rows exist), and you then save with **Kaydet** (Save). If there is no consumption in the history, the
screen shows "Seçilen geçmişte tüketim yok — öneri üretilmedi." (No consumption in the selected history — no proposal
was produced.)
Step by step: [Enter a planned independent requirement](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-bagimsiz-ihtiyac-girme).
## Related
- [MRP run](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu)
- [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
---
# Define a rule on a BOM line
> In a super BOM, define in which configuration a material line is included (option condition, expression condition) and how its quantity is calculated (characteristic × factor, expression).
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/satir-kurali-tanimlama
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Ürün Ağaçları › ürün ağacı › revizyon › Düzenle (Production › Master Data › Bills of Materials › BOM › revision › Edit)
- **Screen route:** `/erp/manufacturing/boms/{id}/revisions/{revisionId}/edit`
- **Required permission:** `erp-manufacturing-boms.edit`
- **Prerequisites:**
- The BOM's output card is configurable and its configuration characteristics are defined ([Define a configuration characteristic](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirma-ozelligi-tanimlama)).
- The BOM has an editable **draft** revision (a released revision does not change; open a new revision).
In a super BOM, each line is either **unconditional** (included in every order) or selected by a rule. The quantity can
be fixed or calculated from the configuration. The complete language and 25 examples:
[Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar).
## Steps
1. On the detail of the draft revision, click **Düzenle** (Edit).

1. Rule summary — formula quantity
2. Option condition and formula
3. Edit Rule — Line Rule dialog
4. In a formula line Quantity = constant part
2. On the line to receive a rule, click the **Kuralı Düzenle** (Edit Rule) button (the settings icon on the right of the line; screen reader name 'N. satırın kuralını düzenle' (Edit the rule of line N)).
3. If the line is to be included for specific options, check the values under the relevant characteristic (one value of the same characteristic is enough; different characteristics are required together). For a Yes/No characteristic, select **Fark etmez** (Any), **Evet** (Yes) or **Hayır** (No).

1. Option condition — one of the ticked values (OR)
2. Yes/No characteristic — written into the expression
3. Expression condition — line comes when Yes
4. Code buttons — insert at the cursor
4. If a numeric limit or several characteristics are needed, enter the expression in the **Koşul** (Condition) field of the **İfadeli koşul** (Expression condition) section; you can insert codes with the **Özellikler** (Characteristics) and value buttons. Check it with **Sına** (Test).
5. In the **Formüllü miktar** (Formula quantity) section, select the mode: **Sabit miktar** (Fixed quantity), **Özellik × katsayı** (Characteristic × factor) (the **Özellik** (Characteristic) and **Katsayı** (Factor) fields) or **İfade** (Expression).
6. In expression mode, enter the formula in the **Miktar** (Quantity) field and click **Sına** (Test).

1. Check — validation without saving
2. Quantity mode: fixed, characteristic × factor, expression
3. Quantity formula — added to the line quantity
4. Apply — takes effect when the revision is saved
7. Close the window with **Uygula** (Apply). On a formula line, the form's **Miktar** (Quantity) field is the fixed part — enter `0` if only the formula is to give the quantity.
8. Save the revision with **Değişiklikleri Kaydet** (Save Changes).
**Result:** The rule is written to the draft revision. Before releasing, test the extreme values with [Configure and Test](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme); once the revision is released, new orders are resolved with this rule.
## What you need to know
- The option condition and the expression condition are required **together** (AND). If the expression condition is
**Hayır** (No) or **unknown**, the line is not included.
- On a formula line, quantity = the **Miktar** (Quantity) field + the result of the formula; the result must be greater
than zero.
- In **Özellik × katsayı** (Characteristic × factor) mode, only numeric characteristics (Tam Sayı (Integer), Ondalık
(Decimal)) are listed; the factor must be greater than zero (`Formül katsayısı sıfırdan büyük olmalı.` — The formula
factor must be greater than zero.).
- In expression mode, the expression cannot be left empty: `Miktar ifadesini yazın ya da sabit miktara dönün.` (Enter
the quantity expression or return to a fixed quantity.)
- **Sına** (Test) checks the syntax and the codes; the result type (Yes/No, number) and value-dependent errors are shown
only by Configure and Test or by releasing an order: [Messages](https://erpdocs.corexlogic.com/en/uretim/kosullar#iletiler).
- The same card can appear on two lines only if their option conditions exclude each other; the expression condition
is not taken into account here (`Aynı stok kartı bir revizyonda yalnız bir malzeme satırında yer alabilir.` — The same
stock card can appear on only one material line in a revision.).
- The window opens only in the BOM of a configurable output. For bulk entry, use the **SecimKosulu** and
**MiktarFormulu** columns and the **Satır Koşulları** (Line Conditions) sheet of the Bills of Materials import
workbook.
## Related
- [Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar)
- [Bills of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
---
# MRP run
> Time-phased net requirements, proposals and exceptions for planned items; the run, simulation, nightly job and requirement pegging.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu
MRP (material requirements planning) calculates day by day, for every planned item, **when and how much** will be
short, and creates proposals for the shortage. The proposal for a purchased item is written to a **draft purchase
requisition**, the proposal for a produced item to a **planned order**; the planned order is exploded from the bill of
materials and the requirements of its components are planned again one level down.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Planlama › MRP Koşusu (Production › Production Planning › MRP Run)
- **Screen route:** `/erp/demand/mrp`
- **Required permission:** `erp-demand-material-requirements.view (liste, kart ayrıntısı, simülasyon, gece işi ayarını görme)`, `erp-demand-mrp-runs.create (MRP'yi Çalıştır, gece işi ayarını değiştirme)`
> **The list is a simulation**
Every time you open the screen, the list is **recalculated on the server and nothing is written**. Documents are
written only with **MRP'yi Çalıştır** (Run MRP) (or by the nightly job). As soon as a document (order, goods receipt,
production order) is saved, the list changes too.
## List

1. Run MRP — writes requisition and planned orders
2. Simulation — scenario, writes nothing
3. Nightly job — automatic run every night
4. Only items with proposals
5. Proposed quantity and its outcome (requisition / planned order)
6. Exception badges — hover for the message
| Column | Meaning |
|---|---|
| **Malzeme** (Material) | The item's code and name. Clicking the row opens the **Stok/İhtiyaç Listesi** (Stock/Requirements List). |
| **Durum** (Status) | The item's place in the run — see the table below. For an item that is not planned, the reason is shown on the row. |
| **Eldeki** (On Hand) | Current stock (in the item's base unit). |
| **Güvenlik Stoğu** (Safety Stock) | The item's **Minimum stok** (Minimum stock) value; 0 if not defined. |
| **İlk Eksik** (First Shortage) | The requirement date of the first proposal. |
| **Önerilen** (Proposed) | Total quantity of the proposals; below it, the number of proposals and their outcome ("talep olur" — becomes a requisition, "planlı emir olur" — becomes a planned order, "siparişe bağlı planlı emir olur" — becomes a planned order linked to a sales order). |
| **İstisnalar** (Exceptions) | Badges for situations that need attention. Hovering over a badge shows the server's message. |
The sort order is fixed: items with proposals first, then the one with the nearest first shortage, then by code.
**Filters:** **Ara** (Search; material code or name), **Durum** (Status), **Yalnız önerisi olanlar** (Only with
proposals; work to do), **Yalnız istisnalılar** (Only with exceptions; needs attention), **Benim ürünlerim** (My
products; items whose **MRP sorumlusu** (MRP controller) is the signed-in user). If there are no items, the list says
"Planlanan kart yok — kartın planlama stratejisi "planlama yok" ise MRP onu planlamaz." (No planned items — if an
item's planning strategy is "no planning", MRP does not plan it.)
### Statuses
| Status | When | Outcome of the proposal |
|---|---|---|
| **Satın Alma** (Purchasing) | The item's **Varsayılan tedarik yolu** (Default procurement type) is *Satın Al* (Purchase) | In the run it becomes a line on a single draft purchase requisition. |
| **Üretim** (Production) | The item's **Varsayılan tedarik yolu** (Default procurement type) is *Üret* (Produce) | In the run it becomes a planned production order and its BOM is exploded. |
| **Siparişe Özel** (Order-Specific) | The item's **Planlama stratejisi** (Planning strategy) is *Siparişe Üretim* (Make to Order) | For a produced item the proposal is made per sales order item and becomes a planned order **linked to the sales order item** (the row shows a **Siparişe üretim** (Make to order) badge). For a configurable item, the planned order carries the configuration of the sales order item. |
| **Planlanmıyor** (Not Planned) | The item is inactive or outside its validity, discontinued, blocked by its material status, or has no procurement type | No proposal; the reason is on the row: "Kart pasif ya da geçerlilik penceresi dışında." (The item is inactive or outside its validity window.), "Kesilen kart — kalan ihtiyaç halefe devredildi." (Discontinued item — the remaining requirement was transferred to the successor.), "Tedarik yolu belirlenmemiş." (No procurement type has been set.) |
An item whose **Planlama stratejisi** (Planning strategy) is *Planlama Yok* (No Planning) does not appear in the list
at all.
### Exceptions
| Badge | Server's message | English meaning |
|---|---|---|
| Gecikmiş ihtiyaç (Overdue requirement) | Tarihi geçmiş ihtiyaç bugüne alındı. | An overdue requirement was moved to today. |
| Gecikmiş arz (Overdue supply) | Tarihi geçmiş (gelmemiş) arz bugün gelecek sayıldı — tedarikçiyle teyit edin. | Overdue (not received) supply was assumed to arrive today — confirm with the supplier. |
| Tarihsiz arz (Undated supply) | Tarihsiz arz bugün gelecek sayıldı. | Undated supply was assumed to arrive today. |
| Tarihsiz ihtiyaç (Undated requirement) | Tarihsiz ihtiyaç (üretim emri gereksinimi) bugüne yazıldı. | An undated requirement (production order requirement) was posted for today. |
| Yetişmiyor (Cannot be met in time) | Tedarik süresiyle ihtiyaç tarihine yetişmiyor — en erken temin önerinin teslim tarihinde. | With the lead time, the requirement date cannot be met — the earliest availability is the proposal's delivery date. |
| Tedarik süresi yok (No lead time) | Tedarik süresi tanımsız — sıfır gün sayıldı; kartın planlama verisine süre girin. | Lead time not defined — zero days assumed; enter a lead time in the item's planning data. |
| Birim çevrilemedi (Unit could not be converted) | Birimi temel birime çevrilemeyen belge hesaba girmedi. | A document whose unit could not be converted to the base unit was not included in the calculation. |
| Ağaç yok ya da uygun alternatif/geçerli revizyon yok (No BOM, or no suitable alternative/valid revision) | Yayınlanmış ürün ağacı yok — üretim önerisi patlatılamadı, bağımlı ihtiyaç doğmadı. | No published BOM — the production proposal could not be exploded; no dependent requirement was created. |
## How the calculation works
MRP follows these steps for each item (server rule; the screen does not calculate):
1. **Elements are collected.** Supply (plus): stock on hand, open purchase orders, open purchase requisitions, expected
output of open production orders, **firmed** or **manually created** planned orders, draft production orders.
Requirements (minus): approved sales order items, production order requirements, reservations, the **dependent
requirement** arising from the parent item's planned order, and the part of the forecast not consumed by orders
([Planned independent requirement](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-bagimsiz-ihtiyaclar)).
2. **An element without a date, or with a past date, is moved to today** and recorded as an exception.
3. **The calculation steps through day by day.** Supply on a given day is processed before the requirements of that
day. If, at the end of the day, the available quantity is below the **safety stock** (the item's minimum), a
proposal is created.
4. **Proposal quantity:** if the item's **Maksimum stok** (Maximum stock) value is defined, the stock is topped up to
the maximum; otherwise the shortage is covered up to the safety stock. Then the quantity is raised to the **Minimum
sipariş miktarı** (Minimum order quantity), rounded up to a multiple of the **Sipariş katsayısı** (Order multiple)
and rounded up to the decimal precision of the unit.
5. **Date (backward offset):** start = requirement date − **Tedarik süresi (gün)** (Lead time, days). If the start
falls before today, delivery becomes today + lead time and the proposal is flagged **Yetişmiyor** (Cannot be met in
time); the requirement date does not change.
6. **BOM explosion:** the proposal for a produced item is exploded from the BOM valid on the start date; the component
requirement is written to the proposal's **start** date. A component is planned after all of its parent items have
been planned.
> **Example**
**MAM-0005 Dosya Dolabı** (filing cabinet) — on hand 6, minimum 2, maximum 8, lead time 7 days; December forecast 6
pieces. On 01.12.2026 the available quantity is 6 − 6 = 0, below the minimum (2) → proposal 8 − 0 = **8 pieces**,
requirement date 01.12.2026, start 24.11.2026. January forecast 4 pieces: 8 − 4 = 4 ≥ 2, no new proposal.
The item's planning fields are on the product master record: **Planlama stratejisi** (Planning strategy),
**Varsayılan tedarik yolu** (Default procurement type), **MRP sorumlusu** (MRP controller), **Tedarik süresi (gün)**
(Lead time, days), **Minimum sipariş miktarı** (Minimum order quantity), **Sipariş katsayısı** (Order multiple)
(**Planlama Verileri**, Planning Data) and **Minimum stok** / **Maksimum stok** (Minimum stock / Maximum stock) (**Stok
Verileri**, Stock Data). A maximum on its own does nothing; the proposal is triggered by the minimum.
## Run MRP

1. Unfirmed MRP orders are rebuilt
2. Make to order: order pegged to sales item
3. Run
The run is visible only with the `erp-demand-mrp-runs.create` permission. The confirmation window states what will
happen:
- Proposals for purchased items are written to **a single draft purchase requisition**; the requisition is opened in
your name and stays a draft until you submit it.
- Proposals for produced items become **planned production orders**.
- **Old MRP drafts that have not been submitted or edited** are cancelled and rebuilt; a requisition that has been
submitted or edited is not touched — it counts as supply.
- **MRP planned orders that have not been firmed** are cancelled and rebuilt; a firmed or changed planned order is not
touched.
- Make-to-order products become planned orders linked to the sales order item.
- A planned order does not post stock; it is converted to a production order on the **Planlı Emirler** (Planned
Orders) screen.
When the run finishes, the **MRP koşusu tamamlandı** (MRP run completed) section opens above the list: the number of
planned products, the number of purchase proposals written to the requisition, the number of planned orders opened;
**Açılan taslak talep** (Draft requisition opened; with its number, as a link if you have requisition permission),
**Açılan planlı emirler** (Planned orders opened; the first few and "ve N tane daha" — and N more), old drafts and
planned orders cancelled because they were rebuilt, and **Talebe ya da planlı emre giremeyen öneriler** (Proposals that
could not be added to a requisition or planned order; item and reason). If an error occurs, the window shows "MRP
koşusu tamamlanamadı." (The MRP run could not be completed.) and the server's reason. Step by step:
[Run MRP](https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma).
> **The list still shows proposals after the run**
An MRP planned order that has not been firmed does not count as supply (it is rebuilt in every run); that is why the
item's proposal still appears in the list after the run. To "close" the proposal, **Sabitle** (Firm) the planned order
or convert it to a production order.
## Stock/Requirements List (item details)

1. Safety stock = item minimum; proposal fills up to the maximum
2. Proposals — requirement, start, delivery
3. Timeline — available quantity element by element
4. Pegging — where the requirement comes from
Clicking a row opens the item's time-phased list (address `/erp/demand/mrp/{itemId}`):
- **Summary:** **Eldeki** (On hand) · **Güvenlik stoğu / maksimum** (Safety stock / maximum; "Öneri maksimuma
tamamlar" — the proposal tops up to the maximum, or "Öneri açığı kapatır" — the proposal covers the shortage) ·
**İhtiyaç / arz** (Requirements / supply) · **Tedarik süresi** (Lead time); below that, the item's exceptions with
their messages.
- **Öneriler** (Proposals): **İhtiyaç** (Requirement) · **Başlangıç** (Start; for purchasing, order date = delivery −
lead time) · **Teslim** (Delivery) · **Miktar** (Quantity); for a proposal that cannot be met in time, "Geç — tedarik
süresiyle yetişmiyor" (Late — cannot be met with the lead time). For make-to-order, a **Satış siparişi** (Sales
order) column ("Sipariş SS-… · Müşteri" — Order SS-… · Customer; a proposal without a link shows "Anonim ihtiyaç" —
Anonymous requirement) and a configuration summary.
- **Zaman Çizelgesi** (Timeline): **Tarih** (Date) · **Eleman** (Element; Eldeki stok (Stock on hand), Satış siparişi
(Sales order), Üretim gereksinimi (Production requirement), Rezervasyon (Reservation), Satın alma siparişi (Purchase
order), Üretim çıktısı (Production output), Satınalma talebi (Purchase requisition), Planlı emir (Planned order),
Bağımlı ihtiyaç (Dependent requirement), Tahmin (Forecast), MRP önerisi (MRP proposal), Kesilen karttan devir
(Transfer from discontinued item), Kesilen kartın stoğu (Stock of discontinued item)) · **Belge** (Document) ·
**Karşı taraf** (Counterparty) · **Miktar** (Quantity; supply plus, requirement minus) · **Kullanılabilir**
(Available; after the element).
- **İhtiyaç İzleme** (Requirement Pegging): the **İhtiyaçları İzle** (Trace Requirements) button shows, through the
parent items, which sales order, forecast or safety stock the item's requirement comes from: the **Üst talepler**
(Parent demands) table and the **İzleme ağacı** (Pegging tree).
If the item is not planned in MRP, the details say "Kart MRP'de planlanmıyor — planlama stratejisi "planlama yok" ya
da kart stok tutmuyor." (The item is not planned in MRP — its planning strategy is "no planning" or the item is not
stock-managed.)
## Simulation

1. Forecast scale — 100 as is
2. Extra demands — item, date, quantity
3. Simulate — writes nothing
4. Items whose proposal changes (current → scenario)
The **Simülasyon** (Simulation) button (with the view permission) opens the **MRP Simülasyonu** (MRP Simulation)
window: the scenario goes through the same calculation as a real run, but **no requisitions or planned orders are
written**.
| Field | Rule |
|---|---|
| **Tahmin ölçeği (%)** (Forecast scale, %) | Applied to the open remainder of the planned independent requirement — 100 as is, 120 means 20 percent more. An integer between 0 and 500 ("Tahmin ölçeği %0 ile %500 arasında tam sayı olmalı." — The forecast scale must be an integer between 0% and 500%.). |
| **Ek talepler** (Additional demands) | Item (searched from the MRP list), requirement date, quantity. At most 200 rows; quantity greater than zero, at most 4 decimals; date at most two years ahead. |
**Simüle Et** (Simulate) returns the result in three sections: **Öneriler (mevcut → senaryo)** (Proposals, current →
scenario) totals, **Önerisi değişen kartlar** (Items whose proposal changed; **Kart** (Item) · **Durum** (Status) ·
**Mevcut** (Current) · **Senaryo** (Scenario) · **İlk serbest bırakma** (First release); at most 500 rows) and **İş
merkezi kaba yükü** (Rough-cut work center load; **Mevcut** (Current) · **Senaryo** (Scenario) · **Kullanılabilir**
(Available) · **Kullanım** (Utilization); rows over 100% are highlighted). Load is not calculated for a product
without a routing.
## Nightly Job

1. MRP run — every night
2. Automatic order from requisition
3. Run hour — company time
4. Last and next run
The **Gece İşi** (Nightly Job) window runs the MRP run and **Talepten otomatik sipariş** (Automatic order from
requisition) automatically every night at the selected **Koşu saati** (Run time) (in company time); if the time has
already passed on the day it is turned on, the first run happens that night.
- Everyone can see the setting; changing it requires the MRP run permission ("Ayarı değiştirmek MRP koşusu yetkisi
ister." — Changing the setting requires the MRP run permission.).
- Turning on **Talepten otomatik sipariş** (Automatic order from requisition) requires the permissions to create
purchase orders and to determine sources; if Source List and Quota are disabled, the switch cannot be turned on
("Kaynak Listesi ve Kota kapalı — otomatik sipariş kaynak belirlemesine dayanır." — Source List and Quota are
disabled — automatic ordering relies on source determination.). Turning it off is unrestricted.
- **Son ve sıradaki koşu** (Last and next run): the next run time ("Gece işi kapalı" — Nightly job off), the status of
the last run ("— başladı, sonuç yazılmadı" — started, no result written; "— tamamlandı" — completed), and the draft
requisitions and orders opened, from the server.
## Related
- [Run MRP](https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma)
- [Planned orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-emirler)
- [Planned independent requirements](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-bagimsiz-ihtiyaclar)
- [Material requirements](https://erpdocs.corexlogic.com/en/uretim/ekranlar/malzeme-ihtiyaclari)
- [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
---
# Write an operation condition and time formula in a super routing
> In the routing of a configurable item, define in which configuration an operation is performed and how the setup, machine and labor times are calculated.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/super-rota-kurali-yazma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Mühendisliği › Rotalar › rota › Yeni Revizyon (Production › Production Engineering › Routings › routing › New Revision)
- **Screen route:** `/erp/manufacturing/routings/{id}`
- **Required permission:** `erp-manufacturing-routings.edit`
- **Prerequisites:**
- The routing's output card is configurable and its configuration characteristics are defined.
A super routing is the single routing of a configurable card. It uses the same language as the BOM line rule:
[Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar#super-rota).
## Steps
1. In **Rotalar** (Routings), open the routing of the configurable card and click **Yeni Revizyon** (New Revision).
2. On the row of the operation to receive a rule, click the **Seçim koşulu ve formüller** (Selection condition and formulas) button (screen reader name 'N numaralı operasyonun seçim koşulu ve formülleri' (Selection condition and formulas of operation N)).
3. If the operation is to be performed only in some configurations, enter the expression in the **Seçim koşulu** (Selection condition) field and click **Sına** (Test).
4. If the time depends on the configuration, enter the expression in the **Hazırlık formülü (dk)** (Setup formula, min), **Makine formülü (dk)** (Machine formula, min) or **İşçilik formülü (dk)** (Labor formula, min) field. For a field left empty, the fixed time on the row is used.

1. Selection condition and formulas — opens below the row
2. Selection condition — operation comes when Yes
3. Time formula — replaces the fixed time
4. Check — validation without saving
5. Create Revision — draft revision
5. Save the draft revision with **Revizyonu Oluştur** (Create Revision), then release the revision.
**Result:** On orders opened after the revision is released, operations are selected according to the configuration and times are calculated from the formula; on the routing detail, the rule text appears under each operation.

1. Conditional operation
2. Rule text — condition and formula
3. Fixed time — replaced by the formula
## What you need to know
- If the selection condition is **Evet** (Yes), the operation is included in the order; if it is **Hayır** (No) or
**unknown**, it is not. Empty = always.
- The formula **replaces** the fixed time (it is not added, unlike the quantity formula in the BOM). The result must be
between 0 and 1,000,000 minutes and is rounded to two decimals. Machine and labor are per base quantity, setup is per
lot.
- If a value read by the formula is empty, the order is not opened:
`N numaralı operasyonun işçilik formülü hesaplanamadı — konfigürasyonda gereken değer yok.` (The labor formula of
operation N could not be calculated — the required value is missing in the configuration.) If the result is not a
number: `… sayı vermeli.` (… must return a number.); if it is out of range:
`… 0 ile 1000000 dakika arası değer vermeli.` (… must return a value between 0 and 1000000 minutes.)
- The selection condition must return Yes/No: `N numaralı operasyonun seçim koşulu Evet/Hayır vermeli.` (The selection
condition of operation N must return Yes/No.)
- If no operation is selected at all:
`Konfigürasyon rotanın hiçbir operasyonunu seçmiyor — rotanın seçim koşullarını düzeltin.` (The configuration selects
none of the routing's operations — correct the routing's selection conditions.)
- A rule can be saved only in the routing of a configurable card:
`Seçim koşulu ve formüllü süre yalnız yapılandırılabilir kartın rotasında kullanılır.` (Selection conditions and
formula times are used only in the routing of a configurable card.)
- For bulk entry, use the **SecimKosulu**, **HazirlikFormulu**, **MakineFormulu** and **IscilikFormulu** columns on the
**Operasyonlar** (Operations) sheet of the Routings import workbook.
## Example — sized conveyor (DMO-KSL-01)
| Op. | Rule | On the order with BOY 12.5 · PVC · Koruma Evet |
|---|---|---|
| 10 Profil kesim (Profile cutting) | Machine formula `2 * BOY * 0.8` | Machine 20 min |
| 20 Şase ve makara montajı (Frame and roller assembly) | Labor formula `30 + 6 * BOY` | 105 min |
| 30 Bant montajı ve gerdirme (Belt assembly and tensioning) | Labor formula `EGER(BANT_TIPI = 'PU', 40, 25) + 2 * BOY` | 50 min |
| 40 Koruma kapağı montajı (Guard cover assembly) | Selection condition `KORUMA = EVET`, labor `3 * BOY` | 37.5 min |
| 60 Çalışma testi (Running test) | Labor `EGER(BOY > 10, 30, 20)` | 30 min |
## Related
- [Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar)
- [Routings](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar)
---
# Planned orders
> MRP's production proposals and manually created planned orders — firming, changing, cancelling and converting to a production order.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-emirler
A planned order is a proposal for a produced item: **"this quantity should be produced between these dates"**. The MRP
run writes the proposal for a produced item as a planned order; a planner can also create planned orders manually. A
planned order **does not post stock** and does not go through the posting period check; production starts only once it
is **converted to a production order**.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Planlama › Planlı Emirler (Production › Production Planning › Planned Orders)
- **Screen route:** `/erp/manufacturing/planned-orders`
- **Required permission:** `erp-manufacturing-planned-orders.view (görme)`, `erp-manufacturing-planned-orders.edit (Planlı Emir Aç, Değiştir, Sabitle, Sabitlemeyi Kaldır, İptal Et)`, `erp-manufacturing-orders.create (Üretim Emrine Dönüştür — ayrıca)`
## List

1. Open Planned Order — manually
2. Source — MRP or Manual
3. Firm — MRP does not rebuild
4. Resulting production order
| Column | Meaning |
|---|---|
| **Planlı Emir No** (Planned Order No.) | `PLO-yyyy-nnnnnn`; clicking it opens the details. |
| **Malzeme** (Material) | The item to be produced. |
| **Miktar** (Quantity) | In the item's base unit. |
| **Başlangıç** · **Bitiş** (Start · End) | The planned dates. An open order whose start date has passed shows a "Başlangıcı geçti" (Start date passed) flag (the server's decision). |
| **Kaynak** (Source) | **MRP** or **Elle** (Manual). |
| **Sabit** (Firmed) | A badge on a firmed order; on an MRP order that is not firmed, the warning "Sonraki MRP koşusu bu emri iptal edip yeniden kurar" (The next MRP run will cancel and rebuild this order). |
| **Durum** (Status) | See the table below. |
| **Satış Siparişi** (Sales Order) | For make-to-order, the linked sales order ("SS-… · Müşteri" — SS-… · Customer); "—" for an unlinked order. |
| **Üretim Emri** (Production Order) | The number of the production order it was converted to, with a link. |
**Filters:** **Ara** (Search; planned order no. or material), **Durum** (Status), **Sabit** (Firmed; **Tümü · Sabit ·
Sabit değil**, All · Firmed · Not firmed). The row's **İşlemler** (Actions) menu has **Planlı Emri Aç** (Open Planned
Order) and history.
**Bulk conversion:** tick the boxes at the start of open planned orders and click **Üretim Emrine Dönüştür** (Convert to
Production Order) in the toolbar (at most 50). Each order is converted in its own transaction; a rejected order stays
open, and the result window shows the result and reason for each order.
### Statuses
| Status | Meaning | Allowed actions |
|---|---|---|
| **Açık** (Open) | The planned order is waiting. | Convert to Production Order · Change · Firm / Unfirm · Cancel |
| **Dönüştü** (Converted) | Converted to a production order; the details show a **Üretim emri** (Production order) link. | None (read-only) |
| **İptal** (Cancelled) | Cancelled manually, or cancelled by MRP while rebuilding. | None |
| **Seri üretimle karşılandı** (Covered by repetitive manufacturing) | Covered by repetitive manufacturing confirmations. | None |
If an action is attempted on a closed order, the server rejects it: "Yalnız açık planlı emir değiştirilir." (Only an
open planned order can be changed.), "Yalnız açık planlı emir sabitlenir." (Only an open planned order can be firmed.),
"Yalnız açık planlı emir iptal edilir." (Only an open planned order can be cancelled.), "Yalnız açık planlı emir üretim
emrine dönüştürülür." (Only an open planned order can be converted to a production order.)
## Firmed and non-firmed planned orders
| Planned order | In the next MRP run | Counted as supply in MRP? |
|---|---|---|
| Created by MRP, **not firmed** | Cancelled and rebuilt according to requirements | No — the item's proposal keeps appearing in the list |
| Created by MRP, **firmed** or **changed** | Not touched | Yes; its components become dependent requirements |
| Created **manually** | Not touched | Yes |
## Details

1. Convert to Production Order — draft order
2. Change — quantity and dates; firms the order
3. Firm
4. Cancel — reason required
5. Component preview — from the latest released BOM
The details show **Durum** (Status), **Malzeme** (Material), **Miktar** (Quantity), **Kaynak** (Source; MRP koşusu /
Elle açıldı — MRP run / Created manually), **Başlangıç** (Start), **Bitiş** (End), **Sabit** (Firmed; by whom, when),
**Oluşturan** (Created By), **Satış siparişi** (Sales order; "Dönüşümde üretim emrine bağ olarak geçer" — passed to the
production order as a link on conversion), **Üretim emri** (Production order) if converted, and **İptal**
(Cancellation; reason and time) if cancelled.
**Bileşen Önizlemesi** (Component Preview) uses the same calculation as the requirements that will be frozen at release
after conversion: from the item's most recently published BOM, including scrap and rounding, in the base unit. If it
cannot be calculated, the server's reason is shown: "Bileşenler hesaplanamadı — başlangıç gününde geçerli üretim ağacı
ya da miktara uyan alternatif yok, kart yapılandırılabilir ya da birim çevrimi eksik." (Components could not be
calculated — there is no production BOM valid on the start date or no alternative matching the quantity, the item is
configurable, or a unit conversion is missing.)
### Actions
| Button | Window | Result |
|---|---|---|
| **Üretim Emrine Dönüştür** (Convert to Production Order) | "Kartın en son yayınlanmış ürün ağacından taslak üretim emri açılır; miktar ağacın esas biriminde, tarihler planlı emirden. Planlı emir kapanır." (A draft production order is opened from the item's most recently published BOM; quantity in the BOM's base unit, dates from the planned order. The planned order is closed.) → **Dönüştür** (Convert) | A draft production order is opened and you are taken to its page; the planned order becomes **Dönüştü** (Converted). Step by step: [Convert a planned order to a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme). |
| **Değiştir** (Change) | **Miktar** (Quantity), **Başlangıç** (Start), **Bitiş** (End); "Değiştirmek emri sabitler: sonraki MRP koşusu onu iptal edip yeniden kurmaz." (Changing firms the order: the next MRP run will not cancel and rebuild it.) → **Kaydet** (Save) | The values change and the order is firmed. |
| **Sabitle** (Firm) | "Sabit emir sonraki MRP koşusunda iptal edilmez; arz sayılır, bileşenleri bağımlı ihtiyaç olur." (A firmed order is not cancelled in the next MRP run; it counts as supply and its components become dependent requirements.) | **Sabit** (Firmed) = Yes. |
| **Sabitlemeyi Kaldır** (Unfirm) | "MRP'nin açtığı emir sonraki koşuda iptal edilip ihtiyaca göre yeniden kurulur." (An order created by MRP is cancelled in the next run and rebuilt according to requirements.) | **Sabit** (Firmed) = No. |
| **İptal Et** (Cancel) | "Emir kapanır ve arz sayılmaz; ihtiyaç sürüyorsa sonraki MRP koşusu yeni bir öneri üretir." (The order is closed and does not count as supply; if the requirement persists, the next MRP run creates a new proposal.) **Gerekçe** (Reason) required. | **İptal** (Cancelled). |

1. Convert
Validation: quantity greater than zero ("Planlı emir miktarı sıfırdan büyük olmalıdır." — The planned order quantity
must be greater than zero.), the decimal limit of the unit (in the form "'ADET' birimi en fazla 0 ondalık kabul eder."
— The unit 'ADET' accepts at most 0 decimals.), the start cannot be after the end ("Başlangıç bitişten sonra olamaz."
— The start cannot be after the end.), a reason is required for cancellation ("İptal gerekçesi zorunludur." — A
cancellation reason is required.). If the order was changed by someone else in the meantime: "Planlı emir bu arada
değişti — sayfayı yenileyip yeniden deneyin." (The planned order changed in the meantime — refresh the page and try
again.)
## Open Planned Order (manually)

1. Product — produced, not configurable
2. Quantity — base unit
3. Finish — required
4. Start — empty means finish − lead time
5. Open Planned Order
The **Planlı Emir Aç** (Open Planned Order) window in the list header: **Ürün** (Product; produced items only; a
configurable product is produced from a configured sales order line), **Miktar** (Quantity; base unit), **Bitiş** (End;
required), **Başlangıç** (Start; if left blank, end − the product's lead time; if no lead time is defined, the end
date). **Planlı Emri Aç** (Open Planned Order) opens the order and takes you to its page. A manually created planned
order counts as supply; MRP does not cancel and rebuild it.
Cases the server rejects: "'KOD' pasif — pasif kart için planlı emir açılamaz." ('KOD' is inactive — a planned order
cannot be opened for an inactive item.), "'KOD' üretilen stok kartı değil — planlı emir açılamaz." ('KOD' is not a
produced stock item — a planned order cannot be opened.), "'KOD' yapılandırılabilir kart — üretim yalnız
yapılandırılmış bir satış siparişi satırından açılır." ('KOD' is a configurable item — production can be opened only
from a configured sales order line.)
## Related
- [Convert a planned order to a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme)
- [MRP run](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu)
- [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
- [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
---
# Test a super BOM by configuring it
> Enter values without saving and see which lines of the super BOM go into the order and in what quantity — the reason and calculation line by line.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Ürün Ağaçları › ürün ağacı › revizyon › Yapılandırarak Dene (Production › Master Data › Bills of Materials › BOM › revision › Configure and Test)
- **Screen route:** `/erp/manufacturing/boms/{id}/revisions/{revisionId}`
- **Required permission:** `erp-manufacturing-boms.view`
- **Prerequisites:**
- The BOM's output card is configurable (the button is visible only then). It works on draft and released revisions.
The window uses the **same** resolver as production order release: a line included here is also included on the order.
The difference: the window shows values per base quantity and without rounding; on the order, the order quantity,
scrap and unit rounding are added. Default values are not prefilled in the window; you enter every characteristic
yourself.
## Steps
1. In **Ürün Ağaçları** (Bills of Materials), open the BOM and the revision to test; click **Yapılandırarak Dene** (Configure and Test).
2. Enter the values in the **Özellik değerleri** (Characteristic values) section. Numbers are entered in the box with a decimal comma; the allowed range is shown under the field.
3. Select characteristics with options and Yes/No characteristics from the list. Characteristics whose precondition is met appear immediately; a calculated characteristic shows its value with the note 'Hesaplanan — kuraldan.' (Calculated — from rule.)
4. In the **Emre gelecek malzemeler** (Materials going into the order) table, check the **Sonuç** (Result: Gelir (Included) / Gelmez (Not included)), **Neden** (Reason) and **Miktar** (Quantity) columns of each line; on a formula line, the calculation is shown under the quantity (e.g. `2 * BOY * 1.02 = 25,5`).

1. Characteristic values — entered as on the sales line
2. Characteristic computed by a procedure
3. How many lines come, how many do not
4. Calculation of a formula quantity
5. Why the line does not come
6. Expression condition Yes — line comes
5. Try the extreme values (smallest and largest value, both sides of a limit, optional field empty); to start again, click **Değerleri Temizle** (Clear Values). When finished, click **Kapat** (Close).
**Result:** Nothing is saved. If there is a rule error, correct the BOM and try again; if the result is correct, release the revision.
## Messages in the window
| Displayed | English meaning | Meaning |
|---|---|---|
| `10 satır gelir · 2 satır gelmez · temel miktar 1 ADET` | 10 lines included · 2 lines not included · base quantity 1 pc | Summary |
| `Gelir — koşulsuz satır.` | Included — unconditional line. | Unconditional line |
| `Gelir — Bant Tipi PVC Endüstriyel.` | Included — Belt Type PVC Industrial. | The option condition was met |
| `Gelmez — Tank Hacmi girilmedi (koşul: 1.000 L).` | Not included — Tank Volume not entered (condition: 1,000 L). | The condition characteristic was not entered |
| `Gelmez — Bant Tipi PVC Endüstriyel (koşul: PU Gıdaya Uygun).` | Not included — Belt Type PVC Industrial (condition: PU Food Grade). | The value entered is not among the checked values |
| `Gelir — koşul Evet: BOY > 10.` · `Gelmez — koşul Hayır: BOY <= 10.` | Included — condition Yes: `BOY > 10`. · Not included — condition No: `BOY <= 10`. | Result of the expression condition |
| `Gelmez — koşulun okuduğu değer girilmedi: KORUMA = EVET.` | Not included — the value read by the condition was not entered: `KORUMA = EVET`. | A characteristic read by the expression is empty — the result is unknown |
| `1 × Çıkış Sayısı (6) = 6` | 1 × Number of Outlets (6) = 6 | Characteristic × factor calculation |
| `Satış satırı bu değerlerle kaydedilemez: 'Kabin Eni' özelliğinin değeri girilmemiş.` | The sales line cannot be saved with these values: no value has been entered for characteristic 'Kabin Eni'. | A sales line cannot be saved with these values (required field, range, constraint) |
| `N. satırın miktar formülü bilinmiyor — okuduğu değerlerden biri konfigürasyonda yok (…)` | The quantity formula of line N is unknown — one of the values it reads is missing in the configuration (…) | A value read by the formula is empty — the order cannot be opened |
| `Bu değerlerle ağacın hiçbir satırı gelmiyor — emir açılmaz.` | With these values, no line of the BOM is included — the order cannot be opened. | No line was selected |
| `'…' iki satırdan birden geliyor — emirde bir kart tek satır olur; koşulları düzeltin.` | '…' is included from two lines — a card is a single line on an order; correct the conditions. | The same card from two lines |
| `Değerler standart varyant … ile aynı — varyantın kendi ağacı varsa emir onu kullanır.` | The values are the same as standard variant … — if the variant has its own BOM, the order uses it. | The values equal a standard variant |
| `Sayı olmalı: … — bu değerler gönderilmedi.` | Must be a number: … — these values were not sent. | A non-numeric value was entered in a number box |

1. Condition characteristic — Custom Size selected
2. Characteristics shown by the precondition
3. Required, asked and empty — the line cannot be saved
4. Condition reads a missing value — line does not come
## Related
- [Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar)
- [Define a line rule](https://erpdocs.corexlogic.com/en/uretim/islemler/satir-kurali-tanimlama)
---
# Kanban
> Container-based replenishment of a continuously consumed product — control cycle, container statuses and the draft document opened by the empty signal.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/kanban
Kanban replenishes a continuously consumed product with **fixed-quantity containers**: when a container is emptied it
is reported, and a replenishment document is opened automatically according to the selected strategy. No MRP
calculation is needed; the requirement is the container becoming empty.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Kanban › Kanban Panosu · Kanban Kontrol Döngüleri (Production › Kanban › Kanban Board · Kanban Control Cycles)
- **Screen route:** `/erp/manufacturing/kanban`
- **Required permission:** `erp-manufacturing-kanban.view (görme)`, `erp-manufacturing-kanban.create (kontrol döngüsü oluşturma ve değiştirme)`, `erp-manufacturing-kanban.edit (kap sinyalleri: Kullanıma Al, Boş Bildir, Dolu İşaretle)`
## Control cycle
A **control cycle** (`KBN-yyyy-nnnnnn`) is defined per product × supply warehouse: the number of containers, the
container quantity and the replenishment strategy. A product can have only one cycle in a warehouse.
| Replenishment strategy | What the empty signal opens |
|---|---|
| **İç üretim** (In-house production) | A **draft production order** (for the container quantity) from the production BOM valid today |
| **Dış tedarik** (External procurement) | A **draft purchase requisition** (requisition source "Kanban") |
| **Stok transferi** (Stock transfer) | A transfer reservation from the **Kaynak depo** (Source warehouse) |

1. Create Control Cycle
2. In-house · External · Stock transfer
3. Container status summary
The **Kanban Kontrol Döngüleri** (Kanban Control Cycles) list: **Döngü No** (Cycle No.) · **Ürün** (Product) ·
**Tedarik Deposu** (Supply Warehouse) · **İkmal Stratejisi** (Replenishment Strategy) · **Kap Miktarı** (Container
Quantity) · **Kaplar** (Containers; e.g. "3 kap · 1 dolu · 1 kullanımda · 1 ikmalde" — 3 containers · 1 full · 1 in
use · 1 in replenishment) · **Durum** (Status). Filters **Ara** (Search), **Depo** (Warehouse), **Durum** (Status;
**Tümü · Aktif · Pasif**, All · Active · Inactive). **Kontrol Döngüsü Oluştur** (Create Control Cycle) opens the
window; changes are made from the row's **İşlemler** (Actions) menu. Step by step:
[Create a kanban control cycle](https://erpdocs.corexlogic.com/en/uretim/islemler/kanban-kontrol-dongusu-olusturma).
## Kanban Board

1. Control cycle
2. Container in replenishment and its document
3. Set In Use
4. Signal Empty — opens replenishment
5. Mark Full — when goods arrive
The board shows only **active** cycles; the containers of each cycle are drawn as tiles. Filters **Ara** (Search) and
**Depo** (Warehouse). A tile shows the container number, its status, who last changed it and when, and — for a
container in replenishment — the document opened (as a link if you have permission to view that document).
| Container status | Meaning | Buttons |
|---|---|---|
| **Dolu** (Full) | Ready for use | **Kullanıma Al** (Put into Use) · **Boş Bildir** (Report Empty) |
| **Kullanımda** (In Use) | Being consumed on the line | **Boş Bildir** (Report Empty) · **Dolu İşaretle** (Mark Full) |
| **İkmalde** (In Replenishment) | Reported empty; replenishment document open | **Dolu İşaretle** (Mark Full) |
- **Boş Bildir** (Report Empty) opens the strategy's document and the container becomes **İkmalde** (In
Replenishment). If the document cannot be opened, the server's message is shown on the tile and the container does
not change (e.g. "Kap ikmale alınamaz: …" — The container cannot be put into replenishment: …; "Kontrol döngüsü pasif
— sinyal verilemez." — The control cycle is inactive — no signal can be given.).
- **Dolu İşaretle** (Mark Full) returns the container to **Dolu** (Full) when the goods arrive. No empty signal can be
given in an inactive cycle; an open replenishment can still be marked full.
- If the same container is reported empty a second time: "Kap N zaten ikmalde (BELGE-NO)." (Container N is already in
replenishment (DOCUMENT-NO).); a container that is not full cannot be put into use ("Yalnız dolu kap kullanıma
alınır." — Only a full container can be put into use.), and a full container cannot be marked full again ("Kap zaten
dolu." — The container is already full.).
On the demo board, the empty signal of container 1 in **KBN-2026-000001** (HAM-0066 Sunta Vidası (chipboard screw),
Hammadde Deposu (raw material warehouse), Dış tedarik, 3 × 500 ADET) opened the draft requisition
**TLP-2026-000003**, and the signal of container 1 in **KBN-2026-000002** (YM-0003 Masa Ayak Takımı (desk leg set),
Mamul Deposu (finished goods warehouse), İç üretim, 2 × 4 ADET) opened the draft production order **UE-2026-000007**.
## Cycle rules
| Rule | Message |
|---|---|
| Product × warehouse is unique | "'KOD' için bu depoda zaten bir kanban kontrol döngüsü var." (A kanban control cycle already exists for 'KOD' in this warehouse.) |
| For in-house production the item must be producible | "'KOD' üretilebilir değil — iç üretim stratejisi seçilemez." ('KOD' is not producible — the in-house production strategy cannot be selected.) |
| For external procurement the item must be purchasable | "'KOD' satın alınabilir değil — dış tedarik stratejisi seçilemez." ('KOD' is not purchasable — the external procurement strategy cannot be selected.) |
| A configurable parent item cannot be used | "'KOD' yapılandırılabilir üst kart — kanbana somut kart girer." ('KOD' is a configurable parent item — kanban takes a concrete item.) |
| For stock transfer the source warehouse is required and must be different | "Stok transferi için aktif bir kaynak depo seçin." (Select an active source warehouse for stock transfer.), "Kaynak depo kanbanın deposundan farklı olmalı." (The source warehouse must be different from the kanban's warehouse.) |
| Container quantity > 0, number of containers 1–99 | "Kap miktarı sıfırdan büyük olmalı." (The container quantity must be greater than zero.), "Kap sayısı 1–99 arasında olmalı." (The number of containers must be between 1 and 99.) |
| The strategy cannot change while a container is in replenishment | "İkmaldeki kap varken ikmal stratejisi ya da kaynak depo değişmez — önce kapları dolu işaretleyin." (The replenishment strategy or source warehouse cannot change while a container is in replenishment — mark the containers full first.) |
| The number of containers is reduced only by removing full containers | "Kap sayısı yalnız dolu kaplar çıkarılarak azalır — kullanımdaki ve ikmaldeki kaplar kalır." (The number of containers is reduced only by removing full containers — containers in use and in replenishment remain.) |
## Related
- [Create a kanban control cycle](https://erpdocs.corexlogic.com/en/uretim/islemler/kanban-kontrol-dongusu-olusturma)
- [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
---
# Update parent product prices
> Propose sales prices for produced products from their cost estimate with a profit margin and write the selected ones to a price list.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/ust-urun-fiyatlari
A sales price is proposed for a produced product from its cost estimate (material, activity and overhead rolled up from
the BOM) with a profit margin; the ones you select are written to the price list. A product with incomplete costs gets
no proposal. The screen does not create accounting entries; it only updates the price list.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Ürün Maliyetlendirme › Üst Ürün Fiyatlarını Güncelle (Production › Product Costing › Update Parent Product Prices)
- **Screen route:** `/erp/manufacturing/parent-price-update`
- **Required permission:** `erp-sales-price-lists.edit ve erp-inventory-costs.view (ikisi birden)`

1. Price list — explicit prices, active
2. Markup (%)
3. Calculate — writes nothing
4. Proposed = cost × (1 + markup)
5. Write Selected to List
## Fields
| Field | Rule |
|---|---|
| **Fiyat Listesi** (Price List) | An active list with explicit prices. Prices cannot be written to a derived list (its prices come from the base list); if none exists, the screen shows "Açık fiyatlı aktif fiyat listesi yok — Fiyat Listeleri'nde oluşturun." (No active price list with explicit prices — create one in Price Lists.) |
| **Kâr Payı (%)** (Profit Margin, %) | Between -100 and 10,000 ("Kâr payı -100 ile 10.000 arasında olmalıdır." — The profit margin must be between -100 and 10,000.). |
| **Ondalık** (Decimals) | The number of decimals to which the proposal is rounded, 0–4 (default 2). |
| **Kategori** · **Ara** (Category · Search) | Narrow the scope. The scope is produced products, at most 200 ("Kapsam N ürün — en çok 200; kategori ya da aramayla daraltın." — The scope is N products — at most 200; narrow it with a category or search.). |
| **Yapı Günü** (Structure Date) | The date of the BOM structure used for the cost estimate. |
## Calculation and writing
1. **Hesapla** (Calculate) — writes nothing. Table: **Ürün** (Product) · **Maliyet** (Cost) · **Mevcut Fiyat** (Current
Price) · **Önerilen Fiyat** (Proposed Price) · **Değişim** (Change). The top shows "N ürün · M öneri yok · K seçili"
(N products · M without proposal · K selected).
2. **Proposed price = unit cost × (1 + profit margin / 100)**, rounded half up to the number of **Ondalık** (Decimals).
Example: cost 1,000.00 TRY, profit margin 30% → 1,300.00 TRY.
3. Tick the ones with a proposal (**Önerisi olanların hepsini seç** — Select all with a proposal) and click
**Seçilenleri Listeye Yaz** (Write Selected to List). The confirmation window "Fiyatlar listeye yazılsın mı?" (Write
prices to the list?) → **Listeye Yaz** (Write to List). The proposed price replaces the current price; new sales
documents propose this price, while the list price on saved documents and sales order lines does not change.
For products without a proposal, the reason is shown below the row:
| Reason | What to do |
|---|---|
| "Satılabilir işaretli değil — satış fiyatı girilmez." (Not flagged as salable — no sales price is entered.) | A semi-finished or non-salable product; expected. |
| "Yapılandırılabilir ürün — fiyatı karakteristik farklarıyla verilir." (Configurable product — its price is given with characteristic surcharges.) | Give the price with the price list's characteristic surcharges. |
| "Faaliyet tarifesi tanımsız: ABKANT, …" (Activity rate not defined: ABKANT, …) | Enter activity rates for the work centers ([Work centers](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri)). |
| "Maliyet USD, liste TRY — kur çevrimi yok." (Cost in USD, list in TRY — no currency conversion.) (currencies are examples) | The cost is needed in the list's currency. |
| "Önerilen fiyat geçersiz (eksi ya da sınır dışı)." (Proposed price invalid (negative or out of range).) | Correct the profit margin. |
If one of the selected products has a problem, no price is written: "N üründe sorun var — hiçbir fiyat yazılmadı." (N
products have problems — no prices were written.) If the list was changed at the same time: "Liste fiyatları aynı anda
değiştirildi — yeniden hesaplayıp deneyin." (The list prices were changed at the same time — recalculate and try
again.)
The details of the cost estimate are on the **Maliyet Tahmini** (Cost Estimate) tab of **Çok Seviyeli Ürün Ağacı**
(Multi-Level Bill of Materials): [Multi-level bill of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/cok-seviyeli-urun-agaci).
> **In the demo environment**
Because the demo work centers have no activity rates, none of the produced products gets a proposal, with the reason
"Faaliyet tarifesi tanımsız" (Activity rate not defined); the screenshot shows this situation.
## Related
- [Multi-level bill of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/cok-seviyeli-urun-agaci)
- [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri)
---
# Routings and master recipes
> Routing (operation plan) and master recipe list, the create form, revisions, draft and release, operation fields, external processing and production resources/tools.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar
A routing states **how and where** an item is produced: the sequence of operations, each operation's
[work center](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri), setup/machine/labor time and scrap. When a production order is
released, the operations of the published routing are copied to the order; capacity load, operation confirmations and
the cost estimate read these operations.
A **master recipe** has the same structure but is used for process manufacturing: operations are called **phases**,
work centers are called **resources**, and an order released with a master recipe becomes a process order. Both use
the same screens; the **Ana Reçeteler** (Master Recipes) list shows only records of the master recipe type.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Mühendisliği › Rotalar · Rota Oluştur · Ana Reçeteler · Ana Reçete Oluştur (Production › Production Engineering › Routings · Create Routing · Master Recipes · Create Master Recipe)
- **Screen route:** `/erp/manufacturing/routings`
- **Required permission:** `erp-manufacturing-routings.view (görme) · .create (rota ve ana reçete oluşturma) · .edit (başlık, revizyon, yayın) · .import (İçe Aktar)`
## Routing list

1. New routing
2. Type — routing or master recipe
3. Lot-size range of the alternative
4. Released revision
5. BOM + routing pairing
| Column | Meaning |
|---|---|
| **Çıktı kartı** (Output item) | The item the routing produces. Clicking it opens the routing details. |
| **Tür** (Type) | **Rota** (Routing) or **Ana reçete** (Master recipe). |
| **Alternatif** (Alternative) | The item's routing alternative (Alt. 1, Alt. 2…) and its name. |
| **Parti büyüklüğü** (Lot size) | The quantity range in which the alternative is valid; blank = any quantity. |
| **Yayındaki revizyon** (Published revision) | The most recently published revision. |
| **Revizyon** (Revisions) | Number of revisions. |
Filters **Ara** (Search) and **Tür** (Type). The **Üretim Versiyonları** (Production Versions) link goes to the BOM and
routing pairing. **Dışa Aktar** / **İçe Aktar** (Export / Import) transfer routings in bulk with an Excel workbook.

1. New master recipe
2. Recipe of a process product
3. Released revision
## How the routing alternative is selected
- If the item has a [production version](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari), the routing comes from the version (if
the routing in the version is blank, the order is opened without operations).
- If there is no version, the order's routing is selected from the **lowest-numbered** alternative that covers the
quantity.
## Routing create form

1. Type — fixed after saving
2. Output item — produced items only
3. Lot size — alternative selection
4. Internal or external (subcontract)
5. Minutes; machine/labour per base quantity
6. Add Operation — number +10
7. Save — revision 1 as draft
| Field | Rule |
|---|---|
| **Tür** (Type; required) | **Rota** (Routing) or **Ana reçete** (Master recipe). Cannot be changed after saving. |
| **Çıktı kartı** (Output item; required) | Produced items only; an inactive item cannot be selected. If the item already has a routing, the new routing becomes the next alternative (the alternative number is assigned on save). |
| **Rota adı** (Routing name) | The alternative's name (e.g. "Seri hat" — Series line). |
| **Parti büyüklüğü** (Lot size) | Minimum – maximum, in the item's base unit; blank = any quantity. |
| **Temel miktar** (Base quantity; required) | Standard values are entered for this quantity; greater than zero. |
### Operations table
| Column | Rule |
|---|---|
| **Operasyon** (Operation) | Number 1–9999, unique within the routing. **Operasyon Ekle** (Add Operation) assigns the next number (in steps of 10). At least 1, at most 99 operations. |
| **Açıklama** (Description) | The operation's name. |
| **İş merkezi** (Work center; required) | An active work center; an inactive work center cannot be selected. |
| **Kontrol anahtarı** (Control key) | **İç işlem** (Internal processing) or **Dış işlem** (External processing, subcontracting). For external processing, select a **Dış işlem hizmet kartı** (External processing service item; a purchased service item); a service item cannot be selected for internal processing. |
| **Hazırlık (dk)** (Setup, min) | Fixed setup time; not scaled by quantity on the order. |
| **Makine (dk)**, **İşçilik (dk)** (Machine, Labor, min) | Per base quantity; scaled by quantity on the order. Times are 0 or positive, at most two decimals. |
| **Fire (%)** (Scrap, %) | Operation scrap, between 0 and 100 (100 excluded). Increases the quantity to be processed by the preceding operations. |
Icons at the end of the row:
- **Kalıp/aparat** (Production resource/tool) — the operation's production resource/tool (PRT) and **Birim başına
kullanım** (Usage per unit). Operations that require the same tool do not overlap in the schedule. Cannot be assigned
if the Maintenance module is disabled.
- **Seçim koşulu ve formüller** (Selection condition and formulas) — only in the routing of a configurable item:
**Seçim koşulu** (Selection condition; in which configuration the operation is included, e.g.
`KONTROL_TIPI IN ('PLC')`) and **Hazırlık formülü (dk)** (Setup formula, min), **Makine formülü (dk)** (Machine
formula, min), **İşçilik formülü (dk)** (Labor formula, min). Language and examples: [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar).
- **Kaldır** (Remove) — deletes the operation.
**Rotayı Kaydet** (Save Routing; for a master recipe **Ana Reçeteyi Kaydet**, Save Master Recipe) saves the routing
with revision 1 as **Taslak** (Draft).
## Routing details

1. Edit Draft
2. Release — with change number or from today
3. Routing name and lot size
4. Operation work center
The upper section shows **Çıktı kartı** (Output item), **Tür** (Type), **Alternatif** (Alternative), **Parti
büyüklüğü** (Lot size) and **Temel birim** (Base unit). **Başlığı Düzenle** (Edit Header) changes the routing name and
lot size. The **Revizyonlar** (Revisions) table: **Revizyon** (Revision; **Etkin** (Effective) next to the one valid
today), **Durum** (Status), **Temel miktar** (Base quantity), **Operasyon** (number of operations), **Yayın**
(Release), **Geçerlilik** (Validity), **Değişiklik No** (Change No.). The operations of the selected revision are
listed below.
| Button | When | What it does |
|---|---|---|
| **Taslağı Düzenle** (Edit Draft) | On a draft revision | Changes the operations and base quantity (**Taslağı Kaydet**, Save Draft). |
| **Yayınla** (Publish) | On a draft revision | The **Rota revizyonu yayınlansın mı?** (Publish routing revision?) window: optional **Değişiklik numarası** (Change number), **Revizyonu Yayınla** (Publish Revision). |
| **Yeni Revizyon** (New Revision) | When there is no draft | The **Yeni Revizyon** (New Revision) window opens prefilled with the operations of the highest-numbered revision; **Revizyonu Oluştur** (Create Revision) saves a draft. |

1. Prefilled with the latest revision
2. Add operation
3. Create Revision — draft
### Revision statuses
| Status | Meaning | Actions |
|---|---|---|
| **Taslak** (Draft) | The revision being prepared; a routing can have only one draft at a time. | **Taslağı Düzenle** (Edit Draft), **Yayınla** (Publish). |
| **Yayınlandı** (Published) | The finalized operation plan; it does not change. | None — changes are made with **Yeni Revizyon** (New Revision). |
A revision published with a change number is valid from the number's validity date; one published without a number is
valid from today. Validity follows the revision sequence.
## Common messages
| Message | English meaning | Cause / solution |
|---|---|---|
| Rota en az bir operasyon içermelidir. | A routing must contain at least one operation. | An attempt was made to save without operations. |
| Operasyon numaraları rota içinde tekil olmalı. | Operation numbers must be unique within the routing. | The same number on two rows. |
| N numaralı operasyonun iş merkezi seçilmelidir. | A work center must be selected for operation N. | The work center is blank. |
| '…' iş merkezi pasif — rotaya seçilemez. | Work center '…' is inactive — it cannot be selected for a routing. | The work center has been deactivated. |
| '…' üretilebilir değil — rota yalnız üretilen karta açılır. | '…' is not producible — a routing can be opened only for a produced item. | A routing cannot be opened for a purchased item. |
| N numaralı operasyon iç işlem — hizmet kartı yalnız dış işlemde seçilir. | Operation N is internal processing — a service item can be selected only for external processing. | Set the control key to **Dış işlem** (External processing) or remove the service item. |
| Bu rotada zaten düzenlenebilir bir taslak revizyon var. | This routing already has an editable draft revision. | Publish the draft first. |
| Rota revizyonu N gg.aa.yyyy tarihinden geçerli olamaz — önceki revizyon M gg.aa.yyyy tarihinden geçerli. | Routing revision N cannot be valid from dd.mm.yyyy — the previous revision M is valid from dd.mm.yyyy. | The date of the selected change number is earlier than the previous revision. |
| Bu rota konfigürasyona göre çözülür — emir yapılandırılmış bir satırdan açılmalı. | This routing is resolved by configuration — the order must be opened from a configured line. | A conditional routing cannot be used on an order without a configuration. |
| Konfigürasyon rotanın hiçbir operasyonunu seçmiyor — rotanın seçim koşullarını düzeltin. | The configuration does not select any operation of the routing — correct the routing's selection conditions. | None of the selection conditions was met. |
| Rota başka bir kullanıcı tarafından değiştirildi. Sayfayı yenileyin. | The routing was changed by another user. Refresh the page. | Concurrent change. |
## Related
- [Create a routing](https://erpdocs.corexlogic.com/en/uretim/islemler/rota-olusturma)
- [Work centers](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri)
- [Production versions](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari)
- [Engineering changes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri)
- [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar)
---
# Production versions
> Define with which BOM alternative and which routing, in which lot size and on which dates an item is produced.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari
A production version defines **with which BOM alternative** and **with which routing** an item is produced, together
with the lot size and validity range. If a version is defined, planning, explosion and the production order select the
BOM and routing from the version; if no version matches, no BOM is guessed. For an item without versions, the BOM is
selected from the lowest-numbered alternative that covers the lot size.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Mühendisliği › Üretim Versiyonları (Production › Production Engineering › Production Versions)
- **Screen route:** `/erp/manufacturing/production-versions`
- **Required permission:** `erp-manufacturing-boms.view (görme) · .create (oluşturma) · .edit (düzenleme, kilitleme)`
There is no separate "Create" menu: a version is created in the **Üretim Versiyonu Oluştur** (Create Production
Version) window in the list and changed with the row's **İşlemler › Düzenle** (Actions › Edit) command. A version is
not deleted; if it will no longer be used, set it to **Kilitli** (Locked).
## List

1. New production version
2. BOM and routing alternative
3. Validity range
4. Status — Open or Locked
| Column | Meaning |
|---|---|
| **Çıktı kartı** (Output item) | The version's item. |
| **Versiyon** (Version) | Version number and name. |
| **Ağaç · rota** (BOM · routing) | BOM alternative and routing alternative (e.g. "Ağaç Alt. 1 · Rota Alt. 1" — BOM Alt. 1 · Routing Alt. 1). |
| **Parti büyüklüğü** (Lot size) | The valid quantity range; "Her miktar" (Any quantity) = unlimited. |
| **Geçerlilik** (Validity) | Start day and (if any) end day. |
| **Durum** (Status) | **Açık** (Open) or **Kilitli** (Locked); a repetitive manufacturing version also has a **Seri üretim** (Repetitive manufacturing) badge. |
The **Üretim Versiyonları** (Production Versions) link in the routing details filters the list to that item's
versions ("Tek kartın versiyonları" — Versions of a single item).
## Create Production Version window

1. Version — smallest number wins
2. Production BOM alternative
3. Routing — empty means no operations
4. Lot-size range
5. Repetitive — production without orders
| Field | Rule |
|---|---|
| **Çıktı kartı** (Output item; required) | A produced item. Cannot be changed when editing. |
| **Versiyon** (Version; required) | Number; unique for the item. If several versions match, the lower number is selected. |
| **Ad** (Name) | Short name (e.g. "Hat 2" — Line 2). |
| **Ürün ağacı** (BOM; required) | One of the item's BOM alternatives with **production** usage. An engineering BOM cannot be selected. |
| **Rota** (Routing) | One of the item's routing alternatives, or **Rota yok — emir operasyonsuz** (No routing — order without operations). |
| **Parti büyüklüğü** (Lot size) | Minimum – maximum, in the item's base unit; blank = any quantity. |
| **Geçerlilik** (Validity; start required) | The start defaults to today; a blank end = unlimited. The end cannot be before the start. |
| **Seri üretim** (Repetitive manufacturing) | A ticked version is produced without orders: the Repetitive Manufacturing Confirmation explodes the BOM on the confirmation date, components are issued by backflush, and open planned orders are reduced. |
| **Kilitli** (Locked; only when editing) | A locked version is ignored during selection. Locking the only version of an item makes the item's BOM impossible to find. |
## Selection rule
1. The item's **open** (unlocked) versions whose dates and lot size match the planned quantity are searched.
2. If several match, the **lowest version number** is selected; the BOM and routing come from it.
3. If the item has versions but none matches, no BOM is selected — the order or planned order cannot be opened.
4. If the item has no versions at all, the BOM and routing are selected by the lot size of the alternatives.
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| Üretim versiyonu bir üretim ağacı ister. | A production version requires a production BOM. | No **Ürün ağacı** (BOM) was selected. |
| Üretim versiyonu yalnız üretim kullanımındaki ağacı alır. | A production version accepts only a BOM with production usage. | An engineering BOM was submitted. |
| Ağaç bu kartın ağaçlarından biri olmalı. · Rota bu kartın rotalarından biri olmalı. | The BOM must be one of this item's BOMs. · The routing must be one of this item's routings. | A BOM/routing belonging to another item. |
| '…' için N numaralı versiyon zaten var. | Version N already exists for '…'. | The version number is in use. |
| Geçerlilik başlangıcı zorunlu. · Geçerlilik bitişi başlangıçtan önce olamaz. | The validity start is required. · The validity end cannot be before the start. | Date error. |
| Üretim versiyonu üretilen bir karta açılır. | A production version is opened for a produced item. | A purchased item was selected. |
| Üretim versiyonu başka bir kullanıcı tarafından değiştirildi. Sayfayı yenileyin. | The production version was changed by another user. Refresh the page. | Concurrent change. |
## Related
- [Define a production version](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-versiyonu-tanimlama)
- [Bills of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
- [Routings](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar)
---
# Run MRP
> Review the simulation list and run MRP — a draft purchase requisition and planned production orders are written.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Planlama › MRP Koşusu (Production › Production Planning › MRP Run)
- **Screen route:** `/erp/demand/mrp`
- **Required permission:** `erp-demand-material-requirements.view`, `erp-demand-mrp-runs.create`
- **Prerequisites:**
- The **Planlama stratejisi** (Planning strategy) of the cards to be planned is *Stoğa Üretim* (Make-to-Stock) or *Siparişe Üretim* (Make-to-Order), and the **Varsayılan tedarik yolu** (Default procurement type) is filled in (Planlama Verileri (Planning Data)).
- For safety stock, **Minimum stok** (Minimum stock) is defined on the card, and for the proposal ceiling **Maksimum stok** (Maximum stock) (Stok Verileri (Stock Data); optional).
- The produced card has a released bill of materials — otherwise the proposal cannot be exploded.
The run converts the proposals you see in the list into documents. The list itself is always a simulation; the run
writes only with **MRP'yi Çalıştır** (Run MRP) or with the [nightly job](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu).
## Steps
1. Open the **Üretim › Üretim Planlama › MRP Koşusu** (Production › Production Planning › MRP Run) screen. The list is recalculated every time it is opened; nothing is written yet.

1. Run MRP — writes requisition and planned orders
2. Simulation — scenario, writes nothing
3. Nightly job — automatic run every night
4. Only items with proposals
5. Proposed quantity and its outcome (requisition / planned order)
6. Exception badges — hover for the message
2. Turn on the **Yalnız önerisi olanlar** (Only items with proposals) switch and review the proposals. To see the reasoning for a card, click its row; the **Stok/İhtiyaç Listesi** (Stock/Requirements List) shows supply, requirements and proposals day by day.

1. Safety stock = item minimum; proposal fills up to the maximum
2. Proposals — requirement, start, delivery
3. Timeline — available quantity element by element
4. Pegging — where the requirement comes from
3. Check the badges in the **İstisnalar** (Exceptions) column (e.g. **Tedarik süresi yok** (No lead time), **Ağaç yok ya da uygun alternatif/geçerli revizyon yok** (No BOM or no suitable alternative/valid revision)) and correct the card's planning data if necessary.
4. To try a scenario, optionally open **Simülasyon** (Simulation): enter a **Tahmin ölçeği (%)** (Forecast scale, %) and additional demand and press **Simüle Et** (Simulate). The simulation does not write anything.

1. Forecast scale — 100 as is
2. Extra demands — item, date, quantity
3. Simulate — writes nothing
4. Items whose proposal changes (current → scenario)
5. Click **MRP'yi Çalıştır** (Run MRP).

1. Unfirmed MRP orders are rebuilt
2. Make to order: order pegged to sales item
3. Run
6. Click **Çalıştır** (Run) in the window.
7. Go to the planned orders with the **Planlı Emirler** (Planned Orders) link in the result, and to the draft requisition with the requisition number. If there is a **Talebe ya da planlı emre giremeyen öneriler** (Proposals that could not be included in a requisition or planned order) list, resolve the causes.
**Result:** The proposals for purchased cards are written to a single **draft purchase requisition** (TLP-yyyy-nnnnnn), and the proposals for produced cards to **planned orders** (PLO-yyyy-nnnnnn). The requisition remains a draft until you send it. Next step: [convert the planned order into a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme).
## What you need to know
- **Running again is safe:** an old MRP draft requisition that has not been sent or edited, and MRP planned orders that
have not been firmed, are cancelled and rebuilt. A requisition that has been sent or edited, and a planned order that
has been firmed, changed or opened manually, are kept and count as supply. The cancelled documents are listed with
their numbers in the result section.
- **If you want to keep a planned order**, firm it or convert it into a production order before the run.
- The window carries a single key against double clicks: a second run from the same window does not open a second
requisition.
- The proposal for a make-to-order card is generated per sales order item, and the planned order is linked to that
item; the configuration comes from the sales order item.
- It is normal for proposals to still appear in the list after the run: a planned order from MRP that has not been
firmed does not count as supply.
- If an error occurs, the window shows "MRP koşusu tamamlanamadı." (The MRP run could not be completed.) and the
server's reason; the window stays open and you can try again.
## Related
- [MRP run screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu)
- [Planned orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-emirler)
- [Enter planned independent requirements](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-bagimsiz-ihtiyac-girme)
- [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
---
# Bills of materials
> The bill of materials (recipe) list, BOM details, revisions, draft and release, validity, alternative BOMs, engineering and production usage.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari
A bill of materials (BOM) states which materials, and how much of each, are needed for the **base quantity** of a
produced item (semi-finished or finished product). Production orders, planned orders and MRP calculate material
requirements from it. The BOM's content is held in **revisions**: a revision is first created as **Taslak** (Draft),
is finalized with **Yayınla** (Publish) and never changes again; changes are made with a new revision.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Ürün Ağaçları · Ürün Ağacı Oluştur (Production › Master Data › Bills of Materials · Create Bill of Materials)
- **Screen route:** `/erp/manufacturing/boms`
- **Required permission:** `erp-manufacturing-boms.view (görme, Yapılandırarak Dene) · .create (yeni ağaç, Üretim Ağacına Kopyala) · .edit (revizyon açma, düzenleme, yayınlama, başlık) · .import (İçe Aktar)`
## BOM list
**Üretim › Ana Veriler › Ürün Ağaçları** (Production › Master Data › Bills of Materials) lists the BOMs of each output
item. BOMs are not deleted.

1. New bill of material
2. Usage filter — production or engineering
3. Released revision and open draft
4. Click the output item to open the BOM
5. Bulk import from Excel
| Column | Meaning |
|---|---|
| **Çıktı Kartı** (Output Item) | The item the BOM produces (name and code). Clicking it opens the BOM details. |
| **Alternatif** (Alternative) | The BOM number of the same item in the same usage (Alt. 1, Alt. 2…) and its name. |
| **Revizyon Durumu** (Revision Status) | The published revision and an open draft, if any. |
| **Revizyon** (Revisions) | Total number of revisions. |
| **Kayıt** (Record) | The BOM's record number. |
Filters: **Ara** (Search; output item code or name) and **Kullanım** (Usage; **Tümü** (All), **Üretim** (Production),
**Mühendislik** (Engineering)). **Dışa Aktar** (Export) and **İçe Aktar** (Import) transfer BOMs in bulk with an Excel
workbook.
## Usage: Production and Engineering
| Usage | Purpose | Planning and orders |
|---|---|---|
| **Üretim** (Production) | The recipe for actual production. | Planning, planned orders, MRP and production orders read only production BOMs. |
| **Mühendislik** (Engineering) | Design BOM (product in the design phase). | Not used in planning, explosion or production orders. When ready, it is transferred to production with **Üretim Ağacına Kopyala** (Copy to Production BOM). |
## Alternative BOMs and lot size
An item can have several BOMs in the same usage: when a second BOM is saved, it becomes the **next alternative**. Each
alternative has an **Alternatif adı** (Alternative name) and a **Parti büyüklüğü** (Lot size; minimum – maximum, in the
item's base unit, limits included; blank = any quantity).
- If a [production version](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari) is defined, planning and orders select the BOM from
the version.
- If there is no version, planning selects the **lowest-numbered** alternative that covers the quantity. If no
alternative matches, no BOM is selected ([Multi-level bill of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/cok-seviyeli-urun-agaci)
shows this as "Parti büyüklüğüne uyan alternatif yok" — No alternative matching the lot size).
- A user who opens a production order manually can also select an alternative outside the range.
## BOM details
The BOM details show all revisions of the BOM and their validity.

1. Release the draft
2. Copy engineering BOM to production
3. Revision effective today
4. Usage, alternative name, lot size
5. Revision valid-from date
| Section | Content |
|---|---|
| **Özet** (Summary) | **Çıktı Kartı** (Output Item), **Toplam Revizyon** (Total Revisions), **Yayında** (Published; the most recently published revision), **Bugün etkin** (Effective today; the revision valid today; if its validity has not started yet, "Geçerliliği henüz başlamadı" — Validity has not started yet). |
| **Değişmezlik ve geçerlilik** (Immutability and validity) | Rule reminder: a published revision cannot be changed or deleted. |
| **Kullanım ve Alternatif** (Usage and Alternative) | **Kullanım** (Usage), **Alternatif** (Alternative), **Parti büyüklüğü** (Lot size) and the other BOMs of the same item. **Başlığı Düzenle** (Edit Header) can also be opened here. |
| **Revizyonlar** (Revisions) | The revision list, newest at the top. |
Buttons in the header:
| Button | When it is shown | What it does |
|---|---|---|
| **Yayınla (Rev. N)** (Publish, Rev. N) | When there is a draft revision, with the edit permission | Opens the publish window ([Publish a BOM](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama)). |
| **Yeni Revizyon** (New Revision) | When there is no draft, with the edit permission | Opens the new draft revision form ([Open a revision](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-revizyonu-acma)). |
| **Çok Seviyeli Göster** (Show Multi-Level) | On a production BOM with a published revision | Opens the item's multi-level explosion. |
| **Üretim Ağacına Kopyala** (Copy to Production BOM) | On an engineering BOM, with the create permission | Copies the most recently published revision (or the draft if there is none) as a new production alternative. |
| **Başlığı Düzenle** (Edit Header) | With the edit permission | Changes **Kullanım** (Usage), **Alternatif adı** (Alternative name) and **Parti büyüklüğü** (Lot size). The range immediately affects the next MRP run and order selection; the content of published revisions does not change. |

1. New Revision — only when no draft exists
2. Multi-level explosion
3. Revision status
### Revisions table
| Column | Meaning |
|---|---|
| **Revizyon** (Revision) | Revision number; the **Etkin** (Effective) badge next to the one valid today. |
| **Durum** (Status) | **Taslak** (Draft) or **Yayınlandı** (Published). |
| **Temel Çıktı** (Base Output) | The revision's base quantity and unit. |
| **Yayın Tarihi** (Release Date) | The day it was published. |
| **Geçerlilik** (Validity) | The first day on which the revision is valid. |
| **Değişiklik No** (Change No.) | The number, if the revision was published with a change number. |
| **İşlem** (Action) | The **İşlemler** (Actions) menu: **Görüntüle** (View); on a draft also **Düzenle** (Edit) and **Yayınla** (Publish). |
## Revision statuses
| Status | Meaning | Allowed actions |
|---|---|---|
| **Taslak** (Draft) | The revision being prepared. A BOM can have only **one** draft at a time. | **Düzenle** (Edit), **Yayınla** (Publish). A draft is not deleted; it is corrected or published. |
| **Yayınlandı** (Published) | The finalized production definition. | No changes at all. For changes, **Yeni Revizyon** (New Revision). A published revision does not return to draft. |
### Validity and effective revision
- A revision published without selecting a change number is valid **from the release date**.
- A revision published with a [change number](https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri) is valid from the number's
**valid-from date**; until that day the previous revision remains effective.
- The **effective revision** is the highest-numbered revision whose validity has started on that day. MRP explodes a
planned order with the BOM valid on its start date.
- Publishing does not affect existing production orders: each order selects its own revision, and the material
requirements of a released order stay frozen. On a manually opened production order, the plan list shows only
revisions that are published and whose validity has started; engineering BOMs are not shown.
## Revision details
The revision details show **Tanım** (Definition; **Temel Çıktı Miktarı** (Base Output Quantity), **Malzeme Satırı**
(Material Lines), **Montaj Firesi** (Assembly Scrap), release and validity information) and the **Malzemeler**
(Materials) table (**Sıra** (Seq.), **Malzeme** (Material), **Miktar** (Quantity), **Birim** (Unit)). A draft revision
has **Düzenle** (Edit) and **Yayınla** (Publish) in the header; a published revision has no change buttons.

1. Edit — draft only
2. Release
3. Component scrap
4. Backflushed line
Notes below the material cell:
| Note | Meaning |
|---|---|
| **+ %N fire** (+ N% scrap) | Component scrap; on the order the requirement increases by this percentage. |
| **Geri sarf — çıktı üretilen orana göre sarf eder** (Backflush — consumes in proportion to output produced) | A backflush line. |
| **N alternatif** · **Strateji: …** (N alternatives · Strategy: …) | The line's alternative items and strategy; alternatives are listed under the primary with the **Alternatif:** (Alternative:) prefix. |
| Rule text | In the BOM of a configurable product, the line's condition and formula ([Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar)). |
| **Yapılandırılabilir bileşen** (Configurable component) | The component itself is configurable; any value transfers are written as `KOD := ifade` (code := expression). |
A revision with by-products and co-products also shows the **Yan / Ortak Ürünler** (By-Products / Co-Products) table
(**No**, **Kart** (Item), **Tür** (Type), **Miktar** (Quantity), **Birim** (Unit), **Maliyet Payı** (Cost Share)).
## BOM form
**Ürün Ağacı Oluştur** (Create Bill of Materials), **Yeni Revizyon** (New Revision) and draft **Düzenle** (Edit) use the
same form.

1. Output item — produced items only
2. Base quantity — line quantities refer to it
3. Usage — Production or Engineering
4. Add Material — pick several items
5. Component scrap (%)
6. Backflush — consumed automatically with output
7. Save — draft revision 1 is created
### BOM Definition
| Field | Rule |
|---|---|
| **Çıktı Kartı** (Output Item; required) | Only items flagged as "Üretim ürünü" (Production product; semi-finished, finished) are listed. A BOM cannot be defined for an inactive item or a service item. Cannot be changed in a revision; for a different item, create a new BOM. |
| **Temel Miktar** (Base Quantity; required) | The output quantity and unit to which the line quantities refer. Greater than zero; an integer for a serial-number-managed output. On the order the requirement is scaled as `satır × plan / temel` (line × plan / base). |
| **Montaj Firesi (%)** (Assembly Scrap, %) | Blank = no scrap. All components increase by this percentage; the planned output does not change. Between 0 and 100 (100 excluded), at most two decimals. |
| **Kullanım** (Usage) | **Üretim** (Production) or **Mühendislik** (Engineering) (only on a new BOM). |
| **Alternatif adı** (Alternative name) | Short name of the alternative (e.g. "Büyük parti, fason montaj" — Large lot, subcontracted assembly). |
| **Parti büyüklüğü** (Lot size) | Minimum – maximum; blank = unlimited. The lower limit cannot be greater than the upper limit. |
### Materials
In the **Malzeme Ekle** (Add Material) window you can select several items; each becomes a separate line. **Boş
Satır** (Empty Line) is for entering a code by typing it. At least one line is required.
| Field | Rule |
|---|---|
| **Malzeme Kartı** (Material Item) | Type a code or name and press [[Enter]]; the magnifier or [[F4]] opens the list. The BOM's own output item, an inactive item and a service item cannot be selected. |
| **Miktar** (Quantity) | Per base quantity. Greater than zero; an integer for a serial-number-managed component; up to the decimal precision of the unit. |
| **Birim** (Unit) | One of the item's units; must be convertible to the base unit. |
| **Bileşen firesi (%)** (Component scrap, %) | On the order the requirement is `ölçeklenen × (1 + fire/100)` (scaled × (1 + scrap/100)), rounded up to the precision of the unit. Alternatives increase too. |
| **Geri sarf** (Backflush) | A ticked component is consumed automatically in the planned proportion when output is posted (alternatives too). A serial-number-managed component is not backflushed. |
| **Alternatif** › **Ekle** (Alternative › Add) | Adds an allowed alternative item to the line (in order of priority). On a line without alternatives, the item is required. |
An item can appear in a revision **only once**, as either primary or alternative. The only exception is the BOM of a
configurable product: two lines whose option conditions exclude each other can carry the same item
([Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar)).
### Alternative strategy
On a line with alternatives, a **Strateji** (Strategy) is selected:
| Strategy | Behavior |
|---|---|
| **Öncelik** (Priority) | The primary item carries the entire requirement. If the primary's stock is insufficient, the alternatives are proposed in this order on the production order; the planner makes the choice. |
| **Kullanım olasılığı** (Usage probability) | An **Olasılık %** (Probability %) is entered for each alternative; the requirement is split by this ratio (order release, draft preview, MRP). The remaining share belongs to the primary (**Birincil kart payı**, Primary item share); the total cannot exceed 100. |
### By-Products / Co-Products
Products that arise together with the order's output (at most 20 lines). Added with **Yan / Ortak Ürün Ekle** (Add
By-Product / Co-Product).
| Field | Rule |
|---|---|
| **Kart** (Item) | A stock-managed item. Cannot be the BOM's output or a component of the same revision; an item only once. Cannot be a configurable parent item. |
| **Miktar**, **Birim** (Quantity, Unit) | Per base quantity of the output; greater than zero, at most 6 decimals. |
| **Tür** (Type) | **Yan ürün** (By-product; enters at its current value, and the value is deducted from the order's cost) or **Ortak ürün** (Co-product; shares the cost by its share). |
| **Maliyet payı (%)** (Cost share, %) | Only for a co-product; between 0 and 100 (exclusive). The total of the co-products' shares must be less than 100 — the remainder belongs to the main product. |
MRP does not count by-products and co-products as components. The by-products/co-products of a published revision do
not change.
## BOM of a configurable product (super BOM)
If the output item is configurable, the BOM carries all options and a rule can be written on each line: in the edit
form, the line's **Kuralı Düzenle** (Edit Rule) icon opens the **Satır Kuralı** (Line Rule) window (option condition,
expression condition, formula quantity). On the line of a configurable component, a **value transfer** (calculating the
component's characteristic from the parent product's values) is also written; such a line cannot carry alternatives.
The **Yapılandırarak Dene** (Try by Configuring) button in the revision details shows, without saving, which lines would
come into the order and in what quantity with the characteristic values entered.

1. Try With Configuration — test with values
2. Line rule (condition)
Language and examples of conditions: [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar). Steps for trying:
[Try by configuring](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme).
## Common messages
| Message | English meaning | Cause / solution |
|---|---|---|
| Bu ürün ağacında zaten düzenlenebilir bir taslak revizyon var. Önce mevcut taslağı yayınlayın ya da güncelleyin. | This BOM already has an editable draft revision. Publish or update the existing draft first. | A new revision cannot be opened while the BOM has a draft. |
| Yayınlanmış revizyon değiştirilemez. Değişiklik için yeni bir taslak revizyon oluşturun. | A published revision cannot be changed. Create a new draft revision for changes. | An attempt was made to edit a published revision. |
| Yalnız Taslak durumundaki revizyon yayınlanabilir. | Only a revision in Draft status can be published. | The revision was published in another session; refresh the page. |
| Bu revizyon yayınlanırsa ürün ağacı grafında döngü oluşur — bir malzeme zinciri dolaylı olarak bu çıktı kartına geri dönüyor. | If this revision is published, a loop is created in the BOM graph — a material chain leads back indirectly to this output item. | One of the sub-BOMs uses this item (indirectly) as a component. |
| Ürün ağacı kendi çıktı kartını malzeme olarak içeremez. | A BOM cannot contain its own output item as a material. | The output item was entered on a line. |
| Aynı stok kartı bir revizyonda yalnız bir malzeme satırında yer alabilir. | The same stock item can appear on only one material line in a revision. | The same item on two lines; merge the lines. |
| Bir stok kartı bir revizyonda birincil ya da alternatif olarak yalnız bir kez yer alabilir. | A stock item can appear only once in a revision, as primary or alternative. | The item is both primary and alternative. |
| Revizyon en az bir malzeme satırı içermelidir. | A revision must contain at least one material line. | An attempt was made to save without lines. |
| '…' seri takipli — malzeme miktarı tam sayı olmalıdır. | '…' is serial-number managed — the material quantity must be an integer. | A decimal quantity was entered for a serial-number-managed component. |
| '…' pasif — pasif stok kartı ürün ağacında kullanılamaz. | '…' is inactive — an inactive stock item cannot be used in a BOM. | The item has been deactivated. |
| Bu kartın bu kullanımda en çok … alternatif ağacı olabilir. | This item can have at most … alternative BOMs in this usage. | The alternative limit has been reached. |
| Ürün ağacı başka bir kullanıcı tarafından değiştirildi. Sayfayı yenileyin. | The BOM was changed by another user. Refresh the page. | Two people edited at the same time; use **Ürün ağacını yeniden yükle** (Reload BOM). |
## Related
- [Create a bill of materials](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-olusturma)
- [Open a BOM revision](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agaci-revizyonu-acma)
- [Publish a BOM](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama)
- [Multi-level bill of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/cok-seviyeli-urun-agaci)
- [BOM component management](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-bilesen-yonetimi)
- [BOM comparison](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-karsilastirma)
- [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar)
---
# Convert a planned order into a production order
> Open a draft production order from an open planned order — a single order from the detail, several orders collectively from the list.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Planlama › Planlı Emirler › planlı emir detayı › Üretim Emrine Dönüştür (Production › Production Planning › Planned Orders › planned order detail › Convert to Production Order)
- **Screen route:** `/erp/manufacturing/planned-orders/{id}`
- **Required permission:** `erp-manufacturing-planned-orders.edit`, `erp-manufacturing-orders.create`
- **Prerequisites:**
- The planned order is in **Açık** (Open) status.
- The card has a **released production BOM** that is valid on the planned order's start day and fits the quantity.
- The card is not configurable (a configurable item is produced from a sales order).
A planned order is only a plan; material consumption, operation confirmation and output are recorded on the
**production order**. The conversion opens a draft production order and closes the planned order — both together, in a
single operation.
## Steps
1. Open the **Üretim › Üretim Planlama › Planlı Emirler** (Production › Production Planning › Planned Orders) screen.

1. Open Planned Order — manually
2. Source — MRP or Manual
3. Firm — MRP does not rebuild
4. Resulting production order
2. Click the number of the planned order to convert. Check the materials that will go into the order in the **Bileşen Önizlemesi** (Component Preview) on the detail.

1. Convert to Production Order — draft order
2. Change — quantity and dates; firms the order
3. Firm
4. Cancel — reason required
5. Component preview — from the latest released BOM
3. If the quantity or date is to change, first correct it with **Değiştir** (Change) (the order is firmed).
4. Click **Üretim Emrine Dönüştür** (Convert to Production Order).
5. Click **Dönüştür** (Convert) in the window.

1. Convert
**Result:** The draft production order is opened with the number **UE-yyyy-nnnnnn** from the card's latest released BOM; the quantity is in the BOM's base unit, and the dates come from the planned order. The planned order becomes **Dönüştü** (Converted) and is linked to the order in the list. For a make-to-order order, the link to the sales order item passes to the production order. Next step: [release the production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama).
## Convert collectively
In the list, check the boxes of the open planned orders and press **Üretim Emrine Dönüştür** (Convert to Production
Order) in the toolbar (at most 50 orders). Each order is converted in its own transaction: if one is rejected, the
others continue. The result window shows, for each order, the production order opened or the reason.
## What you need to know
- The conversion can be rejected with these server messages:
- "'KOD' için yayınlanmış üretim ağacı yok — planlı emir ağaçtan üretim emri açar; ağaçsız emri Üretim
Emirleri ekranından açın." (There is no released production BOM for 'KOD' — a planned order opens a production
order from the BOM; open an order without a BOM from the Production Orders screen.)
- "'KOD' ağacının gg.aa.yyyy tarihinde geçerli revizyonu yok — geçerlilik daha sonra başlıyor." (The BOM of 'KOD' has
no revision valid on dd.mm.yyyy — validity starts later.)
- "'KOD' için N parti büyüklüğünü kapsayan üretim alternatifi yok — alternatiflerin parti büyüklüğü
aralığını düzenleyin ya da miktarı değiştirin." (There is no production alternative for 'KOD' covering lot size N —
edit the lot-size range of the alternatives or change the quantity.)
- "'KOD' için gg.aa.yyyy gününde N miktara uyan üretim versiyonu yok." (There is no production version for 'KOD' that
fits quantity N on dd.mm.yyyy.)
- "'KOD' temel birimi ağacın çıktı birimine çevrilemiyor." (The base unit of 'KOD' cannot be converted to the BOM's
output unit.)
- "Yalnız açık planlı emir üretim emrine dönüştürülür." (Only an open planned order can be converted into a production
order.)
- "Planlı emir bu arada değişti — sayfayı yenileyip yeniden deneyin." (The planned order changed in the meantime —
refresh the page and try again.)
- A planned order whose start is in the past can be converted; the production order's start is moved to today.
- The production order is created as **Taslak** (Draft): material requirements and operations are created when the
order is released, from the revision valid at that moment.
- The conversion cannot be undone. If you change your mind, cancel the production order; if the requirement persists,
the next MRP run generates a new proposal.
## Related
- [Planned orders screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-emirler)
- [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
- [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
---
# Multi-level bill of materials
> Explode an item's BOM level by level, see the products the item goes into (where-used) and the material cost estimate.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/cok-seviyeli-urun-agaci
This report expands an item's BOM level by level together with its subassemblies, shows which products an item goes
into, and produces a material/activity cost estimate. The report does not write anything; the calculation is the same
as the planned order explosion. The **Çok Seviyeli Göster** (Show Multi-Level) link in the BOM details also opens this
screen.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Çok Seviyeli Ürün Ağacı (Production › Master Data › Multi-Level Bill of Materials)
- **Screen route:** `/erp/manufacturing/bom-structure`
- **Required permission:** `erp-manufacturing-boms.view (patlatma ve kullanım yerleri) · erp-inventory-costs.view (Maliyet Tahmini sekmesi)`
The three tabs work with a shared **Kart** (Item) and **Tarih** (Date) value:
- **Kart** (Item) — an item with a published BOM (for where-used: an item that appears in a published BOM).
- **Tarih** (Date) — the day of the effective structure; blank = today. At every level, the **revision effective on
that date** of the production alternatives is used (a revision published with a change number for a future date is
not visible until that day).
- **Miktar** (Quantity) — in the item's base unit; blank = 1.
## Multi-Level Explosion

1. Tabs — explosion, where-used, cost
2. Date — structure effective that day
3. Quantity to explode
4. Expand all levels
5. Node status — expanded, lowest level…
The header shows a summary of the selected structure (e.g. `1 ADET MAM-0004 · Alt. 1 · Rev. 1 · 10 düğüm · 02.11.2026
tarihli yapı` — 1 piece MAM-0004 · Alt. 1 · Rev. 1 · 10 nodes · structure as of 02.11.2026). Quantities are calculated
the same way as for a planned order: scale × scrap; a line with scrap is rounded up to the precision of the unit; the
alternative is selected by lot size.
Views:
| View | Content |
|---|---|
| **Girintili** (Indented) | Tree structure. Columns **Kalem** (Item; e.g. 3.1), **Malzeme** (Material), **Miktar** (Quantity), **Fire** (Scrap), **Durum** (Status). Lower levels open with **Tümünü Aç** / **Tümünü Kapat** (Expand All / Collapse All) or the arrow on the row. |
| **Özet** (Summary) | The total of the same material across all levels: **Malzeme** (Material), **Toplam Miktar** (Total Quantity), **Geçtiği Yer** (Used In), **Seviye** (Level; **Ara seviye** (Intermediate level) or **En alt seviye** (Lowest level)). **Yalnız en alt seviye** (Lowest level only) filters the materials to be purchased. |
Values of the **Durum** (Status) column:
| Status | Meaning |
|---|---|
| **Altı açıldı** (Exploded) | The item has a published BOM; its components are below it (with `Rev. · Alt.` next to it). |
| **En alt seviye** (Lowest level) | An item that is not produced — it is procured. |
| **Ağaç yok** (No BOM) | A produced item without a published BOM — MRP cannot explode this item. |
| **Yapılandırılabilir** (Configurable) | Its BOM cannot be resolved without a configuration; it appears on an order opened from a configured line. |
| **Birim çevrimi eksik** (Unit conversion missing) | A conversion between the units of the item and the BOM (or component) is missing — it could not be exploded. |
| **Döngü** (Loop) | The item appears in its own parent chain — it was not exploded. |
| **Açılmadı** (Not exploded) | Level or node limit — it was not exploded. |
| **Parti büyüklüğüne uyan alternatif yok** (No alternative matching the lot size) | The item has a production BOM, but no alternative covers this quantity; adjust the ranges of the alternatives. |
| **O tarihte geçerli revizyon yok** (No valid revision on that date) | An alternative matching the range exists, but it has no revision whose validity has started on this date. |
A configurable item itself is not exploded: a super BOM can only be resolved with a configuration. To test with values,
use **Yapılandırarak Dene** (Try by Configuring) in the BOM revision
([Try by configuring](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme)).
## Where-Used
The BOMs in which the item is used as a component or alternative, as an upward chain.

1. Where-Used tab
2. BOM that uses the item
3. End products of the chain
| Column | Meaning |
|---|---|
| **Seviye** (Level) | Position in the chain; the row arrow opens the upper levels. |
| **Üst Kart (ağacın çıktısı)** (Parent Item, output of the BOM) | The output of the BOM that uses the item. |
| **Revizyon** (Revision) | The effective revision of that BOM. |
| **Miktar** (Quantity) | Per base quantity of the parent item. |
| **Not** (Note) | **Son ürün** (End product; top of the chain), **Döngü** (Loop), **Açılmadı** (Not exploded). |
The list shows only published **production** BOMs (all alternatives). The "Kullanıldığı Yerler" (Where-Used) tab of the
product master record also shows drafts and the engineering BOM. To replace an item in all BOMs:
[BOM component management](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-bilesen-yonetimi).
## Cost Estimate
Visible only to users with the cost view permission. Estimates the unit cost using the item's effective revision and
routing:
- **Malzeme** (Material) — the stock valuation of each component (standard if it has a standard price, otherwise
moving average); for subassemblies, the total of the components (**Toplandı**, Rolled up). An item without a value
shows **Bilinmiyor** (Unknown) and is not counted as zero; if there is an unknown value below it, the total is
**Eksik** (Incomplete).
- **Faaliyet (hazırlık · makine · işçilik)** (Activity — setup · machine · labor) — the **Operasyonlar (faaliyet)**
(Operations, activity) table: **Op.**, **İş Merkezi** (Work Center), durations and the amount from the work center's
[activity rates](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri). A work center without a rate shows **Tarife yok** (No rate).
- **Genel gider** (Overhead) — the overhead percentage in the rate.
The estimate does not create an accounting entry.
## Related
- [Bills of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
- [Routings](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar)
- [BOM component management](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-bilesen-yonetimi)
---
# Enter planned independent requirements (forecast)
> Enter a sales forecast period by period for a planned card; the period's approved orders consume the forecast, and MRP plans the remainder.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/planli-bagimsiz-ihtiyac-girme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Planlama › Planlı Bağımsız İhtiyaçlar › Tahmin Gir (Production › Production Planning › Planned Independent Requirements › Enter Forecast)
- **Screen route:** `/erp/demand/independent-requirements`
- **Required permission:** `erp-demand-independent-requirements.edit`
- **Prerequisites:**
- The card's **Planlama stratejisi** (Planning strategy) is not *Planlama Yok* (No Planning) and the card is stock-managed.
A forecast brings demand for which no order has arrived yet into planning. As approved sales orders arrive in the
period, the forecast is consumed; MRP counts only the **Kalan (MRP)** (Remaining, MRP) quantity as a requirement.
## Steps
1. Open the **Üretim › Üretim Planlama › Planlı Bağımsız İhtiyaçlar** (Production › Production Planning › Planned Independent Requirements) screen and click **Tahmin Gir** (Enter Forecast).

1. Enter Forecast
2. Approved orders in the period consume the forecast
3. Remainder enters MRP as demand
4. Show finished periods too
2. Click the **Kart** (Card) field, type the card's code in the search and select it from the list. If the card has unfinished periods, they are loaded into the table.
3. Select the **Dönem türü** (Period type) (Gün (Day) · Hafta (Week) · Ay (Month)).
4. Enter the number of periods to add in the **Sonraki** (Next) box and click **ay ekle** (add months) (**hafta ekle** (add weeks) for weeks, **gün ekle** (add days) for days). Remove a period you do not want with the trash can at the end of the row.
5. Fill in the **Miktar** (Quantity) field of each period; enter a **Not** (Note) if necessary.

1. Item — planned stock item
2. Period type — Day, Week, Month
3. Period quantity (base unit)
4. Add next N periods
5. Propose from history — statistical proposal
6. Save — replaces unfinished periods
6. If you wish, open **Geçmişten Öner** (Propose from History), select a model, and fill the rows with the proposal using **Öner** (Propose) and **Öneriyi Forma Aktar** (Transfer Proposal to Form).
7. Click **Kaydet** (Save).
**Result:** The card's unfinished periods are replaced by the list you entered. MRP plans the remainder of each period as a requirement on the first day of the period. Next step: [run MRP](https://erpdocs.corexlogic.com/en/uretim/islemler/mrp-kosusu-yapma).
## What you need to know
- **Saving is a full replacement:** the window carries all unfinished periods of the card; a period you remove from
the table is deleted. Saving with an empty table deletes the future forecast.
- A forecast cannot be entered for a past period; finished periods remain as a trace and are not included in MRP. The
current period can be entered; MRP moves its requirement to today and writes the **Gecikmiş ihtiyaç** (Overdue
requirement) exception.
- A card's future periods are of a single type; when you change the period type, the rows are aligned to the new type.
- Consumption: **approved** sales order items (including those shipped) whose requested delivery date falls in the
period, limited to the forecast. A draft order does not consume.
- Example (demo): 6 pcs were entered for December 2026 and 4 pcs for January 2027 for MAM-0005. Because on hand is 6,
minimum 2 and maximum 8, MRP generated a proposal of 8 pcs for the 01.12.2026 requirement (PLO-2026-000001).
## Related
- [Planned independent requirements screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/planli-bagimsiz-ihtiyaclar)
- [MRP run](https://erpdocs.corexlogic.com/en/uretim/ekranlar/mrp-kosusu)
- [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
---
# Engineering changes
> Change number (revision release with a validity date) and approved change request — statuses, locking, approval and the effect on revisions.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri
A **change number** determines **from which day** BOM and routing revisions become valid. If a number is selected
when a revision is published, the revision is valid from the number's valid-from date; until that day the previous
revision remains effective. MRP explodes a planned order with the BOM valid on its start date.
A **change request** (numbered `DTL-`) records the reason for the change, its impact and the objects it affects; when
approved, it opens the change number itself.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Mühendislik Değişiklikleri · Değişiklik Talepleri (Production › Master Data › Engineering Changes · Change Requests)
- **Screen route:** `/erp/manufacturing/engineering-changes`
- **Required permission:** `erp-manufacturing-engineering-changes.view (görme) · .create (değişiklik numarası ve talep açma) · .edit (değiştirme, kilitleme)`
## Engineering Changes list

1. New change number
2. Valid-from date of the number
3. Revisions released with it
4. Active or Locked
| Column | Meaning |
|---|---|
| **Değişiklik No** (Change No.) | `MDN-yyyy-nnnnnn`; assigned on save. |
| **Başlık** (Title) | Short name of the change. |
| **Geçerlilik** (Validity) | The first day on which revisions published with the number are valid. |
| **Revizyon** (Revisions) | The number of revisions published with this number. |
| **Durum** (Status) | **Etkin** (Active) or **Kilitli** (Locked). |
| **Oluşturan** (Created By) | The user who opened the number. |
The **Değişiklik Numarası Oluştur** (Create Change Number) form: **Başlık** (Title), **Değişiklik nedeni** (Reason for
change) (both required), **Geçerlilik başlangıcı** (Valid from; required). Details:
[Create an engineering change](https://erpdocs.corexlogic.com/en/uretim/islemler/muhendislik-degisikligi-olusturma).
### Statuses and actions
| Status | Meaning | Actions (in the details) |
|---|---|---|
| **Etkin** (Active) | Can be selected in the publish window. | **Değiştir** (Change; title, reason, date), **Kilitle** (Lock). |
| **Kilitli** (Locked) | Cannot be selected when publishing a new revision; releases already made with this number remain valid. | **Değiştir** (Change), **Kilidi Kaldır** (Unlock). |
The details page shows **Durum** (Status), **Başlık** (Title), **Geçerlilik başlangıcı** (Valid from; **Yürürlükte**
(In effect) if it has taken effect), **Oluşturan** (Created By), **Değişiklik nedeni** (Reason for change) and **Nesne
Listesi — Ürün Ağacı Revizyonları** (Object List — BOM Revisions; the revisions published with this number).
Rules for changing the validity date:
- If the number has taken effect and is in use, the date cannot be changed; open a new change number.
- Moving the date also moves the revisions published with the number; it cannot be moved into the past.
- Validity follows the revision sequence: a revision cannot become valid earlier than the previous revision or later
than the next revision.
## Change Requests

1. New change request
2. Draft, Pending Approval, Approved…
3. Number opened on approval
| Column | Meaning |
|---|---|
| **Talep** (Request) | `DTL-yyyy-nnnnnn`. |
| **Başlık**, **Durum** (Title, Status) | The request's name and status. |
| **Önerilen Geçerlilik** (Proposed Validity) | The day proposed by the requester; on approval it becomes the validity of the number opened. |
| **Değişiklik No** (Change No.) | The `MDN-` number opened on approval. |
| **Nesne** (Objects) | Number of affected objects. |
| **Açan** (Opened By) | The user who opened the request. |
The **Değişiklik Talebi Aç** (Open Change Request) form: **Başlık** (Title), **Neden** (Reason; required), **Etki notu**
(Impact note; cost, stock, open orders…), **Önerilen geçerlilik** (Proposed validity; required) and **Etkilenen
Nesneler** (Affected Objects) — select the object type (**Ürün ağacı** (BOM), **Rota** (Routing), **Ürün** (Product))
and add a record with **Nesne ekle** (Add object); at least one object is required. **Taslağı Kaydet** (Save Draft)
saves the request as **Taslak** (Draft).

1. Submit — for approval or approved directly
2. Edit — draft only
3. Cancel
4. Change number is opened on approval
### Request statuses
| Status | Actions |
|---|---|
| **Taslak** (Draft) | **Düzenle** (Edit), **Gönder** (Submit), **İptal Et** (Cancel). |
| **Onay Bekliyor** (Pending Approval) | Approver: **Onayla** (Approve) or **Reddet** (Reject; rejection reason required; the request returns to **Taslak** (Draft)). **İptal Et** (Cancel). |
| **Onaylandı** (Approved) | No actions; the `MDN-` number opened is shown in the **Değişiklik numarası** (Change number) field. |
| **İptal** (Cancelled) | No actions. |
- **Gönder** (Submit): if an approval template for change requests is defined in the setup, the request becomes **Onay
Bekliyor** (Pending Approval); if not, it becomes **Onaylandı** (Approved) directly and the change number is opened
immediately (in the demo environment DTL-2026-000001 → MDN-2026-000002).
- You cannot approve a request you opened yourself; another approver makes the decision.
- An approved or cancelled request cannot be cancelled.
## Effect on revision release
- The **Değişiklik numarası** (Change number) selector in the publish windows of the [BOM](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari),
[routing](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar) and [component management](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-bilesen-yonetimi)
screens lists only **Etkin** (Active) numbers; leaving it blank means "valid from today".
- If an approved request is required in **Üretim Ayarları** (Production Settings), a revision can be published only
with a number opened from an approved request.
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| MDN-… kilitli — yeni yayında kullanılamaz. | MDN-… is locked — it cannot be used for a new release. | A locked number was selected; use **Kilidi Kaldır** (Unlock) or another number. |
| Revizyon yalnız onaylı bir değişiklik talebinin numarasıyla yayınlanır (Üretim Ayarları) — talep açıp onaylatın. | A revision can be published only with the number of an approved change request (Production Settings) — open a request and have it approved. | The setting is on and no number was selected. |
| MDN-… onaylı bir değişiklik talebinden açılmadı — yayın için onaylı talebin numarası gerekir. | MDN-… was not opened from an approved change request — releasing requires the number of an approved request. | The setting is on and the number was opened manually. |
| MDN-… gg.aa.yyyy tarihinde yürürlüğe girdi — geçerlilik tarihi değiştirilemez; yeni bir değişiklik numarası açın. | MDN-… took effect on dd.mm.yyyy — the validity date cannot be changed; open a new change number. | An attempt was made to change the date of a number in effect. |
| Kullanımdaki değişikliğin geçerliliği geçmişe alınamaz. | The validity of a change in use cannot be moved into the past. | The date was moved into the past. |
| Revizyon N gg.aa.yyyy tarihinden geçerli olamaz — önceki revizyon M gg.aa.yyyy tarihinden geçerli; geçerlilik revizyon sırasıyla ilerler. | Revision N cannot be valid from dd.mm.yyyy — the previous revision M is valid from dd.mm.yyyy; validity follows the revision sequence. | The number's date is earlier than the previous revision. |
| Talep en az bir etkilenen nesne (ürün ağacı, rota ya da ürün) taşır. | A request must have at least one affected object (BOM, routing or product). | No object was added. |
| Kendi açtığınız değişiklik talebini onaylayamazsınız. Kararı başka bir onaycı vermeli. | You cannot approve a change request you opened yourself. Another approver must make the decision. | Self-approval was attempted. |
| Red gerekçesi zorunludur. | A rejection reason is required. | Rejection without a reason. |
| DTL-… taslak değil — değiştirilemez. | DTL-… is not a draft — it cannot be changed. | An attempt was made to edit a submitted request. |
## Related
- [Create an engineering change](https://erpdocs.corexlogic.com/en/uretim/islemler/muhendislik-degisikligi-olusturma)
- [Publish a BOM](https://erpdocs.corexlogic.com/en/uretim/islemler/urun-agacini-yayinlama)
---
# Dispatch an operation to capacity
> Dispatch a production order operation to another day (and workstation) in the Capacity Planning Table, or remove the dispatch.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/kapasite-seviyelendirme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Kapasite Planlama › Kapasite Planlama Tablosu (Production › Capacity Planning › Capacity Planning Table)
- **Screen route:** `/erp/manufacturing/capacity/planning-table`
- **Required permission:** `erp-manufacturing-capacity.view`, `erp-manufacturing-capacity.edit`
- **Prerequisites:**
- The operation belongs to a **released** or **in-production** production order and has not received its final confirmation (the operation of a draft order is created on release).
- The work center's capacity is defined (if not, an 8-hour weekday is assumed).
Capacity Load only displays; to balance (level) the load, operations are moved one by one to another day in the
Capacity Planning Table. To sequence all open operations at once, use the
[Finite Scheduling](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama) proposal.
## Steps
1. On the **Üretim › Kapasite Planlama › Kapasite Yükü** (Production › Capacity Planning › Capacity Load) screen, find the overloaded work center; open the table from its row or from the **Planlama Tablosu** (Planning Table) link in the header.

1. Bucket — Day or Week
2. Include planned orders load
3. Only work centers I am responsible for
4. Required / available hours and utilization %
2. Select the work center in the **İş merkezi** (Work center) field; if necessary, change the window with **Başlangıç** (Start) and **Bitiş** (End).
3. Click **Yerleştir** (Dispatch) on the production order row you want to move.
4. Select the **Başlangıç günü** (Start day); for a work center with workstations, optionally select a **Tezgâh** (Workstation).

1. Start day
2. Dispatch
5. Click **Yerleştir** (Dispatch) in the window.

1. Select a work center
2. Manually dispatched marker
3. Dispatch — choose the start day
4. Remove — back to base date
**Result:** The operation starts on the selected day; its end is calculated from the work center's capacity. The subsequent operations of the same order that were not dispatched manually shift accordingly. To undo the dispatch, click **Kaldır** (Remove) → **Kaldır** on the row: the operation is rescheduled from the order's basic dates.
## What you need to know
- Only **production order** operations are dispatched; planned order rows (when **Planlı emirler dâhil** (Include
planned orders) is on) only show the load.
- A manually dispatched operation stays in place in the next automatic scheduling; the finite scheduling proposal also
leaves it in place with a grey bar.
- A restricted user can dispatch only the operations of the work centers they are authorized for.
- Demo example: operation 30 "Toz boya" (Powder coating) of order **UE-2026-000007** was dispatched to 05.11.2026 at
the BOYA work center.
## Related
- [Capacity planning screens](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama)
- [Work centers](https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri)
---
# Work centers
> The lines, workshops and machines where production takes place; type, hierarchy, supply warehouse, person responsible, capacity, individual capacity and activity rates.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/is-merkezleri
A work center states **where** production takes place: a line, a workshop, an assembly bench or a machine group.
[Routing](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar) operations are assigned to a work center; the work center's capacity is the
calendar of the production plan and of the [capacity load](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama). A work center is not
deleted; to take it out of use, deactivate it — past orders are not affected.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › İş Merkezleri (Production › Master Data › Work Centers)
- **Screen route:** `/erp/manufacturing/work-centers`
- **Required permission:** `erp-manufacturing-work-centers.view (görme) · .create (yeni iş merkezi, alt iş merkezi) · .edit (düzenleme, kapasite, tezgâh) · .import (İçe Aktar)`
## List

1. New work center
2. Tree / list view
3. Daily capacity (minutes)
4. Click the code to open the card
| Column | Meaning |
|---|---|
| **Kod**, **Ad** (Code, Name) | The code is uppercase and unique. Clicking the code opens the record. |
| **Tür** (Type) | **Makine** (Machine), **İşçilik** (Labor) or **Diğer** (Other). |
| **Açıklama**, **Sorumlu**, **Sıra** (Description, Responsible, Sequence) | Free description, the person the work is assigned to, position in the list. |
| **Günlük kapasite** (Daily capacity) | In minutes and hours (e.g. "480 dk (8 sa)" — 480 min (8 h)), with working days below; if no capacity is defined, **Tanımsız** (Not defined). |
| **Durum** (Status) | **Aktif** (Active) or **Pasif** (Inactive). |
The **Ağaç** / **Liste** (Tree / List) buttons switch between hierarchical and flat views. Filters: **Ara** (Search),
**Tür** (Type), **Durum** (Status), **Üst iş merkezi** (Parent work center). **Dışa Aktar** / **İçe Aktar** (Export /
Import) transfer records in bulk with an Excel workbook. Editing is done from the row's **İşlemler** (Actions) menu.
## New Work Center window

1. Code — suggested from name, unique
2. Type — Machine, Labour, Other
3. Supply warehouse — issues from here
4. Capacity defined
5. (Shift − break) × utilisation × units
6. Create
| Field | Rule |
|---|---|
| **Ad** (Name; required) | The name of the work center. |
| **Kod** (Code; required) | Proposed from the name; can be overwritten. Converted to uppercase; must be unique. |
| **Tür** (Type) | **Makine** (Machine), **İşçilik** (Labor), **Diğer** (Other) (default for a new record: **Makine**). |
| **Üst iş merkezi** (Parent work center) | For grouping (e.g. machines under Talaşlı İmalat (Machining)): load is rolled up, and filters and responsibility cover the child work centers. Capacity and rates are not inherited. A loop cannot be created; a work center cannot be placed under an inactive work center. |
| **Tesis** (Plant) | The factory calendar (public holidays, half days, special working days) is read from the plant; the production plan and capacity load skip holidays. |
| **Besleme deposu** (Supply warehouse) | The material of the production order is staged in this warehouse (**Malzeme Hazırla**, Stage Material); consumption is posted from here. Must be an active warehouse. |
| **Sorumlu** (Responsible) | States who the work is assigned to (failed backflush, confirmation, capacity); it does not grant permissions. |
| **Açıklama**, **Sıra** (Description, Sequence) | The sequence is zero or a positive integer. |
| **Aktif** (Active) | If off, the work center cannot be selected for new documents and routings. |
| **Kapasite tanımlı** (Capacity defined) | If off, planning assumes 8-hour weekdays for this work center and no available time is shown in the load. |
When **Kapasite tanımlı** (Capacity defined) is turned on:
| Field | Rule |
|---|---|
| **Vardiya** (Shift) | Start – end time. If the end is before the start, the shift spans midnight. |
| **Mola (dk)** (Break, min) | Must be shorter than the shift duration. |
| **Kullanım oranı (%)** (Utilization rate, %) | Greater than 0, at most 100, at most two decimals. |
| **Bireysel kapasite** (Individual capacity) | Number of machines or people working in parallel. If individual capacities are defined below, it is derived from the number of active ones. |
| **Çalışma günleri** (Working days) | **Pzt** … **Paz** (Mon … Sun); at least one day must be selected. |
| **Günlük kapasite** (Daily capacity) | (Shift − break) × utilization × individual capacity — the exact value comes from the server after saving. |
**Bireysel Kapasiteler** (Individual Capacities): identical machines or benches (CNC-1, CNC-2). **Bireysel Kapasite
Ekle** (Add Individual Capacity) lets you enter a name, code and sequence; the code is unique within the work center.
There is no delete — deactivate an unused unit. The number of active units is the capacity count; the shift and rate
belong to the work center.
## Work center record

1. Hourly rates (cost estimate)
2. Shift, break, utilisation
3. Machine — individual capacity
4. Work center load
5. Child work center
| Section | Content |
|---|---|
| **Genel Bilgiler** (General Information) | **Tür** (Type), **Üst iş merkezi** (Parent work center), **Sorumlu** (Responsible), **Sıra** (Sequence), **Açıklama** (Description). |
| **Kapasite** (Capacity) | **Vardiya** (Shift), **Mola** (Break), **Kullanım** (Utilization), **Kapasite sayısı** (Capacity count), **Çalışma günleri** (Working days), **Günlük kapasite** (Daily capacity). If not defined, a **Kapasite Tanımla** (Define Capacity) button. |
| **Tezgâhlar** (Machines) | The work center's individual capacities; **Tezgâh Ekle** (Add Machine). |
| **Ekipmanlar** (Equipment) | Linked maintenance equipment (**Ekipman** (Equipment), **Ad** (Name), **Tür** (Type), **Tezgâh** (Machine), **Seri No** (Serial No.), **Garanti** (Warranty), **Durum** (Status)); **Ekipman Ekle** (Add Equipment). |
| **Alt İş Merkezleri** (Child Work Centers) | Child work centers; **Alt İş Merkezi Ekle** (Add Child Work Center). |
Links in the header: **Operasyonlar** (Operations; the work center's work list) and **Kapasite Yükü** (Capacity Load).
**Düzenle** (Edit) opens the same window in edit mode.
### Activity rates
**Faaliyet Tarifeleri** (Activity Rates; with the cost view permission) holds the work center's hourly rates with
dates: **Geçerlilik başlangıcı** (Valid from), **Para birimi** (Currency), **Hazırlık saat ücreti** (Setup hourly
rate), **Makine saat ücreti** (Machine hourly rate), **İşçilik saat ücreti** (Labor hourly rate), **Genel gider (%)**
(Overhead, %). The rates are used by the [cost estimate](https://erpdocs.corexlogic.com/en/uretim/ekranlar/cok-seviyeli-urun-agaci); for an operation on
a work center without a rate, the estimate total stays blank.
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| '…' kodlu iş merkezi zaten mevcut. | A work center with code '…' already exists. | The code is in use. |
| '…' iş merkezi pasif — yeni belgeye seçilemez. | Work center '…' is inactive — it cannot be selected for a new document. | An inactive work center was selected. |
| '…' bu iş merkezinin altında — döngü kurulamaz. | '…' is below this work center — a loop cannot be created. | The parent work center was selected from among its own children. |
| Mola vardiya süresinden kısa olmalı. | The break must be shorter than the shift duration. | Break ≥ shift. |
| Kapasite kullanım oranı 0'dan büyük, en çok 100 ve en çok 2 ondalık olmalı. | The capacity utilization rate must be greater than 0, at most 100 and have at most 2 decimals. | Invalid rate. |
| En az bir çalışma günü seçin. | Select at least one working day. | No day is ticked. |
| '…' bireysel kapasitesi listede yok — bireysel kapasite silinmez, pasife alın. | Individual capacity '…' is not in the list — individual capacities are not deleted; deactivate it. | An attempt was made to remove a row. |
| Besleme deposu aktif bir depo olmalı. | The supply warehouse must be an active warehouse. | An inactive warehouse was selected. |
## Related
- [Create a work center](https://erpdocs.corexlogic.com/en/uretim/islemler/is-merkezi-olusturma)
- [Routings](https://erpdocs.corexlogic.com/en/uretim/ekranlar/rotalar)
- [Capacity planning](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama)
---
# Create a kanban control cycle
> Set up a kanban cycle for an item × supply warehouse with the number of containers, container quantity and replenishment strategy, and use the containers on the board.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/kanban-kontrol-dongusu-olusturma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Kanban › Kanban Kontrol Döngüleri › Kontrol Döngüsü Oluştur (Production › Kanban › Kanban Control Cycles › Create Control Cycle)
- **Screen route:** `/erp/manufacturing/kanban/control-cycles`
- **Required permission:** `erp-manufacturing-kanban.create`
- **Prerequisites:**
- The item is a concrete stock card (not a configurable parent card).
- For in-house production the card has a released production BOM; for external procurement it has the purchasable flag.
- There is no other control cycle for this item in the same warehouse.
Kanban replenishes a continuously consumed item container by container, without the need for MRP planning. The
number of containers and the container quantity are chosen so that they cover consumption during the replenishment
lead time.
## Steps
1. Open the **Üretim › Kanban › Kanban Kontrol Döngüleri** (Production › Kanban › Kanban Control Cycles) screen and click **Kontrol Döngüsü Oluştur** (Create Control Cycle).

1. Create Control Cycle
2. In-house · External · Stock transfer
3. Container status summary
2. Click the **Ürün** (Item) field, type the code and select the card. Next to the card, Üretilir / Satın alınır (Produced / Purchased) is shown.
3. Select the **Tedarik deposu** (Supply warehouse) — the warehouse where the containers are kept and where replenishment arrives.
4. Select the **İkmal stratejisi** (Replenishment strategy): İç üretim (In-house production), Dış tedarik (External procurement) or Stok transferi (Stock transfer). For stock transfer, the **Kaynak depo** (Source warehouse) is also selected.
5. Enter the **Kap miktarı** (Container quantity, in the base unit) and **Kap sayısı** (Number of containers, 1–99).

1. Product — concrete stock item
2. Supply warehouse — where containers sit
3. Replenishment strategy
4. Quantity per container — base unit
5. Number of containers — 1–99
6. Click **Oluştur** (Create).
7. On the **Kanban Panosu** (Kanban Board), press **Boş Bildir** (Report Empty) in the tile when a container is emptied; when the goods arrive, press **Dolu İşaretle** (Mark Full).

1. Control cycle
2. Container in replenishment and its document
3. Set In Use
4. Signal Empty — opens replenishment
5. Mark Full — when goods arrive
**Result:** The control cycle is set up as active and its containers appear on the board in Dolu (Full) status. Depending on the strategy, each empty signal opens a draft production order, a draft purchase requisition or a transfer reservation; complete the document on the relevant screen.
## What you need to know
- The document opened is a draft: sending the purchase requisition or releasing the production order is done on the
relevant screen.
- If the empty signal is repeated, a second document is not opened; if the container is already in replenishment, the
server says "Kap N zaten ikmalde (…)." (Container N is already in replenishment (…).)
- Setting the cycle to inactive stops new empty signals; a container in replenishment can still be marked full.
- The strategy and the source warehouse cannot be changed while a container is in replenishment; the number of
containers can only be reduced by removing full containers from the end.
## Related
- [Kanban screens](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kanban)
---
# BOM component management
> Replace a component, change its quantity, remove it or add it in all BOMs that use it in one step — a new revision in each BOM.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-bilesen-yonetimi
When a component changes (the supplier item changed, the quantity was reduced, the part was removed), you do not need
to open every BOM that uses it one by one. This screen changes the component in all the BOMs you select in one step:
in each BOM **a new revision is opened from the most recently published revision**, and unchanged lines are copied as
they are. If even one BOM is rejected, no BOM is changed.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Ürün Ağacı Bileşen Yönetimi (Production › Master Data › BOM Component Management)
- **Screen route:** `/erp/manufacturing/bom-components`
- **Required permission:** `erp-manufacturing-boms.edit`

1. Component — item to change
2. Replace, Change Quantity, Remove, Add
3. Release the new revisions?
4. Preview — writes nothing
5. Apply — new revision in each BOM
## Fields
| Field | Rule |
|---|---|
| **Bileşen** (Component; required) | The item to be changed. When selected, the BOMs that use it are listed below. |
| **İşlem** (Action) | One of the four actions below. |
| **Yeni bileşen** (New component) | Required for **Değiştir** (Replace); cannot be the same as the old one. |
| **Miktar** / **Birim** (Quantity / Unit) | For **Değiştir** (Replace), if blank, the old values remain (**Eski miktar**, **Eski birim** — Old quantity, Old unit); for **Miktarı Değiştir** (Change Quantity), the new quantity is required; for **Ekle** (Add), quantity and unit are required. Must be greater than zero. |
| **Yayınla** (Publish) | If ticked (**Yeni revizyonlar yayınlanır** — New revisions are published), the new revisions are published immediately; if not ticked, **Yeni revizyonlar taslak kalır** (New revisions remain drafts) — you review and publish them in the BOM. |
| **Değişiklik numarası** (Change number) | Only when **Yayınla** (Publish) is ticked. All new revisions are valid with the same number, from the number's validity date; if blank, from today. Only **Etkin** (Active) numbers are listed. |
| Action | What it does |
|---|---|
| **Değiştir** (Replace) | Replaces the component with another item — primary and alternative occurrences; if quantity and unit are blank, the old values remain. |
| **Miktarı Değiştir** (Change Quantity) | The component's quantity (and optionally unit) in all occurrences. |
| **Çıkar** (Remove) | The component is removed from the BOM. The primary item of an alternative group cannot be removed with this tool — edit it manually in the BOM. |
| **Ekle** (Add) | The component is added to the selected BOMs as a new item line. |
## BOMs that use the component
The table shows **Ürün** (Product), **Alternatif** (Alternative), **Kaynak** (Source; the revision to be copied) and
**Geçişler** (Occurrences; in which item line and with what quantity the component appears, e.g. `Kalem 3: 4 ADET` —
item 3: 4 pieces; on a conditional line `· koşullu` — conditional). Select up to **100** BOMs with **Hepsini seç**
(Select all) or the boxes at the start of the rows. For a BOM that cannot be selected, the reason is shown in red next
to it:
- **Ağacın taslak revizyonu var — önce taslağı yayınlayın ya da değişikliği taslakta yapın.** (The BOM has a draft
revision — publish the draft first or make the change in the draft.)
- **Yayınlanmış revizyonu yok.** (It has no published revision.)
Both production and engineering BOMs are listed.
## Preview and Apply
1. **Önizle** (Preview) — writes nothing. The result table shows, for each BOM, **Ürün** (Product), **Revizyon**
(Revision; `Rev. 1 → Rev. 2`) and **Değişiklik** (Change) lines (e.g. `Kalem 3: HAM-0049 4 → 6`); if a BOM has a
problem, the reason is shown. The header shows "Önizleme — henüz hiçbir şey yazılmadı." (Preview — nothing has been
written yet.)
2. **Uygula** (Apply) — becomes available only after a problem-free preview of the same request ("Önizleme sorunsuz —
uygulayabilirsiniz." — Preview without problems — you can apply.). The result is "Uygulandı — yeni revizyonlar
açıldı." (Applied — new revisions opened.) or "Uygulanmadı — sorunlu ağaç var, hiçbir ağaç değişmedi." (Not applied
— there is a problematic BOM; no BOM was changed.)
Applying does not change open production orders; orders and MRP runs started after the new revision becomes valid use
it.
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| Bileşen seçin. · En az bir ürün ağacı seçin. | Select a component. · Select at least one BOM. | Selection incomplete. |
| Bir seferde en çok 100 ürün ağacı değiştirilir. | At most 100 BOMs can be changed at a time. | Too many BOMs selected. |
| Yeni bileşen eskisiyle aynı olamaz. | The new component cannot be the same as the old one. | The same item was selected. |
| Kalem N: KOD alternatif grubunun birincili — ağaçta elle düzenleyin. | Item N: KOD is the primary of an alternative group — edit it manually in the BOM. | **Çıkar** (Remove) was applied to the primary item. |
| KOD bu ağacın en son yayınlanmış revizyonunda yok. | KOD is not in the most recently published revision of this BOM. | The BOM no longer uses the component. |
| Değişiklik numarası yalnız yayınla birlikte verilir. | A change number can be given only together with publishing. | A number was selected while **Yayınla** (Publish) was not ticked. |
## Related
- [Bills of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
- [Multi-level bill of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/cok-seviyeli-urun-agaci) — Where-Used
- [Engineering changes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/muhendislik-degisiklikleri)
---
# BOM comparison
> Compare the variant BOMs of a configurable product to work out for which values and in what quantity each component is used; propose a super BOM draft.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaci-karsilastirma
If a product has been produced for years with separate variant items (a separate item and a separate BOM for every
size, color or power rating), this screen compares those BOMs and proposes **a single super BOM**: for which
characteristic values and in what quantity each component is used is derived from the variants. The proposal is not
saved; if you wish, it is opened as a draft BOM.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Ana Veriler › Ürün Ağacı Karşılaştırma (Production › Master Data › BOM Comparison)
- **Screen route:** `/erp/manufacturing/bom-comparison`
- **Required permission:** `erp-manufacturing-boms.view (öneriyi görme) · erp-manufacturing-boms.create (Taslağı Oluştur)`

1. Configurable product
2. Proposal derived from variant BOMs, not saved
3. No comparison without variants
## Usage
1. In the **Ürün** (Product) field, select the configurable product (the list shows the number of variants). If the
product has no variants, the screen shows "'KOD' kartının varyantı yok — karşılaştırılacak ağaç yok." (Item 'KOD'
has no variants — there are no BOMs to compare.)
2. The summary line shows the number of variants and BOMs and the distribution of components across types. If the
product already has a BOM: "Ürünün N ağacı var — taslak sıradaki alternatif olur." (The product has N BOMs — the
draft becomes the next alternative.)
3. Review the **Önerilen satırlar** (Proposed lines) table; **Dağılımı göster** (Show distribution) opens the quantity
in each variant.
4. The **Varyantlar** (Variants) table (**Varyant** (Variant), **Değerler** (Values), **Ürün ağacı** (BOM): "Ağaç var ·
Rev N" (BOM exists · Rev N) or "Ağaç yok" (No BOM)) shows which variants were included in the analysis.
5. **Süper Ağaç Taslağı Oluştur** (Create Super BOM Draft; with the create permission) opens the **Süper ağaç taslağı
oluşturulsun mu?** (Create super BOM draft?) window; **Taslağı Oluştur** (Create Draft) opens a draft BOM for the
selected product. The variant BOMs do not change.
## Line types
| Type | Meaning | Included in the draft? |
|---|---|---|
| **Ortak** (Common) | In all variants with the same quantity — an unconditional line ("Her varyantta" — in every variant). | Yes |
| **Koşullu** (Conditional) | A condition or formula reproduces the variants exactly. | Yes |
| **İstisnalı** (With exceptions) | The explanation excludes a few variants; **Kurala uymayan varyantlar** (Variants that do not fit the rule) are listed. | Yes — correct the exceptions manually |
| **Düzensiz** (Irregular) | Could not be explained with at most two characteristics ("Kural çıkarılamadı" — no rule could be derived). | No — add manually |
The **Ne zaman gelir** (When included) column shows the proposed condition (an option condition or an expression
containing `EGER`, `VEYA`, `DOLU`), and the **Miktar** (Quantity) column shows the fixed quantity or the formula.
Explanation of the language: [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar).
The draft is not used in orders until it is published. Before publishing, test it in the revision with
**Yapılandırarak Dene** (Try by Configuring) ([Try by configuring](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme)). If all
components are irregular, there are no lines to include in the draft: "Taslağa girecek satır yok — bütün bileşenler
düzensiz." (No lines to include in the draft — all components are irregular.)
> **Demo environment**
The demo company's configurable products were set up with a super BOM from the start; because there are no variant
items, the comparison returns the "varyantı yok" (no variants) message. The screen produces a proposal in an
installation that has variant items and BOMs.
## Related
- [Bills of materials](https://erpdocs.corexlogic.com/en/uretim/ekranlar/urun-agaclari)
- [Configurable products](https://erpdocs.corexlogic.com/en/uretim/ekranlar/yapilandirilabilir-urunler)
- [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar)
---
# Configurable products
> The Configuration tab of the product master record — configuration characteristics, precondition, configuration profile and object dependencies (constraint, procedure, table).
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/yapilandirilabilir-urunler
A product for which the customer selects options when ordering (size, color, power rating, series…) is created as a
**configurable** item. The item's **Yapılandırma** (Configuration) tab defines which characteristics are asked, which
of them are asked in which situation, and in which combinations the values are valid. In production these values
resolve the super BOM and the super routing: [Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar).
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Ana Veriler › Ürünler › Ürün Ana Verileri › ürün detayı › Yapılandırma (Master Data › Products › Product Master Data › product details › Configuration)
- **Screen route:** `/erp/catalog/products/{id}?tab=yapilandirma`
- **Required permission:** `erp-catalog-items.view (görme) · erp-catalog-items.edit (özellik, koşul, kural)`

1. Add Characteristic
2. Characteristic with a precondition
3. Required
4. Default value
5. Object dependency — constraint, procedure, table
## Making an item configurable
On the **Yapılandırma** (Configuration) tab of a standard item, the text "Bu ürün standart bir üründür." (This product
is a standard product.) is shown. The **Yapılandırılabilir Yap** (Make Configurable) button asks for confirmation with
the question "Ürün yapılandırılabilir yapılsın mı?" (Make the product configurable?). A configurable item carries the
**Yapılandırılabilir** (Configurable) badge in its header. An item whose characteristics have been removed can be
reverted with **Standart Ürüne Döndür** (Revert to Standard Product) ("Standart ürüne döndürmek için önce yapılandırma
özelliklerini kaldırın." — To revert to a standard product, first remove the configuration characteristics.).
## Configuration Characteristics
| Column | What it shows |
|---|---|
| **Özellik** (Characteristic) | The characteristic's name; a **Koşullu** (Conditional) badge if it has a precondition |
| **Zorunluluk** (Requirement) | **Zorunlu** (Required) or **İsteğe Bağlı** (Optional) |
| **Tür / Değer Kullanımı** (Type / Value Usage) | Data type (Seçenek (Option), Tam sayı (Integer), Ondalık (Decimal), Evet / Hayır (Yes / No)…), default value, allowed values; the precondition text (`Koşul: Kabin: Özel Ölçü (En x Boy) olduğunda sorulur` — Condition: asked when Kabin is Özel Ölçü (En x Boy)) |
| **İşlem** (Action) | Up/down arrows (question order in sales) and the **İşlemler** (Actions) menu: **Koşul** (Condition), **Düzenle** (Edit), **Kaldır** (Remove) |
- **Özellik Ekle** (Add Characteristic) — the "Yapılandırma Özelliği Ekle" (Add Configuration Characteristic) window:
selection from the characteristic dictionary or a new characteristic, **Zorunlu** (Required), for an option type
**Değerleri sınırla** (Restrict values) and allowed values, for a numeric type **İzinli aralık** (Allowed range;
**En az** (Minimum), **En çok** (Maximum), **Adım** (Step)), **Varsayılan değer** (Default value). Steps:
[Define a configuration characteristic](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirma-ozelligi-tanimlama).
- For an option characteristic, the **×** next to a value label removes the value from the values allowed for this
item; **Değer** (Value) adds a new one.
- **İşlemler › Koşul** (Actions › Condition) — precondition: [Define a precondition](https://erpdocs.corexlogic.com/en/uretim/islemler/on-kosul-tanimlama).

1. Condition value — Cabinet Custom Size
2. Readable form of the condition
3. Remove Condition — always asked
4. Save
Rules:
- A required characteristic must be filled in for every variant and on every configured sales line (as long as it is
asked).
- For a numeric characteristic, the value must fit the range and step:
`'Boy' değeri izinli aralıkta değil (2–30 m, 0,5 m adım).` (The value of 'Boy' is not within the allowed range (2–30
m, step 0.5 m).)
- A disallowed value for a restricted option characteristic: `'…' için seçilen değer bu üründe izinli değil.` (The
value selected for '…' is not allowed for this product.)
- On a product with variants, a new characteristic is added as optional — existing variants have no value for it.
## Configuration Profile
The profile states under which headings the configurator asks the characteristics, whether the product is locked, and
whether the BOM is exploded over multiple levels. If there is no profile, the screen shows "Profil tanımlanmadı — ürün
serbest ve tek seviyeli yapılandırılır." (No profile defined — the product is configured freely and on a single
level.); it is created with **Profil Oluştur** (Create Profile). If the BOM contains a configurable component (a
subassembly with value transfer), the output's profile must explode the BOM **over multiple levels**; otherwise order
release stops with the message
`… satırın bileşeni yapılandırılabilir — çıktının konfigürasyon profili ürün ağacını çok seviyeli patlatmalı.` (The
component of line … is configurable — the output's configuration profile must explode the BOM over multiple levels.)
## Object Dependencies
"Değerlerin hangi kombinasyonlarda geçerli olduğu ve hangi değerlerin hesaplandığı. Kurallar listedeki sırayla
uygulanır." (In which combinations values are valid and which values are calculated. Rules are applied in the order of
the list.) **Kural Ekle** (Add Rule) offers three rule types:
| Option | Type | What it does |
|---|---|---|
| **Değer hesapla** (Calculate value) | Procedure | Writes a characteristic's value with **Karar tablosu (önerilen)** (Decision table, recommended) or **Formül (gelişmiş)** (Formula, advanced); **Her zaman hesapla** (Always calculate) or **Girilmezse hesapla** (Calculate if not entered) |
| **Sınır koy** (Set a limit) | Constraint | If the expression returns No, the sales line is not saved; the rule's message is shown |
| **Tablodan seç** (Select from table) | Table constraint | The combination of values must match a row of a variant table |

1. Procedure — computes a characteristic
2. Constraint — blocks a forbidden combination
3. Table constraint — variant table
4. Formula — the language of the conditions page
A rule that would break an existing variant is not saved. An item can have at most 50 rules. Steps:
[Add an object dependency](https://erpdocs.corexlogic.com/en/uretim/islemler/nesne-bagimliligi-ekleme).
## Variants tab
Frequently sold value combinations can be created as separate items as **standard variants**. If the values of a
configured sales line are the same as a standard variant, **Yapılandırarak Dene** (Try by Configuring) says so
("Değerler standart varyant … ile aynı — varyantın kendi ağacı varsa emir onu kullanır." — The values are the same as
standard variant … — if the variant has its own BOM, the order uses it.).
## In sales and production
- On sales quotations and orders, values are entered on the line of the configurable product; a characteristic whose
precondition is not met is not asked. Constraints and procedures are applied when the line is saved.
- An order opened from an approved sales order with **Üretim Emri Aç** (Open Production Order) carries the
configuration; the **Yapılandırma** (Configuration) text appears in the upper part of the order (e.g.
`Boy: 12,5 m · Bant Genişliği: 800 mm · Bant Tipi: PVC Endüstriyel · Koruma Kapağı: Evet · Ayak Çifti Sayısı: 10`).
- The BOM of a configurable item cannot be opened without a configuration:
`Bu ürün ağacı konfigürasyona göre çözülür — emir yapılandırılmış bir satış siparişi satırından açılmalı.` (This BOM
is resolved by configuration — the order must be opened from a configured sales order line.)
## Related
- [Conditions and formulas](https://erpdocs.corexlogic.com/en/uretim/kosullar)
- [Order to production process](https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime)
---
# Production analytics
> The eight production reports — order status, material consumption, work center load, output corrections, scrap, labor, OEE and production cost.
URL: https://erpdocs.corexlogic.com/en/uretim/ekranlar/analitik
The reports under **Üretim › Analitik** (Production › Analytics) are read-only screens; they do not write anything.
Values come from the server, and the screen does not invent totals or ratios: a value that cannot be measured is shown
as **"—"** (not zero). If the date filter is empty, the report opens with the default period (the last 90 days for most
reports) and the period is shown in the header. In most reports, **Excel'e Aktar** (Export to Excel) creates a file
with the screen's filters; the **İş Merkezi** (Work Center) filter shows work centers in hierarchy order.
- **Type:** Screen
- **Module:** Manufacturing
- **Menu path:** Üretim › Analitik › Üretim Emri Durumu · Malzeme Tüketimi · İş Merkezi Yükü · Çıktı Düzeltmeleri · Fire Raporu · İşçilik Raporu · OEE Raporu · Üretim Maliyeti (Production › Analytics › Production Order Status · Material Consumption · Work Center Load · Output Corrections · Scrap Report · Labor Report · OEE Report · Production Cost)
- **Screen route:** `/erp/manufacturing/reports/order-status`
- **Required permission:** `erp-manufacturing-orders.view (Üretim Emri Durumu, İş Merkezi Yükü)`, `erp-manufacturing-postings.view (Malzeme Tüketimi, Fire Raporu, İşçilik Raporu, OEE Raporu)`, `erp-manufacturing-corrections.view (Çıktı Düzeltmeleri)`, `erp-manufacturing-orders.view ve erp-inventory-costs.view (Üretim Maliyeti)`
## Production Order Status

1. Export to Excel — with the screen filter
2. Status summary
3. Realization = produced / planned
4. Days open
Address `/erp/manufacturing/reports/order-status`. Planned and produced quantity per order, work center and how long
the order has been open.
- **Columns:** **Çıktı Kartı** (Output Item; with order no.) · **Durum** (Status) · **Planlanan** (Planned) ·
**Üretilen** (Produced) · **Kalan** (Remaining) · **Gerçekleşme** (Fulfillment; produced / planned %) · **İş
Merkezi** (Work Center; can be "Kaydedilmedi" (Not recorded)) · **Satış Siparişi** (Sales Order; for make-to-order,
otherwise "Stoğa" (To stock)) · **Yayın** (Release) · **Süre (gün)** (Duration, days; "N gündür açık" — open for N
days).
- **Filters:** **Ara** (Search; item, sales order or customer) · **İş Merkezi** (Work Center) · **Durum** (Status) ·
opening date.
- **Status summary:** the number of orders in each status. Because there is no due-date field, the time the order has
been open is shown instead of delay.
## Material Consumption
Address `/erp/manufacturing/reports/material-consumption`. Planned and actually consumed material, in the item's base
unit; the plan difference only from completed orders.
- **Columns:** **Bileşen** (Component) · **Birim** (Unit) · **Planlanan** (Planned) · **Tüketilen** (Consumed) ·
**Açık Emirde Kalan** (Remaining in Open Orders) · **Tamamlanan: Plan** (Completed: Plan) · **Tamamlanan: Fiili**
(Completed: Actual) · **Plan Farkı** (Plan Difference) · **Emir** (Order). The number of lines whose unit could not
be converted is shown separately.
- **Filters:** **Ara** (Search; component code or name) · release date.
## Work Center Load
Address `/erp/manufacturing/reports/work-center-load`. Draft, released and in-production orders — per work center, as
of today (number of orders, not hours).
- **Columns:** **İş Merkezi** (Work Center; including the "Atanmadı" (Not assigned) row) · **Tür** (Type) · **Taslak**
(Draft) · **Yayınlandı** (Released) · **Üretimde** (In Production) · **Açık Emir** (Open Orders) · **Farklı Kart**
(Distinct Items) · **En Eski Açık Emir** (Oldest Open Order).
- For load in hours, use [Kapasite Yükü](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama) (Capacity Load).
## Output Corrections
Address `/erp/manufacturing/reports/output-reversals`. Reversed production output — per item; this is the correction
of an incorrect posting, not scrap.
- **Columns:** **Çıktı Kartı** (Output Item) · **Geri Alınan** (Reversed) · **Dönemdeki Çıktı** (Output in Period) ·
**Düzeltme Belgesi** (Correction Document) · **Emir** (Order).
- **Filters:** **Ara** (Search; item code or name) · correction date.
## Scrap Report

1. Grouping — Product · Work center × product · Order
2. Scrap rate = scrap / (yield + scrap)
3. Planned scrap in the routing
Address `/erp/manufacturing/reports/scrap`. Scrap from operation confirmations — the rate and a comparison with the
planned scrap in the routing; quantities in the product's base unit.
- **Breakdown:** Product · Work center × product · Production order.
- **Columns:** (**İş Merkezi** / **Emir** / **Ürün** (Work Center / Order / Product), depending on the breakdown) ·
**Sağlam** (Good) · **Fire** (Scrap) · **Yeniden İşleme** (Rework) · **Fire Oranı** (Scrap Rate) · **Planlanan**
(Planned) · **Teyit** (Confirmations) · **Emir** (Orders). If the scrap rate exceeds the planned rate it is shown in
red (there is no threshold).
- **Filters:** **Ara** (Search; product, work center or order) · **İş Merkezi** (Work Center) · **Yalnız fireli**
(Only with scrap; hides lines without scrap) · confirmation date.
## Labor Report
Address `/erp/manufacturing/reports/labor`. Labor time of employees in operation confirmations — broken down by work
center and order; the amount requires the cost permission and is based on the hourly rate.
- **Breakdown:** Employee · Employee × work center · Employee × production order.
- **Columns:** **Çalışan** (Employee) · (**İş Merkezi** / **Emir**, Work Center / Order) · **İşçilik (saat)** (Labor,
hours) · **Teyit** (Confirmations) · **Tutar** (Amount; only with the cost permission; if there is no hourly rate,
"Saat ücreti tanımsız" (Hourly rate not defined)).
- **Filters:** **Ara** (Search) · confirmation date. If no employee was entered on the confirmations, the report is
empty.
## OEE Report

1. Availability × performance × quality
2. From downtime records
3. From operation confirmations
Address `/erp/manufacturing/reports/oee`. Availability × performance × quality — from the factory calendar, downtime
records and operation confirmations; the default is the last 30 days.
- **Columns:** **İş Merkezi** (Work Center) · **OEE** · **Kullanılabilirlik** (Availability) · **Performans**
(Performance) · **Kalite** (Quality) · **Planlanan** (Planned; "Kapasite tanımsız" (Capacity not defined) if no
capacity is defined) · **Plansız Duruş** (Unplanned Downtime) · **Planlı Duruş** (Planned Downtime) · **Sağlam /
Fire** (Good / Scrap). Below: **Plansız duruş kayıpları** (Unplanned downtime losses).
- **Filters:** **İş Merkezi** (Work Center) · **Dönem** (Period).
- If one of the components cannot be measured (e.g. capacity not defined), OEE shows "—".
## Production Cost
Address `/erp/manufacturing/reports/production-cost` (requires the order view permission **and** the cost view
permission). Planned and actual material cost per order — together with where the closing variance went.
- **Columns:** **Emir No** (Order No.) · **Mamul** (Finished Product) · **Durum** (Status) · **Üretilen** (Produced) ·
**Planlanan Malzeme** (Planned Material) · **Fiili Malzeme** (Actual Material) · **Mamule Uygulanan** (Applied to
Finished Product) · **Planlanan Faaliyet** (Planned Activity) · **Fiili Faaliyet** (Actual Activity) · **Kapanış
Farkı** (Closing Variance). Activity for a work center without a rate, or in mixed currencies, shows "Hesaplanamadı"
(Could not be calculated).
- **Filters:** **Ara** (Search; finished product code or name) · release date.
- **Yarı Mamul** (Work in Process) view (tab): work in process of orders not yet closed — material consumed − applied
to output; totals per currency. Accounting reconciliation is outside the scope of this document.
## Related
- [Production orders](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
- [Operation confirmations](https://erpdocs.corexlogic.com/en/uretim/ekranlar/operasyon-teyitleri)
- [Downtime records](https://erpdocs.corexlogic.com/en/uretim/ekranlar/durus-kayitlari)
- [Capacity planning](https://erpdocs.corexlogic.com/en/uretim/ekranlar/kapasite-planlama)
---
# Create a production order
> Open a draft production order from a released BOM revision — plan source, planned quantity and work center.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emri-olusturma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Üretim Emri Oluştur (Production › Production Execution › Create Production Order)
- **Screen route:** `/erp/manufacturing/orders/new`
- **Required permission:** `erp-manufacturing-orders.create`
- **Prerequisites:**
- The **Üretilir** (Produced) flag of the card to be produced is on, the card is active and it is not a service card.
- The card has a **released** BOM revision with production usage whose validity has started.
- For a configurable item, the order is opened from a sales order — [Open a production order from a sales order](https://erpdocs.corexlogic.com/en/uretim/islemler/siparisten-uretim-emri-acma).
A production order states with which BOM revision and in what quantity an item is to be produced. The order is opened
as a **draft**; in draft, the quantity, revision and work center can be edited.
## Steps
1. Open the **Üretim › Üretim Yürütme › Üretim Emri Oluştur** (Production › Production Execution › Create Production Order) screen. If you are in the list, click **Yeni Üretim Emri** (New Production Order).
2. Type the code or name of the output card in the **Ürün ağacı ara** (Search BOM) box; select the BOM (with its alternative and revision) from the list.
3. Click the **PASLANMAZ ÇALIŞMA TEZGAHI 150X70 · Rev 1** card in the list.
4. Enter the **Planlanan Miktar** (Planned Quantity) in the output unit. The unit comes from the revision and cannot be changed; the decimal limit is shown under the field.
5. If you wish, select the **İş Merkezi** (Work Center) (the station for which the order is planned; where the work is actually done is recorded separately on consumption and output).
6. Click **Üretim Emrini Kaydet** (Save Production Order).

1. Search BOM — released revisions only
2. Plan source: BOM and revision
3. Planned Quantity — unit from the revision
4. Work center — optional
5. Save — order is created as Draft
**Result:** The order is saved with the number **UE-yyyy-nnnnnn** in **Taslak** (Draft) status. There is no stock movement or material reservation; the requirements are created on release. Next step: [Release the production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama).
## What you need to know
- The list shows only the released revisions, whose validity has started, of BOMs with **production** usage; older
released revisions can also be selected. If the card has several alternatives, the lot-size range is shown next to
them. No order can be opened from an engineering BOM.
- If the quantity produces a fraction in a piece-based component, the order cannot be released (no silent rounding).
Example: the BOM of MAM-0008 has 25 cartons for 100 ADET (pcs); 50 ADET makes 12.5 cartons, and on release the
message "… 'ADET' biriminin 0 ondalık basamak sınırını aşıyor" (… exceeds the 0 decimal place limit of the 'ADET'
unit) appears. Set the quantity to a suitable multiple of the BOM's base quantity.
- For a serial-managed output, the planned quantity must be an integer.
- In draft, **Düzenle** (Edit: quantity, revision, work center), **Böl** (Split), **Tarihleri Planla** (Schedule Dates),
**Malzeme Talebi** (Material Requisition) and **İptal Et** (Cancel) are available. When you leave an unsaved form, the
system asks you.
- **Ağaçsız Emir** (Order without BOM) (the button in the list): an order for a card without a BOM in which you enter
the components manually. The component list can be left empty, but an empty order cannot be released; when the
quantity changes, the components are not scaled.
- If you are coming from planning, the order is converted from a planned order: [Convert a planned order](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme).
### Common messages
| Message | English meaning | Cause |
|---|---|---|
| Planlanan miktar zorunlu. | The planned quantity is required. | The quantity is empty (form validation). |
| Planlanan üretim miktarı sıfırdan büyük olmalıdır. | The planned production quantity must be greater than zero. | The quantity is 0 or negative. |
| 'KART' üretilen kart olarak işaretlenmemiş — üretim emri açılamaz. Kartın 'Üretilir' bayrağını açın. | 'KART' is not flagged as a produced card — a production order cannot be opened. Turn on the card's 'Üretilir' flag. | Üretilir (Produced) is off on the card. |
| 'KART' pasif — pasif stok kartı için üretim emri açılamaz. | 'KART' is inactive — a production order cannot be opened for an inactive stock card. | The card is inactive. |
| Mühendislik ağacından üretim emri açılamaz — üretim kullanımındaki bir ağaç seçin. | A production order cannot be opened from an engineering BOM — select a BOM with production usage. | Wrong usage. |
| Üretim emri yalnız yayınlanmış ürün ağacı revizyonu üzerinden oluşturulabilir. | A production order can be created only from a released BOM revision. | The revision is a draft. |
| Revizyon \{n\} \{tarih\} tarihinden itibaren geçerli — bugün emre verilemez. | Revision \{n\} is valid from \{tarih\} — it cannot be used for an order today. | Validity is in the future. |
| 'MAM-0001' yapılandırılabilir kart — üretim emri yalnız yapılandırılmış bir satış siparişi satırından açılır. | 'MAM-0001' is a configurable card — a production order can be opened only from a configured sales order line. | A configurable item was selected manually; open the order from the sales order. |
## Related
- [Production orders screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
- [Release the production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama)
- [Make-to-stock process](https://erpdocs.corexlogic.com/en/surecler/stoga-uretim)
---
# Open a production order from a sales order
> Use Open Production Order for an item of an approved sales order — the order is linked to the item, the configuration is carried over, and the output goes into stock allocated to that item.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/siparisten-uretim-emri-acma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Satış › Satış Siparişleri › sipariş detayı › Üretim Emri Aç (Sales › Sales Orders › order detail › Open Production Order)
- **Screen route:** `/erp/manufacturing/orders/new?salesOrderId={id}`
- **Required permission:** `erp-manufacturing-orders.create`
- **Prerequisites:**
- The sales order is in **Onaylandı** (Approved) status and the item to be produced is open (it has a quantity not yet shipped).
- The item's card can be produced and has a released bill of materials. For a configurable item, the configuration of the sales order item has been entered.
In make-to-order production, the order covers a customer demand. The order is linked to the sales order item; for a
configurable item, the characteristic values selected on the item are carried over to the order and the super BOM is
resolved with these values.
## Steps
1. On the detail of the approved sales order, click **Üretim Emri Aç** (Open Production Order).
2. In the **Karşılanan Talep** (Demand Covered) section, click the sales order item to be produced. For a configurable item, the selected values are shown under the item (e.g. Tank Hacmi: 2.000 L · Karıştırıcı: Var (Tank Volume: 2,000 L · Mixer: Yes)).
3. Select the bill of materials from the **Plan Kaynağı** (Plan Source) list.
4. Enter the **Planlanan Miktar** (Planned Quantity). It does not have to be the same as the remaining quantity: a scrap allowance, the lot size and the stock on hand are your decision.

1. Demand covered — order is linked to this item
2. Sales order item and its configuration
3. BOM — resolved by the configuration
4. Quantity need not equal the open quantity
5. Click **Üretim Emrini Kaydet** (Save Production Order).
6. To release the order, click **Yayınla** (Release), and in the window that opens, **Emri Yayınla** (Release Order). The requirements are resolved with the configuration of the sales order item.

1. Linked sales order — output reserved for this item
2. Post Consumption
3. Post Output
4. Enter Confirmation — operation confirmation
5. Configuration from the sales order
6. Availability — missing quantity
**Result:** The order is opened linked to the sales order item and appears in the **Bağlantılı Belgeler** (Related Documents) section of the order detail. When the output is posted, the finished product enters stock **allocated to that item** and cannot be shipped on any other document. Next steps: [material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme), [operation confirmation](https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme), [production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme).
## What you need to know
- **Üretim Emri Aç** (Open Production Order) is always visible on an approved order; the form tells you which item can
be produced. An item that cannot be selected is not hidden; the reason is shown: **kart üretim çıktısı olamaz** (the
card cannot be a production output) or **yayınlanmış ürün ağacı yok** (no released BOM). For an item without a BOM,
the **ağaçsız emir** (order without BOM) link on the form opens an order in which you enter the components manually.
- An order is linked to a single sales order item; for an order with several items, a separate production order is
opened for each item.
- **The configuration is frozen on the order**: when the order is released, the BOM's line conditions, selection
conditions and quantity formulas are calculated with the item's values. Example: on **UE-2026-000003**, opened for
the item of **SS-2026-000006** (MAM-0006, Tank Hacmi (Tank Volume) 2,000 L, Karıştırıcı (Mixer) Var (Yes)), 10 of
the BOM's 14 lines were included; the 1,000 L and 5,000 L lines were not, and the 2,000 L sheet became
290 KG × 5% scrap = **304.5 KG**. Rule language: [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar); to test:
[Configure and test](https://erpdocs.corexlogic.com/en/uretim/islemler/yapilandirarak-deneme).
- For a configurable item, the order can be opened **only** from a sales order; if you try to open it manually, the
server says "'MAM-0001' yapılandırılabilir kart — üretim emri yalnız yapılandırılmış bir satış siparişi satırından
açılır." ('MAM-0001' is a configurable card — a production order can be opened only from a configured sales order
line.)
- If the BOM contains a semi-finished item with a **make-to-order** strategy, the **Alt Emirler** (Sub-Orders) card
appears on the order detail after release: [Sub-order proposal](https://erpdocs.corexlogic.com/en/uretim/islemler/alt-emir-onerisi).
- If you are coming from planning: for a make-to-order item, MRP proposes a **planned order linked to the sales
order**; converting the planned order establishes the same link — [Convert a planned order](https://erpdocs.corexlogic.com/en/uretim/islemler/planli-emri-donusturme).
### Common messages
| Message | English meaning | Cause |
|---|---|---|
| Satış siparişi bulunamadı ya da üretim emri açılabilecek açık kalemi yok. | The sales order was not found or has no open item for which a production order can be opened. | The order is not approved, is closed, or all its items have been shipped. |
| Bağlanacak satış siparişi kalemi bulunamadı ya da artık açık değil. | The sales order item to be linked was not found or is no longer open. | The item was shipped or closed in the meantime. |
| Emrin çıktı kartı, '\{sipariş\}' siparişindeki \{n\}. kalemin kartıyla aynı değil. | The order's output card is not the same as the card of item \{n\} on order '\{sipariş\}'. | The BOM of another card was selected. |
| Planlanan miktar zorunlu. | The planned quantity is required. | The quantity is empty. |
## Related
- [Sales orders](https://erpdocs.corexlogic.com/en/satis/ekranlar/satis-siparisleri) · [Approve an order](https://erpdocs.corexlogic.com/en/satis/islemler/siparisi-onaylama)
- [Order-to-production process](https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime)
- [Production orders screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
---
# Open sub-orders (collective order)
> Open linked sub-orders with a single click for the make-to-order semi-finished requirements of a released parent order; semi-finished items expected from stock and the stock error.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/alt-emir-onerisi
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Emirleri › emir detayı › Alt Emirler (Production › Production Orders › order detail › Sub-Orders)
- **Screen route:** `/erp/manufacturing/orders/{id}`
- **Required permission:** `erp-manufacturing-orders.create`, `erp-manufacturing-orders.edit`
- **Prerequisites:**
- The parent order is in **Yayınlandı** (Released) or **Üretimde** (In Production) status.
- The semi-finished item card in the requirement is **produced** and its planning strategy is **Siparişe Üretim** (Make-to-Order).
A collective order means opening, together with the order for a finished product, the orders for the semi-finished
items that go into it (cabin, panel, subassembly). In CoreX this is **single-level** and is proposed from the frozen
requirement list of the parent order; it is not MRP. A sub-order's own sub-orders are proposed the same way, from its
own detail.
## Steps
1. Open the detail of the parent order. If there is an eligible requirement, the **Alt Emirler** (Sub-Orders) card appears below the summary boxes.
2. Check the proposed quantity in the **Açılacak** (To Open) column; change it if necessary. Empty or zero lines are not opened.
3. Click **Alt Emirleri Aç** (Open Sub-Orders).
**Result:** A **released** sub-order is opened for each line (because opening a sub-order also releases it, both create and edit permissions are required): its requirement list is frozen, its routing is copied, and it is ready for production. The output of the sub-order goes into stock **allocated** to that requirement of the parent order and cannot be given to any other document; the consumption of the parent order uses this stock.
## Which requirements are proposed
| Card of the requirement | What happens |
|---|---|
| Produced **and** planning strategy **Siparişe Üretim** (Make-to-Order) | Proposed on the **Alt Emirler** (Sub-Orders) card. |
| Produced, but strategy **Stoğa Üretim** (Make-to-Stock) or **Planlama Yok** (No Planning) | Not proposed — the order expects this semi-finished item **from stock**. |
| Purchased (not produced) card | Not proposed — covered from stock, by purchasing. |
Proposed quantity = open requirement − stock allocated to this requirement − remaining quantity of linked open
sub-orders. If the line reads **Stoktan karşılanıyor** (Covered from stock) or **Karşılandı** (Covered), there is
nothing to open. If there is no proposal, the card is not drawn at all.
The sub-order is opened from the **latest released** revision of the BOM; the quantity is converted to the output unit
of the BOM and rounded up to the precision. If the item has no BOM, the sub-order is opened without one. The operation
is **all or nothing**: if one line is rejected, no sub-order is opened.
> **Semi-finished item expected from stock**
No sub-order is proposed for a semi-finished item with a make-to-stock or no-planning strategy; it is deducted from
stock in the parent order's consumption. If there is no stock, the consumption is rejected:
"'YM-0001' kartının 'SIFIR' durumunda yeterli stok yok. Mevcut: 0, istenen: 1,000000." (Card 'YM-0001' does not have
enough stock in the 'SIFIR' status. Available: 0, requested: 1.000000.) In that case, either produce the
semi-finished item to stock with a separate production order or set the card's planning strategy to
**Siparişe Üretim** (Make-to-Order) — this is the correct setting for a semi-finished item produced together with
every order.
> **Demo installation**
The semi-finished items of the demo company (YM-0001 … YM-0009) use the **Stoğa Üretim** (Make-to-Stock) strategy and
have opening stock; the **Alt Emirler** (Sub-Orders) card does not appear on these orders, and the semi-finished items
are consumed from stock. The example of a make-to-order semi-finished item is **DMO-KSL-05** Demo conveyor drive unit:
on the order of the **DMO-KSL-01** conveyor (UE-2026-000011), the card proposes **Gereken** (Required) 1,
**Stoktan** (From Stock) 0, **Açılacak** (To Open) 1; the sub-order opened with **Alt Emirleri Aç** (Open Sub-Orders)
(UE-2026-000012, parent order UE-2026-000009) is created in **Yayınlandı** (Released) status. End to end:
[Order to production](https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime).

1. Configuration from the sales order
2. Open Sub-orders — make-to-order subassembly
3. Sub-order quantity to open
4. Consumption, output and confirmation
5. Materials selected by the conditions
## Common messages
| Message | English meaning | Cause |
|---|---|---|
| Açılacak alt emir için en az bir miktar girin. | Enter at least one quantity for a sub-order to open. | All lines are empty. |
| Seçilen gereksinim alt emre uygun değil — üretilen ve siparişe göre üretim stratejili bir kart olmalı. | The selected requirement is not eligible for a sub-order — it must be a produced card with a make-to-order strategy. | The card's strategy is not eligible. |
| \{n\}. gereksinimin alt emir miktarı sıfırdan büyük olmalıdır. | The sub-order quantity of requirement \{n\} must be greater than zero. | Zero or negative quantity. |
| Alt kartın ağacının bugün geçerli revizyonu yok — geçerlilik daha sonra başlıyor. | The component card's BOM has no revision valid today — validity starts later. | The release is future-dated. |
| Gereksinim miktarını kapsayan parti büyüklüğü alternatifi yok — alt kartın ağaç alternatiflerini düzenleyin. | No lot-size alternative covers the requirement quantity — edit the BOM alternatives of the component card. | The lot-size range does not fit. |
| Gereksinimin birimi ürün ağacının çıktı birimine çevrilemiyor — alt emir açılamaz. | The requirement's unit cannot be converted to the output unit of the BOM — the sub-order cannot be opened. | Missing unit conversion. |
| \{UE-…\} alt emri yayınlanamadı: … | Sub-order \{UE-…\} could not be released: … | A release rule of the sub-order (e.g. an inactive work center). |
- A linked sub-order cannot be split ("Bağlı alt emir bölünmez — çıktısı üst emrin gereksinimine tahsisli." — A linked
sub-order cannot be split — its output is allocated to the parent order's requirement.) and cannot be linked to a
sales order. When the parent order is completed or cancelled, the stock reserved for it and not consumed is released.
## Related
- [Production orders screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
- [Record material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme)
- [Order-to-production process](https://erpdocs.corexlogic.com/en/surecler/siparisten-uretime)
---
# Release a production order
> Release a draft production order — material requirements are frozen from the revision and operations from the routing; no stock movement and no reservation.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-yayinlama
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Üretim Emirleri › emir detayı › Yayınla (Production › Production Execution › Production Orders › order detail › Release)
- **Screen route:** `/erp/manufacturing/orders/{id}`
- **Required permission:** `erp-manufacturing-orders.edit`
- **Prerequisites:**
- The order is in **Taslak** (Draft) status.
- The selected revision is still valid; the work centers in the routing are active.
Releasing hands the order over to the shop floor. Freezing the plan ensures that an order in progress is not disrupted
even if the BOM or routing changes later.
## Steps
1. On the detail of the draft order, click **Yayınla** (Release).

1. Release — requirements and operations are created
2. Edit — draft only
3. Split — part of the quantity to a new order
4. Planned start and finish
5. Cancel — reason required
2. In the window, check the order number and the item, and click **Emri Yayınla** (Release Order).

1. Release Order — no stock movement
3. If a shortage notice appears above the order (e.g. 'Emir yayınlandı — 1 kalem eksik: HAM-0031 (24,5 KG). Eksik Parça Listesi' (Order released — 1 item missing: HAM-0031 (24.5 KG). Missing Parts List)), cover the shortages by purchasing or stock transfer. A shortage does not block the release.

1. Linked sales order — output reserved for this item
2. Post Consumption
3. Post Output
4. Enter Confirmation — operation confirmation
5. Configuration from the sales order
6. Availability — missing quantity
**Result:** The order becomes **Yayınlandı** (Released): the requirements are copied from the current revision and the operations from the routing, and they are frozen; even if the current BOM changes, the order does not. On the shop floor, **Sarf Kaydet** (Record Consumption), **Teyit Gir** (Enter Confirmation) and **Çıktı Kaydet** (Record Output) can now be used.
## What you need to know
- **Releasing does not create stock movements and does not reserve material.** There is no stock reservation; to bring
the material to the line, **Malzeme Hazırla** (Stage Material) (a transfer reservation to the supply warehouse) is
used.
- Requirement = line quantity × (planned ÷ BOM base quantity) × (1 + scrap/100), rounded **up** to the unit's
precision. For a unit that does not accept fractions (ADET (pcs)), the release is rejected if the result is
fractional; no silent rounding is done.
- The machine and labor times of the operations scale with the order quantity; the setup time is fixed. A conditional
operation of the routing (e.g. "Karıştırıcı montajı" (Mixer assembly) only when Karıştırıcı (Mixer) is Var (Yes)) is
included according to the configuration.
- In the list, you can select several draft orders and release them collectively with **Yayınla** (Release) (at most
50); the result window shows the result for each order separately.
- The plan of a released order (quantity, revision) does not change; **Böl** (Split) can be used to separate a
quantity.
### Common messages
| Message | English meaning | Cause |
|---|---|---|
| Yalnız Taslak durumundaki üretim emri yayınlanabilir. | Only a production order in Draft status can be released. | The order has already been released. |
| Üretim emri en az bir malzeme gereksinimi olmadan yayınlanamaz. | A production order cannot be released without at least one material requirement. | No components. |
| Seçili ürün ağacı revizyonu artık geçerli değil. Taslakta revizyonu yeniden seçin. | The selected BOM revision is no longer valid. Select the revision again in the draft. | The revision's validity changed. |
| '\{kart\}' için gereksinim (\{miktar\}), '\{birim\}' biriminin \{n\} ondalık basamak sınırını aşıyor. Sessiz yuvarlama yapılmaz. | The requirement (\{miktar\}) for '\{kart\}' exceeds the \{n\} decimal place limit of the '\{birim\}' unit. No silent rounding is done. | The quantity produces a fraction. |
| Rotanın '\{iş merkezi\}' iş merkezi pasif — emir yayınlanamaz; rotayı düzeltin. | Work center '\{iş merkezi\}' of the routing is inactive — the order cannot be released; correct the routing. | Inactive work center. |
| '\{kart\}' yapılandırılabilir üst kart — gereksinim materyalize edilmiş bir varyant olmalı. | '\{kart\}' is a configurable parent card — the requirement must be a materialized variant. | A configurable component in the BOM without a selected variant. |
| \{n\}. satırın miktar formülü bilinmiyor — okuduğu değerlerden biri konfigürasyonda yok (…). | The quantity formula of line \{n\} is unknown — one of the values it reads is missing in the configuration (…). | A value read by the formula is missing in the configuration — [Conditions](https://erpdocs.corexlogic.com/en/uretim/kosullar). |
| Konfigürasyon ürün ağacının hiçbir satırını seçmiyor — ağacın koşullarını düzeltin. | The configuration selects none of the BOM's lines — correct the BOM's conditions. | No line condition was met. |
## Related
- [Production orders screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
- [Missing parts list](https://erpdocs.corexlogic.com/en/uretim/ekranlar/eksik-parca-listesi)
- [Record material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme)
---
# Record material consumption
> Post component consumption to a production order — warehouse, storage location, stock status, batch and serial number; stock is reduced immediately. Components flagged for backflush are deducted with the output.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Emirleri › emir detayı › Sarf Kaydet (Production › Production Orders › order detail › Record Consumption)
- **Screen route:** `/erp/manufacturing/orders/{id}/consumptions/new`
- **Required permission:** `erp-manufacturing-postings.create`
- **Prerequisites:**
- The order is in **Yayınlandı** (Released) or **Üretimde** (In Production) status.
- The component is in available stock in the warehouse/storage location/stock status to be selected and is not in a physical inventory count.
- The consumption date is in an open posting period.
Material consumption deducts the component used in production from stock and posts it to the order. The same
requirement can be split across several lines (different warehouse, storage location or batch).
## Steps
1. On the order detail, click **Sarf Kaydet** (Record Consumption).
2. Check the **Sarf Tarihi** (Consumption Date; default today). The **İş Merkezi** (Work Center) is proposed from the order's work center; select the place where the work was actually performed. Enter a **Not** (Note) if you wish.
3. On the line of the requirement to be consumed, click **Sarf Ekle** (Add Consumption). To add all remaining quantities at once, click **Tümünü Ekle** (Add All).
4. Select the line's **Depo** (Warehouse) and **Lokasyon** (Storage Location) according to where the stock is kept; to set the same warehouse on all lines, use **Depo (tümüne)** (Warehouse, all lines). **Stok Durumu** (Stock Status) defaults to SIFIR. The **Anlık kullanılabilir** (Currently available) stock is shown under the line.

1. Consumption date — open posting period
2. Add All — all remaining quantities as lines
3. Add Consumption — this requirement only
4. Warehouse and location — where the stock is
5. Available stock now — informative
6. Save Consumption — stock decreases at once
5. For a batch-managed component, select the batch or split the quantity across the batches with the nearest expiry dates using **FEFO ile Dağıt** (Allocate by FEFO); for a serial-managed component, select the serial numbers. Change the **Miktar** (Quantity) if necessary.
6. Click **Sarfı Kaydet** (Save Consumption).
**Result:** The consumption is saved with the number **MS-yyyy-nnnnnn**, the component is **deducted immediately** from the selected warehouse/storage location/status, and the requirement's **Tüketilen** (Consumed) quantity increases. If this is the first physical posting, the order becomes **Üretimde** (In Production). The document does not change; an error is reversed with a [consumption correction](https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme).
## What you need to know
- **The storage location matters**: **Lokasyonsuz** (No storage location) is not the warehouse total but a separate
stock breakdown. If the stock is in a storage location and you do not select it, the posting is rejected with
"yeterli stok yok" (not enough stock). The **Anlık kullanılabilir** (Currently available) information exists for
this reason; the server validates again at the time of posting.
- Stock statuses such as **Sıfır** (New) and **İkinci El** (Second-hand) are separate stock segments; consumption is
deducted from the selected segment.
- **Backflush**: a component flagged **Geri sarf** (Backflush) in the BOM (a "Geri sarf" badge on the requirement,
"geri sarf — çıktıyla düşer" (backflush — deducted with output) on the form) is not consumed separately; it is
deducted automatically when the output is posted. Quantity deducted = planned × (total produced ÷ order's planned
quantity) − consumed so far; manual consumption is not counted twice. Consuming manually on the form is allowed (it
warns, it does not block). Details: [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar).
- After saving, you return to the order detail; the banner in the header shows the number (**Belgeyi aç** (Open
document) opens the consumption document). Consumption documents are on the order's **Malzeme Sarfları** (Material
Consumptions) tab.
- **Tamamla** (Complete) requires at least one material consumption on the order; staying below the plan does not
prevent completion.
- The accounting entry (material issue to production) is created together with the consumption; its details are
outside the scope of this document.

1. Immutable document — correction is a separate record
2. Create Consumption Correction
3. Warehouse and location
### Example
**MS-2026-000003** for **UE-2026-000001** (MAM-0010 × 3): HAM-0030 sheet 56.7 KG and HAM-0034 pipe 12 M, from
HAMMADDE / SAC-ALANI, work center LAZER. If the pipe were an item in an ongoing physical inventory count, the posting
would be rejected (see below).
### Common messages
| Message | English meaning | Cause |
|---|---|---|
| 'HAM-0049' kartının 'SIFIR' durumunda yeterli stok yok. Mevcut: 0, istenen: 8,000000. | Card 'HAM-0049' does not have enough stock in the 'SIFIR' status. Available: 0, requested: 8.000000. | There is no or not enough stock in the selected warehouse/storage location/status. Check the storage location. |
| 'SARF-0005' kartı 'HAMMADDE' deposunda sayımda (SAY-2026-000001) — sayım kaydedilene ya da iptal edilene kadar stok hareketi yazılamaz. | Card 'SARF-0005' is in a physical inventory count in warehouse 'HAMMADDE' (SAY-2026-000001) — no stock movement can be posted until the count is posted or cancelled. | The item is being counted in that warehouse; try again when the count is finished. |
| Yalnız Yayınlandı ya da Üretimde durumundaki üretim emrine sarf kaydedilebilir. | Consumption can be posted only to a production order in Released or In Production status. | The order is draft, completed, closed or cancelled. |
| Sarf en az bir satır içermelidir. | The consumption must contain at least one line. | No line was added. |
| Sarf satırında depo seçilmelidir. · Sarf satırında stok durumu seçilmelidir. | A warehouse must be selected on the consumption line. · A stock status must be selected on the consumption line. | A required field is empty. |
| Sarf miktarı sıfırdan büyük olmalıdır. | The consumption quantity must be greater than zero. | Quantity is 0. |
| '\{durum\}' durumu pasif — sarf yapılamaz. | Status '\{durum\}' is inactive — consumption is not possible. | The stock status is inactive. |
| \{n\}. gereksinim kilitli bir alternatif grubunda ve planı yok — yalnız seçili karta sarf yapılabilir (kilit: …). | Requirement \{n\} is in a locked alternative group and has no plan — consumption is possible only for the selected card (lock: …). | The selection in the alternative group is locked. |
| Bu üretim emri bu sırada başka bir kullanıcı tarafından değiştirildi. Sayfayı yenileyip tekrar deneyin. | This production order was changed by another user in the meantime. Refresh the page and try again. | Concurrent posting; use **Bağlamı yenile** (Refresh context). |
## Related
- [Record production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme)
- [Correct consumption and output](https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme)
- [Missing parts list](https://erpdocs.corexlogic.com/en/uretim/ekranlar/eksik-parca-listesi)
---
# Enter an operation confirmation
> Record the yield and scrap quantity of an operation, the actual setup/machine/labor time and the employees; the final confirmation closes the operation.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/operasyon-teyidi-girme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Yürütme › Operasyon Teyidi Gir (Production › Production Execution › Enter Operation Confirmation)
- **Screen route:** `/erp/manufacturing/confirmations/new?emir={id}`
- **Required permission:** `erp-manufacturing-postings.create`
- **Prerequisites:**
- The order is **Yayınlandı** (Released) or **Üretimde** (In Production) and has operations (item with a routing).
- The operation has not received its final confirmation.
A confirmation is the shop floor's report that "this much work came out of this operation, and it took this long".
Capacity load, labor and scrap reports and OEE are fed by confirmations.
## Steps
1. Click **Teyit Gir** (Enter Confirmation) on the order detail, or **Teyit Gir** on the row in the **Üretim Operasyonları** (Production Operations) worklist.
2. Select the operation to be confirmed from the table (the first open operation is preselected). An operation with a final confirmation cannot be selected.
3. Check the **Teyit tarihi** (Confirmation date). Enter the **Sağlam** (Yield) quantity or click **Kalanı yaz** (Enter remaining); enter the **Fire** (Scrap) quantity, if any.

1. Pick the operation — remaining = planned − (yield + scrap)
2. Yield quantity
3. Fill remaining
4. Scrap quantity
5. Actual times — server proposes when empty
6. Save Confirmation — no stock posting
4. Enter the **Hazırlık (dk)** (Setup, min), **Makine (dk)** (Machine, min) and **İşçilik (dk)** (Labor, min) times. If you leave them empty, the server proposes them from the planned values (grey text is a preview).
5. If necessary, select the employees with **Çalışan ekle** (Add employee). If the operation finishes with this confirmation, check the **Son teyit — operasyon kapanır** (Final confirmation — operation closes) box.
6. Click **Teyidi Kaydet** (Save Confirmation).
**Result:** The confirmation is saved with the number **TYD-yyyy-nnnnnn**; the operation's yield/scrap total and actual time increase. If this is the first physical posting, the order becomes **Üretimde** (In Production). **A confirmation does not post stock** — to put the finished product into stock, [record the production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme).
## What you need to know
- **Partial confirmation** is allowed: several confirmations can be entered for the same operation during the day; the
total **Sağlam / fire** (Yield / scrap) and **Kalan** (Remaining) are updated and the status becomes **Kısmi teyit**
(Partially confirmed). When **Son teyit** (Final confirmation) is checked, the status becomes **Son teyit** and the
operation drops off the worklist.
- Proposed times: setup is the planned setup time on the operation's **first** confirmation; machine and labor are
proportional to the confirmed quantity relative to the planned quantity. Example: on UE-2026-000001, the plan for
operation 10 is setup 15, machine 60, labor 15 min (3 ADET (pcs)); the actual time of the confirmation entered with
15 + 55 + 16 min was **86 min**.
- A confirmation does not enforce the operation sequence; however, if an operation's **in-process inspection** is
awaiting a decision, the next operation cannot be confirmed.
- A quantity posted to **rework** does not count as yield; a final confirmation cannot be given before the rework is
finished.
- Cancelling a confirmation: **İptal Et** (Cancel) on the row in the [Operation confirmations](https://erpdocs.corexlogic.com/en/uretim/ekranlar/operasyon-teyitleri)
list (a reason is mandatory). If a final confirmation is cancelled, the operation is reopened.
- The yield confirmation of the last operation appears as a proposal on the output form (**Öneriyi Uygula** (Apply
Proposal)); the confirmation does not post the output by itself.
### Common messages
| Message | English meaning | Cause |
|---|---|---|
| Teyit edilecek operasyonu seçin. | Select the operation to be confirmed. | No row was selected. |
| Teyit ileri tarihli olamaz. | A confirmation cannot be future-dated. | The date is after today. |
| Teyit boş olamaz — miktar ya da süre girin. | A confirmation cannot be empty — enter a quantity or a time. | All fields are empty. |
| Yalnız Yayınlandı ya da Üretimde durumundaki üretim emrine operasyon teyidi girilebilir. | Operation confirmations can be entered only for a production order in Released or In Production status. | The order is not in an eligible status. |
| Çalışanların süreleri toplamı işçilik süresine eşit olmalı. | The sum of the employees' times must equal the labor time. | The times do not add up. |
| Üretim emri bu arada değişti — bağlamı yenileyip yeniden deneyin. | The production order changed in the meantime — refresh the context and try again. | Concurrent posting; use **Bağlamı yenile** (Refresh context). |
## Related
- [Operation confirmations screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/operasyon-teyitleri)
- [Production operations](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-operasyonlari)
- [Record production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme)
---
# Record production output
> Put the produced finished product into stock — warehouse, storage location, quantity, batch/serial number; backflush components are deducted at the same time, and on an order linked to a sales order the stock is allocated to the item.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Emirleri › emir detayı › Çıktı Kaydet (Production › Production Orders › order detail › Record Output)
- **Screen route:** `/erp/manufacturing/orders/{id}/outputs/new`
- **Required permission:** `erp-manufacturing-postings.create`
- **Prerequisites:**
- The order is in **Yayınlandı** (Released) or **Üretimde** (In Production) status.
- The output card is active; for a batch-managed finished product the batch number, and for a serial-managed finished product the serial numbers, are ready.
Output is the receipt of the produced finished product into stock (goods receipt from production). An order can be put
into stock in parts, with several outputs.
## Steps
1. On the order detail, click **Çıktı Kaydet** (Record Output).
2. If there is a quantity from the last operation's confirmation that has not yet been posted as output, enter it in the quantity with **Öneriyi Uygula** (Apply Proposal).
3. Check the **Çıktı Tarihi** (Output Date). On the output line, select the **Depo** (Warehouse) and **Lokasyon** (Storage Location) the finished product will enter, and enter the **Miktar** (Quantity). To split across different warehouses, use **Satır Ekle** (Add Line).
4. For a batch-managed finished product, enter the **Lot** (Batch) (and production/expiry date); for a serial-managed finished product, enter the serial numbers.
5. In the **Geri Sarf** (Backflush) section, select the **Geri sarf deposu** (Backflush warehouse) from which the backflush components will be deducted; empty = the warehouse of the first output line. **Stok durumu** (Stock status) empty = default.

1. Output date
2. Warehouse receiving the product
3. Location
4. Quantity — in the order unit
5. Backflush warehouse — backflush components issue from here
6. Save Output — product enters stock
6. Click **Çıktıyı Kaydet** (Save Output).
**Result:** The output is saved with the number **UC-yyyy-nnnnnn**; the finished product **enters** the selected warehouse/storage location, and the order's **Üretilen** (Produced) quantity increases. Components flagged for backflush are deducted with a separate consumption document. On an order linked to a sales order, the finished product enters stock **allocated to the sales order item** and leaves only with the delivery for that order. Next step: [complete the order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma).
## What you need to know
- **Exceeding or falling short of the plan is allowed**: the output is not limited to the planned quantity, and the
order does not have to fill the plan to be completed. The status is not derived from the output quantity —
completion is a separate command.
- **Backflush** is opened in the same posting as the output, and the consumption is written immediately afterwards. A
component that cannot be deducted **does not reverse the output**: the output document stays open and shows
"1 bileşen geri sarf edilemedi — çıktı geri alınmadı." (1 component could not be backflushed — the output was not
reversed.) with the reason; the record goes to [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar) (link
**Hatalı Geri Sarflar'da çözün** (Resolve in Failed Backflushes)).
- For a backflush component kept in stock with storage locations, set the backflush warehouse to the component's
warehouse and make sure the card's **default storage location** in that warehouse is defined; otherwise backflush
looks at the stock without a storage location.
- On an order with by-products / co-products, **Yan / Ortak Ürünler** (By-Products / Co-Products) lines appear on the
form; a by-product alone can also be posted.
- The value of the finished product (material + activity) is calculated at output and is shown in the **Malzeme
Maliyeti** (Material Cost) column of the output document (with permission to view costs). The accounting entry is
outside the scope of this document.

1. Component not backflushed — output stays
2. Go to Backflush Errors
3. Create Output Correction
4. Warehouse and location received
### Example
**UE-2026-000001** (MAM-0010 × 3): the 2 ADET (pcs) yield confirmation of the last operation 40 was entered as output
with **Öneriyi Uygula** (Apply Proposal); **UC-2026-000001** received 2 ADET into MAMUL / RAF-M1. The adjustable foot
(HAM-0049, backflush) could not be backflushed because it is stored in HAMMADDE / RAF-C:
"3. satır: 'HAM-0049' kartının 'SIFIR' durumunda yeterli stok yok. Mevcut: 0, istenen: 8,000000." (Line 3: card
'HAM-0049' does not have enough stock in the 'SIFIR' status. Available: 0, requested: 8.000000.)
### Common messages
| Message | English meaning | Cause |
|---|---|---|
| Yalnız Yayınlandı ya da Üretimde durumundaki üretim emrine çıktı kaydedilebilir. | Output can be posted only to a production order in Released or In Production status. | The order is not in an eligible status. |
| Üretim çıktısı en az bir satır içermelidir. | The production output must contain at least one line. | No line. |
| Çıktı satırında depo seçilmelidir. | A warehouse must be selected on the output line. | The warehouse is empty. |
| Üretim miktarı sıfırdan büyük olmalıdır. | The production quantity must be greater than zero. | Quantity is 0. |
| '\{kart\}' pasif — pasif stok kartı için üretim çıktısı kaydedilemez. | '\{kart\}' is inactive — production output cannot be posted for an inactive stock card. | The card is inactive. |
| Seri takipli satırda miktar seri adedine eşit olmalıdır (seri: …, miktar: …). | On a serial-managed line, the quantity must equal the number of serial numbers (serial: …, quantity: …). | The number of serial numbers does not match. |
| Bu üretim emri bu sırada başka bir kullanıcı tarafından değiştirildi. Sayfayı yenileyip tekrar deneyin. | This production order was changed by another user in the meantime. Refresh the page and try again. | Concurrent posting. |
## Related
- [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar)
- [Correct consumption and output](https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme)
- [Create a delivery](https://erpdocs.corexlogic.com/en/satis/islemler/teslimat-olusturma) — shipping a finished product linked to a sales order
---
# Complete and finally close a production order
> Close an order whose production is finished with Complete, lock it with Close Finally once corrections are done; cancel the order when necessary.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Üretim Emirleri › emir detayı › Tamamla · Kesin Kapat (Production › Production Orders › order detail › Complete · Close Finally)
- **Screen route:** `/erp/manufacturing/orders/{id}`
- **Required permission:** `erp-manufacturing-orders.edit`
- **Prerequisites:**
- For Complete, the order is **Üretimde** (In Production); at least one output and at least one material consumption are posted; there is no open failed backflush.
- For Close Finally, the order is **Tamamlandı** (Completed).
The end of a production order has two steps: **Tamamla** (Complete) finishes production, **Kesin Kapat** (Close
Finally) closes the books. In the time between, an incorrect consumption or output can be
[corrected](https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme).
## Steps
1. On the detail of the order in production, click **Tamamla** (Complete).

1. Operations — plan copied from the routing
2. Confirmed yield and scrap
3. Actual time from confirmations
4. Complete — when output and consumption exist
2. Check the planned and produced quantities and click **Emri Tamamla** (Complete Order).

1. Planned and produced shown separately
2. Complete Order
3. When there is no further need for corrections, click **Kesin Kapat** (Close Finally).
4. Click **Kesin Kapat** (Close Finally) in the window.

1. Close Permanently — corrections are closed too
**Result:** In **Tamamlandı** (Completed), the order no longer accepts new consumptions, outputs and confirmations, but it remains open to corrections of past postings; in **Kapatıldı** (Closed), no posting can be made, including corrections. There is no way back — if a correction is needed later, a new order is opened.
## Rules for completion
- Only an order in **Üretimde** (In Production) can be completed; an order in **Yayınlandı** (Released) (with no
physical postings) cannot be completed — it is cancelled.
- At least one **output** and at least one **material consumption** are required. If there is output but no
consumption, the detail shows "Tamamlamak için en az bir malzeme sarfı gerekir." (At least one material consumption is
required to complete.) instead of **Tamamla** (Complete).
- **The plan does not have to be filled**: UE-2026-000001 was planned for 3 ADET (pcs), 2 ADET were produced and it was
completed (67%). Missing consumption is not an obstacle either.
- If there is an **open failed backflush**, the server rejects it; first retry it or close it with a reason.
- On completion: stock reserved for this order from sub-orders and not consumed is released; the difference between
the value consumed and the value applied to the outputs (closing variance) is calculated. No new stock is posted.
Accounting details are outside the scope of this document.
## Rules for final closing
- Only a **Tamamlandı** (Completed) order can be closed finally; no reason is asked for.
- On a closed order, consumptions, outputs, confirmations and **their corrections** are not accepted. The purpose is to
stop late changes such as reducing consumption afterwards with a correction or posting too much.

1. Status: Closed
2. Consumption documents of the order
3. Output documents of the order
4. Planned and consumed
## Cancellation
If production will not take place, use **İptal Et** (Cancel) (on an order in Taslak (Draft), Yayınlandı (Released) or
Üretimde (In Production)). In the **Üretim emri iptal edilsin mi?** (Cancel the production order?) window, the **İptal
Gerekçesi** (Cancellation Reason) is required (at most 512 characters), then click **Emri İptal Et** (Cancel Order).
Cancellation is terminal; the order cannot be reopened. If there is consumption or output that has not been reversed,
the server rejects it: first make a [correction](https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme). Example: **UE-2026-000005** was
cancelled with the reason "Talep düştü, üretim yapılmayacak." (Demand dropped, production will not take place.)

1. Cancel reason — required, max 512 characters
2. Cancel Order — cannot be undone
### Common messages
| Message | English meaning | Cause |
|---|---|---|
| Yalnız Üretimde durumundaki üretim emri tamamlanabilir. | Only a production order in In Production status can be completed. | The order is Released or already closed. |
| Üretim çıktısı olmayan emir tamamlanamaz — önce çıktı kaydedin ya da emri iptal edin. | An order without production output cannot be completed — first post output or cancel the order. | No output. |
| Malzeme sarfı olmayan emir tamamlanamaz — önce sarf kaydedin ya da emri iptal edin. | An order without material consumption cannot be completed — first post consumption or cancel the order. | No consumption. |
| Emirde çözülmemiş 1 hatalı geri sarf var — tamamlamadan önce yeniden deneyin ya da gerekçeyle kapatın: … | The order has 1 unresolved failed backflush — retry it or close it with a reason before completing: … | Open failed backflush. |
| Yalnız tamamlanmış üretim emri kesin kapatılabilir — önce emri tamamlayın. · Emir zaten kesin kapatılmış. | Only a completed production order can be closed finally — complete the order first. · The order has already been closed finally. | Close Finally rule. |
| Yalnız Taslak, Yayınlandı ya da Üretimde durumundaki üretim emri iptal edilebilir. | Only a production order in Draft, Released or In Production status can be cancelled. | Completed/closed order. |
| Emirde geri alınmamış malzeme sarfı var (…). İptalden önce sarf düzeltmesi yapılmalıdır. | The order has material consumption that has not been reversed (…). A consumption correction must be made before cancellation. | Correct the consumption first. |
| Emirde geri alınmamış üretim çıktısı var (…). İptalden önce çıktı düzeltmesi yapılmalıdır. | The order has production output that has not been reversed (…). An output correction must be made before cancellation. | Correct the output first. |
| İptal gerekçesi zorunludur. | A cancellation reason is required. | The reason is empty. |
## Related
- [Production orders screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-emirleri)
- [Correct consumption and output](https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme)
- [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar)
---
# Correct consumption and output
> Reverse an incorrectly posted material consumption or production output with a correction document that states a reason; the original document does not change.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/sarf-cikti-duzeltme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Malzeme Sarfı / Üretim Çıktısı belgesi › Sarf Düzeltmesi Oluştur · Çıktı Düzeltmesi Oluştur (Production › Material Consumption / Production Output document › Create Consumption Correction · Create Output Correction)
- **Screen route:** `/erp/manufacturing/consumptions/{id}/reversals/new`
- **Required permission:** `erp-manufacturing-corrections.create`
- **Prerequisites:**
- The order is **Üretimde** (In Production) or **Tamamlandı** (Completed) (no corrections on a **Kapatıldı** (Closed) order).
- The line to be corrected has a quantity that has not been reversed.
Production postings are not deleted or edited; an incorrect consumption or output is reversed with a **correction
document**. In this way, the history of the stock and of the order remains traceable.
## Steps
1. Open the document from the **Malzeme Sarfları** (Material Consumptions) (or **Üretim Çıktıları** (Production Outputs)) tab of the order detail and click the **Sarf Düzeltmesi Oluştur** (Create Consumption Correction) (or **Çıktı Düzeltmesi Oluştur** (Create Output Correction)) link.

1. Immutable document — correction is a separate record
2. Create Consumption Correction
3. Warehouse and location
2. Check the **Düzeltme Tarihi** (Correction Date; default today) and enter the **Düzeltme Nedeni** (Correction Reason) (required, at most 512 characters).
3. On the line to be corrected, check the **Bu satırı düzelt** (Correct this line) box; enter the quantity in the **Düzeltilecek Miktar** (Quantity to Correct) field or click **Kalanı doldur** (Fill remaining). On a serial-managed line, select the serial numbers.

1. Correction reason — required
2. Tick the line to correct
3. Quantity to correct — at most the remaining
4. Save Correction — stock returns
4. Click **Düzeltmeyi Kaydet** (Save Correction).
**Result:** The correction is a new and **immutable** document; the original posting does not change. A consumption correction **puts the component back** into the warehouse/storage location/status it came from and reduces the requirement's Tüketilen (Consumed) quantity; an output correction **removes** the finished product from stock and reduces the order's Üretilen (Produced) quantity. It is listed in the **Düzeltme Geçmişi** (Correction History) section of the document.
## What you need to know
- A correction can be made only on an order that is **Üretimde** (In Production) or **Tamamlandı** (Completed). After
**Kesin Kapat** (Close Finally), the form does not open:
"Düzeltme bağlamı yüklenemedi: Yalnız Üretimde ya da Tamamlandı durumundaki üretim emrinin sarfı geri alınabilir."
(The correction context could not be loaded: consumption can be reversed only for a production order in In
Production or Completed status.)
- A document can be corrected several times, in parts; on each line at most the **Kalan Düzeltilebilir** (Remaining
Correctable) quantity.
- An output correction is a stock issue: the finished product is deducted from the warehouse/storage location it
entered; if there is not enough stock there, the server rejects it with a stock message.
- To cancel the order, all consumptions and outputs must first be corrected.
- All output corrections are listed in the **Üretim › Analitik › Çıktı Düzeltmeleri** (Production › Analytics ›
Output Corrections) report.
### Example
The **MS-2026-000003** consumption of **UE-2026-000001** recorded 12 M of pipe; 2 M were left over from cutting.
**Sarf Düzeltmesi #1** (Consumption Correction #1), with the reason "Kesimden artan 2 m boru depoya iade edildi."
(2 m of pipe left over from cutting returned to the warehouse.), put 2 M back into HAMMADDE / SAC-ALANI; the order's
Tüketilen (Consumed) quantity of pipe fell from 12 to 10.
### Common messages
| Message | English meaning | Cause |
|---|---|---|
| Düzeltme gerekçesi zorunludur. | A correction reason is required. | The reason is empty. |
| Geri alınabilir miktar aşılıyor. Kalan: …, istenen: … | The reversible quantity is exceeded. Remaining: …, requested: … | The quantity is greater than the remaining quantity. |
| \{n\}. sarf satırı daha önce tamamen geri alınmış. · \{n\}. çıktı satırı daha önce tamamen geri alınmış. | Consumption line \{n\} has already been fully reversed. · Output line \{n\} has already been fully reversed. | Nothing remains on the line. |
| Sarf düzeltmesi en az bir satır içermelidir. · Çıktı düzeltmesi en az bir satır içermelidir. | A consumption correction must contain at least one line. · An output correction must contain at least one line. | No line was checked. |
| Yalnız Üretimde ya da Tamamlandı durumundaki üretim emrinin sarfı geri alınabilir. | Consumption can be reversed only for a production order in In Production or Completed status. | The order is closed (or cancelled). |
| Yalnız Üretimde ya da Tamamlandı durumundaki üretim emrinin çıktısı geri alınabilir. | Output can be reversed only for a production order in In Production or Completed status. | The same rule, for output. |
| Üretim miktarı negatife düşemez — geri alma miktarı üretilen miktarı aşıyor. | The production quantity cannot become negative — the reversal quantity exceeds the produced quantity. | The output correction is too large. |
## Related
- [Record material consumption](https://erpdocs.corexlogic.com/en/uretim/islemler/malzeme-sarfi-kaydetme)
- [Record production output](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-ciktisi-kaydetme)
- [Complete and finally close a production order](https://erpdocs.corexlogic.com/en/uretim/islemler/uretim-emrini-kapatma)
---
# Enter a repetitive manufacturing confirmation
> Confirm the quantity produced in order-less repetitive manufacturing — goods receipt of the finished product and backflush of the components in a single posting; open planned orders are reduced.
URL: https://erpdocs.corexlogic.com/en/uretim/islemler/seri-uretim-teyidi-girme
- **Type:** Task
- **Module:** Manufacturing
- **Menu path:** Üretim › Seri Üretim › Seri Üretim Teyidi Gir (Production › Repetitive Manufacturing › Enter Repetitive Manufacturing Confirmation)
- **Screen route:** `/erp/manufacturing/repetitive/new`
- **Required permission:** `erp-manufacturing-repetitive.create`
- **Prerequisites:**
- The item has an unlocked production version flagged **Seri üretim** (Repetitive manufacturing); the version's BOM is released and valid on the confirmation day.
- The components are in sufficient stock in the consumption warehouse (in a warehouse with storage locations, in the card's default storage location).
In repetitive manufacturing, no production order is opened; the quantity produced is confirmed period by period.
Component consumption and the finished product receipt are in the same posting. All fields and rules of the screen:
[Repetitive manufacturing](https://erpdocs.corexlogic.com/en/uretim/ekranlar/seri-uretim).
## Steps
1. Open the **Üretim › Seri Üretim › Seri Üretim Teyidi Gir** (Production › Repetitive Manufacturing › Enter Repetitive Manufacturing Confirmation) screen or click **Teyit Gir** (Enter Confirmation) in the list.
2. Select the item's version in the **Seri üretim versiyonu** (Repetitive manufacturing version) field (only versions flagged for repetitive manufacturing are listed).
3. Check the **Teyit tarihi** (Confirmation date) and enter the quantity produced in the **Miktar (temel birim)** (Quantity, base unit) field.
4. In the **Mamul girişi** (Finished product receipt) section, select the **Depo** (Warehouse) and **Lokasyon** (Storage location); for a batch-managed finished product, enter the **Lot** (Batch), **Üretim tarihi** (Production date) and **Son kullanma** (Expiry date).
5. In the **Geri sarf** (Backflush) section, select the **Sarf deposu** (Consumption warehouse) (empty = the finished product's receiving warehouse); **Stok durumu** (Stock status) empty = default.

1. Production version flagged repetitive
2. Quantity — in the base unit
3. Receiving warehouse
4. Warehouse to issue components from
5. Save Confirmation — receipt and issue together
6. Click **Teyidi Kaydet** (Save Confirmation).
**Result:** The confirmation appears in the list with **Kaydedildi** (Posted) status: the finished product enters the selected warehouse, the components are exploded with the BOM valid on the confirmation day and deducted by the backflush rule, and open planned orders are reduced by the confirmed quantity (**Planlı emirden düşülen** (Deducted from planned orders)). An incorrect confirmation is cancelled from the list with a reason.
## What you need to know
- Explosion, consumption breakdown and value are calculated on the server; the form does not show a preview.
- The components are deducted with the breakdown rules of backflush: a batch-managed component by FEFO, and in a
warehouse requiring storage locations from the card's default storage location; a serial-managed component is not
backflushed.
- A confirmation is cancelled from its row in the **Seri Üretim Teyitleri** (Repetitive Manufacturing Confirmations)
list (**Teyidi İptal Et** (Cancel Confirmation), **Gerekçe** (Reason) required,
`erp-manufacturing-corrections.create`); the receipt and the consumption are reversed.
- The demo installation has no production version flagged for repetitive manufacturing; therefore there is no sample
confirmation posting.
## Related
- [Repetitive manufacturing screen](https://erpdocs.corexlogic.com/en/uretim/ekranlar/seri-uretim)
- [Production versions](https://erpdocs.corexlogic.com/en/uretim/ekranlar/uretim-versiyonlari)
- [Failed backflushes](https://erpdocs.corexlogic.com/en/uretim/ekranlar/hatali-geri-sarflar) — the breakdown rules of backflush
---
# Data Import
> Bulk import and export of data with Excel (.xlsx) workbooks — objects, load order, template, validate, import and result.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi
Data Import is the single framework for importing and exporting master data with Excel workbooks, both when
migrating from previous software and for bulk maintenance. From the item master to the price list, from the work
center to the opening stock, every **object** works with the same three steps: **download the template or the
existing records → Kontrol Et (Validate) → Aktar (Import)**.
The **Yönetim › Araçlar › Veri Aktarımı** (Administration › Tools › Data Import) screen lists all objects the user
can see **in load order**. For an end-to-end setup: [Setup with data import](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum).

1. Load order
2. Click an object to open its import screen
3. Import/export or export only
| Column | Meaning |
|---|---|
| **Sıra** (Order) | Load order. Each object depends on the ones before it (the BOM waits for the item, the opening stock waits for the warehouse). |
| **Nesne** (Object) | The object's name, with the workbook's sheets below it. Click to open the object's import screen. |
| **Alan** (Area) | The application area the object belongs to (Yönetim (Administration), Ana Veriler (Master Data), Stok Yönetimi (Inventory Management), Üretim (Production), Satın Alma (Purchasing), Satış (Sales), Finans (Finance)). |
| **Açıklama** (Description) | What the object carries and what must be loaded before it. |
| **Yetki** (Permission) | **İçe / dışa aktarır** (Imports / exports) — you have import permission. **Yalnız dışa aktarır** (Exports only) — you can see the object, download and validate the workbook, but cannot import. |
If you do not have permission to see any object, the table reads "Aktarabileceğiniz bir nesne yok — yetki için
yöneticinize başvurun." (There is no object you can import — contact your administrator for permission.)
## Objects and load order
| Order | Object | Workbook sheets | Must be loaded first | Screen |
|---|---|---|---|---|
| 1 | [Users and Roles](https://erpdocs.corexlogic.com/en/veri-aktarimi/kullanicilar-ve-roller) | Roller · Kullanıcılar | — (first file) | Data Import |
| 1 | [Item Import](https://erpdocs.corexlogic.com/en/veri-aktarimi/urun-aktarimi) | Özellikler · Özellik Değerleri · Nitelik Setleri · Kategoriler · Üreticiler · Ürünler · Yapılandırma · Varyantlar · Birimler · Barkodlar · Alternatifler · Sınıflandırma | — | Ana Veriler › Ürünler › Ürün Aktarımı (Master Data › Items › Item Import) |
| 2 | [Business Partner Import](https://erpdocs.corexlogic.com/en/veri-aktarimi/is-ortagi-aktarimi) | İş Ortakları | — | Ana Veriler › İş Ortakları › İş Ortağı Aktarımı (Master Data › Business Partners › Business Partner Import) |
| 3 | [Ship-to Addresses and Contact Persons](https://erpdocs.corexlogic.com/en/veri-aktarimi/sevk-adresleri-ve-ilgili-kisiler) | Sevk Adresleri · İlgili Kişiler | Business partners | Data Import |
| 10 | [Warehouses and Storage Locations](https://erpdocs.corexlogic.com/en/veri-aktarimi/depolar-ve-lokasyonlar) | Depolar · Lokasyonlar | — | Data Import |
| 20 | [Work Centers](https://erpdocs.corexlogic.com/en/veri-aktarimi/is-merkezleri) | İş Merkezleri · Bireysel Kapasiteler | — | Data Import |
| 30 | [Bills of Materials](https://erpdocs.corexlogic.com/en/veri-aktarimi/urun-agaclari) | Ürün Ağaçları · Ağaç Satırları · Satır Koşulları | Items and their characteristics | Data Import |
| 40 | [Routings](https://erpdocs.corexlogic.com/en/veri-aktarimi/rotalar) | Rotalar · Operasyonlar | Items, work centers | Data Import |
| 50 | [Supplier Prices](https://erpdocs.corexlogic.com/en/veri-aktarimi/tedarikci-fiyatlari) | Tedarikçi Fiyatları | Items, suppliers | Data Import |
| 60 | [Price List Import](https://erpdocs.corexlogic.com/en/veri-aktarimi/fiyat-listesi-aktarimi) | Fiyat Listeleri · Fiyatlar · Dönem ve Miktar Fiyatları · Karakteristik Farkları · Toplu Değişiklik · Müşteri Listeleri · Özel Fiyatlar · Grup İskontoları | Items, business partners | Data Import |
| 60 | [Opening Stock](https://erpdocs.corexlogic.com/en/veri-aktarimi/stok-acilisi) | Açılış Bakiyeleri | Items, warehouses and storage locations | Data Import |
| 80 | Customer Opening Balance Import | — | Business partners | Finance (its own screen) |
| 81 | Vendor Opening Balance Import | — | Business partners | Finance (its own screen) |
| 90 | Opening from Trial Balance | — | — | Finance (its own screen) |
The **Sıra** (Order) column is the system's own sequence number; objects with the same number do not depend on each
other. The last three rows are listed on the central screen but work on their own Finance screens (the open items
of customers and vendors on the transition date, and a draft opening journal entry from the previous software's
closing trial balance); they are not described in this section.
## Workbook rules
All imports are read with the same rules:
- **The file is an Excel Workbook (.xlsx).** CSV is not accepted. Each object has its own workbook; the workbook
contains **one sub-object per sheet** (e.g. Warehouses and Storage Locations). Sheet names and column headers
must be the same as in the template; the order of the columns does not matter.
- **All cells are text.** The template and the **Dışa Aktar** (Export) file write cells as text: leading zeros,
long codes, VKN/TCKN (tax ID / national ID), phone numbers and postal codes are preserved. When filling in by
hand, keep these columns in **Text** format in Excel.
- **Records are linked by code.** A sheet refers to another record not by its ID but **by its code**
(`DepoKodu`, `UrunKodu`, `CariKod`). The code must either have been created on an earlier sheet of the same
workbook or exist in the system.
- **If the code exists it is updated; otherwise it is created.** The matching column (e.g. `Kod`, `DepoKodu + Kod`)
is stated in each sheet's **Alan Kılavuzu** (Field Guide). Codes are converted to uppercase; the letter i
is written as `I` in codes.
- **A column that is not in the file does not change in the record.** Bulk corrections can be made with a workbook
that contains only the columns you want to change. A record that is not in the file is not deleted either — the
import does not delete records.
- **The same name is not created twice.** Differences in case, spaces and punctuation count as the same name.
- **`Evet` / `Hayır` (Yes / No), `Aktif` / `Pasif` (Active / Inactive)** columns accept no other spelling; in a
column with a list of allowed values, the value is written exactly as in the list (the **Örnek / Değerler**
(Example / Values) column of the Field Guide).
- **Exception — Opening Stock:** it is a document, not an update; the same reference is not written twice.
Details: [Opening Stock](https://erpdocs.corexlogic.com/en/veri-aktarimi/stok-acilisi).
## Import screen
The screen of every object opened from the central screen has three tabs: **İçe Aktar** (Import), **Dışa Aktar**
(Export), **Alan Kılavuzu** (Field Guide). (Item Import has a fourth tab, **Aktarım Geçmişi** (Import History);
Business Partner Import has its own single-page layout.)

1. Three tabs
2. 1 · File (.xlsx)
3. 2 · Validate — changes nothing
4. 3 · Import — only after a clean validation
5. Result counters
| Step | Button | What it does |
|---|---|---|
| 1 · File | **Dosya Seç** (Choose File) | Selects an .xlsx workbook from your computer. The last job's workbook is kept on the server: if you leave the screen and come back, it reads "Kitap sunucuda — yeniden seçmeniz gerekmez." (The workbook is on the server — you do not need to select it again.) |
| 2 · Validation | **Kontrol Et** (Validate) | Validates the workbook row by row and states what will happen for each row. **It does not change any record.** |
| 3 · Import | **Aktar** (Import) | Enabled only after an error-free validation, and writes the workbook. If there are invalid rows, **Hatalıları Atlayarak Aktar** (Import Skipping Invalid Rows) appears in place of the button. |
Validation and import run on the server as a **job**: the progress bar shows the stage (sheet name), the number of
rows and the percentage; you can stop the job with **İptal Et** (Cancel). "Ekrandan ayrılabilirsiniz — iş sunucuda
sürer; bitince bildirim gelir ve bağlantısı sonucu bu ekranda açar." (You can leave the screen — the job continues on
the server; when it finishes, a notification arrives and its link opens the result on this screen.) If other jobs
are queued, it reads "Önünüzde N iş var" (There are N jobs ahead of you). The import is **all-or-nothing**:
cancellation or an error writes no records ("Aktarım durdu — hiçbir kayıt yazılmadı." — The import stopped — no
records were written.).
### Validation result
| Counter (in validation → in import) | Meaning |
|---|---|
| **Açılacak** (To be created) → **Açıldı** (Created) | The code does not exist in the system; a new record is created. |
| **Güncellenecek** (To be updated) → **Güncellendi** (Updated) | The code exists and at least one cell differs from the record. The cell appears **yellow** in the result table. |
| **Değişmiyor** (Unchanged) → **Değişmedi** (Not changed) | The code exists, and all values in the file are the same as the record. |
| **Hatalı** (Invalid) → **Atlandı** (Skipped) | The row does not comply with a rule; the **Açıklama** (Description) column states the reason. An invalid row writes nothing. |
Below the counters there is a per-sheet summary (e.g. "Lokasyonlar 13 satır · açılacak 0 · güncellenecek 1 · 2
hatalı" — Lokasyonlar 13 rows · to be created 0 · to be updated 1 · 2 invalid), and below that the result table:
**Sayfa** (Sheet), **Satır** (Row; Excel row number), **Kod** (Code), **Sonuç** (Result), **Açıklama**
(Description). The table is filtered with the **Sonuç** (Result) filter (default **Hatalı** (Invalid) if there are
invalid rows) and the **Ara** (Search) box.

1. Failed row count
2. Import skipping failed rows
3. Create · Update · Unchanged · Failed
4. Error message — with row and code
When there are invalid rows, there are two ways forward: correct the file and **Kontrol Et** (Validate) again, or
write the rest with **Hatalıları Atlayarak Aktar** (Import Skipping Invalid Rows). The latter opens a confirmation
dialog ("Hatalı satırlar atlanarak aktarılsın mı?" — Import while skipping invalid rows?); the skipped rows can be
corrected in the file and imported again later — the record with the same code is updated, not created a second
time. If all rows are invalid, this option is disabled as well.
### Export

1. Current records — same book as the template
2. Blank template — with sample rows
- **Mevcut kayıtlar › Dışa Aktar** (Existing records › Export): the records are downloaded as the **same workbook**
as the template — you can correct them and load them back directly; an untouched row changes no record
(Değişmiyor — Unchanged).
- **Boş şablon › Şablonu İndir** (Empty template › Download Template): all sheets with sample rows. Delete the
samples and enter your own records.
### Field Guide
For each sheet: its description, the **matching** column and the column table (**Sütun** (Column), **Açıklama**
(Description), **Örnek / Değerler** (Example / Values); required columns marked with `*`). The column tables of the
object pages in this section are taken from the same source.

1. Match column
2. Column — * required
3. Example or allowed values
## Permissions
| Task | Required |
|---|---|
| See the central screen | Permission to view one of the objects (e.g. `erp-inventory-warehouses.view`, `users.import`). |
| See the object, download the template, Validate | The object's view permission. |
| Import | The object's `import` permission and the permissions to create/edit the record (e.g. `erp-inventory-warehouses.import` + `.create` + `.edit`). |
A user without import permission sees "Aktarma yetkiniz yok — kontrol edip dosyayı yetkili kişiye iletebilirsiniz."
(You do not have import permission — you can validate and forward the file to an authorized person.) on the screen.
The full permission list of each object is in the header of its own page.
## Notifications
When a background job starts and finishes, a notification lands in the bell: **Veri aktarımı başladı** (Data import
started), **Veri aktarımı kontrolü tamamlandı** (Data import validation completed), **Veri aktarımı tamamlandı**
(Data import completed), **Veri aktarımı hata verdi** (Data import failed). Clicking the notification opens the result
on the import screen. You can change the channel in **Profil › Bildirim Tercihleri** (Profile › Notification
Preferences): [Notifications](https://erpdocs.corexlogic.com/en/ayarlar/bildirimler).
## Tasks
- [Download the template](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/sablon-indirme) — Empty template or existing records.
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) — Validation without saving.
- [Read the validation result](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/sonucu-okuma) — Counters, invalid rows, correction.
- [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma) — Write after an error-free validation.
---
# Users and Roles import
> Create and update organization roles and users with a single Excel workbook — the first object loaded in a setup from scratch.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/kullanicilar-ve-roller
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › Kullanıcılar ve Roller (Administration › Tools › Data Import › Users and Roles)
- **Screen route:** `/erp/data-import/users`
- **Required permission:** `users.import (görme ve kontrol) · users.import + users.create + users.edit (aktarma)`
The **first** workbook loaded in a setup from scratch: the users who will load the other files, and their roles,
come with it. The workbook has two sheets; the **Roller** (Roles) sheet is always processed before **Kullanıcılar**
(Users), so a role created in the same workbook can be assigned to a user immediately.
- A role is matched **by name**, a user **by email address**: updated if it exists, created if not.
- The file does **not delete** roles or users. If a column is not in the file at all, that field is not touched.
- Permission, screen and role lists are separated with `;` and give the **complete** list — the list in the file
replaces the one in the record. A catalog role's template permission cannot be removed; if it is missing from the
file, it is added anyway.
- A new active account counts toward the license's user limit.
> **Workbook carrying password hashes**
The object is visible only with the **users.import** permission. The **Dışa Aktar** (Export) file of an existing
installation carries the users' password hashes; people sign in with that password. Do not send this file by email
or put it in a shared folder. Add a person who is not in the file by invitation from the **Yönetim › Kullanıcı ve
Roller › Kullanıcılar** (Administration › Users and Roles › Users) screen.
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Roller** (Roles) | `RolAdi` | Roles — processed BEFORE users. If the name exists it is updated; otherwise it is created as an organization role; the file does NOT DELETE roles. |
| **Kullanıcılar** (Users) | `Eposta` | Users — matched by email: updated if it exists, created if not. A new active account counts toward the license's user limit. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Roller (Roles)
Roles — processed BEFORE users. If the name exists it is updated; otherwise it is created as an organization role;
the file does NOT DELETE roles. Matching: `RolAdi`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `RolAdi` | **Yes** | The role name. Catalog roles (Yönetici (Administrator), Depo Memuru (Warehouse Clerk) …) already exist in the installation; the file carries their additional permissions and screens. | `Satın Alma Uzmanı` |
| `Izinler` | No | Permission keys separated with ';' — the COMPLETE set of the role's permissions. A catalog role's template permission cannot be removed; if it is missing from the file, it is added anyway. If the column is absent, permissions are not touched. | `erp-procurement-orders.view;erp-procurement-orders.create` |
| `Ekranlar` | No | Addresses of the screens shown in the menu, separated with ';'; '*' = all screens. The COMPLETE screen list of the role; empty = no list. If the column is absent, it is not touched. | `/erp/procurement/orders;/erp/procurement/requisitions` |
### Kullanıcılar (Users)
Users — matched by email: updated if it exists, created if not. A new active account counts toward the license's
user limit. Matching: `Eposta`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Eposta` | **Yes** | Sign-in name. The email of an account, once created, does not change via the file. | `ahmet.yilmaz@ornek.com` |
| `AdSoyad` | No | Display name. If the column is absent, it is not touched. | `Ahmet Yılmaz` |
| `Telefon` | No | Digits, spaces, +, ( ) and -; 7–15 digits. Empty = no number. | `+90 532 000 00 00` |
| `Roller` | No | Role names separated with ';' — the COMPLETE set of the user's roles. The role must be on this workbook's Roller sheet or in the installation. If the column is absent, it is not touched. | `Satın Alma Uzmanı` |
| `EkIzinler` | No | Permissions granted to the person on top of the role, separated with ';' — the COMPLETE set. If the column is absent, it is not touched. | |
| `ButunEkranlar` | No | Evet (Yes) = all screens, independent of the role's screen list. Empty = Hayır (No) for a new user, untouched for an existing one. | `Evet` · `Hayır` |
| `Durum` | No | Pasif (Inactive) = account disabled (not deleted). Empty = Aktif (Active) for a new user, untouched for an existing one. | `Aktif` · `Pasif` |
| `HesapKilitleme` | No | Whether the account is locked after failed password attempts. Empty = Evet (Yes) for a new user, untouched for an existing one. | `Evet` · `Hayır` |
| `IlkGiristeSifreDegistir` | No | Evet (Yes) = password change required at first sign-in. Empty = Hayır (No) for a new user, untouched for an existing one. | `Evet` · `Hayır` |
| `SifreOzeti` | No | The password hash exported by CoreX — written as is, not edited. Empty = a new user is created without a password (awaiting invitation); for an existing one, the password is not touched. | |
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| Durum 'Aktif' ya da 'Pasif' olmalı. (Durum must be 'Aktif' or 'Pasif'.) | Only these two values can be entered in the Durum column. |
| … 'Evet' ya da 'Hayır' olmalı. (… must be 'Evet' or 'Hayır'.) | Other spellings (E, 1, true) are not accepted in an `Evet`/`Hayır` column. |
| Ekran adresi değil: … (Not a screen address: …) | Enter the menu address (`/erp/...`) or `*` in the screen list; do not enter the screen name. |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Item Import
> Create and update characteristics, categories, manufacturers, item master records, configuration, variants, units, barcodes, alternatives and classification with a single Excel workbook.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/urun-aktarimi
- **Type:** Screen
- **Module:** General
- **Menu path:** Ana Veriler › Ürünler › Ürün Aktarımı (Master Data › Items › Item Import)
- **Screen route:** `/erp/catalog/data-exchange`
- **Required permission:** `erp-catalog-items.import — kurulum sayfaları (özellik, kategori, üretici) ayrıca kendi ekranlarının iznini ister`
All item master data in a single workbook: the setup sheets (**Özellikler** (Characteristics), **Özellik Değerleri**
(Characteristic Values), **Nitelik Setleri** (Attribute Sets), **Kategoriler** (Categories), **Üreticiler**
(Manufacturers)), **Ürünler** (Items), **Yapılandırma** (Configuration) and **Varyantlar** (Variants), **Birimler**
(Units), **Barkodlar** (Barcodes), **Alternatifler** (Alternatives), **Sınıflandırma** (Classification). The sheets
are linked to each other **by code** and none of them is required — a file containing only the Barkodlar sheet adds
barcodes to existing records. Because it is the foundation of everything, it is loaded **before** BOMs, routings,
prices, supplier prices and the opening stock.
The screen opens separately from the other imports (**Ana Veriler › Ürünler › Ürün Aktarımı** — Master Data › Items
› Item Import); it has four tabs: **İçe Aktar** (Import), **Dışa Aktar** (Export), **Aktarım Geçmişi** (Import
History), **Alan Kılavuzu** (Field Guide).

1. Import History — undo
2. Validate
3. Counters per sheet
- On the **Dışa Aktar** (Export) tab, **Kart Listesini İndir** (Download Record List) downloads the existing records
as the same workbook as the template; it has the **Durum** (Status: Aktif (Active) / Pasif (Inactive)) and
**Gözden geçirme** (Review: Gözden geçirilecek (To be reviewed) / Doğrulanmış (Verified)) filters. **Şablonu
İndir** (Download Template) provides the empty template.
- **Aktarım Geçmişi** (Import History) lists each import with its date, the user, and the numbers of created,
updated and unchanged records, unit conversions and barcodes. **Geri Al** (Undo) restores the updated records to
their previous state and deletes the barcodes, unit conversions and records created in that import; it does **not
touch** records changed manually after the import. Undo is not a database backup.
- A cell can be corrected in the validation result; a corrected cell is not written without **Kontrol Et**
(Validate) **again** ("Düzeltmeler kontrol edilmedi — önce **Kontrol Et**." — The corrections have not been
validated — **Validate** first.).
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Özellikler** (Characteristics) | `Kod` | Characteristic definitions — the same definition is used in classification (a part's size, type) and in configuration (Brand, Number of Platforms). |
| **Özellik Değerleri** (Characteristic Values) | `OzellikKodu` + `DegerKodu` | The values of selection-type characteristics. |
| **Nitelik Setleri** (Attribute Sets) | `SetKodu` + `OzellikKodu` | Attribute sets: linked to a category, they state which characteristics are asked for records in that category. |
| **Kategoriler** (Categories) | `Kod` | The material group tree. The record's primary category; an attribute set is linked to a category and subcategories inherit it. |
| **Üreticiler** (Manufacturers) | `Kod` | Manufacturer definitions — the Uretici column of the Ürünler sheet links to these codes. |
| **Ürünler** (Items) | `Kod` | The item's basic, planning and dimension data — one row per record. |
| **Yapılandırma** (Configuration) | `Kod` + `OzellikKodu` | The characteristics of a configurable record: values are selected on the sales line, no record is created. |
| **Varyantlar** (Variants) | `Kod` | Standard combinations kept in stock — each is a separate record, and its values are its identity. |
| **Birimler** (Units) | `Kod` + `Birim` | Alternative units: how many base units 1 unit equals. A case barcode is linked to the case unit — it is defined here first. |
| **Barkodlar** (Barcodes) | `Barkod` | The item's barcodes (EAN/GTIN) — there can be several; a case barcode carries the case unit. |
| **Alternatifler** (Alternatives) | `AlternatifKodu` | Alternative items — proposed on a sales order if stock is insufficient. The file does not delete alternatives. |
| **Sınıflandırma** (Classification) | `Kod` + `OzellikKodu` | The records' characteristic values — characteristics not on the sheet are not touched. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Özellikler (Characteristics)
Characteristic definitions — the same definition is used in classification (a part's size, type) and in
configuration (Brand, Number of Platforms). Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The characteristic's code (DIS_OLCUSU, MARKA). Matching key: created if it does not exist, updated if it does. | `DIS_OLCUSU` |
| `Ad` | **Yes** | The name shown on the screen and in the guide. | `Diş Ölçüsü` |
| `VeriTuru` | **Yes** | The value's type — CANNOT CHANGE after creation (written values are stored in the type's column). | `Metin` (Text) · `Tam Sayı` (Integer) · `Ondalık` (Decimal) · `Evet/Hayır` (Yes/No) · `Tarih` (Date) · `Seçim` (Selection) |
| `BirimSembolu` | No | The value's unit label (mm, kW) — not a stock unit; not converted to uppercase. | |
| `Sira` | No | Order in the guide and form (whole number). | `10` |
| `Durum` | No | Aktif (Active) or Pasif (Inactive). No deletion — an unused characteristic is set to inactive. | `Aktif` · `Pasif` |
### Özellik Değerleri (Characteristic Values)
The values of selection-type characteristics. Matching: `OzellikKodu` + `DegerKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `OzellikKodu` | **Yes** | The code of a selection-type characteristic — must be on the Özellikler sheet or in the system. | `DIS_OLCUSU` |
| `DegerKodu` | **Yes** | The value's code; unique within the characteristic. Matching: characteristic + value code. | `1/2` |
| `Ad` | **Yes** | The value's name. | `1/2"` |
| `Sira` | No | Order in the selection list (whole number). | `10` |
| `Durum` | No | Aktif (Active) or Pasif (Inactive). | `Aktif` · `Pasif` |
### Nitelik Setleri (Attribute Sets)
Attribute sets: linked to a category, they state which characteristics are asked for records in that category.
Matching: `SetKodu` + `OzellikKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `SetKodu` | **Yes** | The set's code. Each characteristic of the same set is a separate row; the set's member list is the rows in the file (complete list). | `SET-BAGLANTI` |
| `SetAdi` | No | The set's name — it is enough to enter it on the set's first row; required for a new set. | `Bağlantı Elemanı` |
| `OzellikKodu` | **Yes** | The code of the characteristic in the set. | `DIS_OLCUSU` |
| `Zorunlu` | No | If Evet (Yes), a value is required on records in this category. | `Evet` · `Hayır` |
| `Sira` | No | Order on the record form (whole number); if empty, the row order. | `10` |
### Kategoriler (Categories)
The material group tree. The record's primary category; an attribute set is linked to a category and subcategories
inherit it. Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The category's code. Matching key: created if it does not exist, updated if it does. | `HID-BAG` |
| `Ad` | **Yes** | The category's name. | `Bağlantı Elemanları` |
| `UstKategoriKodu` | No | The parent category's code — must be on the same sheet or in the system. Empty = root category. | `HID` |
| `NitelikSetiKodu` | No | The attribute set linked to the category — the characteristics asked for records in that category. An empty cell removes the link; if the column is absent, the link is not touched. | `SET-BAGLANTI` |
| `Sira` | No | Order in the tree (whole number). | `10` |
| `Durum` | No | Aktif (Active) or Pasif (Inactive). No deletion. | `Aktif` · `Pasif` |
### Üreticiler (Manufacturers)
Manufacturer definitions — the Uretici column of the Ürünler sheet links to these codes. Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The manufacturer's code. Matching key: created if it does not exist, updated if it does. | `BOSCH` |
| `Ad` | **Yes** | The manufacturer's name. | `Robert Bosch GmbH` |
| `Durum` | No | Aktif (Active) or Pasif (Inactive). No deletion; an inactive manufacturer is not linked to a new record. | `Aktif` · `Pasif` |
### Ürünler (Items)
The item's basic, planning and dimension data — one row per record. Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The record's unique code. If it exists in the record list, the record is UPDATED; otherwise it is CREATED. Converted to uppercase. | `HM-0001` |
| `Ad` | **Yes** | Record name. | `NİPEL HİDROLİK 1/2"` |
| `Aciklama` | No | Free-text description. Can be left empty. | |
| `Tur` | No | Base type (Hammadde (Raw material), Mamul (Finished product), Hizmet (Service)…). If UrunTuru is filled, it comes from the item type — if entered, it must match the type's base. If UrunTuru is empty, it is required: the base's seed type is assigned (older files). Only 'Hizmet' (Service) has a behavioral effect (does not keep stock). | `Hammadde` (Raw material) · `Yarı Mamul` (Semi-finished product) · `Mamul` (Finished product) · `Ticari Mal` (Trading goods) · `Sarf Malzemesi` (Consumable) · `Ambalaj` (Packaging) · `Yedek Parça` (Spare part) · `Hizmet` (Service) |
| `TemelBirim` | **Yes** | The CODE of the base unit of measure. The stock balance is always in this unit, and it CANNOT BE CHANGED after the record is created. | `ADET` |
| `IzlemeTipi` | No | Traceability. If left empty, 'Yok' (None) for a new record, untouched for an existing one. On an existing record it changes only while there are no stock movements, stock, open documents (order, production order) or reservations — serial/batch management is determined before stock is entered. A variant's type comes from the parent record. | `Yok` (None) · `Lot` (Batch) · `Seri` (Serial) |
| `IzlemeProfili` | No | The CODE of the serial and batch number profile (Özelleştirme › Malzeme › Seri ve Lot Numarası Profilleri — Customization › Material › Serial and Batch Number Profiles) — number template and warranty period. Only on a tracked record; a newly assigned profile must be active. Empty = no profile. If the column is absent from the file, it is not touched. | |
| `KategoriKodu` | No | The category CODE (not the category name). If left empty, no category is assigned. | `HID-BAG` |
| `KaliteKontrol` | No | Quality inspection requirement on receipt. Empty = Hayır (No). Evet / Hayır | `Hayır` |
| `Durum` | No | The record's status. Empty = Aktif (Active). No stock movement can be created for an inactive record. | `Aktif` · `Pasif` |
| `StokUrunu` | No | Whether the record keeps stock. If left empty, it is derived from the type (Hizmet = Hayır, others = Evet). It CANNOT BE CHANGED after the record is created. Evet / Hayır | `Evet` |
| `Satilabilir` | No | Whether it can be selected on sales documents. Empty = Hayır (No). Evet / Hayır | `Hayır` |
| `SatinAlinabilir` | No | Whether it can be selected on purchasing documents. Empty = Hayır (No). Evet / Hayır | `Evet` |
| `Uretilebilir` | No | Whether it can be an OUTPUT on production documents (whether it has a recipe). Empty = Hayır (No). Evet / Hayır | `Hayır` |
| `PlanlamaStratejisi` | No | Whether the record is planned to stock or to order. Empty = 'Planlama Yok' (No planning). If a value other than 'Planlama Yok' is selected, Tedarik Yolu (procurement type) is also REQUIRED. | `Planlama Yok` (No planning) · `Stoğa Üretim` (Make-to-stock) · `Siparişe Üretim` (Make-to-order) |
| `TedarikYolu` | No | The default procurement type when a requirement arises. Empty = not determined. 'Üret' (Make) requires the record to be producible, 'Satın Al' (Buy) requires it to be purchasable. | `Üret` (Make) · `Satın Al` (Buy) |
| `GozdenGecirilecek` | No | Whether the record is waiting for human verification. Empty = Hayır (No). Evet / Hayır | `Hayır` |
| `GecerlilikBaslangici` | No | Start of availability (dd.mm.yyyy or yyyy-mm-dd). Empty = no limit. It does NOT OVERRIDE Durum, it narrows it: an inactive record cannot be used on any date. | `01.01.2026` |
| `GecerlilikBitisi` | No | End of availability (inclusive). Empty = no limit. For seasonal and phase-out items. | `31.12.2026` |
| `NetAgirlikKg` | No | Net weight, kg. Empty = not measured. Decimal separator is a comma (1,25); zero is not entered. Stays empty on a service record. If the column is absent from the file, the measurement is not touched. | |
| `BrutAgirlikKg` | No | Gross (packed) weight, kg. Cannot be less than the net weight. Empty = not measured. Decimal separator is a comma (1,25); zero is not entered. Stays empty on a service record. | |
| `UzunlukCm` | No | Length, cm. Empty = not measured. Decimal separator is a comma (1,25); zero is not entered. Stays empty on a service record. | |
| `GenislikCm` | No | Width, cm. Empty = not measured. Decimal separator is a comma (1,25); zero is not entered. Stays empty on a service record. | |
| `YukseklikCm` | No | Height, cm. Empty = not measured. Decimal separator is a comma (1,25); zero is not entered. Stays empty on a service record. | |
| `HacimL` | No | Volume, liters — not calculated from the dimensions, entered separately. Empty = not measured. Decimal separator is a comma (1,25); zero is not entered. Stays empty on a service record. | |
| `MinStok` | No | Minimum stock, in the base unit. When the stock position falls below it, the requirements view proposes an order. Can be zero; empty = undefined. Stock items only. If the column is absent from the file, it is not touched. | |
| `MaksStok` | No | Maximum stock, in the base unit — the target the proposal fills up to. Cannot be entered without a minimum and cannot be less than the minimum. Empty = the proposal fills up to the minimum. | |
| `TedarikSuresiGun` | No | Lead time, whole days (0–999). The only source for a record without a supplier (produced); for a purchased record, the lead time in the supplier record applies on the document. Stock items only. If the column is absent from the file, it is not touched. | `7` |
| `MinSiparisMiktari` | No | Minimum order quantity, in the base unit — the proposal does not go below it. Empty = no rule. | |
| `SiparisKatsayisi` | No | Order multiple, in the base unit — the proposal is rounded up to a multiple of it (case, pallet). Empty = no rule. | |
| `YabanciAd` | No | Name in a foreign language (external correspondence). If the column is absent from the file, it is not touched. | |
| `EkTanimlayici` | No | Additional identifier — the code in another system or an old code. Not unique. | |
| `Uretici` | No | Manufacturer CODE (Kurulum › Malzeme › Üreticiler — Setup › Material › Manufacturers, or the workbook's Üreticiler sheet). A newly assigned manufacturer must be active. Empty = no manufacturer. | |
| `Gtip` | No | GTİP (Turkish customs tariff code) — 12 digits (0206.22.00.00.00 or 020622000000); the line position of an export invoice. If the column is absent from the file, it is not touched. | |
| `UreticiParcaNo` | No | Manufacturer part number — the manufacturer's catalog number; cannot be entered without a manufacturer. If the column is absent from the file, it is not touched. | |
| `MalzemeDurumu` | No | Material status CODE (Kurulum › Stok › Malzeme Durumları — Setup › Inventory › Material Statuses) — the record's block/warning in sales, purchasing, production and stock movements. A newly assigned status must be active. Empty = no status. If the column is absent from the file, it is not touched. | |
| `MalzemeDurumuBaslangic` | No | The first day the material status is valid (dd.mm.yyyy). Empty = immediately. A date without a status is rejected. | |
| `KesilmeTarihi` | No | Discontinuation date (dd.mm.yyyy) — after this day, the record's remaining shortage is passed to the successor, and the record is not restocked. Empty = not discontinued. | |
| `HalefKart` | No | The successor record's CODE — a record in the same base unit that EXISTS IN THE DATABASE (a record created in this file cannot be made a successor; provide it in a second import). A discontinuation date is required. | |
| `HalefIkiYonlu` | No | Evet (Yes) = two-way interchangeability: the successor's requirement can also be covered from the old stock. Empty = Hayır (No). | |
| `UrunTuru` | No | Item type CODE (Özelleştirme › Malzeme › Ürün Türleri — Customization › Material › Item Types; item type). The base type comes from the item type. If empty, the seed type of the Tur column. A flag of a view the type does not allow (sellable, etc.) is rejected. The old name 'MalzemeTuru' is also read. | `HAMMADDE` |
### Yapılandırma (Configuration)
The characteristics of a configurable record: values are selected on the sales line, no record is created. Matching:
`Kod` + `OzellikKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The configurable record's code — must be on the Ürünler sheet or in the system. A record with rows here is made configurable. | `MML-0001` |
| `OzellikKodu` | **Yes** | The characteristic's code (Özellikler sheet). The value of this characteristic is selected on the sales line. | `MARKA` |
| `Zorunlu` | No | If Evet (Yes), a value is required on the line. | `Evet` · `Hayır` |
| `IzinliDegerler` | No | For a selection type, the allowed value codes, separated with semicolons (a value may contain a decimal comma). Empty = all values of the characteristic. | `SHELL; TOTAL` |
| `EnAz` | No | Smallest value for a numeric characteristic. | |
| `EnCok` | No | Largest value for a numeric characteristic. | |
| `Adim` | No | Step for a numeric characteristic (such as 0,5 m). | |
| `Varsayilan` | No | The value preselected on the sales line — a value code for a selection (must be allowed), a decimal with a comma for a number, Evet/Hayır. Empty = no default; if the column is absent, the existing default is kept. | `SHELL` |
| `OnKosul` | No | Precondition: the characteristic is asked only when the condition is met. Format "KOŞULÖZELLİĞİ = DEĞER" (condition characteristic = value); values of the same characteristic with "/" (OR), different characteristics with ";" (AND). The condition characteristic must be a selection or Evet/Hayır (Yes/No) characteristic of the same record. Empty = always asked; if the column is absent, the existing condition is kept. | `KABIN = OZEL_OLCU` |
### Varyantlar (Variants)
Standard combinations kept in stock — each is a separate record, and its values are its identity. Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The variant record's code. Each characteristic of the same code is a separate row. | `MML-0001-SHELL` |
| `Ad` | No | The variant's name — it is enough to enter it on the first row; required for a new variant. | `MERKEZİ YIKAMA SİSTEMİ SHELL` |
| `UstKartKodu` | **Yes** | The code of the configurable parent record. | `MML-0001` |
| `OzellikKodu` | **Yes** | One of the parent record's characteristics. | `MARKA` |
| `Deger` | **Yes** | The characteristic's value — a value code for a selection, a decimal with a comma for a number. Empty = the variant has no value for this characteristic (only for a non-required characteristic). | `SHELL` |
### Birimler (Units)
Alternative units: how many base units 1 unit equals. A case barcode is linked to the case unit — it is defined here
first. Matching: `Kod` + `Birim`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The item's code — must be on the Ürünler sheet or in the system. | `HM-0001` |
| `Ad` | No | Read-only — the item description in the export; ignored on import. | `Örnek ürün` |
| `Birim` | **Yes** | The alternative unit's code (KOLI, PAKET). The record's base unit is not entered. | `KOLI` |
| `TemelBirimMiktari` | **Yes** | How many base units 1 unit equals — if 1 CASE = 12 PIECES, then 12. Decimal separator is a comma, at most 6 decimal places. If the conversion does not exist it is created; if it does, its factor is updated; if the unit is linked to the record with another conversion, the factor must be the same. | `12` |
| `TemelBirim` | No | Read-only — the item's base unit in the export; ignored on import. | `ADET` |
### Barkodlar (Barcodes)
The item's barcodes (EAN/GTIN) — there can be several; a case barcode carries the case unit. Matching: `Barkod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The barcode's record (item code). | `HM-0001` |
| `Ad` | No | Read-only — the item description in the export; ignored on import. | `Örnek ürün` |
| `Barkod` | **Yes** | Matching key: created if it does not exist in the system, updated if it exists on the same record; another record's barcode is rejected. Letters are converted to uppercase; no spaces or Turkish letters. The column is in text format — when pasting from another file, make sure leading zeros are not dropped. | `8691234567890` |
| `Birim` | No | The barcode's unit (a case barcode carries the case unit): the record's base unit or one of the conversion units — can be defined on the Birimler sheet in the same file. Empty = base unit; if the column is absent, the existing barcode's unit does not change. | `ADET` |
| `Aciklama` | No | At most 100 characters. If the column exists but the cell is empty, the description is deleted. | `Tedarikçi EAN` |
| `Varsayilan` | No | Evet (Yes) = this becomes the record's default barcode (takes over from the previous one); at most one Evet per record. Hayır (No) or empty does not touch it; the default barcode cannot be set to Hayır. The record's first barcode is automatically the default. | `Evet` · `Hayır` |
### Alternatifler (Alternatives)
Alternative items — proposed on a sales order if stock is insufficient. The file does not delete alternatives.
Matching: `AlternatifKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `UrunKodu` | **Yes** | The record's code — must be on the Ürünler sheet or in the system. | `HM-0001` |
| `AlternatifKodu` | **Yes** | The alternative record's code. The record + alternative pair is the matching key; one-way. | `HM-0002` |
| `UyumOrani` | No | Compatibility rate, percentage (0–100). Empty = not specified. | `90` |
| `Not` | No | Note — at most 256 characters. | `Ölçü aynı, malzeme farklı` |
### Sınıflandırma (Classification)
The records' characteristic values — characteristics not on the sheet are not touched. Matching: `Kod` +
`OzellikKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The record's code — must be on the Ürünler sheet or in the system. | `HM-0001` |
| `OzellikKodu` | **Yes** | The characteristic's code (Özellikler sheet). Those in the attribute set of the record's category are asked on the record; a characteristic outside the set can also be entered. | `DIS_OLCUSU` |
| `Deger` | No | Value — a value code for a selection, a decimal with a comma for a number, Evet/Hayır, dd.mm.yyyy. Empty = remove the value. | `1/2` |
## In the demo package
The demo package contains two item workbooks, and both are loaded in order from this screen:
| File | Content | Kontrol Et (Validate) (demo installation, 02.11.2026) |
|---|---|---|
| `01-urun-aktarimi.xlsx` | Purchased materials: 22 characteristics, 22 categories, 17 manufacturers, 98 items, unit conversions, alternatives, classification | 363 rows · Hatalı (Invalid) 0 (all **Değişmiyor** (Unchanged) — the package is already loaded) |
| `02-uretilen-ve-satilan-urunler.xlsx` | Finished products, semi-finished products, trading goods, spare parts, services; configuration, size variants, barcodes | 172 rows · Hatalı (Invalid) 0 |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Business Partner Import
> Create and update customer and supplier records (identity, address, payment terms, delivery terms) with an Excel workbook containing the "İş Ortakları" sheet.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/is-ortagi-aktarimi
- **Type:** Screen
- **Module:** General
- **Menu path:** Ana Veriler › İş Ortakları › İş Ortağı Aktarımı (Master Data › Business Partners › Business Partner Import)
- **Screen route:** `/erp/partners/data-exchange`
- **Required permission:** `erp-partners-cards.view (ekran, kontrol) · erp-partners-cards.create + erp-partners-cards.edit (aktarma)`
Customer and supplier records come in a single-sheet workbook ("**İş Ortakları**" — Business Partners). Ship-to
addresses, contact persons, price list assignments, supplier prices and orders are linked to the record — this
workbook is loaded **before** them.
- **Only `Kod` is required.** A column that is not in the file does not change on the record; if the column exists
but the cell is empty, the field is **cleared**. This way, the identity and address of thousands of records can be
filled in bulk with a file containing only the `Kod · KimlikTuru · VergiNo · Il · Ilce` columns.
- Keep the VKN/TCKN (tax ID / national ID), phone and postal code columns in **Text** format (so that leading 0s are
not dropped and numbers do not turn into scientific notation) — the template and the **Mevcut kartları indir**
(Download existing records) file already write these columns as text. Save the file as an **Excel Workbook
(.xlsx)**; CSV is not accepted.
- The import is **all or nothing**: while there are invalid rows, no record is written ("… satır geçersiz. Aktarım
**hep ya da hiç**: bunlar düzeltilmeden hiçbir kart yazılmaz." — … rows are invalid. The import is **all or
nothing**: no record is written until these are corrected.). This screen has no "import skipping invalid rows"
option.
The screen has two sections: **1 · Şablonu ya da mevcut kartları indir** (Download the template or existing records;
**Boş şablon** (Empty template), **Mevcut kartları indir** (Download existing records)) and **2 · Doldurulmuş dosyayı
yükle** (Upload the completed file; **Dosya seç** (Choose file), **Kontrol et** (Validate), **Aktar** (Import)), with
the **Alan kılavuzu** (Field guide) below.

1. Blank template
2. Download current cards
3. Validate
4. Import — all or nothing
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **İş Ortakları** (Business Partners) | `Kod` | The business partner record (customer, supplier or both). If the code exists it is updated; otherwise it is created. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### İş Ortakları (Business Partners)
The business partner record (customer, supplier or both). If the code exists it is updated; otherwise it is created.
Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | Matching key: updated if it exists, created if not. Converted to uppercase. | `M-0001` |
| `Unvan` | No | Required for a new record. | `Örnek Makine A.Ş.` |
| `Musteri` | No | Customer role. For a new record, at least one of Musteri or Tedarikci is Evet (Yes). | `Evet` · `Hayır` |
| `Tedarikci` | No | Supplier role. | `Evet` · `Hayır` |
| `KimlikTuru` | No | If VKN/TCKN is selected, the number is validated with its check digit. | `Belirtilmemiş` (Not specified) · `VKN` · `TCKN` · `Yurt dışı` (Abroad) |
| `VergiNo` | No | VKN (10) or TCKN (11) — spaces/dots/hyphens are ignored. | `1234567890` |
| `VergiDairesi` | No | Tax office. | `Kadıköy` |
| `Ad` | No | Only for TCKN (natural person). | |
| `Soyad` | No | Only for TCKN (natural person). | |
| `Eposta` | No | | `info@ornek.com` |
| `Telefon` | No | | `0212 555 00 00` |
| `Adres` | No | Street line; province/district in separate columns. | `Organize Sanayi 3. Cd. No:5` |
| `Ilce` | No | Required for an e-Invoice recipient. | `Başakşehir` |
| `Il` | No | Required for an e-Invoice recipient. | `İstanbul` |
| `PostaKodu` | No | | `34490` |
| `Ulke` | No | ISO two-letter code (TR, DE …). | `TR` |
| `VadeGun` | No | Default payment term (days), 0 = cash in advance. | `30` |
| `TeslimSekli` | No | Incoterms 2020 code. | `EXW` · `FCA` · `CPT` · `CIP` · `DAP` · `DPU` · `DDP` · `FAS` · `FOB` · `CFR` · `CIF` |
| `Aktif` | No | A new record is always created active. | `Evet` · `Hayır` |
## In the demo package
`06-cari-hesaplar.xlsx`: 43 customers, 20 suppliers (one of them both), 2 sole proprietorships (TCKN), 4 foreign
customers. **Kontrol et** (Validate) in the demo installation: 62 rows · Hatalı (Invalid) 0.
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Ship-to Addresses and Contact Persons import
> Create and update the ship-to addresses and contact persons of business partner records with an Excel workbook.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/sevk-adresleri-ve-ilgili-kisiler
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › Sevk Adresleri ve İlgili Kişiler (Administration › Tools › Data Import › Ship-to Addresses and Contact Persons)
- **Screen route:** `/erp/data-import/partner-relations`
- **Required permission:** `erp-partners-cards.view (görme, kontrol) · erp-partners-cards.import + erp-partners-cards.edit (aktarma)`
The business partner's **ship-to addresses** and **contact persons**. The billing address is the record's own
address — it is not in this workbook but in [Business Partner Import](https://erpdocs.corexlogic.com/en/veri-aktarimi/is-ortagi-aktarimi). Business
partners are loaded **first**; the workbook finds the records by `CariKod`.
A ship-to address is matched by `CariKod + AdresAdi`, a contact person by `CariKod + Ad`: a second record with the
same name is not created on the same business partner; the existing one is updated. If the business partner has two
records with the same name, the row is invalid because it is unclear which one should be updated.
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Sevk Adresleri** (Ship-to Addresses) | `CariKod` + `AdresAdi` | The record's shipping destinations — the billing address is the record's own address, not here. |
| **İlgili Kişiler** (Contact Persons) | `CariKod` + `Ad` | The record's contact persons. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Sevk Adresleri (Ship-to Addresses)
The record's shipping destinations — the billing address is the record's own address, not here. Matching: `CariKod`
+ `AdresAdi`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `CariKod` | **Yes** | The business partner's code. | `M-00008` |
| `CariUnvan` | No | Information — not read. | |
| `AdresAdi` | **Yes** | The name that identifies the address within the record (at most 64 characters). | `Malatya Şube` |
| `TeslimAlan` | No | The receiving person or unit. | |
| `Telefon` | No | Phone number of the shipping location. | |
| `Adres` | No | Street, neighborhood, number — required for a new address; if the column is absent, the saved address is kept. | `Orduzu Mah. Kanyon Cad. No:21` |
| `Ilce` | No | District — from the list in a country with a province list (Turkish-letter insensitive). | `Battalgazi` |
| `Il` | No | Province — from the list in a country with a province list. | `Malatya` |
| `PostaKodu` | No | | |
| `Ulke` | No | ISO country code (TR). | `TR` |
| `Varsayilan` | No | Evet (Yes) = the record's default ship-to address. Hayır (No) does not remove the default. | `Evet` · `Hayır` |
### İlgili Kişiler (Contact Persons)
The record's contact persons. Matching: `CariKod` + `Ad`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `CariKod` | **Yes** | The business partner's code. | `M-00462` |
| `CariUnvan` | No | Information — not read. | |
| `Ad` | **Yes** | The person's name (unique within the record). | `Oğuzhan Yılmaz` |
| `Unvan` | No | Job title. | `İstasyon sahibi` |
| `Telefon` | No | | |
| `Eposta` | No | | |
| `Varsayilan` | No | Evet (Yes) = the record's default contact. Hayır (No) does not remove the default. | `Evet` · `Hayır` |
## In the demo package
`07-sevk-adresleri-ve-kisiler.xlsx`: 12 ship-to addresses (hotel chain, supermarket warehouses, factories), 96
contact persons. **Kontrol Et** (Validate) in the demo installation: 108 rows · Hatalı (Invalid) 0.
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| CariKod ve AdresAdi zorunlu. (CariKod and AdresAdi are required.) | Both key columns must be filled on the Sevk Adresleri sheet. |
| '…' iş ortağı bulunamadı. (Business partner '…' was not found.) | The code does not exist in the system — import the business partner first, or correct the code. |
| Kartta '…' adıyla iki sevk adresi var — hangisinin güncelleneceği belli değil. (The record has two ship-to addresses named '…' — it is unclear which one to update.) | On the screen, rename one of the addresses with the same name on the record. |
| Varsayilan Evet ya da Hayır olmalı. (Varsayilan must be Evet or Hayır.) | Enter `Evet` or `Hayır`. |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Warehouses and Storage Locations import
> Create and update warehouses and the storage locations (bins) within them with an Excel workbook — before the opening stock.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/depolar-ve-lokasyonlar
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › Depolar ve Lokasyonlar (Administration › Tools › Data Import › Warehouses and Storage Locations)
- **Screen route:** `/erp/data-import/warehouses`
- **Required permission:** `erp-inventory-warehouses.view (görme, kontrol) · erp-inventory-warehouses.import + .create + .edit (aktarma)`
Warehouses and the storage locations (bins) within them. The opening stock and stock documents are linked to the
warehouse — this workbook is loaded before **Stok Açılışı** (Opening Stock). A storage location's warehouse can be
created on the **Depolar** (Warehouses) sheet of the same workbook; the sheets are processed in order.
The sample screenshots on this page were taken in the demo installation with a copy that was intentionally prepared
with errors (only **Kontrol Et** (Validate), no records were written): a new warehouse (**Açılacak** — To be
created), a bin whose name changed (**Güncellenecek** — To be updated), and an unrecognized warehouse type, a bin in
a non-existent warehouse and a negative weight capacity (**Hatalı** — Invalid).

1. Failed row count
2. Import skipping failed rows
3. Create · Update · Unchanged · Failed
4. Error message — with row and code
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Depolar** (Warehouses) | `Kod` | The warehouse master record. If the code exists it is updated; otherwise it is created. |
| **Lokasyonlar** (Storage locations) | `DepoKodu` + `Kod` | A storage location (bin) within a warehouse. Matched by warehouse + storage location code; its warehouse can be created in the same file. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Depolar (Warehouses)
The warehouse master record. If the code exists it is updated; otherwise it is created. Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The warehouse code — converted to uppercase; the letter i is written as 'I' in codes. | `ANA-D` |
| `Ad` | **Yes** | The warehouse name. The same name (including differences in case, spaces and punctuation) is not created twice. | `Ana Depo` |
| `TesisKodu` | No | The plant it belongs to. For a new warehouse, empty = default plant; a warehouse with stock does not change plant. | `MERKEZ` |
| `DepoTuru` | No | Empty = Genel (General). | `Genel` (General) · `Hammadde` (Raw material) · `Karantina` (Quarantine) · `Üretim` (Production) · `Mamul` (Finished goods) · `Yedek Parça` (Spare parts) · `Hurda` (Scrap) |
| `LokasyonZorunlu` | No | If Evet (Yes), every movement into this warehouse is posted with a storage location. | `Evet` · `Hayır` |
| `Durum` | No | Empty = Aktif (Active). A warehouse with stock cannot be set to inactive. | `Aktif` · `Pasif` |
### Lokasyonlar (Storage locations)
A storage location (bin) within a warehouse. Matched by warehouse + storage location code; its warehouse can be
created in the same file. Matching: `DepoKodu` + `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `DepoKodu` | **Yes** | The storage location's warehouse — must be on the Depolar sheet or in the system. | `ANA-D` |
| `Kod` | **Yes** | The storage location code — unique within the warehouse. | `STOK` |
| `Ad` | **Yes** | The storage location name — unique within the warehouse (spelling differences do not count as a different name). | `Stok` |
| `GozTipi` | No | Empty = Raf (Shelf) (for a new storage location). | `Raf` (Shelf) · `Blok istif` (Block stacking) · `Mal kabul alanı` (Goods receipt area) · `Sevk hazırlık alanı` (Shipping staging area) |
| `MaksAgirlikKg` | No | Bin capacity, kg. Empty = unlimited. | |
| `MaksHacimL` | No | Bin capacity, liters. Empty = unlimited. | |
| `TekUrun` | No | If Evet (Yes), only one item is kept in the bin. | `Evet` · `Hayır` |
| `Durum` | No | Empty = Aktif (Active). A storage location with stock cannot be set to inactive. | `Aktif` · `Pasif` |
## In the demo package
`10-depolar-ve-lokasyonlar.xlsx`: the HAMMADDE, KIMYA and MAMUL warehouses and their bins (the MERKEZ warehouse comes
from the master data seed). **Kontrol Et** (Validate) in the demo installation: 14 rows · Hatalı (Invalid) 0.
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| DepoTuru 'Soğuk Oda' tanınmadı: Genel, Hammadde, Karantina, Üretim, Mamul, Yedek Parça, Hurda. (DepoTuru 'Soğuk Oda' was not recognized: …) | Enter one of the allowed values with the same spelling. |
| 'DEPO-X' kodlu depo bulunamadı — Depolar sayfasında ya da sistemde olmalı. (No warehouse with code 'DEPO-X' was found — it must be on the Depolar sheet or in the system.) | Add the storage location's warehouse to the Depolar sheet first, or correct the code. |
| Ağırlık kapasitesi sıfırdan büyük olmalı; sınırsız için boş bırakın. (The weight capacity must be greater than zero; leave it empty for unlimited.) | Enter a positive number in the capacity column or leave it empty. |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Work Centers import
> Create and update production work centers and their individual capacities (machines) with an Excel workbook — before the routings.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/is-merkezleri
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › İş Merkezleri (Administration › Tools › Data Import › Work Centers)
- **Screen route:** `/erp/data-import/work-centers`
- **Required permission:** `erp-manufacturing-work-centers.view (görme, kontrol) · .import + .create + .edit (aktarma)`
The stations where production takes place (machine, labor). The operations of routings are linked to a work
center — this workbook is loaded before **Rotalar** (Routings). The **Bireysel Kapasiteler** (Individual Capacities)
sheet carries the work center's identical named units (machines); the work center's capacity count is derived from
the active units. The file does not delete units.
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **İş Merkezleri** (Work Centers) | `Kod` | The work center master record. If the code exists it is updated; otherwise it is created. |
| **Bireysel Kapasiteler** (Individual Capacities) | `Kod` | The work center's named units — identical machines. If work center code + Kod exists it is updated; otherwise it is created; the file does not delete. The capacity count is derived from the active units. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### İş Merkezleri (Work Centers)
The work center master record. If the code exists it is updated; otherwise it is created. Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | The work center code — converted to uppercase. | `KAYNAKHANE` |
| `Ad` | **Yes** | The work center name. The same name (including spelling differences) is not created twice. | `Kaynakhane` |
| `Tur` | No | Empty = İşçilik (Labor) (for a new record). | `Makine` (Machine) · `İşçilik` (Labor) · `Diğer` (Other) |
| `Aciklama` | No | Free-text description. | |
| `Sira` | No | Order in the list (whole number). | `10` |
| `Durum` | No | Empty = Aktif (Active). | `Aktif` · `Pasif` |
| `UstIsMerkeziKodu` | No | The code of the parent work center — empty = root. It can come later in the same file; a new link is made to an active work center. | `TALASLI` |
### Bireysel Kapasiteler (Individual Capacities)
The work center's named units — identical machines. If work center code + Kod exists it is updated; otherwise it is
created; the file does not delete. The capacity count is derived from the active units. Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `IsMerkeziKodu` | **Yes** | The code of the individual capacity's work center — it can be on the İş Merkezleri sheet of the same file. | `CNC-01` |
| `Kod` | **Yes** | The individual capacity's code — unique within the work center, converted to uppercase. | `CNC-1` |
| `Ad` | **Yes** | The individual capacity's name. | `CNC Torna 1 — Haas ST-20` |
| `Sira` | No | Order (whole number); empty = 0 (for a new record) or the existing value. | `10` |
| `Durum` | No | Empty = Aktif (Active) (for a new record) or the existing value. | `Aktif` · `Pasif` |
## In the demo package
`03-is-merkezleri.xlsx`: 13 work centers. **Kontrol Et** (Validate) in the demo installation: 13 rows · Hatalı
(Invalid) 0.
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| Tur '…' tanınmadı: … (Tur '…' was not recognized: …) | Enter one of the allowed values given in the message. |
| Durum Aktif ya da Pasif olmalı. (Durum must be Aktif or Pasif.) | Enter `Aktif` or `Pasif`. |
| Üst iş merkezi '…' bulunamadı. (Parent work center '…' was not found.) | Create the parent work center earlier in the same workbook, or correct the code. |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Bills of Materials import
> Create and update bills of materials (header, component lines, line conditions of a configurable item) with an Excel workbook.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/urun-agaclari
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › Ürün Ağaçları (Administration › Tools › Data Import › Bills of Materials)
- **Screen route:** `/erp/data-import/boms`
- **Required permission:** `erp-manufacturing-boms.view (görme, kontrol) · .import + .create + .edit (aktarma)`
The item's components and quantities; for a configurable item, line conditions. Items and their characteristics
([Item Import](https://erpdocs.corexlogic.com/en/veri-aktarimi/urun-aktarimi)) are loaded **first**. A BOM is identified by **item + usage +
alternative**; the workbook's three sheets are linked to each other by `UrunKodu`. In a line condition, values of the
same characteristic are combined with **OR**, different characteristics with **AND**; conditions exist only in the
BOM of a configurable item.
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Ürün Ağaçları** (Bills of Materials) | `UrunKodu` | The BOM header: item, usage, alternative and base quantity. Item + usage + alternative identify a BOM. |
| **Ağaç Satırları** (BOM Lines) | `UrunKodu` | The BOM's component lines — in SatirNo order. |
| **Satır Koşulları** (Line Conditions) | `UrunKodu` | Line condition: values of the same characteristic OR, different characteristics AND. Only in the BOM of a configurable item. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Ürün Ağaçları (Bills of Materials)
The BOM header: item, usage, alternative and base quantity. Item + usage + alternative identify a BOM. Matching:
`UrunKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `UrunKodu` | **Yes** | The BOM's output (a producible item). | `MM-00001` |
| `UrunAdi` | No | Information — not read. | `MERKEZİ YIKAMA SİSTEMİ` |
| `Kullanim` | No | Empty = Üretim (Production). | `Üretim` (Production) · `Mühendislik` (Engineering) |
| `Alternatif` | **Yes** | 1, 2, 3 … within the usage — a new alternative must be the next number. | `1` |
| `TemelMiktar` | **Yes** | The line quantities are for this much output. | `1` |
| `Birim` | **Yes** | The unit of the base quantity (the item's unit or a convertible unit). | `ADET` |
| `MontajFiresi` | No | Percentage, 0 ≤ x < 100. Empty = 0. | `0` |
| `Aciklama` | No | The alternative's name. | |
| `PartiAltSinir` | No | Lot size lower limit (in the base unit). | |
| `PartiUstSinir` | No | Lot size upper limit (in the base unit). | |
| `Yayinla` | No | Empty = Evet (Yes). Hayır (No): remains a draft revision. | `Evet` · `Hayır` |
### Ağaç Satırları (BOM Lines)
The BOM's component lines — in SatirNo order. Matching: `UrunKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `UrunKodu` | **Yes** | The item on the header row. | `MM-00001` |
| `Kullanim` | No | Empty = Üretim (Production). | `Üretim` (Production) · `Mühendislik` (Engineering) |
| `Alternatif` | **Yes** | The alternative on the header row. | `1` |
| `SatirNo` | **Yes** | The line's order; conditions are linked by this number. | `10` |
| `BilesenKodu` | **Yes** | The component item. | `YM-00050` |
| `BilesenAdi` | No | Information — not read. | `KABİN-(2x2mt)` |
| `Miktar` | **Yes** | Per base quantity. | `1` |
| `Birim` | **Yes** | The component's unit or a convertible unit. | `ADET` |
| `FireYuzde` | No | Component scrap, 0 ≤ x < 100. Empty = 0. | `0` |
| `GeriSarf` | No | Evet (Yes): consumed automatically when the output is posted (backflush). Empty = Hayır (No). | `Evet` · `Hayır` |
| `SecimKosulu` | No | Selection condition with an expression (configurable item only) — e.g. UZUNLUK > 10. | |
| `MiktarFormulu` | No | Quantity by expression (configurable item only): quantity = Miktar + the formula's result — e.g. 2 * ADET_KAPI. Empty = fixed quantity. | |
| `KosulMetni` | No | Information — not read (the readable form of the conditions). | |
### Satır Koşulları (Line Conditions)
Line condition: values of the same characteristic OR, different characteristics AND. Only in the BOM of a
configurable item. Matching: `UrunKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `UrunKodu` | **Yes** | The item on the header row. | `MM-00001` |
| `Kullanim` | No | Empty = Üretim (Production). | `Üretim` (Production) · `Mühendislik` (Engineering) |
| `Alternatif` | **Yes** | The alternative on the header row. | `1` |
| `SatirNo` | **Yes** | The line the condition is attached to. | `20` |
| `OzellikKodu` | **Yes** | A configuration characteristic of the item. | `MARKA` |
| `DegerKodu` | **Yes** | The characteristic's value. | `SHELL` |
## In the demo package
`04-urun-agaclari.xlsx`: 19 BOMs, released; line conditions on configurable items. **Kontrol Et** (Validate) in the
demo installation: 251 rows · Hatalı (Invalid) 0.
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| Bu ağaç dosyada ikinci kez var. (This BOM appears a second time in the file.) | Delete the second header row with the same item + usage + alternative. |
| 'Ürün Ağaçları' sayfasında bu ağacın başlığı yok. (The 'Ürün Ağaçları' sheet has no header for this BOM.) | Add a header row for the BOM of the line or condition. |
| Kullanim '…' tanınmadı: Üretim, Mühendislik. (Kullanim '…' was not recognized: Üretim, Mühendislik.) | Enter `Üretim` or `Mühendislik`. |
| '…' yapılandırılabilir değil — satır koşulu yalnız yapılandırılabilir ürünün ağacında olur. ('…' is not configurable — a line condition exists only in the BOM of a configurable item.) | Remove the condition, or make the item configurable. |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Routings import
> Create and update routings and master recipes (operations, work centers, times) with an Excel workbook.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/rotalar
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › Rotalar (Administration › Tools › Data Import › Routings)
- **Screen route:** `/erp/data-import/routings`
- **Required permission:** `erp-manufacturing-routings.view (görme, kontrol) · .import + .create + .edit (aktarma)`
The item's operations, work centers and times. Items and [work centers](https://erpdocs.corexlogic.com/en/veri-aktarimi/is-merkezleri) are loaded
**first**. A routing is identified by **item + alternative**; operations are read in `OperasyonNo` order. The `Tur`
column selects a routing or a master recipe (process manufacturing).
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Rotalar** (Routings) | `UrunKodu` | The routing header: item and alternative identify a routing. |
| **Operasyonlar** (Operations) | `UrunKodu` | The routing's operations — in OperasyonNo order. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Rotalar (Routings)
The routing header: item and alternative identify a routing. Matching: `UrunKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `UrunKodu` | **Yes** | The routing's item (producible). | `MM-00001` |
| `UrunAdi` | No | Information — not read. | `MERKEZİ YIKAMA SİSTEMİ` |
| `Alternatif` | **Yes** | 1, 2, 3 … — a new alternative must be the next number. | `1` |
| `Tur` | No | Empty = Rota (Routing). Cannot change after creation. | `Rota` (Routing) · `Ana Reçete` (Master recipe) |
| `TemelMiktar` | **Yes** | The times are for this much output (in the item's base unit). | `1` |
| `Aciklama` | No | The alternative's name. | |
| `PartiAltSinir` | No | Lot size lower limit. | |
| `PartiUstSinir` | No | Lot size upper limit. | |
| `Yayinla` | No | Empty = Evet (Yes). Hayır (No): remains a draft revision. | `Evet` · `Hayır` |
### Operasyonlar (Operations)
The routing's operations — in OperasyonNo order. Matching: `UrunKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `UrunKodu` | **Yes** | The item on the header row. | `MM-00001` |
| `Alternatif` | **Yes** | The alternative on the header row. | `1` |
| `OperasyonNo` | **Yes** | 10, 20, 30 … | `10` |
| `Aciklama` | **Yes** | The operation's name. | `Kabin Üretimi` |
| `IsMerkeziKodu` | **Yes** | An active work center. | `KAYNAKHANE` |
| `KontrolAnahtari` | No | Empty = İç İşlem (Internal processing). | `İç İşlem` (Internal processing) · `Dış İşlem` (External processing) |
| `HazirlikDk` | No | Setup time (minutes, fixed). Empty = 0. | `0` |
| `MakineDk` | No | Machine time (minutes, per base quantity). Empty = 0. | `0` |
| `IscilikDk` | No | Labor time (minutes, per base quantity). Empty = 0. | `60` |
| `FireYuzde` | No | Operation scrap, 0 ≤ x < 100. Empty = 0. | `0` |
| `SecimKosulu` | No | Super routing: the operation comes into the order only if the expression is true (configurable item). | `KABIN IN ('STANDART')` |
| `HazirlikFormulu` | No | Setup time by formula (configurable item). | |
| `MakineFormulu` | No | Machine time by formula. | |
| `IscilikFormulu` | No | Labor time by formula. | |
## In the demo package
`05-rotalar.xlsx`: 19 routings (2 master recipes), selection conditions on operations. **Kontrol Et** (Validate) in
the demo installation: 92 rows · Hatalı (Invalid) 0.
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| Bu rota dosyada ikinci kez var. (This routing appears a second time in the file.) | Delete the second header row for the same item + alternative. |
| … '…' iş merkezi bulunamadı. (… work center '…' was not found.) | Import the work center first, or correct the code. |
| KontrolAnahtari '…' tanınmadı: İç İşlem, Dış İşlem. (KontrolAnahtari '…' was not recognized: İç İşlem, Dış İşlem.) | Enter `İç İşlem` or `Dış İşlem`. |
| Tur '…' tanınmadı: Rota, Ana Reçete. (Tur '…' was not recognized: Rota, Ana Reçete.) | Enter `Rota` or `Ana Reçete`. |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Supplier Prices import
> Create and update item × supplier records (supplier's item code, purchase price, minimum order, lead time, main supplier) with an Excel workbook.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/tedarikci-fiyatlari
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › Tedarikçi Fiyatları (Administration › Tools › Data Import › Supplier Prices)
- **Screen route:** `/erp/data-import/item-suppliers`
- **Required permission:** `erp-procurement-item-suppliers.view (görme, kontrol) · .import + .create + .edit (aktarma)`
Item × supplier: the supplier's item code, purchase price and unit, minimum order, lead time, main supplier and
block. Items and suppliers are loaded **first**. A record is matched by `UrunKodu + TedarikciKodu`; a record not in
the file is not deleted. The price proposal on a purchase order comes from this record; it can also be the basis of
the **opening valuation** after the opening stock.
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Tedarikçi Fiyatları** (Supplier Prices) | `UrunKodu` + `TedarikciKodu` | Item–supplier records. Created if it does not exist, updated if it does; a record not in the file is not deleted. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Tedarikçi Fiyatları (Supplier Prices)
Item–supplier records. Created if it does not exist, updated if it does; a record not in the file is not deleted.
Matching: `UrunKodu` + `TedarikciKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `UrunKodu` | **Yes** | An active, purchasable item. | `HM-00277` |
| `UrunAdi` | No | Information — not read. | |
| `TedarikciKodu` | **Yes** | An active business partner with the supplier role. | `T-00029` |
| `TedarikciUnvan` | No | Information — not read. | |
| `TedarikciUrunKodu` | No | The code the supplier gives this item. | |
| `TedarikciUrunAdi` | No | The supplier's item description. | |
| `BirimFiyat` | No | Purchase price — together with the currency and price unit. Empty = no price. | `100` |
| `ParaBirimi` | No | Three-letter code (TRY, USD, EUR). | `TRY` |
| `FiyatBirimi` | No | The price unit: the item's unit or a convertible unit. | `M` |
| `MinSiparisMiktari` | No | Minimum order quantity, in the item's base unit. | |
| `TedarikSuresiGun` | No | Lead time, whole days. | |
| `AnaTedarikci` | No | Evet (Yes) = the item's main supplier (the previous one's flag is removed). Empty = Hayır (No). | `Evet` · `Hayır` |
| `GecerlilikBaslangici` | No | The first day the price is valid (dd.mm.yyyy). | |
| `GecerlilikBitisi` | No | The last day the price is valid. | |
| `Not` | No | Free-text note. | |
| `Bloke` | No | Evet (Yes) = blocked in the source list (no orders are placed with this supplier). Empty = Hayır (No). | `Evet` · `Hayır` |
| `BlokeGerekcesi` | No | Required if blocked. | |
## In the demo package
`09-tedarikci-fiyatlari.xlsx`: main and alternative suppliers, lead time, minimum order; KUTU (box) price for
screws/rivets; one blocked record. **Kontrol Et** (Validate) in the demo installation: 159 rows · Hatalı (Invalid) 0
(1 Güncellenecek (To be updated) — the record was changed on the screen after the package was loaded).
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| UrunKodu ve TedarikciKodu zorunlu. (UrunKodu and TedarikciKodu are required.) | Fill in both key columns. |
| '…' ürünü bulunamadı. (Item '…' was not found.) | Import the item first, or correct the code. |
| '…' iş ortağı bulunamadı. (Business partner '…' was not found.) | Import the supplier record first. |
| TedarikSuresiGun '…' tam gün olmalı. (TedarikSuresiGun '…' must be whole days.) | Enter a whole number (not a decimal). |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Price List Import
> Import price lists, list prices, period/quantity prices, characteristic surcharges, bulk increases/reductions, customer lists, special prices and group discounts with a single workbook.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/fiyat-listesi-aktarimi
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › Fiyat Listesi Aktarımı (Administration › Tools › Data Import › Price List Import)
- **Screen route:** `/erp/data-import/price-lists`
- **Required permission:** `erp-sales-price-lists.view (görme, kontrol) · .import + .create + .edit (aktarma)`
All of sales pricing in a single workbook, eight sheets. Items and business partners are loaded **first**. For how
the price is proposed on a sales document: [Price lists](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri).
- The **Toplu Değişiklik** (Bulk Change) sheet (increase / reduction) is applied to the list's **explicit** prices,
**after** the **Fiyatlar** (Prices) sheet. Do not change the same item on both sheets. In the export this sheet is
empty; its matching is the row order.
- A period price takes precedence over the permanent price; in quantity scales, the highest threshold met applies.
- For a configurable item, line price = list price + the surcharges of the selected values (**Karakteristik
Farkları** — Characteristic Surcharges).
- **Özel Fiyatlar** (Special Prices) take precedence over the list; one record per customer × item × currency.
- The workbook is this object's template in the system (**Dışa Aktar › Şablonu İndir** — Export › Download
Template); no separate template is included in the package.
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Fiyat Listeleri** (Price Lists) | `Kod` | The list header. Created if it does not exist, updated if it does. |
| **Fiyatlar** (Prices) | `ListeKodu` + `UrunKodu` | The explicit price in the list. The price of an item not in the file is not deleted. |
| **Dönem ve Miktar Fiyatları** (Period and Quantity Prices) | `ListeKodu` + `UrunKodu` + `MinMiktar` + `Baslangic` | A period or quantity scale price. A period price takes precedence over the permanent price; in scales, the highest threshold met applies. |
| **Karakteristik Farkları** (Characteristic Surcharges) | `ListeKodu` + `UrunKodu` + `OzellikKodu` + `DegerKodu` | The option surcharge of a configurable item: line price = list price + the surcharges of the selected values. |
| **Toplu Değişiklik** (Bulk Change) | `satır sırası` (row order) | Increase / reduction: to the list's EXPLICIT prices, AFTER the Fiyatlar sheet. Do not change the same item on both sheets. Empty in the export. |
| **Müşteri Listeleri** (Customer Lists) | `CariKod` | The customer's price list (business partner record › Sales). |
| **Özel Fiyatlar** (Special Prices) | `CariKod` + `UrunKodu` + `ParaBirimi` | A customer-specific price — takes precedence over the list. One record per customer × item × currency. |
| **Grup İskontoları** (Group Discounts) | `CariKod` + `KategoriKodu` + `Baslangic` | A category discount — proposed on the list price as a line discount. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Fiyat Listeleri (Price Lists)
The list header. Created if it does not exist, updated if it does. Matching: `Kod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Kod` | **Yes** | List code, at most 32 characters. | `STANDART` |
| `Ad` | No | Required for a new list, at most 128 characters. | `Standart Satış Fiyat Listesi` |
| `ParaBirimi` | No | ISO code (TRY, USD, EUR). Required for a new list; cannot change on a list that has prices. | `TRY` |
| `TemelListe` | No | For a derived list, the code of the base list: an item without an explicit price comes from base price × factor. | |
| `Katsayi` | No | Required if TemelListe is filled (1,10 = 10% more). | |
| `Varsayilan` | No | Evet (Yes) = the list for customers without an assigned list. Hayır (No) does not remove the default (it is handed over by making another list the default). | `Evet` · `Hayır` |
| `Durum` | No | Aktif (Active) / Pasif (Inactive). | `Aktif` · `Pasif` |
### Fiyatlar (Prices)
The explicit price in the list. The price of an item not in the file is not deleted. Matching: `ListeKodu` +
`UrunKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `ListeKodu` | **Yes** | The list on the Fiyat Listeleri sheet or in the system. | `STANDART` |
| `UrunKodu` | **Yes** | A sellable item. | `MM-0001` |
| `UrunAdi` | No | Information — not read. | |
| `Birim` | No | Information — the price is in the item's base unit. | `ADET` |
| `Fiyat` | **Yes** | Per base unit, in the list's currency, excluding VAT. Turkish decimal comma (490720,41). | `490720,41` |
### Dönem ve Miktar Fiyatları (Period and Quantity Prices)
A period or quantity scale price. A period price takes precedence over the permanent price; in scales, the highest
threshold met applies. Matching: `ListeKodu` + `UrunKodu` + `MinMiktar` + `Baslangic`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `ListeKodu` | **Yes** | | `STANDART` |
| `UrunKodu` | **Yes** | | `HZ-0001` |
| `MinMiktar` | No | Scale threshold, in the item's base unit; empty = no scale. | `10` |
| `Baslangic` | No | dd.mm.yyyy; empty = no time limit. | `01.01.2027` |
| `Bitis` | No | dd.mm.yyyy; empty = no time limit. | `31.03.2027` |
| `Fiyat` | **Yes** | Per base unit, excluding VAT. | `90,00` |
| `Not` | No | | `10 saat ve üzeri` |
### Karakteristik Farkları (Characteristic Surcharges)
The option surcharge of a configurable item: line price = list price + the surcharges of the selected values.
Matching: `ListeKodu` + `UrunKodu` + `OzellikKodu` + `DegerKodu`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `ListeKodu` | **Yes** | | `STANDART` |
| `UrunKodu` | **Yes** | A configurable item. | `MM-0001` |
| `OzellikKodu` | **Yes** | A configuration characteristic of the item. | `PERON_SAYISI` |
| `DegerKodu` | No | For a characteristic with options, the value code (required). Empty for a numeric characteristic: the surcharge is per unit of the value. | `3` |
| `Fark` | **Yes** | In the list's currency; can be negative. Empty cell = this surcharge is removed. | `209563,69` |
### Toplu Değişiklik (Bulk Change)
Increase / reduction: to the list's EXPLICIT prices, AFTER the Fiyatlar sheet. Do not change the same item on both
sheets. Empty in the export. Matching: `satır sırası` (row order).
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `ListeKodu` | **Yes** | | `STANDART` |
| `KategoriKodu` | No | The category and its subcategories; empty = the whole list. | |
| `Arama` | No | Text contained in the item code or name; empty = no filter. | |
| `Yontem` | **Yes** | Yüzde (Percentage): new = old × (1 + value / 100). Tutar (Amount): new = old + value. | `Yüzde` · `Tutar` |
| `Deger` | **Yes** | Percentage: 10 = 10% increase, -5 = 5% reduction. Amount: in the list's currency. | `10` |
| `Yuvarlama` | No | Decimal places (0–4); empty = 2. | `2` |
### Müşteri Listeleri (Customer Lists)
The customer's price list (business partner record › Sales). Matching: `CariKod`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `CariKod` | **Yes** | The customer record. | `M-00487` |
| `CariUnvan` | No | Information — not read. | |
| `ListeKodu` | **Yes** | Empty cell = the assignment is removed and the customer gets the default list. | `SHELL` |
### Özel Fiyatlar (Special Prices)
A customer-specific price — takes precedence over the list. One record per customer × item × currency. Matching:
`CariKod` + `UrunKodu` + `ParaBirimi`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `CariKod` | **Yes** | | `M-00487` |
| `CariUnvan` | No | Information — not read. | |
| `UrunKodu` | **Yes** | | `HZ-0001` |
| `Fiyat` | **Yes** | Per base unit, excluding VAT. | `85,00` |
| `ParaBirimi` | **Yes** | ISO code. | `TRY` |
| `Baslangic` | No | dd.mm.yyyy; empty = no time limit. | |
| `Bitis` | No | dd.mm.yyyy; empty = no time limit. | |
| `Not` | No | | |
### Grup İskontoları (Group Discounts)
A category discount — proposed on the list price as a line discount. Matching: `CariKod` + `KategoriKodu` +
`Baslangic`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `CariKod` | No | Empty = all customers. | |
| `KategoriKodu` | **Yes** | The category and its subcategories. | `TIC` |
| `IskontoYuzde` | **Yes** | 0 – 100. | `5` |
| `Baslangic` | No | dd.mm.yyyy; empty = no time limit. | |
| `Bitis` | No | dd.mm.yyyy; empty = no time limit. | |
| `Not` | No | | |
## In the demo package
`08-fiyat-listesi-aktarimi.xlsx`: STANDART, BAYI (Standart × 0,85), IHRACAT (EUR); scale and period prices,
characteristic surcharges, a special price, a group discount. **Kontrol Et** (Validate) in the demo installation:
109 rows · Hatalı (Invalid) 0.
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| Yeni listede Ad ve ParaBirimi zorunlu. (Ad and ParaBirimi are required for a new list.) | Fill in both columns for a new list code. |
| '…' fiyat listesi bulunamadı. (Price list '…' was not found.) | Create the list on the Fiyat Listeleri sheet of the same workbook, or correct the code. |
| '…' ürünü bulunamadı. (Item '…' was not found.) | Import the item first. |
| '…' iş ortağı bulunamadı. (Business partner '…' was not found.) | Import the customer record first. |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
- [Price lists screen](https://erpdocs.corexlogic.com/en/satis/ekranlar/fiyat-listeleri)
---
# Opening Stock import
> Import the inherited stock with warehouse, storage location, status, batch/serial number and unit cost as a one-time opening document.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/stok-acilisi
- **Type:** Screen
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı › Stok Açılışı (Administration › Tools › Data Import › Opening Stock)
- **Screen route:** `/erp/data-import/stock-opening`
- **Required permission:** `erp-inventory-opening-balances.view (görme, kontrol) · .import + .create (aktarma)`
The inherited stock: with warehouse, storage location, status, batch/serial number and unit cost. Items, warehouses
and storage locations are loaded **first**. This object is **migration data**: it is only imported with the
template, and existing records are not exported (on the Dışa Aktar (Export) tab: "Bu nesne geçiş verisidir — yalnız
şablonla içeri alınır, mevcut kayıt dışa aktarılmaz." — This object is migration data — it is only imported with the
template, existing records are not exported.).
> **Cannot be run again — a document, not an update**
The other objects work by code as "update if it exists, create if not"; the opening stock does not. Rows with the
same `Referans` become a **single opening document**, and a reference that has already been posted **is not posted a
second time**. In the demo installation, when the demo package's already-loaded opening workbook was validated again,
all 136 rows were rejected with this message: "Bu referansla açılış zaten yazılmış (AB-2026-000001) — stok ikinci
kez girmez." (An opening has already been posted with this reference (AB-2026-000001) — the stock is not entered a
second time.) Loading the same file again does not correct anything; changes after the opening are made with
Inventory Management documents.

1. All rows rejected
2. "Opening already posted with this reference"
## Workbook sheets
| Sheet | Matching (record key) | What it writes |
|---|---|---|
| **Açılış Bakiyeleri** (Opening Balances) | `Referans` | Opening rows. The same Referans becomes a single opening document; a reference already posted is not posted a second time. |
## Columns
The tables are generated from the same source as the system's **Alan Kılavuzu** (Field Guide) tab. If a column with
**Required: Yes** is left empty, the row becomes **Hatalı** (Invalid). All cells are read as text; `Evet`/`Hayır`
(Yes/No) columns accept no other value, and in a column with a list of allowed values the spelling must match the
list.
### Açılış Bakiyeleri (Opening Balances)
Opening rows. The same Referans becomes a single opening document; a reference already posted is not posted a second
time. Matching: `Referans`.
| Column | Required | Description | Example / allowed values |
|---|---|---|---|
| `Referans` | **Yes** | Groups the document — e.g. one reference per warehouse. | `DEVIR-ANA-D` |
| `AcilisTarihi` | **Yes** | Opening date (dd.mm.yyyy) — the go-live date is recommended. It cannot be in a closed period; a date earlier than today requires the back-dating permission. | `01.11.2026` |
| `DepoKodu` | **Yes** | The warehouse code. | `ANA-D` |
| `LokasyonKodu` | No | The warehouse's storage location; must be filled for a warehouse that requires storage locations. | `STOK` |
| `UrunKodu` | **Yes** | A stock-keeping item. | `HM-00001` |
| `UrunAdi` | No | Information — not read. | |
| `Miktar` | **Yes** | Greater than zero. | `10` |
| `Birim` | **Yes** | The item's unit or a convertible unit. | `ADET` |
| `StokDurumu` | **Yes** | Stock status code (SIFIR, IKINCIEL …) — does not fall back to the default. | `SIFIR` |
| `LotNo` | No | Required for a batch-managed item. | |
| `UretimTarihi` | No | The batch's production date. | |
| `SonKullanmaTarihi` | No | The batch's expiry date. | |
| `TedarikciLotNo` | No | The supplier's batch number. | |
| `SeriNolari` | No | For a serial-managed item, as many serial numbers as the quantity, separated with ';'. | |
| `BirimMaliyet` | **Yes** | Approved unit cost in the row's unit. Enter 0 for free-of-charge stock — it cannot be left empty: a goods receipt with cost is rejected for stock with an unknown cost (an opening valuation is required first). | `125,50` |
| `ParaBirimi` | **Yes** | Three-letter code (TRY, USD, EUR); a non-TRY cost is converted at the exchange rate of the opening date. | `TRY` |
| `MaliyetKaynagi` | **Yes** | The basis of the cost (count record, purchase invoice, valuation list) — written into the document's description. | `Son alış faturası` |
## In the demo package
`11-stok-acilisi.xlsx`: opening on 01.10.2026 — four warehouses, batch-managed chemicals (with expiry dates),
serial-numbered inverters and pumps; total value 1,960,810 TL. **Kontrol Et** (Validate) on an empty installation:
136 rows · Hatalı (Invalid) 0.
## Common errors
The messages are the same as the text in the system's **Kontrol sonucu** (Validation result) table (`…` is the
variable part).
| Message | Cause and solution |
|---|---|
| Bu referansla açılış zaten yazılmış (…) — stok ikinci kez girmez. (An opening has already been posted with this reference (…) — the stock is not entered a second time.) | The reference was imported before. If rows are missing, prepare a separate opening with a new reference. |
| …: '…' deposu bulunamadı. (…: warehouse '…' was not found.) | Create the warehouse first with [Warehouses and Storage Locations](https://erpdocs.corexlogic.com/en/veri-aktarimi/depolar-ve-lokasyonlar). |
| …: '…' deposunda '…' lokasyonu yok. (…: warehouse '…' has no storage location '…'.) | Create the storage location under the warehouse; in a warehouse that requires storage locations, this column must be filled. |
| …: '…' stok durumu bulunamadı. (…: stock status '…' was not found.) | Write the stock status code (e.g. `SIFIR`) exactly as defined in the system; an empty status does not fall back to the default. |
## Related
- [Data Import — overview](https://erpdocs.corexlogic.com/en/veri-aktarimi)
- [Validate the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-kontrol-etme) · [Import the workbook](https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/kitabi-aktarma)
- [Setup with data import process](https://erpdocs.corexlogic.com/en/surecler/veri-aktarimi-ile-kurulum)
---
# Download the import template or existing records
> Download an import object's empty template (with sample rows) or its existing records as the same Excel workbook as the template.
URL: https://erpdocs.corexlogic.com/en/veri-aktarimi/islemler/sablon-indirme
- **Type:** Task
- **Module:** General
- **Menu path:** Yönetim › Araçlar › Veri Aktarımı ›