Changelog
What's new on Abelia Market — new features, improvements, and fixes as we ship them.
v1.4.0
Minor ReleaseExtended multi-currency support into delivery fee rules and shipping-rate tables, and made order amounts on invoices and in the admin portal consistently show each order's real charged currency alongside its RWF value.
New Features
- -Shipping rate tables respect your chosen currency
The public Shipping Rates page and each country's shop page now show delivery fees converted into your selected currency, matching how product prices are already shown elsewhere on the site.
Improvements
- -
Delivery address fields now work outside Rwanda
"Sector" — a Rwanda-specific administrative unit with no equivalent in Uganda, Kenya, and other countries the platform ships to — is no longer a required field on the address form or Buy Now checkout, and is now labeled "Area / Neighborhood" so it makes sense outside Rwanda too. "City/District" is now labeled "City / Town" for the same reason.
- -
Addresses without a sector display cleanly
Delivery addresses with no sector set no longer show a stray leading comma in order details, checkout, the payment confirmation page, and the saved-address selector — blank address fields are now simply omitted instead of rendered as empty text.
Admin Tools
- -
Delivery fee rules can be priced in any supported currency
Admins can now enter a delivery fee rule's amount directly in the currency a logistics partner quoted it in (e.g. ZMW), instead of converting to RWF by hand first. The fee rules table now labels each rule with its own currency instead of assuming everything is RWF.
- -
Order amounts shown consistently across the portal
Admin order lists (cart and Buy Now), order detail views, and invoices now format every payment amount the same way — the order's actual charged currency alongside its RWF equivalent, using the exchange rate locked in at the moment it was paid — instead of a mix of raw numbers and inconsistent labels.
- -
Invoices now show the selling vendor's details
Generated invoices (cart, Buy Now, and negotiated-price orders) now show the vendor's name, contact info, and tax ID as the invoice issuer whenever every item on the order comes from a single vendor, instead of always showing only the platform's own details.
- -
Simplified delivery zone management
Removed the parent-zone hierarchy and zone-depth fields from delivery zones, since zones are always used as flat, top-level entries in practice. The Add/Edit Delivery Zone forms and the zones table are simpler as a result, and the country picker now uses the platform's standard dropdown component instead of a bespoke one.
Fixes
- -
Fixed an order total that could show the wrong figure
The admin order detail views' "Total Amount" field was reading a different underlying number than the rest of the order in some cases. It now consistently shows the order's actual total, formatted the same way as every other amount on the page.
- -
Fixed broken invoices for negotiated-price orders
Invoices generated for negotiated-price orders could come out missing data or showing the wrong figures, because the invoice was reading fields that order type doesn't actually have. Negotiated-order invoices now pull from the correct order fields and generate correctly.
- -
Invoices no longer fall back to a fake placeholder business
When an invoice's real vendor couldn't be resolved (for example, a multi-vendor cart order), the invoice generator used to fall back to a hardcoded fake company — a made-up Kigali address, phone number, and tax ID. It now falls back to just the platform name with no fabricated contact details.
- -
Removed leftover duplicate fields from order detail views
Buy Now order details no longer show an internal "Product ID" field, and shopping-cart order details no longer show a duplicated "Address" row that repeated the street address already shown further down.
v1.3.0
Major ReleaseCheckout now actually charges you in your resolved currency instead of always billing in RWF — the price you see is now the price you pay, with matching currency shown in admin order views and invoices.
New Features
- -Pay in your own currency
Checkout now charges you in your resolved currency — your explicit pick from the header, or the product's own origin currency by default — instead of always billing in RWF. The price you see is now the price you're actually charged, with the RWF amount shown underneath only as a reference.
- -See exactly what you'll be charged before paying
Right before redirecting you to the payment page, checkout now confirms the exact amount and currency you're about to be charged, sourced directly from the order that was just created so it always matches what you're billed.
Improvements
- -Prices now lead with your currency
Product cards, product pages, and checkout now show your resolved currency as the bold, primary price, with the RWF amount underneath as a small reference — instead of leading with RWF and showing your currency as a secondary hint.
- -Delivery fees now match the rest of the page
The delivery fee line at checkout now shows in the same resolved currency as your items and total, so nothing on the page disagrees about which currency is being used.
- -
Consistent RWF formatting
Rwandan franc amounts are now consistently labeled "RWF" everywhere. A formatting quirk previously rendered it as the less recognizable "RF" in a few places.
Admin Tools
- -
Order currency shown in admin views and invoices
Admin order lists, order detail views, and generated invoices (both shopping-cart and Buy Now) now show the actual currency each order was charged in, instead of assuming every order was billed in RWF.
Fixes
- -
Fixed empty Buy Now invoices
Generated invoices for Buy Now orders could come out with no line items, price, or date, because the invoice was reading data fields the order doesn't actually have. Buy Now invoices now pull from the correct order fields and generate correctly every time.
v1.2.0
Minor ReleaseAdded multi-currency price estimates across the site — pick your currency from the header and see it reflected on product cards, product pages, and both checkout flows, while everything is still charged in RWF.
New Features
- -See prices in your currency
Product cards and product pages now show an estimated price in a currency you recognize — like "(~$15.20)" — right next to the RWF price you'll actually be charged, calculated from up-to-date exchange rates.
- -
Pick your currency from the header
Added a currency selector in the header, right alongside the country selector, so you can explicitly choose which currency estimates are shown in. Your choice is remembered on future visits — until you pick one, we show a sensible default based on where a product ships from.
- -Currency estimates now shown at checkout too
Both the cart checkout review step and the quick Buy Now checkout now show the same converted price estimate next to each item and the total, so your chosen currency follows you all the way through checkout.
Improvements
- -
Clearer distinction between a guess and your choice
When the currency shown is just our best guess based on a product's origin, the estimate appears muted; once you've explicitly picked a currency from the header, it's shown bolder and in the brand color, so you can tell at a glance whether it reflects your own choice.
- -
More readable price estimates on product cards
The converted price estimate on product cards was previously so small it was hard to read. It's now noticeably larger and no longer fights with its own bold styling.
- -
Discounted prices are easier to spot
The struck-through original price on discounted products — on both the card and the product page — now shows in red instead of gray, matching the existing red discount-percentage badge so a sale item is obvious at a glance.
Under the Hood
- -
Exchange rates fetched efficiently
Exchange rates are fetched once per visit and shared across every price shown on a page, instead of being requested separately for each product, keeping things fast even on pages with many items.
v1.1.0
Major ReleaseIntroduced shop-by-origin browsing and per-product delivery origins, with richer shipping breakdowns for customers and new delivery-management tools for vendors and admins.
New Features
- -Shop by your country
Added a country selector to the site header so you can set your preferred shopping origin once and have it applied everywhere — the home page, categories, and search results all automatically show products that ship from the country you picked, so you don't have to filter every page yourself.
- -See where every product ships from
Product pages now clearly show which country (and delivery zone, where relevant) an item ships from, so you know what to expect on delivery time and cost before you add it to your cart — no more surprises after checkout.
- -New Shipping Rates page
Added a dedicated page where you can look up delivery fees and estimated delivery times between any origin and destination, so you can check shipping costs and timeframes before you even start shopping.
- -Clearer costs when your cart ships from multiple places
If your cart contains products from more than one origin, checkout now breaks the delivery fee down by origin instead of showing one lump sum, so you can see exactly what you're paying for and why.
Improvements
- -
More precise delivery time estimates
Delivery estimates can now be shown in hours (e.g. "2-4 hours") as well as days, so fast local deliveries aren't rounded up to a full day and you get a more accurate sense of when your order will actually arrive.
- -Honest delivery fees when something goes wrong
If we can't calculate your delivery fee right away (for example, a temporary connection hiccup), checkout now clearly shows "To be confirmed" with a note that the fee will be set when your order is placed — instead of silently showing a fake RWF 0 that made it look free.
- -Old saved addresses now work seamlessly
Addresses saved before country/zone selection existed used to show up as an empty, confusing dropdown. We now automatically match your existing address text to the right country and zone, so old addresses just work without needing to be re-entered.
- -Checkout no longer blocks you over an optional field
Picking a specific delivery zone (a district or sub-area within a country) is no longer required to complete checkout. If you leave it unset, we simply use country-level pricing instead of stopping you from placing your order.
Vendor Tools
- -
Set your own default shipping origin
Vendors can now declare where they ship from — country and delivery zone — directly from their portal profile, instead of it being fixed at account creation. This default is applied automatically to every product unless you override it.
- -
Override delivery origin per product
When adding or editing a product, you can now set a specific shipping origin for that item — useful if you stock some products from a different location than your usual base. Leave it unset and it simply falls back to your account default.
Admin Tools
- -
New Delivery Settings section in the portal
Admins can now manage delivery countries, zones, and fee rules directly from the portal, with dedicated screens for each — no more relying on the raw API docs to add a shipping lane or adjust a fee.
- -
Fee rules support hour-based delivery windows
When creating or editing a delivery fee rule, admins can now choose between day-based or hour-based estimated delivery times with a simple toggle, matching how that estimate is actually shown to customers.
Fixes
- -
Editing a product no longer erases its delivery origin
Saving changes to a product could previously clear its assigned shipping origin, even if that field was never touched. Origin settings now only change when you explicitly update them.
- -
Optional fields no longer block form submission
Leaving the country or zone dropdown unset in a form no longer prevents you from saving — these fields are now treated as truly optional everywhere they should be.
- -
Country selector recovers from failed loads
If the list of countries fails to load, the selector used to just appear empty with no explanation. It now shows a clear message with a retry button, so you're never stuck staring at a dropdown with nothing in it.
Under the Hood
- -
Cleaner code organization
Reorganized the delivery-related code so customer-facing logic and admin-only logic live in clearly separated files, making the codebase easier to maintain and reducing the chance of bugs crossing between the two.
- -
Consistent UI components
Replaced a couple of custom-built buttons and error messages with the app's standard, shared components, so this part of the app looks and behaves consistently with the rest of the site.

