The problem
Retailers who run Dynamics 365 Finance & Operations for the back office usually end up with a gap between head office and the shop floor. F&O holds the inventory, the ledger, the vendor contracts and the legal entity structure. The stores hold the reality — what actually sold, what was marked down at the till, what cash was in the drawer at close, and what the store manager thinks needs reordering.
The symptoms are consistent. Replenishment is driven by a spreadsheet a merchandiser rebuilds every Monday, so slow movers pile up in one store while another sells out. Price changes and promotional periods are keyed in twice — once centrally and once at store level — and the two disagree often enough that margin reporting is never trusted. Cash-up is a photograph of a till report emailed to finance, reconciled manually against a bank statement days later, with variances written off because nobody can reconstruct what happened. And store-level performance reporting means exporting to Excel because the standard reports aggregate at company or site level, not by store, shift and category.
None of this is a defect in F&O. It is unbuilt scaffolding between the ERP and store operations, and it is exactly what this pack is scoped to build.
What ECOSIRE builds
This is a build-to-order engagement. ECOSIRE writes a set of X++ extensions against your Dynamics 365 Finance and Supply Chain Management environment — extension models only, no overlayering — and delivers them through your own LCS pipeline into a sandbox before production. The functional shape below is the starting scope; the scoping call fixes what your build actually contains.
Store replenishment
A store replenishment engine implemented as a batch job on the F&O batch framework, running per legal entity and per store group on the schedule you choose. It reads on-hand and reserved quantities from inventory, applies a per-store, per-item-group replenishment policy (min/max, days-of-cover, or seasonal profile), and produces transfer order proposals from your distribution centres to stores. Proposals land in a workbench form where a merchandiser can adjust, split, consolidate by route and release — releasing creates standard transfer orders so warehouse execution, the warehouse mobile app and inventory valuation all behave exactly as they already do. Suggested lines carry the reason they were raised, so a manager can see whether a proposal came from a min breach, a sales velocity change or a manual store request.
Price and promotion propagation
A single point of maintenance for retail prices and promotional periods with controlled propagation outward. Price change events are recorded with an effective-from and effective-to date, an approving workflow through the F&O workflow framework, and an audit trail of who changed what. Published prices and promotions are exposed through custom data entities so downstream point-of-sale, e-commerce or in-store systems can consume them over OData, or receive them through Dual-write into Dataverse where you already have Power Platform in the estate. Promotional records carry the ledger dimension combination they should post against, so promotional margin is analysable in the financial dimensions you already use rather than in a side spreadsheet.
Cash-up and store reconciliation
A store closing process that captures declared cash, tender-type breakdown, safe drops, petty cash movements and float carried forward, per store and per shift. Each close creates a statement record; posting it generates the journal entries against the store's ledger dimensions and the bank or clearing account you nominate. Variances above a threshold you set route through workflow for approval before posting rather than being absorbed silently. A reconciliation view matches store declarations to bank deposits so the ageing of undeposited cash is visible instead of inferred.
Store performance reporting
Store-level performance built on the F&O data model and surfaced where your users already are: workspace tiles and lists for store and area managers, an aggregate measurement for sales, margin, shrink and stock cover by store, category and period, and data entities that let you point Power BI at the same numbers without a separate extract. Reporting reads the same records the transactions posted, so a store P&L can be drilled back to the transfer order, the price change or the cash-up statement behind it.
Integration and data plumbing
All master and transactional objects introduced by the pack are exposed as data entities so the Data Management Framework can import and export them — initial store setup, bulk policy loads, and ongoing integration all use standard DMF projects rather than bespoke import scripts. Where an outbound feed is needed, entities are OData-enabled; where the estate is Power Platform-led, Dual-write mappings are provided for the relevant entities.
Who this is for
Multi-store retailers already live on Dynamics 365 Finance and Supply Chain Management for finance, procurement and warehousing, typically running several stores across one or more legal entities, who have outgrown spreadsheet replenishment and manual store cash reconciliation. It fits equally where stores are company-owned or franchise-operated, provided the stores post into F&O legal entities you control. It is not a point-of-sale replacement — it is the back-office and head-office layer around whatever tills you already run.
How delivery works
1. Scoping call. A working session with your retail operations and finance leads. We walk your store hierarchy, legal entity structure, existing tills, current replenishment logic and how cash physically moves. The output is a written functional scope naming exactly which of the four areas above you are buying and what each includes.
2. Fixed quote. From that scope you receive a fixed price and a delivery window. Nothing starts until you accept it in writing. If your requirements land outside the scope during the build, we quote the delta separately rather than silently absorbing or dropping it.
3. Build. ECOSIRE develops the extension model in a development environment. Development is X++ extensions, event handlers and chain-of-command only — no overlayering of standard objects, so your one-version updates stay clean. You receive progress checkpoints against the agreed scope.
4. Install in test. The deployable package is handed over and installed into your UAT or sandbox environment through your LCS pipeline. We run through configuration with your team, load reference data through the Data Management Framework, and support your user acceptance testing until you sign off.
5. Production. The same package is promoted to production through your normal release process, in a maintenance window you choose. We stay on the call for the first close cycle.
6. Support window. A defect support period runs after go-live, covering fixes to anything delivered against the agreed scope.
Honest expectations
This product does not exist as a downloadable package. There is no trial, no instant install and no shelf version — every engagement is written for the environment it lands in, because store hierarchies, tender types and dimension structures differ enough that a generic build would need rewriting anyway. Typical lead time from accepted quote to a package installed in your test environment is two to four weeks depending on the scope you select.