Magento 2 Event: Before Create Subscription
Event code: subscribe_pro_before_create_subscription_from_quote_item
Overview
The subscribe_pro_before_create_subscription_from_quote_item
event is dispatched just before a new subscription is created from a quote item on a new order.
Parameters
When fired, the following parameters are passed to observers of this event:
Name | Type | Description |
---|---|---|
subscription | SFC_Autoship_Model_Subscription | The subscription parameter holds a data structure which is a representation of the new subscription which will be created. The data in this object can be modified to change the details of the new subscription which is created on the Subscribe Pro system. |
quote_item | Mage_Sales_Model_Quote_Item | The quote_item parameter holds a reference to the Magento quote item data structure from the just-placed quote / order. The quote_item holds the product details and the customer's "request" to create a subscription for the given product. |
Example
The following example shows how to write custom code in your own M2 module My\Module
to intercept and handle the event.
etc/events.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="subscribe_pro_before_create_subscription_from_quote_item">
<observer name="before_create_subscription_from_quote_item" instance="My\Module\Observer\SubscribePro\BeforeCreateSubscriptionFromQuoteItem" />
</event>
</config>
My/Module/Observer/SubscribePro/BeforeCreateSubscriptionFromQuoteItem.php
<?php
namespace My\Module\Observer\SubscribePro;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
class BeforeCreateSubscriptionFromQuoteItem implements ObserverInterface
{
/**
* @param \Magento\Framework\Event\Observer $observer
* @return void
*/
public function execute(Observer $observer)
{
/** @var \Magento\Framework\DataObject $result */
$result = $observer->getData('subscription');
/** @var \Magento\Quote\Api\Data\CartInterface $quote */
$quoteItem = $observer->getData('quote_item');
// ...
}
}