Blog

Subscribe and stay up-to-date with the latest in ecommerce and web development.

Magento 2 orders stuck in pending payment: why we inverted our order flow

If Magento 2 orders sit in pending_payment forever, the cause is usually when your redirect payment method creates the order, not a gateway bug. There are only two places to put that decision and we shipped both in the same module over three years: create the order when the webhook confirms (clean order table, but a payment can land with no order behind it), or create it before the redirect (complete order table, but abandoned orders to sweep). Here's why we inverted it, the cron that cleans up after it, the four details to copy exactly, and why restoring the customer's quote is the other half of the job. Applies identically to Magento Open Source, Adobe Commerce and Mage-OS.
Magento Adobe Commerce Mage-OS Payments Checkout Order Management

Ecommerce Trends Shaping 2024

The ecomemrce landscape in 2024 is defined by rapid technological innovation, shifting consumer expectations, and a growing emphasis on sustainability and personalization. Here’s an in-depth look at the top trends that are transforming online retail this year.

Ecommerce M-Commerce AI Personalization Omnichannel

Migrating from Adobe Commerce to Magento Open Source: when moving down a tier is the right call

Almost every migration article moves you up a tier. This one goes the other way: we moved an industrial distributor from Adobe Commerce onto Magento Open Source, kept both storefronts and a live ERP integration running through it, and removed the licence line from their budget. Here's how to decide (the B2B module is what stops most migrations), what you actually give up feature by feature, why the Composer change is the easy part and the database cleanup is the project, the dependencies that fatal after the swap, how to keep an ERP connector from noticing, and where Mage-OS fits. Including when we'd tell you not to do it.
Adobe Commerce Magento Mage-OS Migration B2B ERP

New Features in PHP 8.2: A Comprehensive Guide with Code Examples

PHP 8.2 is a major update that brings a suite of modern features, type system improvements, and quality-of-life enhancements for developers. Below, we’ll explore the most significant new features in PHP 8.2, complete with code examples to help you get started.

PHP 8.2 Web Dev

New Features in PHP 8.1: A Practical Guide with Code Examples

PHP 8.1 is a major update that introduces several powerful features and improvements designed to make your code more robust, expressive, and performant. Below, we explore the most notable additions, complete with practical code examples.

PHP 8.1 Web Dev

Building a buy now, pay later payment module for Magento 2 from scratch

A shopper stalls at the total, not because they don't want it but because they don't want the whole price this month. We spent eight weeks building a Magento 2 payment module for Float, the South African provider that splits a purchase into interest-free monthly instalments on the credit card a shopper already carries while the merchant is paid upfront. What it took: why the instalment preview has to reach shoppers on the product page rather than at checkout, how we built it on Magento's own gateway facade, command pool and validator pool instead of around them, and the unglamorous work (multi-site scope, multishipping, configurable order status, its own debug log) that decides whether a merchant trusts a payment method.
Float Magento Adobe Commerce BNPL Payments Payment Gateway

Examples of using union types in PHP 8

In PHP 8, union types allow you to declare that a function parameter, return value, or property can accept or return multiple types, separated by the vertical bar (|). This feature improves code flexibility and type safety.

PHP Web Dev Tips

0%