Skip to main content
Dairy Collection & Processing — A build-to-order Dynamics 365 Business Central extension that runs milk intake at collection  — 1/1Illustrative preview

A build-to-order Dynamics 365 Business Central extension that runs milk intake at collection centers,

prices every can on measured Fat and SNF, settles farmer payment cycles, and tracks processing yield through to route dispatch.

ECOSIRE scopes, builds, installs and supports it for your tenant — it is not an AppSource download.

What is Dairy Collection & Processing?

A build-to-order Dynamics 365 Business Central extension that runs milk intake at collection centers, prices every can on measured Fat and SNF, settles farmer payment cycles, and tracks processing yield through to route dispatch. ECOSIRE scopes, builds, installs and supports it for your tenant — it is not an AppSource download. Built to order by ECOSIRE for Dynamics 365 BC (build-to-order) — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Collection journal page for shift-wise intake — center, route, farmer, can/weight, Fat %, SNF % or CLR with configurable CLR-to-SNF conversion, keyboard-first for an operator entering hundreds of lines per shift
Rate-chart engine supporting two-dimensional Fat/SNF slab grids, Kg-Fat rates and base-plus-incentive formulas, versioned by effective date so historic entries always reprice against the chart live that day
Pricing resolved in a dedicated codeunit at posting time rather than typed by the operator, so the rate a farmer is paid is reproducible and auditable from the recorded quality readings
Posting writes real `Vendor Ledger Entry` and `Item Ledger Entry` records, making farmer payables and raw-milk valuation native Business Central data with no reconciliation import
`Farmer` implemented as a table extension on Vendor carrying center, route, cattle count and membership fields, keeping standard payment, dimension and withholding behaviour intact
Settlement document aggregating a payment cycle (weekly, ten-day, fortnightly or custom) per farmer, applying deductions for feed, veterinary charges, advances and loan instalments, with a printable payment slip
Payment Journal batch generated from settlements, feeding standard Suggest Vendor Payments and the electronic payment flow instead of a parallel disbursement engine
Milk-analyser and automatic-collection-unit import driven by a Job Queue Entry — file drop or endpoint poll, with per-center field mapping, duplicate-shift protection and an error log page for rejected rows
Processing yield tracking on native `Production Order` consumption and output journals: actual versus standard yield per batch, solids-loss variance against a per-routing tolerance, and a yield analysis page by product and date
Fat/SNF-aware standardisation so input milk quality carries into output batches for pasteurised milk, cream, ghee, curd, paneer or powder, using Item Tracking for lot traceability from farmer to finished pack
Route dispatch and loading sheets built from Sales Orders, with crate and returnable tracking per driver and posting of route returns as credits against the day's sale
API pages on REST API v2.0 / OData v4 for collection entries, rate charts, farmer balances and route loads, enabling Power App village apps, Power BI dashboards and Dataverse virtual tables without middleware
Permission sets separating collection-center operator, plant accountant and dairy administrator, so a center user can post intake without reaching payments or rate charts
Event-subscriber architecture with no base-application modification — table extensions, page extensions and codeunits only — so Microsoft release-wave updates apply cleanly
Dairy reporting set: center-wise procurement, farmer-wise Fat/SNF averages and rejection rates, average procurement cost per Kg-Fat, and settlement liability ageing

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Dynamics 365 Business Central.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

About this Product

A dairy does not buy milk the way Business Central buys inventory. A farmer arrives at a collection center twice a day with an unmeasured quantity of a product whose value is not known until a lactometer and a milk analyser report Fat and SNF; the rate is a function of those two readings against a published slab or a Kg-Fat formula; the farmer is not invoiced but settled on a cycle — weekly, ten-day, or fortnightly — net of cattle feed advances, veterinary charges and loan recoveries. Standard Business Central has no concept of a quality-derived purchase price. Purchase Order and Purchase Invoice want a Direct Unit Cost at line entry, item charges cannot express a two-variable rate matrix, and the farmer is modelled as a plain Vendor with no place to store a shift-wise intake history. Teams end up running collection in spreadsheets or a standalone dairy package and keying summarised journals into Business Central weeks later, which means the payable to farmers, the milk solids on hand, and the plant's yield never reconcile to the same source.

ECOSIRE builds an AL extension that puts the whole collection-to-dispatch chain inside Business Central. New tables carry Collection Center, Farmer (a table extension on Vendor with a shift-wise ledger), Milk Collection Entry and Rate Chart Line, with page extensions on the Vendor Card and Item Card so nothing lives in a parallel silo. Intake is captured on a purpose-built collection journal page — center, shift, farmer, weight or volume, Fat %, SNF % (or CLR, converted by a configurable formula) — and a pricing codeunit resolves the rate at posting time against the effective rate chart, whether that chart is a two-dimensional Fat/SNF slab grid, a Kg-Fat rate, or a base-plus-incentive formula. Posting writes a real Vendor Ledger Entry and an Item Ledger Entry for raw milk, so the farmer payable and the milk-solids valuation are Business Central data from the first second, not a month-end import.

Payment cycles run as a settlement document: the extension aggregates every collection entry in the period per farmer, applies deduction lines sourced from feed sales and advance ledgers, and produces a payment slip plus a Payment Journal batch ready for the standard Suggest Vendor Payments and electronic payment flow. Processing is modelled on Business Central's own Production Order, consumption and output journals with Item Tracking — input milk with its Fat/SNF is consumed, standardised into pasteurised milk, cream, ghee, curd or powder, and the extension records actual versus standard yield per batch, flagging solids loss beyond a tolerance you set per routing. Dispatch builds route-wise loading sheets from Sales Orders, tracks crates and returnables per route with the driver, and posts route returns back as a credit against the day's sale.

Technically this is a normal, upgrade-safe extension: table and page extensions rather than base-object modification, business logic in codeunits, and event subscribers on the posting routines rather than copied base code. Job Queue Entries handle unattended work — overnight rate-chart activation, settlement generation, and the milk-analyser import if your centers run automatic collection units writing to a shared file or endpoint. API pages published on the standard REST API v2.0 / OData v4 surface expose collection entries, rate charts and farmer balances so a village-level Power App, a Power BI dairy dashboard, or a Dataverse-linked field app reads live data without a middleware layer. Dedicated permission sets separate the collection-center operator from the plant accountant. The extension targets current Business Central release waves and is delivered for either Business Central online (per-tenant extension, or prepared for AppSource submission if you intend to resell) or on-premises.

Delivery is build-to-order, not a download. We start with a scoping call, then produce a written functional specification covering your rate chart mathematics, shift definitions, deduction types, settlement calendar and dispatch model — that document is what we build against and what UAT is graded on. Typical delivery is one working week from confirmed scope, deployed first to your sandbox for user acceptance testing on real collection data, then to production with a documented rollback. You receive the AL source code, the git repository, and a support window after go-live.

What you get

  • Complete AL extension source code built and tested against your Business Central version (online per-tenant extension or on-premises), delivered as a compiled .app plus full source
  • Installation, publishing and configuration on your sandbox and production environments, including permission-set assignment and Job Queue Entry setup
  • Written functional specification and technical documentation — object ID ranges, table and field reference, event subscribers used, API page endpoints and integration contract
  • User guide covering collection-center intake, rate-chart maintenance, settlement runs, yield review and route dispatch, plus a live training session for operator and accounting users
  • UAT on your sandbox using real collection and quality data, with a signed-off acceptance checklist and a documented rollback plan before production deployment
  • Rate chart, deduction type, shift and route master data configured from your existing definitions and loaded into the system
  • Git repository handover with full commit history, branch structure and build pipeline notes, transferred to your GitHub or Azure DevOps organisation
  • Post-go-live support window for defect fixes and configuration questions, with a named engineer and an agreed response window

Who this is for

Dairy Plant Owner / Managing Director

Runs a private or cooperative dairy with several collection centers and needs one number for milk procured, one number owed to farmers, and confidence that the rate per Kg-Fat is applied consistently at every center. Wants procurement, processing and dispatch inside the same Business Central tenant as the general ledger, not in a standalone dairy package reconciled monthly.

Procurement / Collection Manager

Owns the collection centers, the rate charts and the farmer relationship. Needs shift-wise visibility of intake and quality by center and route, early detection of centers whose Fat/SNF averages drift, and settlement runs that close on the published cycle without a week of spreadsheet work. Cares most that rate charts are versioned and a farmer dispute can be answered from the original readings.

Finance Manager / Plant Accountant

Responsible for the farmer payable, raw-milk valuation and cost per litre of finished product. Needs settlements to post as real vendor ledger entries with correct dimensions, deductions to reconcile against the feed and advance ledgers, and yield variance visible in the same period the production order closed rather than at year-end.

Business Central Partner / Internal IT Lead

Owns the tenant and the upgrade cycle. Needs an extension built from table extensions, page extensions and event subscribers rather than base modifications, shipped with source and a git repository, whose API pages expose data cleanly to Power BI and Power Platform so no shadow integration layer appears later.

How Dairy Collection & Processing Compares

CriterionECOSIRECustom BuildCompetitorDynamics 365 Business Central Native
Quality-based milk pricing (Fat/SNF)Rate engine with versioned slab grids, Kg-Fat and incentive formulas, priced at posting from measured readingsAchievable, but the rate mathematics and versioning are the hardest part to specify and usually get built twiceOften one fixed rate model; your slab structure has to bend to fit theirsNo concept of a quality-derived price — Direct Unit Cost is typed on the purchase line
Farmer settlement cycles and deductionsSettlement document per cycle with feed, advance and loan deductions, emitting a Payment Journal batchBuildable; sourcing deductions across feed and advance ledgers is where most in-house builds stallUsually supported, but with the vendor's deduction categories rather than yoursStandard vendor payment only — no cycle aggregation, no deduction netting, no payment slip
Fit to your rate chart and shift modelSpecified from your published charts and calendar during scoping, before any code is writtenExactly your model, at the cost of your team writing and maintaining the specificationConfiguration within the app's assumptions; anything outside them becomes a vendor change requestNothing to fit — the model does not exist
Upgrade safety across release wavesTable/page extensions and event subscribers only, no base modification; wave impact reviewed and quotedDepends on your developer's discipline — copying base code is the common shortcutUsually upgrade-safe, though you wait on the vendor's release cadence to clear a waveUnaffected by definition, because nothing has been added
Source code and ownershipFull AL source and git repository handed over; maintainable by any partner you chooseYou own it outright — and you own every future fix, with no second opinionCompiled app only; you depend on the vendor for every changeNot applicable
Integration surface (Power BI / Power Platform)API pages on REST API v2.0 / OData v4 for collections, rate charts, balances and route loadsFrequently deferred to phase two, then added as ad-hoc queries straight against tablesVaries widely; some expose nothing beyond built-in reportsStandard BC APIs exist but expose no dairy entities, because none are defined
Processing yield and solids lossActual vs standard yield per batch on native Production Orders, with per-routing tolerance flagsPossible, but yield variance is usually the scope cut when the timeline tightensPresent in plant-focused apps, thinner in collection-focused ones — check before buyingProduction Orders exist, but with no Fat/SNF carry-through or solids-loss concept
Time to a working systemTypically one working week from confirmed scope, including sandbox UAT and a rollback planMonths, plus the discovery time your team spends learning dairy pricing rulesInstalls in a day, then weeks of configuration and change requests to reach your actual processImmediate, but collection stays in spreadsheets

Frequently Asked Questions about Dairy Collection & Processing

How long does delivery take, and can I download this today?

No — this is build-to-order, not an existing Microsoft AppSource download. We scope your requirements first, produce a written functional specification, then build against it. Typical delivery is one working week from confirmed scope, covering development, deployment to your sandbox, UAT on your real collection data, and production go-live. A dairy with unusual rate mathematics, many centers, or an automatic-collection-unit integration sits at the longer end, and we tell you which end you are at before you commit.

What happens to support and Business Central updates after go-live?

You get a post-go-live support window with a named engineer for defect fixes and configuration questions. Because the extension uses table extensions, page extensions and event subscribers — never base-application modification — Microsoft's release-wave updates apply cleanly. If a wave deprecates something we depend on, we tell you and quote the remediation. You also hold the full AL source and the git repository, so you are never locked to us; your own partner can maintain it.

Can it handle our specific rate chart? We use a Fat/SNF slab grid with incentives.

Yes. The rate engine supports two-dimensional Fat/SNF slab grids, Kg-Fat rate formulas and base-plus-incentive structures, with the pricing logic in a codeunit configured against your published charts. If your model is unusual — a cooperative-specific formula, seasonal differentials, center-grade multipliers — bring it to the scoping call and we specify it explicitly. Charts are versioned by effective date, so historic entries always reprice against the chart that was live that day.

Our collection centers use automatic milk-analyser units. Can they feed the system directly?

Yes, subject to what your units can output. If they write a file to a shared location or expose an endpoint, we build a Job Queue Entry-driven import with per-center field mapping, duplicate-shift protection and an error log for rejected rows. Centers without units keep using the manual collection journal — the two run side by side. We ask for a sample output file during scoping so the mapping is specified rather than guessed.

Does this work on Business Central online, or only on-premises?

Both. For Business Central online we deliver a per-tenant extension published to your environment, or prepare it for AppSource submission if you intend to resell the solution. For on-premises we deliver the extension plus publishing and installation on your service tier. Functional behaviour is identical; the difference is deployment mechanics and, on-premises, direct access to file shares for analyser imports.

Can our farmers or field staff see collection data on a phone?

The extension publishes API pages on the standard REST API v2.0 / OData v4 surface for collection entries, rate charts, farmer balances and route loads — that is what a Power App, a Power BI mobile dashboard, or a Dataverse-connected field app reads. Building that front-end app is separate work we can quote alongside; the extension gives it a clean, permission-secured data surface instead of requiring a middleware layer.

How does yield tracking connect to the rest of Business Central?

Processing runs on Business Central's own Production Order, consumption and output journals rather than a parallel structure. The extension adds Fat/SNF awareness to inputs and outputs, records actual versus standard yield per batch, and flags solids loss beyond a tolerance you set per routing. Because it is standard production posting underneath, finished-goods cost and variance appear in your normal item and G/L reporting in the same period the order closed.

Request a quote

Dairy Collection & Processing

A build-to-order Dynamics 365 Business Central extension that runs milk intake at collection centers, prices every can on measured Fat and SNF, settles farmer payment cycles, and tracks processing yield through to route dispatch. ECOSIRE scopes, builds, installs and supports it for your tenant — it is not an AppSource download.

  • Collection journal page for shift-wise intake — center, route, farmer, can/weight, Fat %, SNF % or CLR with configurable CLR-to-SNF conversion, keyboard-first for an operator entering hundreds of lines per shift
  • Rate-chart engine supporting two-dimensional Fat/SNF slab grids, Kg-Fat rates and base-plus-incentive formulas, versioned by effective date so historic entries always reprice against the chart live that day
  • Pricing resolved in a dedicated codeunit at posting time rather than typed by the operator, so the rate a farmer is paid is reproducible and auditable from the recorded quality readings
  • Posting writes real `Vendor Ledger Entry` and `Item Ledger Entry` records, making farmer payables and raw-milk valuation native Business Central data with no reconciliation import

Request a Quotation

Tell us about your Dairy Collection & Processing requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.