Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Model/DataMapping/FieldValueRenderer/Order/Status.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ class Status implements RenderInterface
*/
public function render($entity, string $fieldCode)
{
return self::DEFAULT_STATUS;
return $entity->getState();
}
}
84 changes: 84 additions & 0 deletions Observer/OrderEntityAfterSave.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<?php

/**
* @author Bloomreach
* @copyright Copyright (c) Bloomreach (https://www.bloomreach.com/)
*/

declare(strict_types=1);

namespace Bloomreach\EngagementConnector\Observer;

use Bloomreach\EngagementConnector\Model\DataMapping\Config\ConfigProvider;
use Bloomreach\EngagementConnector\Service\Export\ExportGuestCustomer;
use Bloomreach\EngagementConnector\Service\Export\PrepareOrderDataService;
use Bloomreach\EngagementConnector\Service\Export\PrepareOrderItemsDataService;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Sales\Model\Order;

/**
* Get order entity after save
*/
class OrderEntityAfterSave implements ObserverInterface
{
/**
* @var PrepareOrderDataService
*/
private $prepareOrderDataService;

/**
* @var PrepareOrderItemsDataService
*/
private $prepareOrderItemsDataService;

/**
* @var ExportGuestCustomer
*/
private $exportGuestCustomer;

/**
* @var ConfigProvider
*/
private $configProvider;

/**
* @param PrepareOrderDataService $prepareOrderDataService
* @param PrepareOrderItemsDataService $prepareOrderItemsDataService
* @param ExportGuestCustomer $exportGuestCustomer
* @param ConfigProvider $configProvider
*/
public function __construct(
PrepareOrderDataService $prepareOrderDataService,
PrepareOrderItemsDataService $prepareOrderItemsDataService,
ExportGuestCustomer $exportGuestCustomer,
ConfigProvider $configProvider,
) {
$this->prepareOrderDataService = $prepareOrderDataService;
$this->prepareOrderItemsDataService = $prepareOrderItemsDataService;
$this->exportGuestCustomer = $exportGuestCustomer;
$this->configProvider = $configProvider;
}

/**
* Get order entity after save
*
* @param Observer $observer
*
* @return void
*/
public function execute(Observer $observer): void
{
if ($this->configProvider->isEnabled()) {
$event = $observer->getEvent();
/** @var Order $order */
$order = $event->getOrder();

$order['purchase_status'] = $order->getState();

$this->exportGuestCustomer->execute($order);
$this->prepareOrderDataService->execute($order);
$this->prepareOrderItemsDataService->execute($order);
}
}
}
2 changes: 1 addition & 1 deletion etc/di.xml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
<item name="purchase" xsi:type="array">
<item name="default" xsi:type="object">Bloomreach\EngagementConnector\Model\DataMapping\FieldValueRenderer\DefaultRenderer</item>
<item name="timestamp" xsi:type="object">Bloomreach\EngagementConnector\Model\DataMapping\FieldValueRenderer\Order\Timestamp</item>
<item name="status" xsi:type="object">Bloomreach\EngagementConnector\Model\DataMapping\FieldValueRenderer\Order\Status</item>
<item name="status" xsi:type="object">Bloomreach\EngagementConnector\Model\DataMapping\FieldValueRenderer\DefaultRenderer</item>
<item name="product_ids" xsi:type="object">Bloomreach\EngagementConnector\Model\DataMapping\FieldValueRenderer\Order\ProductIds</item>
<item name="product_list" xsi:type="object">Bloomreach\EngagementConnector\Model\DataMapping\FieldValueRenderer\Order\ProductList</item>
<item name="variant_ids" xsi:type="object">Bloomreach\EngagementConnector\Model\DataMapping\FieldValueRenderer\Order\VariantIds</item>
Expand Down
4 changes: 4 additions & 0 deletions etc/events.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
<observer name="bloomreach_engagementconnector_order_save"
instance="Bloomreach\EngagementConnector\Observer\OrderEntitySave" />
</event>
<event name="sales_order_save_after">
<observer name="bloomreach_engagementconnector_order_after_save"
instance="Bloomreach\EngagementConnector\Observer\OrderEntityAfterSave" />
</event>
<event name="catalog_product_save_commit_after">
<observer name="bloomreach_engagementconnector_product_save"
instance="Bloomreach\EngagementConnector\Observer\ProductEntitySave" />
Expand Down