<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Savan Padaliya Consulting — Blog</title><description>Senior engineering consulting for SaaS, e-commerce, and AI systems. 12+ years building production-grade platforms across India, UK, and South Africa.</description><link>https://savanp.com/</link><language>en-gb</language><item><title>The pre-flight check I run before shipping any AI feature</title><link>https://savanp.com/blog/ai-feature-preflight-checklist/</link><guid isPermaLink="true">https://savanp.com/blog/ai-feature-preflight-checklist/</guid><description>Seven questions that take 30 minutes and catch most of the reasons AI features fail in production. If you cannot answer all of them in plain language, you are not ready to ship.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate></item><item><title>Everyone wants more autonomous agents. The teams shipping reliable ones are doing the opposite.</title><link>https://savanp.com/blog/autonomous-vs-constrained-agents/</link><guid isPermaLink="true">https://savanp.com/blog/autonomous-vs-constrained-agents/</guid><description>Agentic got conflated with autonomous, and the AI crowd has been chasing the wrong thing ever since. Here is what reliable agents actually look like in production.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate></item><item><title>Magento Open Source 2.4.9: what actually changed and whether to upgrade</title><link>https://savanp.com/blog/magento-2-4-9-release-notes/</link><guid isPermaLink="true">https://savanp.com/blog/magento-2-4-9-release-notes/</guid><description>A practical breakdown of the Magento 2.4.9 release — PHP 8.5 support, Symfony 7.4, Zend_Cache removal, infrastructure additions, and what to check before upgrading.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>Why Magento cron jobs pile up (and what to actually do about it)</title><link>https://savanp.com/blog/magento-cron-pileup/</link><guid isPermaLink="true">https://savanp.com/blog/magento-cron-pileup/</guid><description>A diagnostic walkthrough of the most common cause of stuck cron queues in Magento 2 systems, and how to fix it without restarting everything.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate></item><item><title>Adobe Commerce security bulletin APSB26-49 — what it fixes and who needs to act</title><link>https://savanp.com/blog/magento-security-apsb26-49/</link><guid isPermaLink="true">https://savanp.com/blog/magento-security-apsb26-49/</guid><description>APSB26-49 was released May 12, 2026. It covers critical vulnerabilities including arbitrary code execution and denial of service. Affected version list and fixed versions inside.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate></item><item><title>What corporate vendor onboarding actually looks like (a consultant&apos;s field notes)</title><link>https://savanp.com/blog/multi-region-vendor-onboarding/</link><guid isPermaLink="true">https://savanp.com/blog/multi-region-vendor-onboarding/</guid><description>A behind-the-scenes look at what happens when a multi-billion rand enterprise onboards a small independent consultant, and how to be ready for it.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate></item><item><title>Integrating Magento with Microsoft Dynamics 365: architecture, data flows, and what actually goes wrong</title><link>https://savanp.com/blog/magento-dynamics-365-integration/</link><guid isPermaLink="true">https://savanp.com/blog/magento-dynamics-365-integration/</guid><description>A technical walkthrough of Magento–Dynamics 365 integration — sync patterns, middleware choices, B2B considerations, and the real failure modes I see in production systems.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate></item><item><title>AI extensions for Magento in 2026: what is worth using and what to be cautious about</title><link>https://savanp.com/blog/magento-ai-extensions-2026/</link><guid isPermaLink="true">https://savanp.com/blog/magento-ai-extensions-2026/</guid><description>A practical look at the Magento AI extension landscape — content generation, semantic search, chatbots, and admin tools. What works, where to start, and what to watch for before deploying.</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate></item><item><title>Migrating from Luma to Hyvä: what actually changes and how to approach it</title><link>https://savanp.com/blog/magento-hyva-migration-guide/</link><guid isPermaLink="true">https://savanp.com/blog/magento-hyva-migration-guide/</guid><description>A practical guide to Hyvä theme migration — what breaks, what stays the same, how to audit third-party extensions, and how to plan a phased rollout without disrupting production.</description><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate></item><item><title>PolyShell: the unpatched Magento vulnerability you need to act on now</title><link>https://savanp.com/blog/magento-polyshell-vulnerability/</link><guid isPermaLink="true">https://savanp.com/blog/magento-polyshell-vulnerability/</guid><description>PolyShell allows unauthenticated file upload via the REST API on all Magento versions up to 2.4.9-alpha2. No official patch exists for production versions. Here is what it is and what you can do today.</description><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Magento POS integration: architecture, sync patterns, and the problems that show up in production</title><link>https://savanp.com/blog/magento-pos-integration/</link><guid isPermaLink="true">https://savanp.com/blog/magento-pos-integration/</guid><description>A practical look at connecting Magento to a point-of-sale system — inventory sync, order flow, offline mode, and the real-world failure modes that cause problems months after go-live.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Adobe Commerce security bulletin APSB26-05 — March 2026 patch breakdown</title><link>https://savanp.com/blog/magento-security-apsb26-05/</link><guid isPermaLink="true">https://savanp.com/blog/magento-security-apsb26-05/</guid><description>APSB26-05 was released March 10, 2026. Multiple critical vulnerabilities including privilege escalation and arbitrary code execution. Affected versions and how to patch.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Fetching product row_id vs entity_id in Magento 2 and Adobe Commerce</title><link>https://savanp.com/blog/magento-product-row-id/</link><guid isPermaLink="true">https://savanp.com/blog/magento-product-row-id/</guid><description>Why Adobe Commerce uses row_id instead of entity_id for products, and the correct way to retrieve it using MetadataPool — without hardcoding field names.</description><pubDate>Thu, 05 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Fixing the ElasticSuite setup:upgrade trigger error in Magento 2</title><link>https://savanp.com/blog/magento-elasticsuite-setup-upgrade-error/</link><guid isPermaLink="true">https://savanp.com/blog/magento-elasticsuite-setup-upgrade-error/</guid><description>The smile_elasticsuitecatalog_search_query_product_position table not found error during setup:upgrade has a one-line root cause and a clean patch fix.</description><pubDate>Wed, 09 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Managing guest cart billing address via REST API in Magento 2</title><link>https://savanp.com/blog/magento-guest-cart-billing-address-api/</link><guid isPermaLink="true">https://savanp.com/blog/magento-guest-cart-billing-address-api/</guid><description>How to set and retrieve billing address on a guest cart using the V1/guest-carts/:cartId/billing-address endpoint — request format, response, and the gotchas.</description><pubDate>Wed, 14 Aug 2024 00:00:00 GMT</pubDate></item><item><title>How to get customer ID from a bearer token in Magento 2 Web API</title><link>https://savanp.com/blog/magento-customer-id-from-bearer-token/</link><guid isPermaLink="true">https://savanp.com/blog/magento-customer-id-from-bearer-token/</guid><description>The correct way to resolve a customer ID from an Authorization header bearer token in a Magento 2 custom module — using UserTokenReader, not manual JWT parsing.</description><pubDate>Wed, 15 May 2024 00:00:00 GMT</pubDate></item><item><title>Checking if a database table exists in Magento 2 before running queries</title><link>https://savanp.com/blog/magento-check-table-exists/</link><guid isPermaLink="true">https://savanp.com/blog/magento-check-table-exists/</guid><description>Using isTableExists() to guard SQL operations against missing tables — why it matters in upgrade scripts, install patches, and any code that touches optional tables.</description><pubDate>Mon, 30 Oct 2023 00:00:00 GMT</pubDate></item><item><title>Using insertFromSelect for bulk INSERT ... SELECT queries in Magento 2</title><link>https://savanp.com/blog/magento-insert-from-select/</link><guid isPermaLink="true">https://savanp.com/blog/magento-insert-from-select/</guid><description>How to write INSERT IGNORE INTO ... SELECT queries the Magento way using insertFromSelect — cleaner than raw SQL and handles duplicate strategies correctly.</description><pubDate>Mon, 30 Oct 2023 00:00:00 GMT</pubDate></item><item><title>Debugging Magento composer patch errors: wrong path, wrong type</title><link>https://savanp.com/blog/magento-composer-patch-error/</link><guid isPermaLink="true">https://savanp.com/blog/magento-composer-patch-error/</guid><description>When composer-patches throws a type error instead of applying your patch, the problem is almost always in your composer.json — not in the patch file itself.</description><pubDate>Wed, 25 Oct 2023 00:00:00 GMT</pubDate></item></channel></rss>