Appearance
6. Delivering the build: the configuration workbook
Back to the case study · Previous: 5. Budget, timesheets and purchases · Next: 7. Changes, risks and keeping the client informed
Chapters 3 to 5 ran in Nimbus's OSERP, where the project is managed. This chapter is the work itself, done in Klipvallei's own OSERP instance, its OSCom shop and its apps. It is the workbook the consultants followed. Each row names the screen, what was entered for Klipvallei, and the part of the price it belongs to:
- A: standard set-up, using what OSERP and OSCom already do.
- B: customization, built for this client.
- C: a third-party integration.
Use it as a checklist for your own implementations. The A rows apply to almost any business. Replace the B and C rows with your client's own needs.
6.1 The company (Arjun, Meera)
| Screen | What was entered for Klipvallei | Part |
|---|---|---|
| Administration > Company Profile | Klipvallei Wine Estates (Pty) Ltd; South Africa; Stellenbosch, Western Cape; registration 2009/014522/07; VAT number; liquor licence number on the extra print line | A |
| Company Profile > Base currency | ZAR (rand). It cannot be changed once anything has posted, so it is set first. | A |
| Company Profile > Fiscal year starts | March, the estate's financial year | A |
| General Settings | Inventory, Warehouses, Batches (vintage and bottling lot), Manufacturing, POS, Multi-currency (exports in GBP), Budget, Approvals | A |
| General Settings > Prices include tax | Yes: South African shelf and online prices include VAT | A |
| Tax system | South African VAT at 15%, with zero-rating for exports and the VAT201 return report. OSERP takes a new country's tax system as data (the system and its accounts), so this was added for Klipvallei and tested against the estate's last two VAT201 returns. | B1 |
| Administration > Users & Access | Users for the owner, finance, cellar, tasting room and online orders, each role limited to what they do | A |
| Administration > Currencies | ZAR, GBP; daily rates | A |
6.2 Finance (Arjun)
| Screen | What was entered | Part |
|---|---|---|
| Financials > Chart of Accounts | The South African chart, mapped from Sage Pastel's account list | A |
| Settings > GL Mapping | Standard posting rules, plus the excise, VAT and duty-in-bond accounts | A / B |
| Settings > Payment Types | Cash, card (Yoco), EFT, PayFast, club account | A |
| Accounting > Reconciliation | Bank accounts at FNB and Standard Bank; statement import in each bank's own file format | C3 |
| Approvals (Administration > Workflow) | Purchases over R50,000 to the owner; credit notes to finance | A |
6.3 Cellar, production and the bonded warehouse (Kavya)
| Screen | What was entered | Part |
|---|---|---|
| Inventory > Warehouses | Cellar (production); Bonded store (wine and brandy duty-unpaid); Duty-paid store; Tasting room; Online dispatch | A |
| Inventory > Items | Bulk wines by cultivar and vintage; finished wines and brandy by SKU (750 ml, 1.5 l, 6-bottle case); packaging (bottles, corks, screw caps, capsules, labels, cartons); tasting fee and club fee as service items | A |
| Inventory > Items > Batches | Every bottled item batch-tracked: lot = vintage + bottling run | A |
| Manufacturing > Setup and Routings | Recipes for blending (bulk wines to a blend) and bottling (blend + bottle + cork + capsule + label + carton = a case), with yield and losses | A |
| Manufacturing > Orders | Bottling runs as production orders; packaging issued first-expiry-first; cost per bottle by lot | A |
| Excise | Duty per litre of wine and per litre of absolute alcohol for brandy, worked out when stock is transferred out of the Bonded store; duty-paid stock valued including duty; an excise report for each period | B2 |
| Inventory > Transfers | Bond to duty-paid store, and duty-paid store to the tasting room and online dispatch, as transfers with dispatch and receipt | A |
6.4 The tasting room till (Rahul)
| Screen | What was entered | Part |
|---|---|---|
| Point of Sale > POS Settings | One register in the tasting room; receipt with VAT number and liquor licence; digital receipts by WhatsApp | A |
| Business Partners > Groups | Wine club group with its own price list (member prices) | A |
| Point of Sale > Offers | Six-bottle case discount; release-day offers | A |
| Card machines | Yoco card machines connected to the till, so the amount is sent to the machine and the result comes back | C1 |
| Selling through power cuts | The till keeps taking sales during load-shedding and sends them when the connection returns. The till PC and router run on a UPS, with an LTE back-up line. | B5 |
6.5 The online shop on OSCom (Rahul, Ananya)
| Screen | What was entered | Part |
|---|---|---|
| Ecommerce > Stores & Domains | The estate's domain; currency ZAR; locale English | A |
| Ecommerce > Templates | A template close to the brand, then the design from Ananya's brand kit: colours, fonts, the hero photography of the estate | A / B4 |
| Ecommerce > Online Categories | Red, White, Rose, Cap Classique (sparkling), Brandy, Gifts; internal categories (packaging, bulk wine) hidden | A |
| Ecommerce > Online Products | Published SKUs with tasting notes, food pairing, awards and the vintage | A |
| Ecommerce > Checkout | Prices include VAT; delivery zones by postal code (Western Cape, Gauteng, rest of South Africa) and their delivery charges | A |
| Ecommerce > Storefront Content > Phone & app | Bottom bar, cards across a row, the line between sections, colours for the app | A |
| Ecommerce > Search & Sharing | Page titles and descriptions for the home page, categories and wines | A |
| Age verification | An 18+ check before browsing; date of birth at sign-up; confirmed again at checkout; the courier checks ID on delivery; the liquor licence number in the footer | B3 |
| Wine club | Member prices online (the same group price list as the till); quarterly allocations reserved for members | B4 |
| Payments | PayFast for cards and instant EFT; settlement confirmed from PayFast's own answer before an order is treated as paid | C1 |
| Delivery | The Courier Guy: a waybill created when an order is packed, the collection booked, and tracking sent to the customer | C2 |
| POPIA | Consent wording at sign-up and checkout, approved by the client's legal adviser | A |
6.6 The Android and iOS apps (Ananya, Appforge)
| Step | What was done | Part |
|---|---|---|
| App build | The shop wrapped as Android (AAB) and iOS apps with the estate's icon, splash screen and colours | A |
| Store accounts | Google Play and Apple Developer accounts in Klipvallei's name (a RAID dependency, due 30 June) | Client |
| Listings | Name, description, screenshots, an age rating of 18+ and 17+, a privacy policy link | A |
| iOS release | TestFlight, then App Store review, handled by Appforge (purchase order PO-2026-00001). The first review was rejected because the age check came after browsing. It was moved to first launch, and the app was approved three days later. | A (subcontract) |
| Push messages | New releases, club allocations and order updates | B5 |
| Wine club subscriptions | A monthly or quarterly case, charged through PayFast on the renewal date (change order CO-001, chapter 7) | CO-001 |
6.7 Messages and the export feed (Sanjay)
| Screen | What was entered | Part |
|---|---|---|
| Integrations > Notifications | Email through the estate's mail server; WhatsApp Business (Cloud API) and a local SMS provider; templates for order confirmation, dispatch, delivery and club allocations | C4 |
| UK importer | Orders received from the importer's system as sales orders in GBP; invoices and dispatch notes sent back in its format | C5 |
6.8 Data migration from Sage Pastel (Arjun, Sanjay)
| What | How | When |
|---|---|---|
| Chart of accounts | Mapped account by account | Build |
| Customers and suppliers | Exported from Pastel, cleaned (duplicates, missing VAT numbers), imported at Administration > Imports | Rehearsal 1 (27 Jul), rehearsal 2 (5 Aug) |
| Items and lots | Item master from Pastel; lots from the cellar's own spreadsheet | Rehearsals 1 and 2 |
| Open invoices | Customer and supplier open items at cut-over, each with its own date and due date | Cut-over (27-31 Aug) |
| Opening balances | Trial balance at 31 August, checked line by line against Pastel | Cut-over |
| Stock | Counted per warehouse and lot on 30 August | Cut-over |
Two rehearsals, then the real thing
Every migration was run twice before cut-over. Each run was checked against Pastel's own reports: the trial balance, debtors and creditors ageing, and stock by warehouse. At cut-over, nothing was being done for the first time.
6.9 Testing and sign-off
- System testing by the team, against the blueprint's scenarios.
- Security test by Kestrel (PO-2026-00003): shop, apps and APIs, then a retest after fixes.
- User acceptance testing (10-21 August) by Klipvallei's own people, following a script for each role: a cellar bottling run, a removal from bond with excise, a day at the tasting-room till including a simulated power cut, an online order from a member through PayFast to The Courier Guy, an export order from the UK importer, and a VAT201 for the test month.
- UAT sign-off on 21 August, filed on the project as Test sign-off (UAT). It earns the fourth instalment (chapter 8).
What this chapter meant for the money
Most of the workbook is part A: standard screens filled in with the client's facts. The B and C rows are a small share of the work and a large share of the price (chapter 1), because that is where the risk was. Two of the three overruns in this project came from them: the courier's API change and the importer's feed.