Skip to content

Commit

Permalink
Send custom_id instead of uuid in wishlist events. (#45)
Browse files Browse the repository at this point in the history
* Send custom_id instead of uuid in wishlist events.
* MQ support for remove from wishlist event
  • Loading branch information
hellward authored Aug 11, 2023
1 parent 8bda694 commit d3c62b1
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 16 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "synerise/magento2-integration",
"description": "Synerise Magento 2 integration module.",
"type": "magento2-module",
"version": "2.2.5",
"version": "2.2.6",
"license": [
"OSL-3.0",
"AFL-3.0"
Expand Down
6 changes: 4 additions & 2 deletions src/Helper/Event.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
use Synerise\Integration\Observer\OrderPlace;
use Synerise\Integration\Observer\ProductReview;
use Synerise\Integration\Observer\WishlistAddProduct;
use Synerise\Integration\Observer\WishlistRemoveProduct;

class Event extends \Magento\Framework\App\Helper\AbstractHelper
{
Expand Down Expand Up @@ -83,9 +84,10 @@ public function sendEvent($event_name, $payload, int $storeId, int $entityId = n
$apiInstance->clientRemovedProductFromCart('4.4', $payload);
break;
case CartQtyUpdate::EVENT:
case ProductReview::EVENT:
case CartStatus::EVENT:
$apiInstance->customEvent('4.4', $payload);
case ProductReview::EVENT:
case WishlistRemoveProduct::EVENT:
$apiInstance->customEvent('4.4', $payload);
break;
case CustomerRegister::EVENT:
$apiInstance->clientRegistered('4.4', $payload);
Expand Down
12 changes: 9 additions & 3 deletions src/Observer/WishlistAddProduct.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@ public function execute(\Magento\Framework\Event\Observer $observer)
}

try {
/** @var \Magento\Wishlist\Model\Wishlist $wishlist */
$wishlist = $observer->getEvent()->getWishlist();
if (!$wishlist->getCustomerId()) {
return;
}

$product = $observer->getEvent()->getProduct();
$storeId = $this->trackingHelper->getStoreId();
$params = [
Expand Down Expand Up @@ -105,9 +111,9 @@ public function execute(\Magento\Framework\Event\Observer $observer)
$eventClientAction = new EventClientAction([
'time' => $this->trackingHelper->getCurrentTime(),
'label' => $this->trackingHelper->getEventLabel(self::EVENT),
'client' => [
'uuid' => $this->trackingHelper->getClientUuid()
],
'client' => new \Synerise\ApiClient\Model\Client([
'custom_id' => $wishlist->getCustomerId()
]),
'params' => $params
]);

Expand Down
68 changes: 58 additions & 10 deletions src/Observer/WishlistRemoveProduct.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,57 @@ class WishlistRemoveProduct implements ObserverInterface
{
const EVENT = 'wishlist_item_delete_after';

/**
* @var \Synerise\Integration\Helper\Api
*/
protected $apiHelper;

/**
* @var \Synerise\Integration\Helper\Catalog
*/
protected $catalogHelper;

/**
* @var \Synerise\Integration\Helper\Tracking
*/
protected $trackingHelper;

/**
* @var \Psr\Log\LoggerInterface
*/
protected $logger;

/**
* @var \Magento\Wishlist\Model\Wishlist
*/
protected $wishlist;

/**
* @var \Synerise\Integration\Helper\Queue
*/
protected $queueHelper;

/**
* @var \Synerise\Integration\Helper\Event
*/
protected $eventHelper;

public function __construct(
\Magento\Wishlist\Model\Wishlist $wishlist,
\Psr\Log\LoggerInterface $logger,
\Synerise\Integration\Helper\Api $apiHelper,
\Synerise\Integration\Helper\Catalog $catalogHelper,
\Synerise\Integration\Helper\Tracking $trackingHelper
\Synerise\Integration\Helper\Tracking $trackingHelper,
\Synerise\Integration\Helper\Queue $queueHelper,
\Synerise\Integration\Helper\Event $eventHelper
) {
$this->wishlist = $wishlist;
$this->logger = $logger;
$this->apiHelper = $apiHelper;
$this->catalogHelper = $catalogHelper;
$this->trackingHelper = $trackingHelper;
$this->queueHelper = $queueHelper;
$this->eventHelper = $eventHelper;
}

public function execute(\Magento\Framework\Event\Observer $observer)
Expand All @@ -37,12 +74,20 @@ public function execute(\Magento\Framework\Event\Observer $observer)
}

try {
/** @var \Magento\Wishlist\Model\Item $item */
$item = $observer->getItem();

$storeId = $item->getStoreId();

/** @var \Magento\Wishlist\Model\Item $wishlistItem */
$wishlistItem = $observer->getEvent()->getItem();
$storeId = $wishlistItem->getStoreId();
/** @var \Magento\Wishlist\Model\Wishlist $wishlist */
$wishlist = $this->wishlist->load($item->getWishlistId());

$product = $wishlistItem->getProduct();
if (!$wishlist->getCustomerId()) {
return;
}

/** @var \Magento\Catalog\Model\Product $product */
$product = $item->getProduct();

$params = [
"sku" => $product->getSku(),
Expand Down Expand Up @@ -81,14 +126,17 @@ public function execute(\Magento\Framework\Event\Observer $observer)
'time' => $this->trackingHelper->getCurrentTime(),
'action' => 'product.removeFromFavorites',
'label' => $this->trackingHelper->getEventLabel(self::EVENT),
'client' => [
'uuid' => $this->trackingHelper->getClientUuid()
],
'client' => new \Synerise\ApiClient\Model\Client([
'custom_id' => $wishlist->getCustomerId()
]),
'params' => $params
]);

$this->apiHelper->getDefaultApiInstance()
->customEvent('4.4', $customEventRequest);
if ($this->queueHelper->isQueueAvailable(self::EVENT, $storeId)) {
$this->queueHelper->publishEvent(self::EVENT, $customEventRequest, $storeId);
} else {
$this->eventHelper->sendEvent(self::EVENT, $customEventRequest, $storeId);
}
} catch (ApiException $e) {
} catch (\Exception $e) {
$this->logger->error('Synerise Error', ['exception' => $e]);
Expand Down

0 comments on commit d3c62b1

Please sign in to comment.