emartech / 3rd-party-integrations-magento-m2 Goto Github PK
View Code? Open in Web Editor NEWPlease note: this plugin is deprecated. we have a new version of the plugin- please contact emarsys support for more info
License: MIT License
Please note: this plugin is deprecated. we have a new version of the plugin- please contact emarsys support for more info
License: MIT License
depending on the servers performance, if the volume of synced customers / subscriber is large, the operation times out and the sync fails
Issue description:
In some cases. the plugin will use a combined key ( email#site#store), even though email was selected as a key.
The impact is that multiple recipient will be created with the same email address.
This patch fixes the inconsistency of using Email as a key.
How to patch:
When emarsys transactional email is disabled, this file throws an error.
Emarsys/Emarsys/Model/SendEmail.php line 325-328
$emarsysEventCollection = $this->emarsyseventsFactory->create()->getCollection() ->addFieldToFilter('store_id', ['eq' => $storeId]) ->addFieldToFilter('event_id', ['eq' => $emarsysApiEventID]);
because $emarsysApiEventID is undefined. It is happening when placing an order.
Categories with special characters have extra slashes which should not be there.
https://screencast.com/t/Bt9GFyC7JV
In payment step in Verify Your Address section suggested address not showing ,giving error as We were unable to validate your address.
After disable emarsys extension its working correcltly.
From app/code/Emarsys/Emarsys/view/frontend/requirejs-config.js file is overriding
app/code/Emarsys/Emarsys/view/frontend/web/js/model/shipping-save-processor/default.js
its already used mixin in Avatax Module in vendor/classyllama/module-avatax/view/frontend/requirejs-config.js and again overrided by Emarsys Magento_Checkout/js/model/shipping-save-processor/default.
I tested with replacing Magento_Checkout/js/model/shipping-save-processor/default in Avatax mixing to Emarsys_Emarsys/js/model/shipping-save-processor/default then its working fine.
Can anyone please suggest on this?
Could you please reflect your v1.0.13 changes on the correct tag as well (1.0.13)? Thanks.
We've detected that when using Ajax ( in order to avoid caching of our Web-Behaviour- webextend scripts as well as the Web Recommender) the Web Recommender could not identify the right page path.
Here is a fix for it ( under testing )
fbd2148
When trying to export the cataglog, anf excluding one or more categories, the export fails.
This is addressed with this fix
and is being tested now
Hi,
We experienced an infinite loop on subcriber save event. This affected checkout place order.
I debugged the code and this is what I found.
There is an event on etc/events.xml
<event name="newsletter_subscriber_save_after">
<observer name="emarsys_newsletter_subscribers" instance="Emarsys\Emarsys\Observer\RealTimeSubscriber" />
</event>
on RealtimeSubscriber.php line 115-116
$this->dataHelper->realtimeTimeBasedOptinSync($subscriber);
$result = $this->subscriberModel->syncSubscriber(
$subscriberId,
$storeId,
$frontendFlag,
$pageHandle,
$websiteId,
0,
$subscriberEmailChangeFlag
);
it never goes to $result = $this->subscriberModel->syncSubscriber() and looping inside realtimeTimeBasedOptinSync() if newsletter_subscriber
.change_status_at
IS NULL.
I am not sure why some of our customers have this field NULL and subcriber_status = 1.
from inside of realtimeTimeBasedOptinSync() in file Emarsys\Emarsys\Helper\Data.php:
$response = $this->modelApi->get('contact/last_change', $payload);
returns a value inside $response['data']['time'] and has $response['data']['current_value'] value that is not the same as $subscriber->getSubscriberStatus();
causing this line:
if ((($EmarsysOptinChangeTime == $magentoOptinChangeTime && self::OPTIN_PRIORITY =='Emarsys') || ($EmarsysOptinChangeTime >= $magentoOptinChangeTime)) && $emarsysOptinValue != $magentoOptinValue) {
to returns true and causes the loop (because of the observer explained above)
$subscriber->setSubscriberStatus($statusToBeChanged)
->setEmarsysNoExport(true)
->save();
For some reason, I am not sure why some our customer's magento values have
change_status_at = null and subscriber_status =(different than API response)
maybe some records went out of sync due to they were edited from other extension or edited directly.
whatever the case, this should not cause infinite loop.
As of now, we are turning off real time synchronization .
Thanks.
Hi guys, I try to sync contact to Emarsys from Magento, but got this error.
Customer field has been mapped.
PUT contact/?create_if_not_exists=1 { "key_id": false, "0": "[email protected]#9#17", "3": "[email protected]" }
The jobs are created with the configured timezone, but the databae is GMT
You can either set your store's TimeZone to GMT in
stores->configuration->general->locale options->timezone
Or apply this patch
ab9f72a
This is already added to our master branch, and will be part of our next release
If you do not use Emarsys Transaction Emails, please use this patch
Index: etc/di.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- etc/di.xml (revision c4c1567c1a61a205ab50ed6a29421c93128d3e84)
+++ etc/di.xml (date 1526308425000)
@@ -25,12 +25,12 @@
</argument>
</arguments>
</type>
- <preference for="\Magento\Framework\Mail\TransportInterface" type="Emarsys\Emarsys\Model\Transport"/>
+ <!--preference for="\Magento\Framework\Mail\TransportInterface" type="Emarsys\Emarsys\Model\Transport"/>
<preference for="\Magento\Framework\Mail\Message" type="Emarsys\Emarsys\Model\Message"/>
<preference for="\Magento\Framework\Mail\Template\TransportBuilder"
type="Emarsys\Emarsys\Model\Template\TransportBuilder"/>
<preference for="\Magento\Email\Model\Template\Filter"
type="Emarsys\Emarsys\Model\Template\Filter"/>
- <preference for="Magento\Email\Model\Template" type="Emarsys\Emarsys\Model\Template"/>
+ <preference for="Magento\Email\Model\Template" type="Emarsys\Emarsys\Model\Template"/-->
<preference for="Magento\Newsletter\Model\Subscriber" type="Emarsys\Emarsys\Model\Subscriber"/>
</config>
Please edit the file at following path:
Magento_root_dir/app/code/Emarsys/Emarsys/view/frontend/templates/emarsys/javascripttracking.phtml
Replace the following code from line number 22 to 24:
<?php if ($cartData = $block->getCartItemsJsonData()): ?>
<script>ScarabQueue.push(["cart", [<?php echo $cartData; ?>]]);</script>
<?php endif; ?>
with:
<script>ScarabQueue.push(["cart", [<?php echo $block->getCartItemsJsonData() ?>]]);</script>
here is a fix.
additionally added:
m2_export_of_all_products_new_line_break_fix_availability_=status+stock+_visibility_produ.patch.zip
Email subjects containing special characters are not decoded.
In case you try to share wishlist you'll be able to see the following email subject:
"Take a look at John Doe's Wish List"
The problem is in app/code/Emarsys/Emarsys/Model/Template/TransportBuilder.php class which doesn't decode special characters in email subjects.
The solution is to replace all occurrences of
->setSubject($template->getSubject())
with
->setSubject(html_entity_decode($template->getSubject(), ENT_QUOTES))
emarsys extension not working in magneto2.2.5
Preconditions
Magento version 2.2.5
php 7.0.29
mysqli mysqlnd 5.0.12
Steps to reproduce
just download folder from git repository
Expected result
it will installed successfullt
Actual result
throw error on setup:di:compile
BPHP Fatal error: Cannot use Magento\Sales\Model\Order as Order because the name is already in use in D:\Projects\xampp\htdocs\m2slideteam\vendor\temando\module-shipping-m2\Model\OrderI
nterfaceBuilder.php on line 12
Fatal error: Cannot use Magento\Sales\Model\Order as Order because the name is already in use in D:\Projects\xampp\htdocs\m2slideteam\vendor\temando\module-shipping-m2\Model\OrderInterfaceBuilder.php on line 12
Describe the bug
Click on "Update Schema" and "Recommend Mapping" causes redirect to home page, but the action is performed properly before redirect.
To Reproduce
Steps to reproduce the behavior:
/admin/emarsys_emarsys/mapping_event/index/store/1
)Expected behavior
Additional context
Please notice that action is performed properly, the redirect happens after performing an action.
This issue is strictly related with \Emarsys\Emarsys\Controller\Adminhtml\Mapping\Event\SaveSchema
, execute()
method, when at the end we have redirect return $resultRedirect->setRefererOrBaseUrl();
This specific redirect uses \Magento\Store\App\Response\Redirect
method _isUrlInternal($url)
, which tries to determine whether manage.fancy.page
is correct domain for redirect (internal domain), but according to the fact, that $this->_storeManager->getStore()
returns 1
(the one provided in URL) instead of 0
(which is admin panel).
Finally, redirection stack checks if /admin/emarsys_emarsys/mapping_event/index/store/1
is the right place to redirect after performing an action, but for store 1
. As this path is not allowed for default store (not admin), you just get redirect to startup page using $this->urlBuilder->getStartupPageUrl()
in \Magento\Backend\Model\View\Result\Redirect
method setRefererOrBaseUrl()
We've detected that the header in that case is "Customer" while it really needs to be "email"
the workaround is to set SI to use "custoemr_id" and the email will be used as value.
We're working on a fix.
Emarsys module should not cause any side effect whether DI is compiled or not.
When DI is compiled application works as expected.
When DI is not compiled we cannot access the Admin panel
/generated/
dir each time, trying to log in to admin panel<preference for="\Magento\Framework\Mail\Template\TransportBuilder" type="Emarsys\Emarsys\Model\Template\TransportBuilder"/>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.