Los complementos son omnipresentes ya que es posible modificar / reemplazar el comportamiento de cualquier método público en el sistema. Las personalizaciones deben realizarse utilizando complementos para métodos / clases públicos marcados con @apianotaciones (API pública estable) siempre que sea posible. Tal enfoque garantiza que la personalización seguirá siendo funcional después de los nuevos lanzamientos de Magento. Además de before/ afterplugins mencionados en la pregunta, es posible crear aroundcomplementos para sustituir el comportamiento original.
Por otro lado, los observadores son un mecanismo de extensión heredado heredado de Magento 1, es bastante limitado y debe evitarse si es posible. Sin embargo, a diferencia de los complementos, pueden proporcionar puntos de extensión dentro de métodos protegidos / privados.