Skip to content

Commit e4acaca

Browse files
Merge pull request #69 from jorgeeurekalabs/main
Fix abandoned Card and Orders issues
2 parents 208c848 + 205cf4f commit e4acaca

File tree

11 files changed

+33
-19
lines changed

11 files changed

+33
-19
lines changed

AbandonedCart/Model/AbandonedCartSendData.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ public function sendAbandonedCartData($quoteId = null): array
249249

250250
$quote = $this->quoteRepository->get($abandonedCart->getEntityId());
251251
$AcCustomer = NULL;
252-
if ($this->isGuest($quote)) {
252+
if ($this->isGuest($quote) || ($abandonedCart->getCustomerId() && !$this->getCustomer($abandonedCart->getCustomerId())->getCustomerId())) {
253253
$customerEmail = $quote->getBillingAddress()->getEmail();
254254
if (!$customerEmail) {
255255
$result['error'] = __('Customer Email does not exist.');
@@ -402,7 +402,11 @@ private function saveResult($quoteId, $acOrderId, $syncStatus): void
402402
if ($quoteModel->getEntityId()) {
403403
$quoteModel->setAcOrderSyncId($acOrderId);
404404
$quoteModel->setAcSyncStatus($syncStatus);
405-
$quoteModel->setAcSyncedDate($this->dateTime->date()->format('Y-m-d H:i:s'));
405+
if(!$quoteModel->getUpdatedAt()){
406+
$quoteModel->setAcSyncedDate($this->dateTime->date()->modify('+1 day')->format('Y-m-d H:i:s'));
407+
}else{
408+
$quoteModel->setAcSyncedDate($this->dateTime->date($quoteModel->getUpdatedAt())->modify('+1 day')->format('Y-m-d H:i:s'));
409+
}
406410
}
407411
$quoteModel->save();
408412
}

AbandonedCart/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"config": {
1010
"sort-packages": true
1111
},
12-
"version": "2.1.5",
12+
"version": "2.1.6",
1313
"require": {
1414
"php": "~7.3.0||~7.4.0||~8.0||~8.1||~8.2",
1515
"activecampaign/core": "2.1.*"

AbandonedCart/etc/module.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
9-
<module name="ActiveCampaign_AbandonedCart" setup_version="2.1.5">
9+
<module name="ActiveCampaign_AbandonedCart" setup_version="2.1.6">
1010
<sequence>
1111
<module name="Magento_Product"/>
1212
<module name="Magento_Sales"/>

Newsletter/Block/Adminhtml/System/Config/NewsletterSyncStatus.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public function getNewsletterCountHelper(array $filter = []): int
4444
{
4545

4646
$this->newsletterCollection->clear()->getSelect()->reset(\Magento\Framework\Db\Select::WHERE);
47+
$this->newsletterCollection->addFieldToFilter('customer_id', null);
4748
if (count($filter)) {
4849
foreach ($filter as $fil) {
4950
$this->newsletterCollection->addFieldToFilter($fil['field'], $fil['value']);

Newsletter/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"config": {
1010
"sort-packages": true
1111
},
12-
"version": "1.0.2",
12+
"version": "1.0.3",
1313
"require": {
1414
"php": "~7.3.0||~7.4.0||~8.0||~8.1||~8.2",
1515
"activecampaign/core": "2.1.*"

Newsletter/etc/module.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0"?>
22
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
33
xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
4-
<module name="ActiveCampaign_Newsletter" setup_version="1.0.2">
4+
<module name="ActiveCampaign_Newsletter" setup_version="1.0.3">
55
<sequence>
66
<module name="ActiveCampaign_Core"/>
77
<module name="ActiveCampaign_Customer"/>

Order/Model/OrderData/OrderDataSend.php

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -190,22 +190,29 @@ public function orderDataSend($order): array
190190
try {
191191
$connectionId = $this->activeCampaignHelper->getConnectionId($order->getStoreId());
192192
$customerId = $order->getCustomerId();
193-
$customerAcId = 0;
194-
$quote = $this->quoteRepository->get($order->getQuoteId());
193+
$quoteModel = null;
194+
try{
195+
$quoteModel = $this->quoteRepository->get($order->getQuoteId());
196+
$quote = $quoteModel;
197+
}catch (\Exception $e){
198+
$quote = $order;
199+
}
200+
195201
if ($customerId) {
196202
$AcCustomer = $this->customer->updateCustomer($this->getCustomer($customerId));
197203
}else{
198204
$customerEmail = $quote->getBillingAddress()->getEmail();
199-
$contact['email'] = $quote->getBillingAddress()->getEmail();
205+
$contact['email'] = $customerEmail;
200206
$contact['firstName'] = $quote->getBillingAddress()->getFirstname();
201207
$contact['lastName'] = $quote->getBillingAddress()->getLastname();
202208
$contact['phone'] = $quote->getBillingAddress()->getTelephone();
203209
$contact['fieldValues'] = [];
204-
$AcCustomer = $this->customer->createGuestCustomer($contact,$quote->getStoreId());
210+
$AcCustomer = $this->customer->createGuestCustomer($contact,$order->getStoreId());
205211
}
206212
$customerAcId = $AcCustomer['ac_customer_id'];
207-
$this->saveCustomerResultQuote($quote,$customerAcId);
208-
213+
if($quoteModel) {
214+
$this->saveCustomerResultQuote($quote, $customerAcId);
215+
}
209216
foreach ($order->getAllVisibleItems() as $item) {
210217
$product = $this->_productRepositoryFactory->create()
211218
->get($item->getSku());
@@ -227,7 +234,7 @@ public function orderDataSend($order): array
227234
"ecomOrder" => [
228235
"externalid" => $order->getId(),
229236
"source" => 1,
230-
"email" => $quote->getBillingAddress()->getEmail(),
237+
"email" => $order->getCustomerEmail(),
231238
"orderProducts" => $items,
232239
"orderDiscounts" => [
233240
"discountAmount" => $this->activeCampaignHelper->priceToCents($order->getDiscountAmount())
@@ -247,8 +254,10 @@ public function orderDataSend($order): array
247254
];
248255

249256
if (!$order->getAcOrderSyncId()) {
250-
251-
$AcOrderId = $quote->getAcOrderSyncId();
257+
$AcOrderId=0;
258+
if($quoteModel){
259+
$AcOrderId = $quote->getAcOrderSyncId();
260+
}
252261
if($AcOrderId > 0){
253262
$result = $this->curl->orderDataSend(
254263
self::UPDATE_METHOD,

Order/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"config": {
1010
"sort-packages": true
1111
},
12-
"version": "2.1.2",
12+
"version": "2.1.3",
1313
"require": {
1414
"php": "~7.3.0||~7.4.0||~8.0||~8.1||~8.2",
1515
"activecampaign/core": "2.1.*"

Order/etc/module.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0"?>
22
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
3-
<module name="ActiveCampaign_Order" setup_version="2.1.2">
3+
<module name="ActiveCampaign_Order" setup_version="2.1.3">
44
<sequence>
55
<module name="ActiveCampaign_Core" />
66
<module name="ActiveCampaign_Customer"/>

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "activecampaign/module-integration",
33
"description": "ActiveCampaign extension for Magento 2.3 and 2.4",
44
"type": "magento2-component",
5-
"version": "2.0.15",
5+
"version": "2.0.16",
66
"license": "OSL-3.0",
77
"require": {
88
"php": "~7.3.0||~7.4.0||~8.0||~8.1||~8.2"

0 commit comments

Comments
 (0)