STONEAXIS WEBSITE — NON-VAT-REGISTERED PREVIEW (14 NOV 2026)

StoneAxis is not VAT registered. No VAT is charged to customers, and no VAT amount or VAT invoice should be shown. Kianga Quartz slab costs exclude VAT; supplier VAT at 15% is an irrecoverable cost to StoneAxis.

PRICING
Full slab (3220x1820x20): round to nearest R100 [supplier ex-VAT cost x 1.15 x 1.35].
600 mm strip (3220x600x20): round to nearest R100 [(supplier ex-VAT slab cost x 1.15 / 3) x 1.40].
900 mm strip (3220x900x20): round to nearest R100 [(supplier ex-VAT slab cost x 1.15 / 2) x 1.40].
R50 ties round up. Each unit is rounded before multiplying by ordered quantity.

The retail selling prices remain numerically unchanged from the prior version, but the legal VAT treatment is different. Prices are not VAT-inclusive selling prices; StoneAxis charges no VAT.

Supplier data from Kianga Quartz January 2026 price list. Missing or ambiguous supplier costs show Price on request. Factory-order lead times must be confirmed. No cutting, polishing, delivery or installation fee is included separately.

DEVELOPMENT PREVIEW ONLY. Supplier costs are exposed in products.json; do NOT deploy this ZIP publicly without moving cost/pricing calculations to a secure server-side backend and providing a cost-free public catalogue. No live order processing or payment gateway.

Preview using a local web server (e.g. python -m http.server 8000). Before launch: add actual contact details, terms, privacy policy, availability checks, supplier image permission and secure quotation submission. Review VAT registration threshold with an accountant and update site if registration status changes.


SERVICE ESTIMATOR UPDATE
Supply only or supply & installation quotation modes. Fabrication: R250/slab cut, R100/strip cut, R100/m polishing. Installation: R440/linear m, R300/cutout, R750/undermount, R400/m waterfall 45 degree cutting and polishing, R100/m additional polishing. Transport R7.50/km from Mahikeng Industrial, entered manually; return trip optional. These rates are assumed to be final customer rates (StoneAxis not VAT registered). Confirm whether travel is one-way or return, and whether any cutting is already included in supplier prices, before publishing.

DELIVERY RULE (LATEST): R7.50 per kilometre, charged for the outbound and return journeys. Customer enters one-way road distance from Mahikeng Industrial; total delivery = distance x 2 x R7.50. Return is mandatory, not optional.

RUSTENBURG BLACK GRANITE (GR-RB):
- Reference cost R615/m² excluding supplier VAT. Supplier VAT is included in StoneAxis costs.
- Full slab 40% markup; strips 45% markup; nearest R100.
- Variable dimensions, default 2800 x 1320 mm. Actual length and width can be edited in product modal.
- Strips are priced by their actual surface area, NOT by dividing slab cost by number of strips. This avoids charging an entire slab for a 900 mm strip but may leave unpriced offcuts; confirm commercial policy before launch.
- Typical 1320 mm slab yields 2 x 600 mm strips or 1 x 900 mm strip, before saw kerf.
- Photo is an illustrative local placeholder. Potential Rustenburg Black photo reference: https://granitewarehouse.co.za/images/shop/products/rustenburg.jpg . Obtain commercial image permission before replacing placeholder.
- As before, this prototype exposes costs in products.json and JS. DO NOT publish until costs are moved server-side.

Rustenburg Black: 20 mm supplier R522/m² ex VAT; 30 mm supplier R615/m² ex VAT. Customer selects thickness in granite product modal; full slab markup 40%, strips 45%, nearest R100. Splashbacks currently use 20 mm material cost by default.

Rustenburg Black splashbacks: choose 20mm or 30mm thickness separately from height (80mm or 300mm). Supplier cost R522/m² or R615/m² excluding VAT, respectively. Per-metre price includes non-recoverable supplier VAT, markup 100% (80mm height) or 50% (300mm height), rounded to nearest R5 before multiplying by length.

Estimator v2: cost-based beam search of slabs/strips; vein-aware mode restricts rotation. Both heuristic, not mathematically guaranteed optimal. Matching group labels are advisory; no image-based vein continuity verification.

V3: Preferred seam positions now split countertop sections into two physical cut pieces for optimisation. Join-adjacency checks flag plans requiring manual review. This is not true photographic vein matching, bookmatching, or a guaranteed global optimum.

POLICY UPDATE 14 NOVEMBER 2026:
Added consolidated terms.html, privacy.html, returns.html, registered company details, effective date, footer links, and quotation-enquiry policy acknowledgement in basket and estimator.
IMPORTANT: Acknowledgement for an enquiry is NOT binding order acceptance. Implement server-side order confirmation and auditable consent/terms-version record before taking binding orders. Review policy wording with a South African legal professional and verify data processing/cookies. This static website currently sends WhatsApp enquiries; it does not securely collect customer payment or store server-side acceptance records. Supplier costs in products.json must be removed from public deployment.

QUOTE-ONLY RELEASE (14 November 2026)
- Website is an enquiry and preliminary estimator only. Official quotes are created separately in Zoho by StoneAxis.
- No online checkout, order confirmation, payment acceptance or Zoho API integration.
- Public quartz product catalogue now contains calculated retail prices, NOT supplier purchase costs. Retail price and splashback rates are indicative.
- Granite material cost rates are still embedded in browser JavaScript for variable-size retail calculations; move all pricing to a server API before a public production release if these must remain confidential.
- WhatsApp sharing may require manual plan attachment. Browser share sheets do not guarantee recipient or file delivery.
- Legal policies are working drafts subject to South African legal review.

QUOTE-ONLY CUSTOMER ENQUIRY UPDATE:
- The quote basket now asks for name and phone number, with optional email and delivery area, to include in the WhatsApp enquiry.
- No form data is transmitted to a StoneAxis server; the customer's WhatsApp app is responsible for sending the message.
- Retail rates are used for granite calculations; supplier base costs and markup formulas are no longer explicitly present in browser JavaScript.
- Official quotations, invoices and payment instructions remain entirely within Zoho (manual processing).
- No automatic website-to-Zoho integration.
- Test on the actual Afrihost domain over HTTPS before launch; file attachments in WhatsApp may need to be added manually.

LATEST UPDATE: 37 catalogue items, including Rustenburg granite. 24 unpriced/factory-order items removed. Quartz only 20mm. Catalogue button renamed View options. Mobile CSS refinements. Re-upload entire package and clear browser cache.
