Imports

Manage overseas import files: gather all shipment costs (goods, freight, customs, clearance…) and allocate them to items to compute the true landed cost before goods enter stock.

Import files (shipments)

Route: Imports › Import Files/import/shipments

Shipments
Import file list
New shipment
New import file

Purpose: the import file is the shipment's container from contract to warehouse: it collects the goods (via linked purchase invoices) and every extra cost of bringing them in, then spreads those costs over the items so each one carries its true landed unit cost.

When to use: for every overseas purchase where the goods price is not the whole story — sea/air freight, customs duty, clearance, insurance, inland transport… If you buy locally with no extra costs, a plain purchase invoice is enough and no import file is needed.

  1. Record and post the purchase invoice(s): the goods themselves (items, quantities, prices — in the purchase currency if foreign) are entered as normal purchase invoices in the Purchasing module. Only posted invoices can be linked to an import file.
  2. Open an import file: foreign supplier, shipment date, B/L and container numbers, loading and discharge ports, expected/actual arrival dates.
  3. Link the purchase invoices: pick the posted invoice(s) that belong to this shipment — their subtotals become the file's Goods Total.
  4. Record the cost lines: each cost with its type (sea freight, customs, clearance…), the service vendor who charged it, and the amount.
  5. Review the allocation: after saving, the system automatically spreads all costs over the invoice lines in proportion to goods value and shows each item's landed unit cost.
  6. Post the file: stock value is raised by the allocated costs (weighted-average cost goes up, quantities unchanged) and the accounting entry is generated automatically.
  7. Settle the costs: pay each service vendor from the settlement table — every payment creates a posted payment voucher linked to the file.

List columns

ColumnContent
File No.Automatic serial SHIP-00001, SHIP-00002
Shipment DateThe file's document date.
Foreign SupplierThe goods supplier of the shipment.
Bill of Lading / Container No.Shipping references for quick tracing.
Shipment StageLogistics stage chip (see below).
StatusDraft or Posted.
Goods Total / Costs TotalValue of linked invoices and sum of cost lines — both columns show a grand total under the list.

Row actions: edit always; delete only while the file is a Draft.

Shipment stage vs. document status

Two separate indicators live on every file. The stage is a logistics tracker you set manually; the status is the accounting state the system controls:

Shipment stageMeaning
OpenFile being prepared — contract signed, goods not shipped yet.
In TransitGoods on the vessel/plane — awaiting arrival.
ArrivedGoods at the discharge port.
ClearedCustoms clearance finished.
ClosedShipment completed and archived.
Document statusMeaning
DraftEditable — costs and invoices can still change; no accounting or stock effect yet.
PostedLanded cost capitalized into stock and the journal entry created — the file becomes read-only.
ℹ️ Note: the stage is informational only — you can post a file at any stage. Editing and deletion are controlled by the Draft/Posted status alone.

Header fields

FieldRequiredDescription
Shipment DateYesDocument date (defaults to today). Determines the fiscal year of the file.
BranchYesPre-filled with your default branch; locked if your permissions allow only one branch. The journal entry is stamped with it.
Foreign SupplierYesThe goods supplier. Also the default vendor for any cost line left without a service vendor.
Shipment StageYesOpen / In Transit / Arrived / Cleared / Closed (default Open).
Bill of LadingNoB/L reference from the shipping line.
Container No.NoContainer reference.
Loading Port / Discharge PortNoPicked from the Ports master (active ports only).
Expected Arrival / Actual ArrivalNoPlanning dates. Actual Arrival, when filled, becomes the posting date of the journal entry and stock adjustment; otherwise the shipment date is used.
NotesNoFree text printed on the document.
Linked Purchase InvoicesYes (to post)Multi-select of posted purchase invoices, shown as “number (total)”. Their subtotals form the Goods Total.

Cost lines grid

ColumnRequiredDescription
Cost TypeYesPicked from the Import Cost Types master (active types only).
DescriptionNoFree text, up to 300 characters — e.g. the vendor's invoice number.
Service VendorNoThe supplier who charged this cost (shipping line, clearance office…). Left empty = the file's foreign supplier. Used later to group the settlement table.
AmountYes (> 0)Cost amount in the company base currency, 2 decimals.
💡 Fast entry: press Enter to move cell → cell; Enter on the last cell of the last row adds a new row automatically. A row without a cost type, or with amount 0, is silently dropped when you save.

Toolbar actions

ButtonVisible whenEffect
NewAlwaysClears the editor and starts a fresh file with the next number.
SaveDraftSaves the draft and refreshes the allocation table.
PostDraftSaves, then capitalizes the landed cost into stock and creates the journal entry.
UnpostPostedReverses the stock uplift and the journal entry; the file returns to Draft.
View Journal EntryPostedOpens the automatic JV generated by posting.
Print preview / DownloadPostedPrints the file (header references + cost lines) or downloads it as PDF.
BackAlwaysReturns to the list.

Landed-cost allocation — how it works

The allocation table appears under the cost grid as soon as the file is saved with linked invoices. The system spreads the Costs Total over every line of every linked invoice in proportion to the line's goods value (line subtotal, before VAT):

  1. Share % = line subtotal ÷ goods total of all linked lines.
  2. Allocated Cost = costs total × share, rounded to 2 decimals — the last line absorbs the rounding remainder so the sum always equals the costs total exactly.
  3. Landed Unit Cost = (line subtotal + allocated cost) ÷ base quantity, shown with 4 decimals. Quantities are converted to the item's base unit (packs × unit factor).
Allocation columnContent
InvoiceThe purchase invoice number the line comes from.
Code / ItemItem code and name.
QtyBase-unit quantity of the line.
Goods ValueLine subtotal (base currency, before VAT).
ShareThe line's percentage of the goods total.
Allocated CostThe line's slice of the costs total.
Landed Unit CostFinal cost of one base unit including its cost share.

Allocation bases compared

ERPs allocate landed costs on different bases. KEMTOVA ERP allocates by value automatically — here is how the bases compare so you know what the numbers mean and when the value basis fits best:

BasisHow it splits costsBest when
By value (used by KEMTOVA ERP)Proportional to each line's goods value.Costs scale with value: ad-valorem customs duty, insurance, finance charges — and the fair default for mixed shipments.
By quantityEqual cost per unit.Per-piece handling dominates and the items are similar in size and value.
By weight / volumeProportional to kg or m³.Freight is the dominant cost and the mix combines heavy-cheap with light-expensive goods.
💡 Practical tip: if one shipment mixes very heavy low-value goods with light high-value goods and freight is the biggest cost, open two import files (one per goods family, each with its share of the freight). The value-based allocation inside each file then tracks reality closely.

Totals strip

TotalComputed as
Goods TotalΣ subtotals of the linked posted purchase invoices (server-computed, base currency).
Costs TotalΣ amounts of the cost lines.
Landed TotalGoods Total + Costs Total — the full cost of the shipment.

What posting does

  1. Validates: at least one cost line, at least one linked posted invoice, and no linked invoice already costed on another posted file.
  2. Determines the posting date: Actual Arrival if filled, otherwise the shipment date.
  3. Raises stock value: for each allocated line the item's weighted-average cost in the invoice's warehouse goes up by the allocated cost — quantities never change.
  4. Handles what stock cannot absorb: if an item is not inventory-tracked, or its quantity was already sold before posting, that slice books to Cost of Goods Sold instead — the GL and stock ledger always agree.
  5. Creates the journal entry: Dr Inventory (absorbed) + Dr COGS (unabsorbed) / Cr Accrued import costs for the full costs total.
ℹ️ Accounts: the credit account comes from the module setting Accrued import costs account in Settings › Accounts; when unset the system falls back to the suppliers payable account. The goods value itself was already booked by the purchase invoice (Dr Inventory / Cr Supplier) — the shipment entry covers the costs only, so nothing is double-counted.
⚠️ Unpost: reverses the exact stock-value uplift (netted per item and warehouse, so repeated post/unpost cycles stay balanced) and posts a reversing journal entry, then returns the file to Draft. Settlement payments already made are separate posted vouchers and are not reversed — void them from the payments screen if needed.

Import costs settlement (paying the vendors)

On a posted file a settlement table appears, grouping the cost lines by service vendor (lines without a vendor fall to the foreign supplier):

ColumnContent
Service VendorEach vendor with at least one cost line.
Costs TotalSum of that vendor's cost lines on this file.
PaidPosted settlement vouchers already issued from this file for the vendor.
RemainingCosts Total − Paid (red while > 0, green at zero).
PayOpens the payment dialog (shown only while something remains).

The Pay dialog asks for: the amount (pre-filled with the remaining, capped at it), the instrument (Cash or Bank transfer) and the cash box / bank account. One click creates and posts a supplier payment voucher linked to the file, with the entry: Dr Accrued import costs / Cr Cash-Bank.

⚠️ Over-payment guard: the system rejects any payment above the vendor's remaining import costs on the file.

Multi-currency handling

  • The purchase invoice can be entered in the supplier's currency with its exchange rate; on posting its amounts are converted to the company base currency (the JV lines carry both currencies).
  • The import file's Goods Total, allocation and totals are always in base currency — the converted invoice subtotals.
  • Cost lines are entered in base currency: if the freight bill is in USD, convert it at the rate you paid and enter the base amount (put the original amount and rate in the Description).
  • The shipment's journal entry is posted in base currency.
💡 Tip: keep the exchange-rate table (Accounting › Exchange Rates) up to date before posting foreign invoices — the landed cost inherits whatever rate the invoice used.

Validation errors & common mistakes

Message / symptomCauseFix
“Supplier” required warning on saveNo foreign supplier picked.Pick the supplier — it is the only hard-required header field at save time.
“Only POSTED purchase invoices can be linked…”A linked invoice is still a draft.Post the purchase invoice first, then link it.
“The same purchase invoice is linked more than once.”Duplicate pick in the invoice multi-select.Remove the duplicate.
“At least one cost line is required to post…”Posting a file whose cost rows were all empty (no type or amount 0 — such rows are dropped at save).Enter at least one complete cost line.
“At least one posted purchase invoice must be linked before posting.”No invoices linked.Link the shipment's invoice(s).
“A linked purchase invoice is already costed on posted shipment SHIP-…”The invoice already carries landed costs on another posted file — double-costing is blocked.Unlink it here, or unpost the other file if it is the wrong one.
“Only a draft shipment can be edited.” / “A posted shipment cannot be deleted.”The file is posted.Unpost first, then edit or delete.
“Import costs can be paid on a POSTED shipment only.”Trying to settle a draft.Post the file, then pay.
“Payment exceeds the vendor's remaining import costs (…)”Amount above the remaining.Enter at most the remaining shown in the table.
Allocation table is emptyFile not saved yet, or no invoices linked.Link posted invoices and click Save.
Goods Total is 0Only unposted invoices were available, so nothing was linked.Post the invoices, re-open the file, link them and save.

FAQ

QuestionAnswer
The goods already entered stock when I posted the purchase invoice — is posting the file late a problem?No. Posting the file raises the weighted-average cost of whatever is still on hand; any quantity already sold has its cost share sent to COGS automatically, so nothing is lost.
Can one import file cover several purchase invoices?Yes — link as many posted invoices as belong to the shipment; the allocation spreads costs over all their lines together. But each invoice can be costed on only one posted file.
How do I pay the foreign supplier for the goods themselves?Through the normal supplier payments screen against the purchase invoice. The file's settlement table covers the cost lines only (freight, customs…) — including cost lines assigned to the foreign supplier.
Where do I see the accounting entry of the file?On a posted file, click View Journal Entry in the toolbar, or find the automatic entry (source “IMP”) in Accounting › Journal Entries.

Complete worked example — from FOB invoice to landed cost

Scenario: you import ceramic tiles from a Chinese supplier. The goods are invoiced FOB in US dollars; freight, customs and clearance are billed locally in riyals. Company base currency: SAR.

Step 1 — the posted purchase invoice (goods)

Invoice PINV-00042 is entered in USD at exchange rate 3.75:

ItemQtyUnit price USDLine USDLine SAR (×3.75)
Ceramic tiles 60×6020080.0016,000.0060,000.00
Porcelain tiles 30×3050021.333410,666.6740,000.00
Total (FOB)26,666.67100,000.00

Posting the invoice books the goods (VAT left aside for clarity):

AccountDebitCredit
Inventory100,000.00
Supplier — China Ceramics Co.100,000.00

Step 2 — the import file and its cost lines

Open file SHIP-00007, pick the foreign supplier, link PINV-00042, and record the costs (all in SAR):

Cost typeService vendorAmount SAR
Sea freightGlobal Shipping Line8,000.00
Customs dutyCustoms broker5,500.00
Clearance feesPort Clearance Office1,200.00
Costs Total14,700.00

Step 3 — the automatic allocation (by value)

ItemQtyGoods valueShareAllocated costLanded unit cost
Ceramic tiles 60×6020060,000.0060.00%8,820.00344.1000
Porcelain tiles 30×3050040,000.0040.00%5,880.0091.7600
Total100,000.00100%14,700.00

The math, line by line:

  • Ceramic: share = 60,000 ÷ 100,000 = 60% → cost = 14,700 × 60% = 8,820.00 → landed unit = (60,000 + 8,820) ÷ 200 = 344.10 SAR (was 300.00 before costs).
  • Porcelain: the last line absorbs the remainder = 14,700 − 8,820 = 5,880.00 → landed unit = (40,000 + 5,880) ÷ 500 = 91.76 SAR (was 80.00).

Totals strip: Goods Total 100,000.00 · Costs Total 14,700.00 · Landed Total 114,700.00.

Step 4 — posting the file

On Post (posting date = Actual Arrival), the weighted-average cost of both items rises in the invoice's warehouse (quantities unchanged) and this entry is generated:

AccountDebitCredit
Inventory (landed-cost uplift)14,700.00
Accrued import costs14,700.00
ℹ️ If part was already sold: suppose 100 of the 500 porcelain tiles were sold before posting. Stock can absorb only 400 ÷ 500 of the 5,880 = 4,704.00; the remaining 1,176.00 debits COGS instead: Dr Inventory 13,524.00 + Dr COGS 1,176.00 / Cr Accrued import costs 14,700.00.

Step 5 — settling the costs

The settlement table now lists the three vendors. Paying Global Shipping Line 8,000.00 by bank transfer creates and posts a payment voucher with:

AccountDebitCredit
Accrued import costs8,000.00
Bank8,000.00

Repeat for the broker (5,500.00) and the clearance office (1,200.00). When all rows show Remaining = 0, the accrual account is fully cleared and the file's lifecycle is complete — set the stage to Closed.

Ports

Route: Imports › Ports/import/ports

Ports
Port list

Purpose: master data of shipping and arrival ports, offered in the Loading Port / Discharge Port fields of import files. Set it up once before opening your first file.

Fields

FieldRequiredDescription
CodeAutomaticGenerated by the system; read-only.
Arabic Name / English NameYesBilingual port name — e.g. “ميناء جدة الإسلامي / Jeddah Islamic Port”.
CountryNoFree-text country, useful in lists and reports.
ActiveInactive ports disappear from the pickers on import files but remain on historical documents.
  1. Open Imports › Ports and click Create.
  2. Enter the bilingual name and the country.
  3. Save, or Save & New to keep adding ports in one session.
💡 Tip: prefer deactivating a port you no longer use over deleting it — deletion is blocked once the port is referenced by any import file.

FAQ

QuestionAnswer
Can I type a port directly on the import file?No — the file's port fields are pickers over this master. Add the port here first.
Do I need both loading and discharge ports?No, both are optional on the file — fill what you know; they are references for tracking and printing.
Why is the code read-only?Codes are generated sequentially by the system to stay unique — you only maintain the names.

Import cost types

Route: Imports › Cost Types/import/cost-types

Cost types
Import cost types

Purpose: the catalogue of cost categories offered in the file's cost-line grid — typically: sea/air freight, insurance, customs duty, clearance, handling, demurrage, inland transport. A clean list lets you analyse later where your import money actually goes.

Fields

FieldRequiredDescription
CodeAutomaticGenerated by the system; read-only.
Arabic Name / English NameYesBilingual category name shown in the cost grid.
ActiveInactive types are hidden from the cost-line picker; existing lines keep them.
ℹ️ Accounting: cost types classify the expense for analysis; the credit account of the posting entry is a single module setting — Accrued import costs account under Settings › Accounts (falling back to the suppliers payable account when unset). The debit side is Inventory (and COGS for any unabsorbed part).

FAQ

QuestionAnswer
How detailed should the list be?Detailed enough to answer “what did clearance cost us this year?” — one type per distinct service is usually right; avoid one generic “import costs” type.
Does the cost type change the allocation?No — all cost lines are pooled and spread by goods value regardless of type. The type is for classification and reporting.
Can I delete a type that was used?No — deletion is blocked once referenced. Deactivate it instead; history keeps the name.

Frequently asked questions

How do I create an import shipment?

Open Imports › Shipments › New, add the supplier and goods, then record landed-cost items (freight, customs, clearance) so the true cost is distributed across the goods.

What is landed cost?

Landed cost is the total real cost of imported goods — the purchase price plus freight, insurance, customs and clearance — which KEMTOVA ERP distributes onto item costs automatically.

How are customs and freight allocated?

You add each cost on the shipment; the system allocates it across the goods (by value or quantity) so each item carries its correct landed cost into inventory.

When does the shipment affect stock?

When you post the shipment/receipt, the goods enter inventory at their landed cost and the payable to the supplier is recorded.