Shopware 6 for a B2B channel: an evidence-based decision

A wholesale food supplier needed an online ordering channel. The first attempt, an in-house platform on Next.js and Fastify, was frozen. The question was whether to adopt Shopware 6 or keep building. The answer had to be proven, not guessed.

What was done

  • Requirements and the 1C 7.7 exchange contract carried over from the frozen project. They do not depend on the platform
  • 47 specifications layered over the implementation plan, with traceability from requirement to specification to evidence
  • Fit-gap against every confirmed requirement, plus the commercial frame and the three largest risks
  • Six proof of concepts with gate criteria published in advance and the rule to change nothing inside vendor
  • Three plugins written entirely through documented extension points
  • A questionnaire for whoever maintains 1C and a question to the owner about the retail audience, both ready to forward

Result

  • Verdict: GO with one reservation
  • Passed: environment; catalogue import from a fake 1C with idempotent upsert; B2B price on listing, product page, cart and order 14 of 14; promotion precedence and rounding; order → 1C with a lost ack and offline 10 of 10; stock and minimum order 9 of 10
  • Failed: shared organisation cart, edits lost in 10 attempts out of 10. That is the reservation
  • Not a single change inside vendor, so the customisations survive a platform update

Stack: Shopware 6.7, PHP, Docker Compose, PHPStan, 1C 7.7 (XML exchange, XSD), Python