Estás leyendo la publicación: Cómo agregar opciones adicionales en Magento 2
espacio de nombres Proveedor\Extensión\Observador;
use Magento\Framework\Event\Observer como EventObserver;
use Magento\Framework\Event\ObserverInterface;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Framework\View\LayoutInterface;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\Serialize\SerializerInterface;
clase CheckoutCartAddObserver implementa ObserverInterface
{
diseño protegido $;
protegido $storeManager;
$solicitud protegida;
$ serializador privado;
función pública __construir(
StoreManagerInterface $storeManager,
LayoutInterface $diseño,
SolicitudInterfaz $solicitud,
SerializerInterface $serializador
)
{
$este->diseño = $diseño;
$this->storeManager = $storeManager;
$esta->solicitud = $solicitud;
$este->serializador = $serializador;
}
función pública ejecutar (EventObserver $ observador)
{
$elemento = $observador->getQuoteItem();
$post = $this->request->getPost();
$opcionesadicionales = array();
if ($opciónadicional = $elemento->getOptionByCode(‘opciones_adicionales’)) {
$opcionesadicionales = $este->serializador->unserialize($opciónadicional->getValue());
}
$opcionesadicionales[] = [
‘label’ => ‘Size’,
‘value’ => ‘XL’
];
if (contar ($ opciones adicionales) > 0) {
$elemento->addOption(matriz(
‘product_id’ => $elemento->getProductId(),
‘código’ => ‘opciones_adicionales’,
‘valor’ => $este->serializador->serializar($opcionesadicionales)
));
}
}
}