Libreria Rotondi
Full e-commerce rebuild for Rome's esoteric bookshop.
The Problem
A historical esoteric bookshop in Rome with 20,000+ items, messy catalog, broken checkout, poor sync, a clucky event management system and a hosting environment held together with tape.
Payment Rework
Migrated from PayPal PPCP (silent onApprove failures) to
Nexi XPay Build v3 with iframe styling, fallback flow, and proper error capture.
Stock Sync Fix
// Before: set_product_stock() reset WC stock on every sync
// After: differential updates via _rotondi_synced_capacity meta
function sync_stock_differential( $product_id, $new_capacity ) {
$prev = get_post_meta( $product_id, '_rotondi_synced_capacity', true );
if ( $prev === $new_capacity ) return;
update_post_meta( $product_id, '_rotondi_synced_capacity', $new_capacity );
wc_update_product_stock( $product_id, $new_capacity );
}
Event System
Custom taxonomy restructure — iniziative parent with children
eventi, corsi, visite-guidate,
lettura-tarocchi. Waitlist, capacity tracking, "Tutto esaurito" notices.
Key Takeaway
The hardest part wasn't the code — it was untangling years of plugin conflicts and undocumented customizations without breaking the live store.
Mobile UX