Skip to content

E-commerce

UPGreens Eco Store

Fixes and a new data-driven front end for a live WooCommerce e-bike shop in Naples.

TypeE-commerce

The problem

UpGreens is a shop in Naples that sells electric bikes, fat bikes and accessories through WooCommerce. The shop was live with real orders, so nothing could break. But it had real problems: product pages showed prices with VAT and the cart showed them without, so the same product showed two different prices. The cart was half in English, a PHP warning fired on every page load, and the home page looked dated.

What I built

I fixed the shop and rebuilt its front end, with only one small guarded fix inside the theme.

  • Consistent prices — shop, cart and checkout now all show prices including VAT, so the customer sees one price from product page to payment.
  • Cart and checkout in Italian — a small must-use plugin translates the remaining English strings through WordPress filters, so it survives theme updates.
  • Home page from live data — hero, categories, product showcase, benefits, news and community band are generated from the catalogue. The “up to X% off” badge is calculated from real discounts, and the free-shipping threshold (€150) is read from the shop settings.
  • New header and footer — a single white bar with logo, menu, search, account and cart counter, and a footer that lists only the payment methods actually available at checkout.
  • Instalment payments — Klarna and HeyLight, which lets customers split the amount into up to 12 interest-free instalments.
  • Italian invoicing — VAT number and tax code fields at checkout, and PDF invoices.
  • Tested layouts — the product grid shows 4 per row on desktop, 2 on tablet and 1 on phone.

Built with

WordPress and WooCommerce with the Bikeway theme and WPBakery, Klarna and HeyLight gateways, table-rate and cart-based shipping, PDF invoices and Wordfence. The new parts are custom must-use plugins in PHP for the home page, header, footer, product grid and cart translation. The catalogue has 28 published products.

Why it was done this way

The theme has no child theme, so any edit to its files would be lost at the next update. I put every change in separate must-use plugins instead. Each one can be switched off by deleting a single file, and I took a database backup before every change on the live shop.

Got an idea?
Let's talk.

Whether it is a website, an app, a video, a song or something bigger, I am ready to help you make it.

Get in touch
  • Naples
  • Ideas
  • Projects
  • People
  • Always forward