A store that cannot handle traffic peaks loses money at the best possible moment. Black Friday, Cyber Monday, seasonal sales, sending a newsletter to 100,000 subscribers – these are moments when traffic in an hour can increase 10-fold. Preparing for peaks is not a matter of “if” but “when”.
The shop was running normally, but conversion suddenly dropped 40% in a single day. Google Analytics showed traffic at normal levels. The problem was invisible to the naked eye – only at a specific screen size did checkout buttons overlap and become unclickable. Diagnosis time: 3 hours, fix time: 30 minutes.
The shop stopped accepting card payments on Saturday night. Monitoring did not detect the problem because the site was working – only checkout was broken. Customers received a generic “Payment cannot be processed” error. Several hours of sales were lost before a report arrived Monday morning. Fix time: 45 minutes after the report.
GraphQL in Magento 2 is not just a read API – you can add your own types, queries and mutations. A custom resolver is a PHP class responsible for fetching data for a given field or query. I show a complete implementation: GraphQL schema, resolver with authorisation, error handling and integration tests. Using a query fetching customer order history with filters as the example.
Headless commerce and PWA (Progressive Web App) are fashionable terms in e-commerce. Agencies are happy to recommend them – often regardless of whether they actually solve the client’s problem. Below is an attempt to answer when headless makes sense and when it is overkill.
A new React frontend could not communicate with the Magento REST API. Every AJAX request ended with a CORS error in the browser console. The backend worked correctly when tested through Postman or curl. Fix time: 2 hours.
An ERP integration with the shop via REST API was getting slower over time. Fetching the orders list via API took 45 seconds. The endpoint was returning the entire order history instead of the last 24 hours. Fix time: 3 hours.
After migrating the shop to a new server, product images were not displaying – grey placeholders instead. The database had file paths, but the files did not exist on disk. Fix time: 5 hours.
The Command pattern encapsulates a request as an object, allowing operations to be parameterised, queued, logged and undone. In Magento 2 this pattern is the foundation of the MessageQueue system – each message is a Command executed asynchronously by a consumer. I show the implementation from the classic version through to integration with the Magento queue.
Choosing an agency for a Magento implementation is a decision that affects several years of business. A bad choice is not just overpaying – it is a project that does not reach completion, a store that does not work as it should, and running from agency to agency to fix a predecessor’s mistakes. Below are signals to watch out for before signing a contract.
