W3CDigitalDataLayerByTriggeredMessaging - Version 0.3.8

Version Notes

All basic features included.
- It can handle full page caching.
- Exception handling has been added.
- Removed empty objects and arrays; Removed duplicated subcategories.
- Added product data for products on category and search pages.
- Fixed issue where configurable products have multiple product entries, and incorrect prices, in the cart object.
- Added more data into digitalData object so websites can be debugged.
- Configurable products have each of their configurations listed under 'linkedProduct'.
- Fixed bug that was breaking some styling.
- Added 'pageName' attribute and fixed type of 'returningStatus' object.
- Tweaks to configuration panel and default values.
- List of all installed non-Magento extensions are exposed (for debug purposes)
- Products associated with a Grouped Product have been included.
- Minimum prices of grouped and bundled products can be extracted.
- Output of debug data can now be controlled through admin configuration panel.

Download this release

Release Info

Developer Muhammed Miah
Extension W3CDigitalDataLayerByTriggeredMessaging
Version 0.3.8
Comparing to
See all releases


Code changes from version 0.3.7 to 0.3.8

app/code/community/TriggeredMessaging/DigitalDataLayer/Helper/Data.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  class TriggeredMessaging_DigitalDataLayer_Helper_Data extends Mage_Core_Helper_Abstract {
4
-
5
  }
6
 
7
  ?>
1
  <?php
2
 
3
  class TriggeredMessaging_DigitalDataLayer_Helper_Data extends Mage_Core_Helper_Abstract {
4
+
5
  }
6
 
7
  ?>
app/code/community/TriggeredMessaging/DigitalDataLayer/Model/Page/Observer.php CHANGED
@@ -162,7 +162,13 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
162
  /*
163
  * Get information on pages to pass to front end
164
  */
165
-
 
 
 
 
 
 
166
  public function getVersion() {
167
  return $this->_version;
168
  }
@@ -488,7 +494,7 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
488
  $product_model['productInfo']['productThumbnail'] = $product->getThumbnailUrl();
489
  }
490
  //Attributes
491
- if ($product->getWeight()) {
492
  $product_model['attributes']['weight'] = floatval($product->getWeight());
493
  }
494
  try{
@@ -549,14 +555,14 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
549
 
550
  // Price
551
  $product_model['price'] = array();
552
- if(!$product->getSpecialPrice()){
553
- $product_model['price']['basePrice'] = floatval($product->getPrice());
554
  } else {
555
- $product_model['price']['basePrice'] = floatval($product->getSpecialPrice());
556
- $product_model['price']['regularPrice'] = floatval($product->getPrice());
557
  }
558
  $product_model['price']['currency'] = $this->_getCurrency();
559
- $product_model['price']['priceWithTax'] = floatval($product->getFinalPrice());
560
 
561
  if (!$product_model['price']['priceWithTax']) {
562
  unset( $product_model['price']['priceWithTax'] );
@@ -564,13 +570,13 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
564
 
565
  // In case 'basePrice' did not exist
566
  if (!$product_model['price']['basePrice']) {
567
- $product_model['price']['basePrice'] = floatval($product->getGroupPrice());
568
  }
569
  if (!$product_model['price']['basePrice']) {
570
- $product_model['price']['basePrice'] = floatval($product->getMinimalPrice());
571
  }
572
  if (!$product_model['price']['basePrice']) {
573
- $product_model['price']['basePrice'] = floatval($product->getSpecialPrice());
574
  }
575
  if (!$product_model['price']['basePrice']) {
576
  // Extract price for bundle products
@@ -584,7 +590,7 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
584
  }
585
  $_selection = $_option->getDefaultSelection();
586
  if ($_selection === null) continue;
587
- $normal_price += floatval($_selection->getPrice());
588
  }
589
  $product_model['price']['basePrice'] = $normal_price;
590
  }
@@ -592,17 +598,17 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
592
 
593
  if ($this->_debug) {
594
  $product_model['price']['all'] = array();
595
- $product_model['price']['all']['getPrice'] = $product->getPrice();
596
- $product_model['price']['all']['getMinimalPrice'] = $product->getMinimalPrice();
597
  $product_model['price']['all']['getPriceModel'] = $product->getPriceModel();
598
- $product_model['price']['all']['getGroupPrice'] = $product->getGroupPrice();
599
  $product_model['price']['all']['getTierPrice'] = $product->getTierPrice();
600
  $product_model['price']['all']['getTierPriceCount'] = $product->getTierPriceCount();
601
  $product_model['price']['all']['getFormatedTierPrice'] = $product->getFormatedTierPrice();
602
  $product_model['price']['all']['getFormatedPrice'] = $product->getFormatedPrice();
603
- $product_model['price']['all']['getFinalPrice'] = $product->getFinalPrice();
604
  $product_model['price']['all']['getCalculatedFinalPrice'] = $product->getCalculatedFinalPrice();
605
- $product_model['price']['all']['getSpecialPrice'] = $product->getSpecialPrice();
606
  }
607
 
608
  // Calculate Tax Rate
@@ -642,7 +648,7 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
642
  $min_price = 0.0;
643
  foreach($simple_collection as $simple_product){
644
  array_push($product_model['linkedProduct'], $this->_getProductModel($simple_product, false));
645
- $simple_product_price = floatval($simple_product->getPrice());
646
  if ($simple_product_price && (!$min_price || $simple_product_price<$min_price)) {
647
  $min_price = $simple_product_price;
648
  }
@@ -650,7 +656,7 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
650
 
651
  // If price could not be extracted before, can set it now
652
  if (!$product_model['price']['basePrice']) {
653
- $product_model['price']['basePrice'] = floatval($min_price);
654
  }
655
 
656
  if (!$product_model['linkedProduct']) {
@@ -772,17 +778,17 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
772
  }
773
  // $litem_model['price']['shipping'];
774
  // $litem_model['price']['shippingMethod'] = $this->_extractShippingMethod($item->getQuote());
775
- $litem_model['price']['priceWithTax'] = floatval($item->getBasePriceInclTax()); // TODO: This may be different from that in _getProductModel()
776
  $litem_model['price']['cartTotal'] = floatval($item->getRowTotalInclTax());
777
 
778
  if ($this->_debug) {
779
- $litem_model['price']['all']['_getCalculationPrice'] = $product->getCalculationPrice();
780
- $litem_model['price']['all']['_getCalculationPriceOriginal'] = $product->getCalculationPriceOriginal();
781
- $litem_model['price']['all']['_getBaseCalculationPrice'] = $product->getBaseCalculationPrice();
782
- $litem_model['price']['all']['_getBaseCalculationPriceOriginal'] = $product->getBaseCalculationPriceOriginal();
783
- $litem_model['price']['all']['_getOriginalPrice'] = $product->getOriginalPrice();
784
- $litem_model['price']['all']['_getBaseOriginalPrice'] = $product->getBaseOriginalPrice();
785
- $litem_model['price']['all']['_getConvertedPrice'] = $product->getConvertedPrice();
786
  }
787
 
788
  // $litem_model['attributes'] = array();
@@ -882,7 +888,7 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
882
  }
883
  $cart['price'] = array();
884
  if($quote->getBaseSubtotal()){
885
- $cart['price']['basePrice'] = (float) $quote->getBaseSubtotal();
886
  } else {
887
  $cart['price']['basePrice'] = 0.0;
888
  }
@@ -904,12 +910,12 @@ class TriggeredMessaging_DigitalDataLayer_Model_Page_Observer {
904
  $cart['price']['shippingMethod'] = $this->_extractShippingMethod($quote);
905
  }
906
  if ($quote->getShippingAddress()->getTaxAmount() && $quote->getBaseSubtotal()){
907
- $cart['price']['priceWithTax'] = (float) $quote->getShippingAddress()->getTaxAmount() + $quote->getBaseSubtotal(); // TODO: Find a better way
908
  } else {
909
  $cart['price']['priceWithTax'] = 0.0;
910
  }
911
- if($quote->getGrandTotal()){
912
- $cart['price']['cartTotal'] = (float) $quote->getGrandTotal();
913
  } else {
914
  $cart['price']['cartTotal'] = 0.0;
915
  }
162
  /*
163
  * Get information on pages to pass to front end
164
  */
165
+ public function getCurrentPrice($_price,$p1,$p2){
166
+ if($p1){
167
+ return number_format(Mage::helper('core')->currency((float)$_price,$p1,$p2),2,'.','');
168
+ } else {
169
+ return floatval(number_format(Mage::helper('core')->currency((float)$_price,$p1,$p2),2,'.',''));
170
+ }
171
+ }
172
  public function getVersion() {
173
  return $this->_version;
174
  }
494
  $product_model['productInfo']['productThumbnail'] = $product->getThumbnailUrl();
495
  }
496
  //Attributes
497
+ if ($product->getWeight() && in_array('weight',$this->_expAttr)) {
498
  $product_model['attributes']['weight'] = floatval($product->getWeight());
499
  }
500
  try{
555
 
556
  // Price
557
  $product_model['price'] = array();
558
+ if(!$product->getSpecialPrice() || $product->getSpecialPrice()!==$product->getFinalPrice()){
559
+ $product_model['price']['basePrice'] = $this->getCurrentPrice(floatval($product->getPrice()),false,false);
560
  } else {
561
+ $product_model['price']['basePrice'] = $this->getCurrentPrice(floatval($product->getSpecialPrice()),false,false);
562
+ $product_model['price']['regularPrice'] = $this->getCurrentPrice(floatval($product->getPrice()),false,false);
563
  }
564
  $product_model['price']['currency'] = $this->_getCurrency();
565
+ $product_model['price']['priceWithTax'] = $this->getCurrentPrice(floatval($product->getFinalPrice()),false,false);
566
 
567
  if (!$product_model['price']['priceWithTax']) {
568
  unset( $product_model['price']['priceWithTax'] );
570
 
571
  // In case 'basePrice' did not exist
572
  if (!$product_model['price']['basePrice']) {
573
+ $product_model['price']['basePrice'] = $this->getCurrentPrice(floatval($product->getGroupPrice()),false,false);
574
  }
575
  if (!$product_model['price']['basePrice']) {
576
+ $product_model['price']['basePrice'] = $this->getCurrentPrice(floatval($product->getMinimalPrice()),false,false);
577
  }
578
  if (!$product_model['price']['basePrice']) {
579
+ $product_model['price']['basePrice'] = $this->getCurrentPrice(floatval($product->getSpecialPrice()),false,false);
580
  }
581
  if (!$product_model['price']['basePrice']) {
582
  // Extract price for bundle products
590
  }
591
  $_selection = $_option->getDefaultSelection();
592
  if ($_selection === null) continue;
593
+ $normal_price += $this->getCurrentPrice(floatval($_selection->getPrice()),false,false);
594
  }
595
  $product_model['price']['basePrice'] = $normal_price;
596
  }
598
 
599
  if ($this->_debug) {
600
  $product_model['price']['all'] = array();
601
+ $product_model['price']['all']['getPrice'] = $this->getCurrentPrice($product->getPrice(),false,false);
602
+ $product_model['price']['all']['getMinimalPrice'] = $this->getCurrentPrice($product->getMinimalPrice(),false,false);
603
  $product_model['price']['all']['getPriceModel'] = $product->getPriceModel();
604
+ $product_model['price']['all']['getGroupPrice'] = $this->getCurrentPrice($product->getGroupPrice(),false,false);
605
  $product_model['price']['all']['getTierPrice'] = $product->getTierPrice();
606
  $product_model['price']['all']['getTierPriceCount'] = $product->getTierPriceCount();
607
  $product_model['price']['all']['getFormatedTierPrice'] = $product->getFormatedTierPrice();
608
  $product_model['price']['all']['getFormatedPrice'] = $product->getFormatedPrice();
609
+ $product_model['price']['all']['getFinalPrice'] = $this->getCurrentPrice($product->getFinalPrice(),false,false);
610
  $product_model['price']['all']['getCalculatedFinalPrice'] = $product->getCalculatedFinalPrice();
611
+ $product_model['price']['all']['getSpecialPrice'] = $this->getCurrentPrice($product->getSpecialPrice(),false,false);
612
  }
613
 
614
  // Calculate Tax Rate
648
  $min_price = 0.0;
649
  foreach($simple_collection as $simple_product){
650
  array_push($product_model['linkedProduct'], $this->_getProductModel($simple_product, false));
651
+ $simple_product_price = $this->getCurrentPrice(floatval($simple_product->getPrice()),false,false);
652
  if ($simple_product_price && (!$min_price || $simple_product_price<$min_price)) {
653
  $min_price = $simple_product_price;
654
  }
656
 
657
  // If price could not be extracted before, can set it now
658
  if (!$product_model['price']['basePrice']) {
659
+ $product_model['price']['basePrice'] = $this->getCurrentPrice(floatval($min_price),false,false);
660
  }
661
 
662
  if (!$product_model['linkedProduct']) {
778
  }
779
  // $litem_model['price']['shipping'];
780
  // $litem_model['price']['shippingMethod'] = $this->_extractShippingMethod($item->getQuote());
781
+ $litem_model['price']['priceWithTax'] = $this->getCurrentPrice(floatval($item->getBasePriceInclTax()),false,false); // TODO: This may be different from that in _getProductModel()
782
  $litem_model['price']['cartTotal'] = floatval($item->getRowTotalInclTax());
783
 
784
  if ($this->_debug) {
785
+ $litem_model['price']['all']['_getCalculationPrice'] = $this->getCurrentPrice($product->getCalculationPrice(),false,false);
786
+ $litem_model['price']['all']['_getCalculationPriceOriginal'] = $this->getCurrentPrice($product->getCalculationPriceOriginal(),false,false);
787
+ $litem_model['price']['all']['_getBaseCalculationPrice'] = $this->getCurrentPrice($product->getBaseCalculationPrice(),false,false);
788
+ $litem_model['price']['all']['_getBaseCalculationPriceOriginal'] = $this->getCurrentPrice($product->getBaseCalculationPriceOriginal(),false,false);
789
+ $litem_model['price']['all']['_getOriginalPrice'] = $this->getCurrentPrice($product->getOriginalPrice(),false,false);
790
+ $litem_model['price']['all']['_getBaseOriginalPrice'] = $this->getCurrentPrice($product->getBaseOriginalPrice(),false,false);
791
+ $litem_model['price']['all']['_getConvertedPrice'] = $this->getCurrentPrice($product->getConvertedPrice(),false,false);
792
  }
793
 
794
  // $litem_model['attributes'] = array();
888
  }
889
  $cart['price'] = array();
890
  if($quote->getBaseSubtotal()){
891
+ $cart['price']['basePrice'] = $this->getCurrentPrice(floatval($quote->getBaseSubtotal()),false,false);
892
  } else {
893
  $cart['price']['basePrice'] = 0.0;
894
  }
910
  $cart['price']['shippingMethod'] = $this->_extractShippingMethod($quote);
911
  }
912
  if ($quote->getShippingAddress()->getTaxAmount() && $quote->getBaseSubtotal()){
913
+ $cart['price']['priceWithTax'] = (float) $quote->getShippingAddress()->getTaxAmount() + $this->getCurrentPrice($quote->getBaseSubtotal(),false,false);
914
  } else {
915
  $cart['price']['priceWithTax'] = 0.0;
916
  }
917
+ if($quote->getGrandTotal() && $quote->getGrandTotal()<0){
918
+ $cart['price']['cartTotal'] = (float) $quote->getGrandTotal();
919
  } else {
920
  $cart['price']['cartTotal'] = 0.0;
921
  }
app/code/community/TriggeredMessaging/DigitalDataLayer/Model/System/Config/Source/Productattributes.php CHANGED
@@ -20,6 +20,7 @@ class TriggeredMessaging_DigitalDataLayer_Model_System_Config_Source_Productattr
20
  }
21
  break;
22
  }
 
23
  return $attributeArray;
24
  }
25
  }
20
  }
21
  break;
22
  }
23
+ array_push($attributeArray,array('label' => 'weight','value' => weight));
24
  return $attributeArray;
25
  }
26
  }
app/code/community/TriggeredMessaging/DigitalDataLayer/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <TriggeredMessaging_DigitalDataLayer>
5
- <version>0.3.0</version>
6
  </TriggeredMessaging_DigitalDataLayer>
7
  </modules>
8
 
2
  <config>
3
  <modules>
4
  <TriggeredMessaging_DigitalDataLayer>
5
+ <version>0.3.8</version>
6
  </TriggeredMessaging_DigitalDataLayer>
7
  </modules>
8
 
app/design/frontend/base/default/template/triggeredmessaging/digital_data_layer.phtml CHANGED
@@ -19,6 +19,8 @@
19
  $listing = $mage->getListing();
20
  $transaction = $mage->getTransaction();
21
  $events = $mage->getEvents();
 
 
22
  ?>
23
  <?php
24
  try {
@@ -55,6 +57,12 @@ try {
55
  <?php if ($events): ?>
56
  window.digitalData.events = <?php echo json_encode($events); ?>;
57
  <?php endif; ?>
 
 
 
 
 
 
58
  } catch(e) {
59
  }
60
  </script>
@@ -77,4 +85,4 @@ console.log("You have enabled the Triggered Messaging script from the Magento Ad
77
  <!-- Triggered Messaging Script End -->
78
  <?php endif;?>
79
 
80
- <?php } catch (Exception $e) {} ?>
19
  $listing = $mage->getListing();
20
  $transaction = $mage->getTransaction();
21
  $events = $mage->getEvents();
22
+ $pluginVersion = (string) Mage::getConfig()->getNode()->modules->TriggeredMessaging_DigitalDataLayer->version;
23
+ $timeStamp = time() * 1000;
24
  ?>
25
  <?php
26
  try {
57
  <?php if ($events): ?>
58
  window.digitalData.events = <?php echo json_encode($events); ?>;
59
  <?php endif; ?>
60
+ <?php if ($pluginVersion): ?>
61
+ window.digitalData.pluginVersion = <?php echo json_encode($pluginVersion); ?>;
62
+ <?php endif; ?>
63
+ <?php if ($timeStamp): ?>
64
+ window.digitalData.generatedDate = <?php echo json_encode($timeStamp); ?>;
65
+ <?php endif; ?>
66
  } catch(e) {
67
  }
68
  </script>
85
  <!-- Triggered Messaging Script End -->
86
  <?php endif;?>
87
 
88
+ <?php } catch (Exception $e) {} ?>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>W3CDigitalDataLayerByTriggeredMessaging</name>
4
- <version>0.3.7</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/apachepl.php">Apache Software License v2</license>
7
  <channel>community</channel>
@@ -29,9 +29,9 @@ https://github.com/TriggeredMessaging/digitalDataMagentoExtension/issues</descri
29
  - Minimum prices of grouped and bundled products can be extracted.&#xD;
30
  - Output of debug data can now be controlled through admin configuration panel.</notes>
31
  <authors><author><name>Muhammed Miah</name><user>momiah1234</user><email>muhammed.miah@triggeredmessaging.com</email></author><author><name>Triggered Messaging</name><user>tmsdemo</user><email>demostore@triggeredmessaging.com</email></author><author><name>Mike Austin</name><user>tmsdemo</user><email>dev@triggeredmessaging.com</email></author></authors>
32
- <date>2014-10-22</date>
33
- <time>17:10:37</time>
34
- <contents><target name="magecommunity"><dir name="TriggeredMessaging"><dir name="DigitalDataLayer"><dir name="Block"><file name="Ddl.php" hash="134766e2a49c3ecfbf03d1025dd41e8b"/></dir><dir name="Helper"><file name="Data.php" hash="5a6e19225e7db056946c95b1477e5c18"/></dir><dir name="Model"><dir name="Container"><file name="Ddl.php" hash="cc9dcd8cf4e460a01c242ac675ce5634"/></dir><file name="Observer.php" hash="26e0dcfc7a19d5310e44e004c144c23e"/><dir name="Page"><file name="Observer.php" hash="919273f6bc58231f63adec92e7a01824"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Productattributes.php" hash="398b6fb87a75d661c19ecc30dd7e39af"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="8b98dee82241e0b69661bf4699cba334"/><file name="cache.xml" hash="1b6658073a8126cd655cb18109559f49"/><file name="config.xml" hash="fd0c1e2b383a9cc5801707f4a0db57d7"/><file name="system.xml" hash="c11c84c7ca24fec850ac87c87791fb03"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="triggeredmessaging"><file name="digital_data_layer.phtml" hash="d3351778bc5f00c57a19c752865ff319"/><file name="digital_data_layer_after_content.phtml" hash="c28cb1ee3d5cfd761ca7aeb6dae9df20"/></dir></dir><dir name="layout"><dir name="triggeredmessaging"><file name="digital_data_layer.xml" hash="3c58b9faec1d9c63e1fb0a3fcc35a2d8"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="TriggeredMessaging_DigitalDataLayer.xml" hash="cfc3b1bff54f3e1f224f120e536bc411"/></dir></target></contents>
35
  <compatible/>
36
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
37
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>W3CDigitalDataLayerByTriggeredMessaging</name>
4
+ <version>0.3.8</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/apachepl.php">Apache Software License v2</license>
7
  <channel>community</channel>
29
  - Minimum prices of grouped and bundled products can be extracted.&#xD;
30
  - Output of debug data can now be controlled through admin configuration panel.</notes>
31
  <authors><author><name>Muhammed Miah</name><user>momiah1234</user><email>muhammed.miah@triggeredmessaging.com</email></author><author><name>Triggered Messaging</name><user>tmsdemo</user><email>demostore@triggeredmessaging.com</email></author><author><name>Mike Austin</name><user>tmsdemo</user><email>dev@triggeredmessaging.com</email></author></authors>
32
+ <date>2015-01-26</date>
33
+ <time>11:25:01</time>
34
+ <contents><target name="magecommunity"><dir name="TriggeredMessaging"><dir name="DigitalDataLayer"><dir name="Block"><file name="Ddl.php" hash="134766e2a49c3ecfbf03d1025dd41e8b"/></dir><dir name="Helper"><file name="Data.php" hash="fa334484ed3023bc029917dc4b63fdc7"/></dir><dir name="Model"><dir name="Container"><file name="Ddl.php" hash="cc9dcd8cf4e460a01c242ac675ce5634"/></dir><file name="Observer.php" hash="26e0dcfc7a19d5310e44e004c144c23e"/><dir name="Page"><file name="Observer.php" hash="dc7423c362365db44ddab59e507fc69f"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Productattributes.php" hash="9b10a36c5db2142737368a33bf949f5b"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="8b98dee82241e0b69661bf4699cba334"/><file name="cache.xml" hash="1b6658073a8126cd655cb18109559f49"/><file name="config.xml" hash="1a25d798b4941001e11536212abdbb98"/><file name="system.xml" hash="c11c84c7ca24fec850ac87c87791fb03"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="triggeredmessaging"><file name="digital_data_layer.phtml" hash="c50ea48f04f516eb9a5e171cb4cd7ec8"/><file name="digital_data_layer_after_content.phtml" hash="c28cb1ee3d5cfd761ca7aeb6dae9df20"/></dir></dir><dir name="layout"><dir name="triggeredmessaging"><file name="digital_data_layer.xml" hash="3c58b9faec1d9c63e1fb0a3fcc35a2d8"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="TriggeredMessaging_DigitalDataLayer.xml" hash="cfc3b1bff54f3e1f224f120e536bc411"/></dir></target></contents>
35
  <compatible/>
36
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
37
  </package>