Version Notes
Support suppressing default Magento emails and instead triggering Iterable campaigns
Download this release
Release Info
Developer | Ilya Brin |
Extension | Iterable_Plugin |
Version | 1.5.0 |
Comparing to | |
See all releases |
Code changes from version 1.4.0 to 1.5.0
- app/code/community/Iterable/TrackOrderPlaced/.idea/.name +1 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/TrackOrderPlaced.iml +10 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/compiler.xml +23 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/copyright/profiles_settings.xml +3 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/encodings.xml +5 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/misc.xml +9 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/modules.xml +9 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/scopes/scope_settings.xml +5 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/vcs.xml +7 -0
- app/code/community/Iterable/TrackOrderPlaced/.idea/workspace.xml +487 -0
- app/code/community/Iterable/TrackOrderPlaced/Helper/Data.php +70 -8
- app/code/community/Iterable/TrackOrderPlaced/Model/Email/Template.php +74 -0
- app/code/community/Iterable/TrackOrderPlaced/Model/TrackingEventTypes.php +3 -1
- app/code/community/Iterable/TrackOrderPlaced/etc/config.xml +111 -102
- app/code/community/Iterable/TrackOrderPlaced/etc/system.xml +175 -24
- package.xml +5 -5
app/code/community/Iterable/TrackOrderPlaced/.idea/.name
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
TrackOrderPlaced
|
app/code/community/Iterable/TrackOrderPlaced/.idea/TrackOrderPlaced.iml
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<module type="JAVA_MODULE" version="4">
|
3 |
+
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
4 |
+
<exclude-output />
|
5 |
+
<content url="file://$MODULE_DIR$" />
|
6 |
+
<orderEntry type="inheritedJdk" />
|
7 |
+
<orderEntry type="sourceFolder" forTests="false" />
|
8 |
+
</component>
|
9 |
+
</module>
|
10 |
+
|
app/code/community/Iterable/TrackOrderPlaced/.idea/compiler.xml
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="CompilerConfiguration">
|
4 |
+
<option name="DEFAULT_COMPILER" value="Javac" />
|
5 |
+
<resourceExtensions />
|
6 |
+
<wildcardResourcePatterns>
|
7 |
+
<entry name="!?*.java" />
|
8 |
+
<entry name="!?*.form" />
|
9 |
+
<entry name="!?*.class" />
|
10 |
+
<entry name="!?*.groovy" />
|
11 |
+
<entry name="!?*.scala" />
|
12 |
+
<entry name="!?*.flex" />
|
13 |
+
<entry name="!?*.kt" />
|
14 |
+
<entry name="!?*.clj" />
|
15 |
+
</wildcardResourcePatterns>
|
16 |
+
<annotationProcessing>
|
17 |
+
<profile default="true" name="Default" enabled="false">
|
18 |
+
<processorPath useClasspath="true" />
|
19 |
+
</profile>
|
20 |
+
</annotationProcessing>
|
21 |
+
</component>
|
22 |
+
</project>
|
23 |
+
|
app/code/community/Iterable/TrackOrderPlaced/.idea/copyright/profiles_settings.xml
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<component name="CopyrightManager">
|
2 |
+
<settings default="" />
|
3 |
+
</component>
|
app/code/community/Iterable/TrackOrderPlaced/.idea/encodings.xml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
|
4 |
+
</project>
|
5 |
+
|
app/code/community/Iterable/TrackOrderPlaced/.idea/misc.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="EntryPointsManager">
|
4 |
+
<entry_points version="2.0" />
|
5 |
+
</component>
|
6 |
+
<component name="IdProvider" IDEtalkID="2225450A8AB692B5D42C9AD2C0B1DCF1" />
|
7 |
+
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" />
|
8 |
+
</project>
|
9 |
+
|
app/code/community/Iterable/TrackOrderPlaced/.idea/modules.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="ProjectModuleManager">
|
4 |
+
<modules>
|
5 |
+
<module fileurl="file://$PROJECT_DIR$/.idea/TrackOrderPlaced.iml" filepath="$PROJECT_DIR$/.idea/TrackOrderPlaced.iml" />
|
6 |
+
</modules>
|
7 |
+
</component>
|
8 |
+
</project>
|
9 |
+
|
app/code/community/Iterable/TrackOrderPlaced/.idea/scopes/scope_settings.xml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<component name="DependencyValidationManager">
|
2 |
+
<state>
|
3 |
+
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
|
4 |
+
</state>
|
5 |
+
</component>
|
app/code/community/Iterable/TrackOrderPlaced/.idea/vcs.xml
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="VcsDirectoryMappings">
|
4 |
+
<mapping directory="" vcs="" />
|
5 |
+
</component>
|
6 |
+
</project>
|
7 |
+
|
app/code/community/Iterable/TrackOrderPlaced/.idea/workspace.xml
ADDED
@@ -0,0 +1,487 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="ChangeListManager">
|
4 |
+
<list default="true" id="ff6c11e8-c5e8-4b87-becd-37566b6047b1" name="Default" comment="" />
|
5 |
+
<ignored path="TrackOrderPlaced.iws" />
|
6 |
+
<ignored path=".idea/workspace.xml" />
|
7 |
+
<option name="TRACKING_ENABLED" value="true" />
|
8 |
+
<option name="SHOW_DIALOG" value="false" />
|
9 |
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
10 |
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
11 |
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
12 |
+
</component>
|
13 |
+
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
14 |
+
<component name="CreatePatchCommitExecutor">
|
15 |
+
<option name="PATCH_PATH" value="" />
|
16 |
+
</component>
|
17 |
+
<component name="DaemonCodeAnalyzer">
|
18 |
+
<disable_hints />
|
19 |
+
</component>
|
20 |
+
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
21 |
+
<component name="FavoritesManager">
|
22 |
+
<favorites_list name="TrackOrderPlaced" />
|
23 |
+
</component>
|
24 |
+
<component name="FileEditorManager">
|
25 |
+
<leaf>
|
26 |
+
<file leaf-file-name="config.xml" pinned="false" current="false" current-in-tab="false">
|
27 |
+
<entry file="file://$PROJECT_DIR$/etc/config.xml">
|
28 |
+
<provider selected="true" editor-type-id="text-editor">
|
29 |
+
<state vertical-scroll-proportion="-16.153847" vertical-offset="2250" max-vertical-offset="3375">
|
30 |
+
<caret line="178" column="109" selection-start-line="178" selection-start-column="109" selection-end-line="178" selection-end-column="109" />
|
31 |
+
<folding />
|
32 |
+
</state>
|
33 |
+
</provider>
|
34 |
+
</entry>
|
35 |
+
</file>
|
36 |
+
<file leaf-file-name="system.xml" pinned="false" current="false" current-in-tab="false">
|
37 |
+
<entry file="file://$PROJECT_DIR$/etc/system.xml">
|
38 |
+
<provider selected="true" editor-type-id="text-editor">
|
39 |
+
<state vertical-scroll-proportion="0.0" vertical-offset="2265" max-vertical-offset="3450">
|
40 |
+
<caret line="194" column="41" selection-start-line="194" selection-start-column="41" selection-end-line="194" selection-end-column="41" />
|
41 |
+
<folding />
|
42 |
+
</state>
|
43 |
+
</provider>
|
44 |
+
</entry>
|
45 |
+
</file>
|
46 |
+
<file leaf-file-name="Data.php" pinned="false" current="true" current-in-tab="true">
|
47 |
+
<entry file="file://$PROJECT_DIR$/Helper/Data.php">
|
48 |
+
<provider selected="true" editor-type-id="text-editor">
|
49 |
+
<state vertical-scroll-proportion="0.12475248" vertical-offset="1134" max-vertical-offset="3720">
|
50 |
+
<caret line="83" column="18" selection-start-line="83" selection-start-column="5" selection-end-line="83" selection-end-column="5" />
|
51 |
+
<folding />
|
52 |
+
</state>
|
53 |
+
</provider>
|
54 |
+
</entry>
|
55 |
+
</file>
|
56 |
+
<file leaf-file-name="TrackingEventTypes.php" pinned="false" current="false" current-in-tab="false">
|
57 |
+
<entry file="file://$PROJECT_DIR$/Model/TrackingEventTypes.php">
|
58 |
+
<provider selected="true" editor-type-id="text-editor">
|
59 |
+
<state vertical-scroll-proportion="-10.625" vertical-offset="30" max-vertical-offset="555">
|
60 |
+
<caret line="19" column="57" selection-start-line="19" selection-start-column="57" selection-end-line="19" selection-end-column="57" />
|
61 |
+
<folding />
|
62 |
+
</state>
|
63 |
+
</provider>
|
64 |
+
</entry>
|
65 |
+
</file>
|
66 |
+
<file leaf-file-name="Observer.php" pinned="false" current="false" current-in-tab="false">
|
67 |
+
<entry file="file://$PROJECT_DIR$/Model/Observer.php">
|
68 |
+
<provider selected="true" editor-type-id="text-editor">
|
69 |
+
<state vertical-scroll-proportion="-5.5735292" vertical-offset="2921" max-vertical-offset="5415">
|
70 |
+
<caret line="220" column="30" selection-start-line="220" selection-start-column="10" selection-end-line="220" selection-end-column="10" />
|
71 |
+
<folding />
|
72 |
+
</state>
|
73 |
+
</provider>
|
74 |
+
</entry>
|
75 |
+
</file>
|
76 |
+
</leaf>
|
77 |
+
</component>
|
78 |
+
<component name="FindManager">
|
79 |
+
<FindUsagesManager>
|
80 |
+
<setting name="OPEN_NEW_TAB" value="true" />
|
81 |
+
</FindUsagesManager>
|
82 |
+
</component>
|
83 |
+
<component name="IdeDocumentHistory">
|
84 |
+
<option name="changedFiles">
|
85 |
+
<list>
|
86 |
+
<option value="$USER_HOME$/Sites/magento/app/code/core/Mage/Core/Model/Email/Template/Mailer.php" />
|
87 |
+
<option value="$USER_HOME$/Desktop/processNewsletter.php" />
|
88 |
+
<option value="$PROJECT_DIR$/Model/TrackingEventTypes.php" />
|
89 |
+
<option value="$PROJECT_DIR$/etc/config.xml" />
|
90 |
+
<option value="$PROJECT_DIR$/etc/system.xml" />
|
91 |
+
<option value="$PROJECT_DIR$/Model/Email/Template.php" />
|
92 |
+
<option value="$PROJECT_DIR$/Helper/Data.php" />
|
93 |
+
</list>
|
94 |
+
</option>
|
95 |
+
</component>
|
96 |
+
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
|
97 |
+
<component name="ProjectFrameBounds">
|
98 |
+
<option name="y" value="22" />
|
99 |
+
<option name="width" value="1536" />
|
100 |
+
<option name="height" value="1178" />
|
101 |
+
</component>
|
102 |
+
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
103 |
+
<OptionsSetting value="true" id="Add" />
|
104 |
+
<OptionsSetting value="true" id="Remove" />
|
105 |
+
<OptionsSetting value="true" id="Checkout" />
|
106 |
+
<OptionsSetting value="true" id="Update" />
|
107 |
+
<OptionsSetting value="true" id="Status" />
|
108 |
+
<OptionsSetting value="true" id="Edit" />
|
109 |
+
<ConfirmationsSetting value="0" id="Add" />
|
110 |
+
<ConfirmationsSetting value="0" id="Remove" />
|
111 |
+
</component>
|
112 |
+
<component name="ProjectReloadState">
|
113 |
+
<option name="STATE" value="0" />
|
114 |
+
</component>
|
115 |
+
<component name="ProjectView">
|
116 |
+
<navigator currentView="ProjectPane" proportions="" version="1">
|
117 |
+
<flattenPackages />
|
118 |
+
<showMembers />
|
119 |
+
<showModules />
|
120 |
+
<showLibraryContents />
|
121 |
+
<hideEmptyPackages />
|
122 |
+
<abbreviatePackageNames />
|
123 |
+
<autoscrollToSource />
|
124 |
+
<autoscrollFromSource />
|
125 |
+
<sortByType />
|
126 |
+
</navigator>
|
127 |
+
<panes>
|
128 |
+
<pane id="Scope" />
|
129 |
+
<pane id="ProjectPane">
|
130 |
+
<subPane>
|
131 |
+
<PATH>
|
132 |
+
<PATH_ELEMENT>
|
133 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
134 |
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
135 |
+
</PATH_ELEMENT>
|
136 |
+
</PATH>
|
137 |
+
<PATH>
|
138 |
+
<PATH_ELEMENT>
|
139 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
140 |
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
141 |
+
</PATH_ELEMENT>
|
142 |
+
<PATH_ELEMENT>
|
143 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
144 |
+
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
|
145 |
+
</PATH_ELEMENT>
|
146 |
+
<PATH_ELEMENT>
|
147 |
+
<option name="myItemId" value="Model" />
|
148 |
+
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
|
149 |
+
</PATH_ELEMENT>
|
150 |
+
</PATH>
|
151 |
+
<PATH>
|
152 |
+
<PATH_ELEMENT>
|
153 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
154 |
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
155 |
+
</PATH_ELEMENT>
|
156 |
+
<PATH_ELEMENT>
|
157 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
158 |
+
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
|
159 |
+
</PATH_ELEMENT>
|
160 |
+
<PATH_ELEMENT>
|
161 |
+
<option name="myItemId" value="Helper" />
|
162 |
+
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
|
163 |
+
</PATH_ELEMENT>
|
164 |
+
</PATH>
|
165 |
+
<PATH>
|
166 |
+
<PATH_ELEMENT>
|
167 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
168 |
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
169 |
+
</PATH_ELEMENT>
|
170 |
+
<PATH_ELEMENT>
|
171 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
172 |
+
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
|
173 |
+
</PATH_ELEMENT>
|
174 |
+
<PATH_ELEMENT>
|
175 |
+
<option name="myItemId" value="etc" />
|
176 |
+
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
|
177 |
+
</PATH_ELEMENT>
|
178 |
+
</PATH>
|
179 |
+
<PATH>
|
180 |
+
<PATH_ELEMENT>
|
181 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
182 |
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
183 |
+
</PATH_ELEMENT>
|
184 |
+
<PATH_ELEMENT>
|
185 |
+
<option name="myItemId" value="TrackOrderPlaced" />
|
186 |
+
<option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
|
187 |
+
</PATH_ELEMENT>
|
188 |
+
</PATH>
|
189 |
+
</subPane>
|
190 |
+
</pane>
|
191 |
+
<pane id="PackagesPane" />
|
192 |
+
</panes>
|
193 |
+
</component>
|
194 |
+
<component name="PropertiesComponent">
|
195 |
+
<property name="GoToClass.includeLibraries" value="false" />
|
196 |
+
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
|
197 |
+
<property name="GoToFile.includeJavaFiles" value="false" />
|
198 |
+
<property name="MemberChooser.sorted" value="false" />
|
199 |
+
<property name="MemberChooser.showClasses" value="true" />
|
200 |
+
<property name="MemberChooser.copyJavadoc" value="false" />
|
201 |
+
<property name="WebServerToolWindowFactoryState" value="false" />
|
202 |
+
<property name="LayoutCode.rearrangeEntriesXML" value="false" />
|
203 |
+
</component>
|
204 |
+
<component name="RunManager">
|
205 |
+
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
|
206 |
+
<module name="" />
|
207 |
+
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
|
208 |
+
<option name="PROGRAM_PARAMETERS" />
|
209 |
+
<method />
|
210 |
+
</configuration>
|
211 |
+
<configuration default="true" type="Remote" factoryName="Remote">
|
212 |
+
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
213 |
+
<option name="SERVER_MODE" value="false" />
|
214 |
+
<option name="SHMEM_ADDRESS" value="javadebug" />
|
215 |
+
<option name="HOST" value="localhost" />
|
216 |
+
<option name="PORT" value="5005" />
|
217 |
+
<method />
|
218 |
+
</configuration>
|
219 |
+
<configuration default="true" type="TestNG" factoryName="TestNG">
|
220 |
+
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
221 |
+
<module name="" />
|
222 |
+
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
223 |
+
<option name="ALTERNATIVE_JRE_PATH" />
|
224 |
+
<option name="SUITE_NAME" />
|
225 |
+
<option name="PACKAGE_NAME" />
|
226 |
+
<option name="MAIN_CLASS_NAME" />
|
227 |
+
<option name="METHOD_NAME" />
|
228 |
+
<option name="GROUP_NAME" />
|
229 |
+
<option name="TEST_OBJECT" value="CLASS" />
|
230 |
+
<option name="VM_PARAMETERS" value="-ea" />
|
231 |
+
<option name="PARAMETERS" />
|
232 |
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
233 |
+
<option name="OUTPUT_DIRECTORY" />
|
234 |
+
<option name="ANNOTATION_TYPE" />
|
235 |
+
<option name="ENV_VARIABLES" />
|
236 |
+
<option name="PASS_PARENT_ENVS" value="true" />
|
237 |
+
<option name="TEST_SEARCH_SCOPE">
|
238 |
+
<value defaultName="moduleWithDependencies" />
|
239 |
+
</option>
|
240 |
+
<option name="USE_DEFAULT_REPORTERS" value="false" />
|
241 |
+
<option name="PROPERTIES_FILE" />
|
242 |
+
<envs />
|
243 |
+
<properties />
|
244 |
+
<listeners />
|
245 |
+
<method />
|
246 |
+
</configuration>
|
247 |
+
<configuration default="true" type="Applet" factoryName="Applet">
|
248 |
+
<module name="" />
|
249 |
+
<option name="MAIN_CLASS_NAME" />
|
250 |
+
<option name="HTML_FILE_NAME" />
|
251 |
+
<option name="HTML_USED" value="false" />
|
252 |
+
<option name="WIDTH" value="400" />
|
253 |
+
<option name="HEIGHT" value="300" />
|
254 |
+
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
|
255 |
+
<option name="VM_PARAMETERS" />
|
256 |
+
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
257 |
+
<option name="ALTERNATIVE_JRE_PATH" />
|
258 |
+
<method />
|
259 |
+
</configuration>
|
260 |
+
<configuration default="true" type="Application" factoryName="Application">
|
261 |
+
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
262 |
+
<option name="MAIN_CLASS_NAME" />
|
263 |
+
<option name="VM_PARAMETERS" />
|
264 |
+
<option name="PROGRAM_PARAMETERS" />
|
265 |
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
266 |
+
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
267 |
+
<option name="ALTERNATIVE_JRE_PATH" />
|
268 |
+
<option name="ENABLE_SWING_INSPECTOR" value="false" />
|
269 |
+
<option name="ENV_VARIABLES" />
|
270 |
+
<option name="PASS_PARENT_ENVS" value="true" />
|
271 |
+
<module name="" />
|
272 |
+
<envs />
|
273 |
+
<method />
|
274 |
+
</configuration>
|
275 |
+
<configuration default="true" type="JUnit" factoryName="JUnit">
|
276 |
+
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
277 |
+
<module name="" />
|
278 |
+
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
279 |
+
<option name="ALTERNATIVE_JRE_PATH" />
|
280 |
+
<option name="PACKAGE_NAME" />
|
281 |
+
<option name="MAIN_CLASS_NAME" />
|
282 |
+
<option name="METHOD_NAME" />
|
283 |
+
<option name="TEST_OBJECT" value="class" />
|
284 |
+
<option name="VM_PARAMETERS" value="-ea" />
|
285 |
+
<option name="PARAMETERS" />
|
286 |
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
287 |
+
<option name="ENV_VARIABLES" />
|
288 |
+
<option name="PASS_PARENT_ENVS" value="true" />
|
289 |
+
<option name="TEST_SEARCH_SCOPE">
|
290 |
+
<value defaultName="moduleWithDependencies" />
|
291 |
+
</option>
|
292 |
+
<envs />
|
293 |
+
<patterns />
|
294 |
+
<method />
|
295 |
+
</configuration>
|
296 |
+
<list size="0" />
|
297 |
+
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
298 |
+
<Host>localhost</Host>
|
299 |
+
<Port>5050</Port>
|
300 |
+
</configuration>
|
301 |
+
</component>
|
302 |
+
<component name="ShelveChangesManager" show_recycled="false" />
|
303 |
+
<component name="TaskManager">
|
304 |
+
<task active="true" id="Default" summary="Default task">
|
305 |
+
<changelist id="ff6c11e8-c5e8-4b87-becd-37566b6047b1" name="Default" comment="" />
|
306 |
+
<created>1407792782534</created>
|
307 |
+
<updated>1407792782534</updated>
|
308 |
+
<workItem from="1407792782541" duration="65000" />
|
309 |
+
<workItem from="1408493733812" duration="30642000" />
|
310 |
+
</task>
|
311 |
+
<servers />
|
312 |
+
</component>
|
313 |
+
<component name="TimeTrackingManager">
|
314 |
+
<option name="totallyTimeSpent" value="30707000" />
|
315 |
+
</component>
|
316 |
+
<component name="ToolWindowManager">
|
317 |
+
<frame x="0" y="22" width="1536" height="1178" extended-state="0" />
|
318 |
+
<editor active="true" />
|
319 |
+
<layout>
|
320 |
+
<window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
321 |
+
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
322 |
+
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
323 |
+
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
324 |
+
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
325 |
+
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
326 |
+
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
327 |
+
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
328 |
+
<window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
329 |
+
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
|
330 |
+
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
|
331 |
+
<window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
332 |
+
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
333 |
+
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
334 |
+
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
|
335 |
+
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
336 |
+
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
337 |
+
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
338 |
+
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32931727" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
339 |
+
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32930514" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
340 |
+
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
341 |
+
</layout>
|
342 |
+
</component>
|
343 |
+
<component name="Vcs.Log.UiProperties">
|
344 |
+
<option name="RECENTLY_FILTERED_USER_GROUPS">
|
345 |
+
<collection />
|
346 |
+
</option>
|
347 |
+
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
|
348 |
+
<collection />
|
349 |
+
</option>
|
350 |
+
</component>
|
351 |
+
<component name="VcsContentAnnotationSettings">
|
352 |
+
<option name="myLimit" value="2678400000" />
|
353 |
+
</component>
|
354 |
+
<component name="VcsManagerConfiguration">
|
355 |
+
<option name="myTodoPanelSettings">
|
356 |
+
<TodoPanelSettings />
|
357 |
+
</option>
|
358 |
+
</component>
|
359 |
+
<component name="XDebuggerManager">
|
360 |
+
<breakpoint-manager />
|
361 |
+
</component>
|
362 |
+
<component name="editorHistoryManager">
|
363 |
+
<entry file="file://$PROJECT_DIR$/etc/config.xml">
|
364 |
+
<provider selected="true" editor-type-id="text-editor">
|
365 |
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3240">
|
366 |
+
<caret line="94" column="25" selection-start-line="94" selection-start-column="23" selection-end-line="94" selection-end-column="25" />
|
367 |
+
<folding />
|
368 |
+
</state>
|
369 |
+
</provider>
|
370 |
+
</entry>
|
371 |
+
<entry file="file://$PROJECT_DIR$/etc/system.xml">
|
372 |
+
<provider selected="true" editor-type-id="text-editor">
|
373 |
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1185">
|
374 |
+
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
375 |
+
<folding />
|
376 |
+
</state>
|
377 |
+
</provider>
|
378 |
+
</entry>
|
379 |
+
<entry file="file://$PROJECT_DIR$/Helper/Data.php">
|
380 |
+
<provider selected="true" editor-type-id="text-editor">
|
381 |
+
<state vertical-scroll-proportion="0.0" vertical-offset="285" max-vertical-offset="2685">
|
382 |
+
<caret line="19" column="48" selection-start-line="19" selection-start-column="3" selection-end-line="19" selection-end-column="3" />
|
383 |
+
<folding />
|
384 |
+
</state>
|
385 |
+
</provider>
|
386 |
+
</entry>
|
387 |
+
<entry file="file://$PROJECT_DIR$/Model/Observer.php">
|
388 |
+
<provider selected="true" editor-type-id="text-editor">
|
389 |
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="5355">
|
390 |
+
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
391 |
+
<folding />
|
392 |
+
</state>
|
393 |
+
</provider>
|
394 |
+
</entry>
|
395 |
+
<entry file="file://$PROJECT_DIR$/../../../../../../tunnels.sh">
|
396 |
+
<provider selected="true" editor-type-id="text-editor">
|
397 |
+
<state vertical-scroll-proportion="0.1534225" vertical-offset="0" max-vertical-offset="1271">
|
398 |
+
<caret line="13" column="84" selection-start-line="13" selection-start-column="75" selection-end-line="13" selection-end-column="75" />
|
399 |
+
<folding />
|
400 |
+
</state>
|
401 |
+
</provider>
|
402 |
+
</entry>
|
403 |
+
<entry file="file://$USER_HOME$/Desktop/processNewsletter.php">
|
404 |
+
<provider selected="true" editor-type-id="text-editor">
|
405 |
+
<state vertical-scroll-proportion="0.21814671" vertical-offset="2279" max-vertical-offset="3390">
|
406 |
+
<caret line="94" column="58" selection-start-line="94" selection-start-column="1" selection-end-line="94" selection-end-column="1" />
|
407 |
+
<folding>
|
408 |
+
<marker date="1408747780000" expanded="true" signature="-1:-1" placeholder="INSERT INTO ..." />
|
409 |
+
</folding>
|
410 |
+
</state>
|
411 |
+
</provider>
|
412 |
+
</entry>
|
413 |
+
<entry file="jar://$APPLICATION_PLUGINS_DIR$/php/lib/php.jar!/com/jetbrains/php/lang/psi/stubs/data/standard_8.php">
|
414 |
+
<provider selected="true" editor-type-id="text-editor">
|
415 |
+
<state vertical-scroll-proportion="0.33962265" vertical-offset="10293" max-vertical-offset="16530">
|
416 |
+
<caret line="715" column="9" selection-start-line="715" selection-start-column="9" selection-end-line="715" selection-end-column="9" />
|
417 |
+
<folding />
|
418 |
+
</state>
|
419 |
+
</provider>
|
420 |
+
</entry>
|
421 |
+
<entry file="file://$PROJECT_DIR$/etc/config.xml">
|
422 |
+
<provider selected="true" editor-type-id="text-editor">
|
423 |
+
<state vertical-scroll-proportion="-16.153847" vertical-offset="2250" max-vertical-offset="3375">
|
424 |
+
<caret line="178" column="109" selection-start-line="178" selection-start-column="109" selection-end-line="178" selection-end-column="109" />
|
425 |
+
<folding />
|
426 |
+
</state>
|
427 |
+
</provider>
|
428 |
+
</entry>
|
429 |
+
<entry file="file://$PROJECT_DIR$/Model/TrackingEventTypes.php">
|
430 |
+
<provider selected="true" editor-type-id="text-editor">
|
431 |
+
<state vertical-scroll-proportion="-10.625" vertical-offset="30" max-vertical-offset="555">
|
432 |
+
<caret line="19" column="57" selection-start-line="19" selection-start-column="57" selection-end-line="19" selection-end-column="57" />
|
433 |
+
<folding />
|
434 |
+
</state>
|
435 |
+
</provider>
|
436 |
+
</entry>
|
437 |
+
<entry file="file://$PROJECT_DIR$/Model/Observer.php">
|
438 |
+
<provider selected="true" editor-type-id="text-editor">
|
439 |
+
<state vertical-scroll-proportion="-5.5735292" vertical-offset="2921" max-vertical-offset="5415">
|
440 |
+
<caret line="220" column="30" selection-start-line="220" selection-start-column="10" selection-end-line="220" selection-end-column="10" />
|
441 |
+
<folding />
|
442 |
+
</state>
|
443 |
+
</provider>
|
444 |
+
</entry>
|
445 |
+
<entry file="file://$USER_HOME$/Sites/magento/app/code/core/Mage/Core/Model/Store.php">
|
446 |
+
<provider selected="true" editor-type-id="text-editor">
|
447 |
+
<state vertical-scroll-proportion="-4.0250964" vertical-offset="4665" max-vertical-offset="18630">
|
448 |
+
<caret line="56" column="91" selection-start-line="56" selection-start-column="7" selection-end-line="56" selection-end-column="7" />
|
449 |
+
<folding />
|
450 |
+
</state>
|
451 |
+
</provider>
|
452 |
+
</entry>
|
453 |
+
<entry file="file://$PROJECT_DIR$/etc/system.xml">
|
454 |
+
<provider selected="true" editor-type-id="text-editor">
|
455 |
+
<state vertical-scroll-proportion="0.0" vertical-offset="2265" max-vertical-offset="3450">
|
456 |
+
<caret line="194" column="41" selection-start-line="194" selection-start-column="41" selection-end-line="194" selection-end-column="41" />
|
457 |
+
<folding />
|
458 |
+
</state>
|
459 |
+
</provider>
|
460 |
+
</entry>
|
461 |
+
<entry file="file://$USER_HOME$/Sites/magento/app/code/core/Mage/Core/Model/Email/Template.php">
|
462 |
+
<provider selected="true" editor-type-id="text-editor">
|
463 |
+
<state vertical-scroll-proportion="0.33333334" vertical-offset="3751" max-vertical-offset="9255">
|
464 |
+
<caret line="295" column="32" selection-start-line="295" selection-start-column="20" selection-end-line="295" selection-end-column="32" />
|
465 |
+
<folding />
|
466 |
+
</state>
|
467 |
+
</provider>
|
468 |
+
</entry>
|
469 |
+
<entry file="file://$USER_HOME$/Sites/magento/app/code/core/Mage/Core/Model/Email/Template/Mailer.php">
|
470 |
+
<provider selected="true" editor-type-id="text-editor">
|
471 |
+
<state vertical-scroll-proportion="0.34942085" vertical-offset="253" max-vertical-offset="2250">
|
472 |
+
<caret line="64" column="47" selection-start-line="64" selection-start-column="47" selection-end-line="64" selection-end-column="47" />
|
473 |
+
<folding />
|
474 |
+
</state>
|
475 |
+
</provider>
|
476 |
+
</entry>
|
477 |
+
<entry file="file://$PROJECT_DIR$/Helper/Data.php">
|
478 |
+
<provider selected="true" editor-type-id="text-editor">
|
479 |
+
<state vertical-scroll-proportion="0.12475248" vertical-offset="1134" max-vertical-offset="3720">
|
480 |
+
<caret line="83" column="18" selection-start-line="83" selection-start-column="5" selection-end-line="83" selection-end-column="5" />
|
481 |
+
<folding />
|
482 |
+
</state>
|
483 |
+
</provider>
|
484 |
+
</entry>
|
485 |
+
</component>
|
486 |
+
</project>
|
487 |
+
|
app/code/community/Iterable/TrackOrderPlaced/Helper/Data.php
CHANGED
@@ -5,6 +5,55 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
5 |
const XML_PATH_ITERABLE_API_KEY = 'api_options/api_key_options/api_key';
|
6 |
const XML_PATH_ENABLED_EVENTS = 'advanced_options/tracking_options/enabled_events';
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
private function getDecodedMagentoApiToken() {
|
9 |
$magentoApiKey = Mage::getStoreConfig(self::XML_PATH_ITERABLE_API_KEY);
|
10 |
return json_decode(base64_decode($magentoApiKey));
|
@@ -38,6 +87,7 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
38 |
$eventsToTrack = Mage::getStoreConfig(self::XML_PATH_ENABLED_EVENTS);
|
39 |
$eventsToTrack = explode(",", $eventsToTrack);
|
40 |
if (!in_array($event, $eventsToTrack)) {
|
|
|
41 |
// TODO - maybe run this before gathering data about the cart
|
42 |
return;
|
43 |
}
|
@@ -46,6 +96,7 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
46 |
return;
|
47 |
}
|
48 |
$url = "https://api.iterable.com/{$endpoint}?api_key={$apiKey}";
|
|
|
49 |
try {
|
50 |
$client = new Zend_Http_Client($url);
|
51 |
} catch(Exception $e) {
|
@@ -62,8 +113,10 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
62 |
if ($status != 200) {
|
63 |
Mage::log("Iterable Tracker: Unable to track event at {$endpoint} with params {$json}; got status {$status} with body {$response->getBody()}");
|
64 |
}
|
|
|
65 |
} catch(Exception $e) {
|
66 |
Mage::log("Warning: unable to send event at {$endpoint} with params {$json} to Iterable ({$e->getMessage()})");
|
|
|
67 |
}
|
68 |
}
|
69 |
|
@@ -84,7 +137,7 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
84 |
);
|
85 |
$this->setCurrentIp($dataFields);
|
86 |
$params['dataFields'] = $dataFields;
|
87 |
-
$this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_USER, $endpoint, $params);
|
88 |
}
|
89 |
|
90 |
public function subscribeEmailToList($email, $listId, $dataFields=array(), $resubscribe=False) {
|
@@ -101,7 +154,7 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
101 |
if (!empty($dataFields)) {
|
102 |
$params['subscribers'][0]['dataFields'] = $dataFields;
|
103 |
}
|
104 |
-
$this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_NEWSLETTER_SUBSCRIBE, $endpoint, $params);
|
105 |
}
|
106 |
|
107 |
public function unsubscribeEmailFromList($email, $listId) {
|
@@ -115,10 +168,9 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
115 |
)
|
116 |
// 'campaignId' => iterableCid cookie?
|
117 |
);
|
118 |
-
$this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_NEWSLETTER_UNSUBSCRIBE, $endpoint, $params);
|
119 |
}
|
120 |
|
121 |
-
/*
|
122 |
public function track($event, $email, $dataFields=array()) {
|
123 |
$endpoint = '/api/events/track';
|
124 |
$params = array(
|
@@ -128,9 +180,8 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
128 |
if (!empty($dataFields)) {
|
129 |
$params['dataFields'] = $dataFields;
|
130 |
}
|
131 |
-
$this->callIterableApi($event, $endpoint, $params);
|
132 |
}
|
133 |
-
*/
|
134 |
|
135 |
public function updateCart($email, $items, $dataFields=array()) {
|
136 |
$endpoint = '/api/commerce/updateCart';
|
@@ -143,7 +194,7 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
143 |
if (!empty($dataFields)) {
|
144 |
$params['user']['dataFields'] = $dataFields;
|
145 |
}
|
146 |
-
$this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_CART_UPDATED, $endpoint, $params);
|
147 |
}
|
148 |
|
149 |
public function trackPurchase($email, $items, $total, $campaignId=NULL, $templateId=NULL, $dataFields=array(), $customerDataFields=array()) {
|
@@ -167,7 +218,18 @@ class Iterable_TrackOrderPlaced_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
167 |
if ($templateId != NULL) {
|
168 |
$params['templateId'] = $templateId;
|
169 |
}
|
170 |
-
$this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_ORDER, $endpoint, $params);
|
171 |
}
|
172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
}
|
5 |
const XML_PATH_ITERABLE_API_KEY = 'api_options/api_key_options/api_key';
|
6 |
const XML_PATH_ENABLED_EVENTS = 'advanced_options/tracking_options/enabled_events';
|
7 |
|
8 |
+
/** transactional email xml config */
|
9 |
+
|
10 |
+
// account created
|
11 |
+
const XML_PATH_TRANSACTIONAL_ACCOUNT_CREATED_ENABLED = 'transactional_email_options/account_created/is_enabled';
|
12 |
+
const XML_PATH_TRANSACTIONAL_ACCOUNT_CREATED_CAMPAIGN_ID = 'transactional_email_options/account_created/campaign_id';
|
13 |
+
const XML_PATH_TRANSACTIONAL_FORGOT_PASSWORD_ENABLED = 'transactional_email_options/forgot_password/is_enabled';
|
14 |
+
const XML_PATH_TRANSACTIONAL_FORGOT_PASSWORD_CAMPAIGN_ID = 'transactional_email_options/forgot_password/campaign_id';
|
15 |
+
const XML_PATH_TRANSACTIONAL_NEWSLETTER_SUBSCRIBE_ENABLED = 'transactional_email_options/newsletter_subscribe/is_enabled';
|
16 |
+
const XML_PATH_TRANSACTIONAL_NEWSLETTER_SUBSCRIBE_CAMPAIGN_ID = 'transactional_email_options/newsletter_subscribe/campaign_id';
|
17 |
+
const XML_PATH_TRANSACTIONAL_NEWSLETTER_UNSUBSCRIBE_ENABLED = 'transactional_email_options/newsletter_unsubscribe/is_enabled';
|
18 |
+
const XML_PATH_TRANSACTIONAL_NEWSLETTER_UNSUBSCRIBE_CAMPAIGN_ID = 'transactional_email_options/newsletter_unsubscribe/campaign_id';
|
19 |
+
|
20 |
+
// disabled section
|
21 |
+
const XML_PATH_TRANSACTIONAL_ORDER_CONFIRM_DISABLED = 'transactional_email_options/order_confirm/is_disabled';
|
22 |
+
|
23 |
+
/** end transactional email xml config */
|
24 |
+
|
25 |
+
/** @var array Map of templateName -> (enabled, campaignId) */
|
26 |
+
private static $EMAIL_TEMPLATE_NAMES_TO_TRANSACTIONAL_EMAIL_OPTIONS = array(
|
27 |
+
'customer_create_account_email_template' => array(
|
28 |
+
self::XML_PATH_TRANSACTIONAL_ACCOUNT_CREATED_ENABLED,
|
29 |
+
self::XML_PATH_TRANSACTIONAL_ACCOUNT_CREATED_CAMPAIGN_ID
|
30 |
+
),
|
31 |
+
'customer_password_forgot_email_template' => array(
|
32 |
+
self::XML_PATH_TRANSACTIONAL_FORGOT_PASSWORD_ENABLED,
|
33 |
+
self::XML_PATH_TRANSACTIONAL_FORGOT_PASSWORD_CAMPAIGN_ID
|
34 |
+
),
|
35 |
+
'newsletter_subscription_success_email_template' => array(
|
36 |
+
self::XML_PATH_TRANSACTIONAL_NEWSLETTER_SUBSCRIBE_ENABLED,
|
37 |
+
self::XML_PATH_TRANSACTIONAL_NEWSLETTER_SUBSCRIBE_CAMPAIGN_ID
|
38 |
+
),
|
39 |
+
'newsletter_subscription_un_email_template' => array(
|
40 |
+
self::XML_PATH_TRANSACTIONAL_NEWSLETTER_UNSUBSCRIBE_ENABLED,
|
41 |
+
self::XML_PATH_TRANSACTIONAL_NEWSLETTER_UNSUBSCRIBE_CAMPAIGN_ID
|
42 |
+
)
|
43 |
+
);
|
44 |
+
|
45 |
+
public static function getTransactionalEmailConfig() {
|
46 |
+
return self::$EMAIL_TEMPLATE_NAMES_TO_TRANSACTIONAL_EMAIL_OPTIONS;
|
47 |
+
}
|
48 |
+
|
49 |
+
private static $EMAIL_TEMPLATE_NAMES_TO_DISABLED_OPTIONS = array(
|
50 |
+
'sales_email_order_template' => self::XML_PATH_TRANSACTIONAL_ORDER_CONFIRM_DISABLED
|
51 |
+
);
|
52 |
+
|
53 |
+
public static function getDefaultEmailDisabledConfig() {
|
54 |
+
return self::$EMAIL_TEMPLATE_NAMES_TO_DISABLED_OPTIONS;
|
55 |
+
}
|
56 |
+
|
57 |
private function getDecodedMagentoApiToken() {
|
58 |
$magentoApiKey = Mage::getStoreConfig(self::XML_PATH_ITERABLE_API_KEY);
|
59 |
return json_decode(base64_decode($magentoApiKey));
|
87 |
$eventsToTrack = Mage::getStoreConfig(self::XML_PATH_ENABLED_EVENTS);
|
88 |
$eventsToTrack = explode(",", $eventsToTrack);
|
89 |
if (!in_array($event, $eventsToTrack)) {
|
90 |
+
Mage::log("Iterable: tracking disabled for event " . $event);
|
91 |
// TODO - maybe run this before gathering data about the cart
|
92 |
return;
|
93 |
}
|
96 |
return;
|
97 |
}
|
98 |
$url = "https://api.iterable.com/{$endpoint}?api_key={$apiKey}";
|
99 |
+
// $url = "http://localhost:9000{$endpoint}?api_key={$apiKey}";
|
100 |
try {
|
101 |
$client = new Zend_Http_Client($url);
|
102 |
} catch(Exception $e) {
|
113 |
if ($status != 200) {
|
114 |
Mage::log("Iterable Tracker: Unable to track event at {$endpoint} with params {$json}; got status {$status} with body {$response->getBody()}");
|
115 |
}
|
116 |
+
return $response;
|
117 |
} catch(Exception $e) {
|
118 |
Mage::log("Warning: unable to send event at {$endpoint} with params {$json} to Iterable ({$e->getMessage()})");
|
119 |
+
return null;
|
120 |
}
|
121 |
}
|
122 |
|
137 |
);
|
138 |
$this->setCurrentIp($dataFields);
|
139 |
$params['dataFields'] = $dataFields;
|
140 |
+
return $this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_USER, $endpoint, $params);
|
141 |
}
|
142 |
|
143 |
public function subscribeEmailToList($email, $listId, $dataFields=array(), $resubscribe=False) {
|
154 |
if (!empty($dataFields)) {
|
155 |
$params['subscribers'][0]['dataFields'] = $dataFields;
|
156 |
}
|
157 |
+
return $this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_NEWSLETTER_SUBSCRIBE, $endpoint, $params);
|
158 |
}
|
159 |
|
160 |
public function unsubscribeEmailFromList($email, $listId) {
|
168 |
)
|
169 |
// 'campaignId' => iterableCid cookie?
|
170 |
);
|
171 |
+
return $this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_NEWSLETTER_UNSUBSCRIBE, $endpoint, $params);
|
172 |
}
|
173 |
|
|
|
174 |
public function track($event, $email, $dataFields=array()) {
|
175 |
$endpoint = '/api/events/track';
|
176 |
$params = array(
|
180 |
if (!empty($dataFields)) {
|
181 |
$params['dataFields'] = $dataFields;
|
182 |
}
|
183 |
+
return $this->callIterableApi($event, $endpoint, $params);
|
184 |
}
|
|
|
185 |
|
186 |
public function updateCart($email, $items, $dataFields=array()) {
|
187 |
$endpoint = '/api/commerce/updateCart';
|
194 |
if (!empty($dataFields)) {
|
195 |
$params['user']['dataFields'] = $dataFields;
|
196 |
}
|
197 |
+
return $this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_CART_UPDATED, $endpoint, $params);
|
198 |
}
|
199 |
|
200 |
public function trackPurchase($email, $items, $total, $campaignId=NULL, $templateId=NULL, $dataFields=array(), $customerDataFields=array()) {
|
218 |
if ($templateId != NULL) {
|
219 |
$params['templateId'] = $templateId;
|
220 |
}
|
221 |
+
return $this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_ORDER, $endpoint, $params);
|
222 |
}
|
223 |
|
224 |
+
public function triggerCampaign($email, $campaignId, $dataFields=NULL) {
|
225 |
+
$endpoint = '/api/email/target';
|
226 |
+
$params = array(
|
227 |
+
'recipientEmail' => $email,
|
228 |
+
'campaignId' => $campaignId
|
229 |
+
);
|
230 |
+
if (! is_null($dataFields)) {
|
231 |
+
$params['dataFields'] = $dataFields;
|
232 |
+
}
|
233 |
+
return $this->callIterableApi(Iterable_TrackOrderPlaced_Model_TrackingEventTypes::EVENT_TYPE_TRIGGER_EMAIL, $endpoint, $params);
|
234 |
+
}
|
235 |
}
|
app/code/community/Iterable/TrackOrderPlaced/Model/Email/Template.php
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This class overwrites Magento's default send functionality by routing all
|
4 |
+
* emails through Iterable using the Send API call.
|
5 |
+
*
|
6 |
+
* @author Iterable
|
7 |
+
*/
|
8 |
+
class Iterable_TrackOrderPlaced_Model_Email_Template extends Mage_Core_Model_Email_Template {
|
9 |
+
|
10 |
+
private function getIterableCampaignIdForTemplateName($templateName) {
|
11 |
+
$transactionalEmailConfig = Mage::helper('trackorderplaced')->getTransactionalEmailConfig();
|
12 |
+
if (array_key_exists($templateName, $transactionalEmailConfig)) {
|
13 |
+
// if there's something for this template, check whether it's enabled and return the id if so
|
14 |
+
list($enabled_cfg, $iterable_campaign_id_cfg) = $transactionalEmailConfig[$templateName];
|
15 |
+
return Mage::getStoreConfig($enabled_cfg) ? intval(Mage::getStoreConfig($iterable_campaign_id_cfg)): null;
|
16 |
+
} else {
|
17 |
+
// if there's nothing for this template don't send through Iterable
|
18 |
+
return null;
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
private function isDefaultSendingDisabledForTemplateName($templateName) {
|
23 |
+
$disabledTemplateConfig = Mage::helper('trackorderplaced')->getDefaultEmailDisabledConfig();
|
24 |
+
return
|
25 |
+
array_key_exists($templateName, $disabledTemplateConfig) &&
|
26 |
+
intval(Mage::getStoreConfig($disabledTemplateConfig[$templateName]));
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Send mail to recipient
|
31 |
+
*
|
32 |
+
* @param array|string $email E-mail(s)
|
33 |
+
* @param array|string|null $name receiver name(s)
|
34 |
+
* @param array $variables template variables
|
35 |
+
* @return boolean
|
36 |
+
**/
|
37 |
+
public function send($email, $name = null, array $variables = array())
|
38 |
+
{
|
39 |
+
$helper = Mage::helper('trackorderplaced');
|
40 |
+
|
41 |
+
$template_name = $this->getId();
|
42 |
+
if ($this->isDefaultSendingDisabledForTemplateName($template_name)) {
|
43 |
+
// Mage::log("Suppressing default email for " . $template_name . " due to Iterable config");
|
44 |
+
return true;
|
45 |
+
}
|
46 |
+
$iterable_campaign_id = $this->getIterableCampaignIdForTemplateName($template_name);
|
47 |
+
|
48 |
+
if (empty($iterable_campaign_id)) {
|
49 |
+
// Mage::log("Not sending " . $template_name . " through Iterable");
|
50 |
+
return parent::send($email, $name, $variables);
|
51 |
+
}
|
52 |
+
|
53 |
+
// email and name can be either arrays or strings; we don't care about the name though
|
54 |
+
$emails = array_values((array)$email);
|
55 |
+
|
56 |
+
$anyFailures = false;
|
57 |
+
foreach ($emails as $email) {
|
58 |
+
try {
|
59 |
+
$response = $helper->triggerCampaign($email, $iterable_campaign_id);
|
60 |
+
if (is_null($response) || ($response->getStatus() != 200)) {
|
61 |
+
Mage::log("Unable to trigger Iterable email for user " . $email . " and campaign " . $iterable_campaign_id . "; sending default Magento email");
|
62 |
+
parent::send($email, null, $variables);
|
63 |
+
}
|
64 |
+
} catch (Exception $e) {
|
65 |
+
Mage::logException($e);
|
66 |
+
$anyFailures = true;
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
return ! $anyFailures;
|
71 |
+
}
|
72 |
+
|
73 |
+
}
|
74 |
+
?>
|
app/code/community/Iterable/TrackOrderPlaced/Model/TrackingEventTypes.php
CHANGED
@@ -8,6 +8,7 @@ class Iterable_TrackOrderPlaced_Model_TrackingEventTypes
|
|
8 |
const EVENT_TYPE_CART_UPDATED = 'cartUpdated';
|
9 |
const EVENT_TYPE_NEWSLETTER_SUBSCRIBE = 'newsletterSubscribe';
|
10 |
const EVENT_TYPE_NEWSLETTER_UNSUBSCRIBE = 'newsletterUnsubscribe';
|
|
|
11 |
|
12 |
/** @const */
|
13 |
private static $eventTypes = array(
|
@@ -15,7 +16,8 @@ class Iterable_TrackOrderPlaced_Model_TrackingEventTypes
|
|
15 |
self::EVENT_TYPE_USER => 'User',
|
16 |
self::EVENT_TYPE_CART_UPDATED => 'Cart Updated',
|
17 |
self::EVENT_TYPE_NEWSLETTER_SUBSCRIBE => 'Newsletter Subscribe',
|
18 |
-
self::EVENT_TYPE_NEWSLETTER_UNSUBSCRIBE => 'Newsletter Unsubscribe'
|
|
|
19 |
);
|
20 |
|
21 |
public function toOptionArray()
|
8 |
const EVENT_TYPE_CART_UPDATED = 'cartUpdated';
|
9 |
const EVENT_TYPE_NEWSLETTER_SUBSCRIBE = 'newsletterSubscribe';
|
10 |
const EVENT_TYPE_NEWSLETTER_UNSUBSCRIBE = 'newsletterUnsubscribe';
|
11 |
+
const EVENT_TYPE_TRIGGER_EMAIL = 'triggerEmail';
|
12 |
|
13 |
/** @const */
|
14 |
private static $eventTypes = array(
|
16 |
self::EVENT_TYPE_USER => 'User',
|
17 |
self::EVENT_TYPE_CART_UPDATED => 'Cart Updated',
|
18 |
self::EVENT_TYPE_NEWSLETTER_SUBSCRIBE => 'Newsletter Subscribe',
|
19 |
+
self::EVENT_TYPE_NEWSLETTER_UNSUBSCRIBE => 'Newsletter Unsubscribe',
|
20 |
+
self::EVENT_TYPE_TRIGGER_EMAIL => 'Trigger Email'
|
21 |
);
|
22 |
|
23 |
public function toOptionArray()
|
app/code/community/Iterable/TrackOrderPlaced/etc/config.xml
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
*/
|
8 |
-->
|
9 |
<!-- The root node for Magento module configuration -->
|
10 |
-
<config>
|
11 |
|
12 |
<!--
|
13 |
The module's node contains basic
|
@@ -28,21 +28,27 @@
|
|
28 |
<global>
|
29 |
|
30 |
<helpers>
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
<models>
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
<!-- Defining an event observer -->
|
43 |
<events>
|
44 |
<!-- The code of the event we want to observe -->
|
45 |
-
|
46 |
<!-- Defining an observer for this event -->
|
47 |
<observers>
|
48 |
<!--
|
@@ -60,41 +66,41 @@
|
|
60 |
<type>singleton</type>
|
61 |
</iterable_trackorderplaced>
|
62 |
</observers>
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
<iterable_trackaccountcreated>
|
67 |
<class>iterable_trackorderplaced/observer</class>
|
68 |
<method>customerSaveAfter</method>
|
69 |
<type>singleton</type>
|
70 |
</iterable_trackaccountcreated>
|
71 |
</observers>
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
checkout_cart_update_item_complete
|
96 |
-
|
97 |
-
|
98 |
<observers>
|
99 |
<iterable_trackaddtocart>
|
100 |
<class>iterable_trackorderplaced/observer</class>
|
@@ -103,76 +109,76 @@ checkout_cart_update_item_complete
|
|
103 |
</iterable_trackaddtocart>
|
104 |
</observers>
|
105 |
</checkout_cart_product_add_after>
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
<observers>
|
155 |
<iterable_tracknewslettersubscribe>
|
156 |
<class>iterable_trackorderplaced/observer</class>
|
157 |
<method>newsletterSubscriberSaveAfter</method>
|
158 |
-
|
159 |
-
|
160 |
</observers>
|
161 |
</newsletter_subscriber_save_after>
|
162 |
</events>
|
163 |
</global>
|
164 |
-
|
165 |
<default>
|
166 |
<api_options>
|
167 |
<api_key_options>
|
168 |
-
|
169 |
-
|
170 |
</api_options>
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
</default>
|
177 |
|
178 |
<adminhtml>
|
@@ -194,9 +200,12 @@ checkout_cart_update_item_complete
|
|
194 |
<api_options>
|
195 |
<title>Iterable API Module</title>
|
196 |
</api_options>
|
197 |
-
|
198 |
-
|
199 |
-
|
|
|
|
|
|
|
200 |
</children>
|
201 |
</config>
|
202 |
</children>
|
7 |
*/
|
8 |
-->
|
9 |
<!-- The root node for Magento module configuration -->
|
10 |
+
<config>
|
11 |
|
12 |
<!--
|
13 |
The module's node contains basic
|
28 |
<global>
|
29 |
|
30 |
<helpers>
|
31 |
+
<trackorderplaced>
|
32 |
+
<class>Iterable_TrackOrderPlaced_Helper</class>
|
33 |
+
</trackorderplaced>
|
34 |
+
</helpers>
|
35 |
+
|
36 |
<models>
|
37 |
+
<iterable_trackorderplaced>
|
38 |
+
<class>Iterable_TrackOrderPlaced_Model</class>
|
39 |
+
</iterable_trackorderplaced>
|
40 |
+
|
41 |
+
<core>
|
42 |
+
<rewrite>
|
43 |
+
<email_template>Iterable_TrackOrderPlaced_Model_Email_Template</email_template>
|
44 |
+
</rewrite>
|
45 |
+
</core>
|
46 |
+
</models>
|
47 |
+
|
48 |
<!-- Defining an event observer -->
|
49 |
<events>
|
50 |
<!-- The code of the event we want to observe -->
|
51 |
+
<sales_order_place_after>
|
52 |
<!-- Defining an observer for this event -->
|
53 |
<observers>
|
54 |
<!--
|
66 |
<type>singleton</type>
|
67 |
</iterable_trackorderplaced>
|
68 |
</observers>
|
69 |
+
</sales_order_place_after>
|
70 |
+
<customer_save_after>
|
71 |
+
<observers>
|
72 |
<iterable_trackaccountcreated>
|
73 |
<class>iterable_trackorderplaced/observer</class>
|
74 |
<method>customerSaveAfter</method>
|
75 |
<type>singleton</type>
|
76 |
</iterable_trackaccountcreated>
|
77 |
</observers>
|
78 |
+
</customer_save_after>
|
79 |
+
<!--
|
80 |
+
<customer_address_save_after>
|
81 |
+
<observers>
|
82 |
+
<iterable_trackaccountcreated>
|
83 |
+
<class>iterable_trackorderplaced/observer</class>
|
84 |
+
<method>customerSaveAfter</method>
|
85 |
+
<type>singleton</type>
|
86 |
+
</iterable_trackaccountcreated>
|
87 |
+
</observers>
|
88 |
+
</customer_address_save_after>
|
89 |
+
-->
|
90 |
+
<!-- tracks additions to the cart, but doesn't track changed quantities -->
|
91 |
+
<!--
|
92 |
+
<checkout_cart_add_product_complete>
|
93 |
+
<observers>
|
94 |
+
<iterable_trackaddtocart>
|
95 |
+
<class>iterable_trackorderplaced/observer</class>
|
96 |
+
<method>addToCart</method>
|
97 |
+
<type>singleton</type>
|
98 |
+
</iterable_trackaddtocart>
|
99 |
+
</observers>
|
100 |
+
</checkout_cart_add_product_complete>
|
101 |
+
checkout_cart_update_item_complete
|
102 |
+
-->
|
103 |
+
<checkout_cart_product_add_after>
|
104 |
<observers>
|
105 |
<iterable_trackaddtocart>
|
106 |
<class>iterable_trackorderplaced/observer</class>
|
109 |
</iterable_trackaddtocart>
|
110 |
</observers>
|
111 |
</checkout_cart_product_add_after>
|
112 |
+
<checkout_cart_product_update_after>
|
113 |
+
<observers>
|
114 |
+
<iterable_trackupdatecart>
|
115 |
+
<class>iterable_trackorderplaced/observer</class>
|
116 |
+
<method>checkoutCartProductUpdateAfter</method>
|
117 |
+
<type>singleton</type>
|
118 |
+
</iterable_trackupdatecart>
|
119 |
+
</observers>
|
120 |
+
</checkout_cart_product_update_after>
|
121 |
+
<checkout_cart_update_items_after>
|
122 |
+
<observers>
|
123 |
+
<iterable_trackupdatecart>
|
124 |
+
<class>iterable_trackorderplaced/observer</class>
|
125 |
+
<method>checkoutCartUpdateItemsAfter</method>
|
126 |
+
<type>singleton</type>
|
127 |
+
</iterable_trackupdatecart>
|
128 |
+
</observers>
|
129 |
+
</checkout_cart_update_items_after>
|
130 |
+
<!-- should use cart events instead of quote events, quote events don't get fired when quantity changes... however we still need the remove
|
131 |
+
<sales_quote_add_item>
|
132 |
+
<observers>
|
133 |
+
<iterable_trackupdatecart>
|
134 |
+
<class>iterable_trackorderplaced/observer</class>
|
135 |
+
<method>salesQuoteAddItem</method>
|
136 |
+
<type>singleton</type>
|
137 |
+
</iterable_trackupdatecart>
|
138 |
+
</observers>
|
139 |
+
</sales_quote_add_item>
|
140 |
+
-->
|
141 |
+
<sales_quote_save_before>
|
142 |
+
<observers>
|
143 |
+
<iterable_trackclearcart>
|
144 |
+
<class>iterable_trackorderplaced/observer</class>
|
145 |
+
<method>salesQuoteSaveBefore</method>
|
146 |
+
<type>singleton</type>
|
147 |
+
</iterable_trackclearcart>
|
148 |
+
</observers>
|
149 |
+
</sales_quote_save_before>
|
150 |
+
<sales_quote_remove_item>
|
151 |
+
<observers>
|
152 |
+
<iterable_trackupdatecart>
|
153 |
+
<class>iterable_trackorderplaced/observer</class>
|
154 |
+
<method>salesQuoteRemoveItem</method>
|
155 |
+
<type>singleton</type>
|
156 |
+
</iterable_trackupdatecart>
|
157 |
+
</observers>
|
158 |
+
</sales_quote_remove_item>
|
159 |
+
<newsletter_subscriber_save_after>
|
160 |
<observers>
|
161 |
<iterable_tracknewslettersubscribe>
|
162 |
<class>iterable_trackorderplaced/observer</class>
|
163 |
<method>newsletterSubscriberSaveAfter</method>
|
164 |
+
<type>singleton</type>
|
165 |
+
</iterable_tracknewslettersubscribe>
|
166 |
</observers>
|
167 |
</newsletter_subscriber_save_after>
|
168 |
</events>
|
169 |
</global>
|
170 |
+
|
171 |
<default>
|
172 |
<api_options>
|
173 |
<api_key_options>
|
174 |
+
<api_key>MAGENTO_API_KEY</api_key>
|
175 |
+
</api_key_options>
|
176 |
</api_options>
|
177 |
+
<advanced_options>
|
178 |
+
<tracking_options>
|
179 |
+
<enabled_events>order,user,cartUpdated,newsletterSubscribe,newsletterUnsubscribe,triggerEmail</enabled_events>
|
180 |
+
</tracking_options>
|
181 |
+
</advanced_options>
|
182 |
</default>
|
183 |
|
184 |
<adminhtml>
|
200 |
<api_options>
|
201 |
<title>Iterable API Module</title>
|
202 |
</api_options>
|
203 |
+
<transactional_email_options>
|
204 |
+
<title>Iterable Transactional Email Module</title>
|
205 |
+
</transactional_email_options>
|
206 |
+
<advanced_options>
|
207 |
+
<title>Iterable Advanced Module</title>
|
208 |
+
</advanced_options>
|
209 |
</children>
|
210 |
</config>
|
211 |
</children>
|
app/code/community/Iterable/TrackOrderPlaced/etc/system.xml
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
<class>iterable-section</class>
|
6 |
<sort_order>101</sort_order> <!-- General is 100, from app/code/core/Mage/Core/etc/system.xml -->
|
7 |
</iterableconfig>
|
8 |
-
</tabs>
|
9 |
<sections> <!-- each section defined here is a subcategory of a heading from tabs. EACH SECTION NEEDS AN ACL DEFINED IN CONFIG.XML -->
|
10 |
<api_options translate="label" module="trackorderplaced">
|
11 |
<label>API</label>
|
@@ -14,40 +14,191 @@
|
|
14 |
<sort_order>1000</sort_order>
|
15 |
<show_in_default>1</show_in_default>
|
16 |
<show_in_website>1</show_in_website>
|
17 |
-
<show_in_store>1</show_in_store>
|
18 |
<groups>
|
19 |
<api_key_options translate="label">
|
20 |
<label>API Key</label>
|
21 |
<frontend_type>text</frontend_type>
|
22 |
-
|
23 |
<sort_order>1</sort_order>
|
24 |
<show_in_default>1</show_in_default>
|
25 |
<show_in_website>1</show_in_website>
|
26 |
-
<show_in_store>1</show_in_store>
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
</api_key_options>
|
39 |
</groups>
|
40 |
</api_options>
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
<sort_order>1001</sort_order>
|
46 |
<show_in_default>1</show_in_default>
|
47 |
<show_in_website>1</show_in_website>
|
48 |
<show_in_store>1</show_in_store>
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
<label>Event Tracking</label>
|
52 |
<frontend_type>text</frontend_type>
|
53 |
<sort_order>2</sort_order>
|
@@ -67,7 +218,7 @@
|
|
67 |
</enabled_events>
|
68 |
</fields>
|
69 |
</tracking_options>
|
70 |
-
|
71 |
-
|
72 |
-
</sections>
|
73 |
</config>
|
5 |
<class>iterable-section</class>
|
6 |
<sort_order>101</sort_order> <!-- General is 100, from app/code/core/Mage/Core/etc/system.xml -->
|
7 |
</iterableconfig>
|
8 |
+
</tabs>
|
9 |
<sections> <!-- each section defined here is a subcategory of a heading from tabs. EACH SECTION NEEDS AN ACL DEFINED IN CONFIG.XML -->
|
10 |
<api_options translate="label" module="trackorderplaced">
|
11 |
<label>API</label>
|
14 |
<sort_order>1000</sort_order>
|
15 |
<show_in_default>1</show_in_default>
|
16 |
<show_in_website>1</show_in_website>
|
17 |
+
<show_in_store>1</show_in_store>
|
18 |
<groups>
|
19 |
<api_key_options translate="label">
|
20 |
<label>API Key</label>
|
21 |
<frontend_type>text</frontend_type>
|
22 |
+
<expanded>1</expanded>
|
23 |
<sort_order>1</sort_order>
|
24 |
<show_in_default>1</show_in_default>
|
25 |
<show_in_website>1</show_in_website>
|
26 |
+
<show_in_store>1</show_in_store>
|
27 |
+
<fields>
|
28 |
+
<api_key>
|
29 |
+
<label>API Key</label>
|
30 |
+
<comment>Your unique API key. Can be found in your Iterable account <![CDATA[<a href="https://app.iterable.com/api/settings">here</a>]]>.</comment>
|
31 |
+
<frontend_type>text</frontend_type>
|
32 |
+
<sort_order>1</sort_order>
|
33 |
+
<show_in_default>1</show_in_default>
|
34 |
+
<show_in_website>1</show_in_website>
|
35 |
+
<show_in_store>1</show_in_store>
|
36 |
+
</api_key>
|
37 |
+
</fields>
|
38 |
</api_key_options>
|
39 |
</groups>
|
40 |
</api_options>
|
41 |
+
<transactional_email_options>
|
42 |
+
<label>Transactional Emails</label>
|
43 |
+
<tab>iterableconfig</tab>
|
44 |
+
<frontend_type>text</frontend_type>
|
45 |
<sort_order>1001</sort_order>
|
46 |
<show_in_default>1</show_in_default>
|
47 |
<show_in_website>1</show_in_website>
|
48 |
<show_in_store>1</show_in_store>
|
49 |
+
<groups>
|
50 |
+
<account_created translate="label">
|
51 |
+
<label>Account Created</label>
|
52 |
+
<frontend_type>text</frontend_type>
|
53 |
+
<sort_order>1</sort_order>
|
54 |
+
<show_in_default>1</show_in_default>
|
55 |
+
<show_in_website>1</show_in_website>
|
56 |
+
<show_in_store>1</show_in_store>
|
57 |
+
<fields>
|
58 |
+
<is_enabled>
|
59 |
+
<label>Enabled</label>
|
60 |
+
<comment>Send account creation emails through Iterable</comment>
|
61 |
+
<frontend_type>select</frontend_type>
|
62 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
63 |
+
<sort_order>1</sort_order>
|
64 |
+
<show_in_default>1</show_in_default>
|
65 |
+
<show_in_website>1</show_in_website>
|
66 |
+
<show_in_store>1</show_in_store>
|
67 |
+
</is_enabled>
|
68 |
+
<campaign_id>
|
69 |
+
<label>Triggered Campaign Id</label>
|
70 |
+
<comment>Id of the Triggered Email Campaign to send when a user creates an account</comment>
|
71 |
+
<frontend_type>text</frontend_type>
|
72 |
+
<validate>validate-number</validate>
|
73 |
+
<sort_order>2</sort_order>
|
74 |
+
<show_in_default>1</show_in_default>
|
75 |
+
<show_in_website>1</show_in_website>
|
76 |
+
<show_in_store>1</show_in_store>
|
77 |
+
</campaign_id>
|
78 |
+
</fields>
|
79 |
+
</account_created>
|
80 |
+
<forgot_password translate="label">
|
81 |
+
<label>Forgot Password</label>
|
82 |
+
<frontend_type>text</frontend_type>
|
83 |
+
<sort_order>2</sort_order>
|
84 |
+
<show_in_default>1</show_in_default>
|
85 |
+
<show_in_website>1</show_in_website>
|
86 |
+
<show_in_store>1</show_in_store>
|
87 |
+
<fields>
|
88 |
+
<is_enabled>
|
89 |
+
<label>Enabled</label>
|
90 |
+
<comment>Send password reset emails through Iterable</comment>
|
91 |
+
<frontend_type>select</frontend_type>
|
92 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
93 |
+
<sort_order>1</sort_order>
|
94 |
+
<show_in_default>1</show_in_default>
|
95 |
+
<show_in_website>1</show_in_website>
|
96 |
+
<show_in_store>1</show_in_store>
|
97 |
+
</is_enabled>
|
98 |
+
<campaign_id>
|
99 |
+
<label>Triggered Campaign Id</label>
|
100 |
+
<comment>Id of the Triggered Email Campaign to send when a user resets their password</comment>
|
101 |
+
<frontend_type>text</frontend_type>
|
102 |
+
<validate>validate-number</validate>
|
103 |
+
<sort_order>2</sort_order>
|
104 |
+
<show_in_default>1</show_in_default>
|
105 |
+
<show_in_website>1</show_in_website>
|
106 |
+
<show_in_store>1</show_in_store>
|
107 |
+
</campaign_id>
|
108 |
+
</fields>
|
109 |
+
</forgot_password>
|
110 |
+
<newsletter_subscribe translate="label">
|
111 |
+
<label>Newsletter Subscribes</label>
|
112 |
+
<frontend_type>text</frontend_type>
|
113 |
+
<sort_order>3</sort_order>
|
114 |
+
<show_in_default>1</show_in_default>
|
115 |
+
<show_in_website>1</show_in_website>
|
116 |
+
<show_in_store>1</show_in_store>
|
117 |
+
<fields>
|
118 |
+
<is_enabled>
|
119 |
+
<label>Enabled</label>
|
120 |
+
<comment>Send newsletter subscription emails through Iterable</comment>
|
121 |
+
<frontend_type>select</frontend_type>
|
122 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
123 |
+
<sort_order>1</sort_order>
|
124 |
+
<show_in_default>1</show_in_default>
|
125 |
+
<show_in_website>1</show_in_website>
|
126 |
+
<show_in_store>1</show_in_store>
|
127 |
+
</is_enabled>
|
128 |
+
<campaign_id>
|
129 |
+
<label>Triggered Campaign Id</label>
|
130 |
+
<comment>Id of the Triggered Email Campaign to send when a user subscribes to a newsletter</comment>
|
131 |
+
<frontend_type>text</frontend_type>
|
132 |
+
<validate>validate-number</validate>
|
133 |
+
<sort_order>2</sort_order>
|
134 |
+
<show_in_default>1</show_in_default>
|
135 |
+
<show_in_website>1</show_in_website>
|
136 |
+
<show_in_store>1</show_in_store>
|
137 |
+
</campaign_id>
|
138 |
+
</fields>
|
139 |
+
</newsletter_subscribe>
|
140 |
+
<newsletter_unsubscribe translate="label">
|
141 |
+
<label>Newsletter Unsubscribes</label>
|
142 |
+
<frontend_type>text</frontend_type>
|
143 |
+
<sort_order>4</sort_order>
|
144 |
+
<show_in_default>1</show_in_default>
|
145 |
+
<show_in_website>1</show_in_website>
|
146 |
+
<show_in_store>1</show_in_store>
|
147 |
+
<fields>
|
148 |
+
<is_enabled>
|
149 |
+
<label>Enabled</label>
|
150 |
+
<comment>Send newsletter unsubscription emails through Iterable</comment>
|
151 |
+
<frontend_type>select</frontend_type>
|
152 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
153 |
+
<sort_order>1</sort_order>
|
154 |
+
<show_in_default>1</show_in_default>
|
155 |
+
<show_in_website>1</show_in_website>
|
156 |
+
<show_in_store>1</show_in_store>
|
157 |
+
</is_enabled>
|
158 |
+
<campaign_id>
|
159 |
+
<label>Triggered Campaign Id</label>
|
160 |
+
<comment>Id of the Triggered Email Campaign to send when a user unsubscribes from a newsletter</comment>
|
161 |
+
<frontend_type>text</frontend_type>
|
162 |
+
<validate>validate-number</validate>
|
163 |
+
<sort_order>2</sort_order>
|
164 |
+
<show_in_default>1</show_in_default>
|
165 |
+
<show_in_website>1</show_in_website>
|
166 |
+
<show_in_store>1</show_in_store>
|
167 |
+
</campaign_id>
|
168 |
+
</fields>
|
169 |
+
</newsletter_unsubscribe>
|
170 |
+
<order_confirm translate="label">
|
171 |
+
<label>Order Confirmations</label>
|
172 |
+
<frontend_type>text</frontend_type>
|
173 |
+
<sort_order>5</sort_order>
|
174 |
+
<show_in_default>1</show_in_default>
|
175 |
+
<show_in_website>1</show_in_website>
|
176 |
+
<show_in_store>1</show_in_store>
|
177 |
+
<fields>
|
178 |
+
<is_disabled>
|
179 |
+
<label>Disabled</label>
|
180 |
+
<comment>Suppress default order confirmation emails from Magento. Make sure you set up an appropriate workflow in Iterable first!</comment>
|
181 |
+
<frontend_type>select</frontend_type>
|
182 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
183 |
+
<sort_order>1</sort_order>
|
184 |
+
<show_in_default>1</show_in_default>
|
185 |
+
<show_in_website>1</show_in_website>
|
186 |
+
<show_in_store>1</show_in_store>
|
187 |
+
</is_disabled>
|
188 |
+
</fields>
|
189 |
+
</order_confirm>
|
190 |
+
</groups>
|
191 |
+
</transactional_email_options>
|
192 |
+
<advanced_options>
|
193 |
+
<label>Advanced</label>
|
194 |
+
<tab>iterableconfig</tab>
|
195 |
+
<frontend_type>text</frontend_type>
|
196 |
+
<sort_order>1002</sort_order>
|
197 |
+
<show_in_default>1</show_in_default>
|
198 |
+
<show_in_website>1</show_in_website>
|
199 |
+
<show_in_store>1</show_in_store>
|
200 |
+
<groups>
|
201 |
+
<tracking_options translate="label">
|
202 |
<label>Event Tracking</label>
|
203 |
<frontend_type>text</frontend_type>
|
204 |
<sort_order>2</sort_order>
|
218 |
</enabled_events>
|
219 |
</fields>
|
220 |
</tracking_options>
|
221 |
+
</groups>
|
222 |
+
</advanced_options>
|
223 |
+
</sections>
|
224 |
</config>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Iterable_Plugin</name>
|
4 |
-
<version>1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/OSL-3.0">Open Software License (OSL) </license>
|
7 |
<channel>community</channel>
|
@@ -15,11 +15,11 @@ drip marketing campaigns.
|
|
15 |
To install, click the 'Install Now' button above and paste the link into your Magento Connect Manager. You will then see an Iterable section in your Magento Admin view. In the 'Advanced' section, select the events you would like to be sent to Iterable. Then, in the API section, enter your Magento API key from Iterable (located in the API Config section on the left side menu).
|
16 |

|
17 |
Questions? Comments? Feel free to contact us at support@iterable.com. Also, for more info or a free demo, please visit us at Iterable.com.</description>
|
18 |
-
<notes>
|
19 |
<authors><author><name>Ilya Brin</name><user>Iterable</user><email>ilya@iterable.com</email></author></authors>
|
20 |
-
<date>2014-08-
|
21 |
-
<time>
|
22 |
-
<contents><target name="magecommunity"><dir name="Iterable"><dir name="TrackOrderPlaced"><dir name="Helper"><file name="Data.php" hash="
|
23 |
<compatible/>
|
24 |
<dependencies><required><php><min>5.3.1</min><max>6.0.0</max></php></required></dependencies>
|
25 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Iterable_Plugin</name>
|
4 |
+
<version>1.5.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/OSL-3.0">Open Software License (OSL) </license>
|
7 |
<channel>community</channel>
|
15 |
To install, click the 'Install Now' button above and paste the link into your Magento Connect Manager. You will then see an Iterable section in your Magento Admin view. In the 'Advanced' section, select the events you would like to be sent to Iterable. Then, in the API section, enter your Magento API key from Iterable (located in the API Config section on the left side menu).
|
16 |

|
17 |
Questions? Comments? Feel free to contact us at support@iterable.com. Also, for more info or a free demo, please visit us at Iterable.com.</description>
|
18 |
+
<notes>Support suppressing default Magento emails and instead triggering Iterable campaigns</notes>
|
19 |
<authors><author><name>Ilya Brin</name><user>Iterable</user><email>ilya@iterable.com</email></author></authors>
|
20 |
+
<date>2014-08-27</date>
|
21 |
+
<time>22:50:07</time>
|
22 |
+
<contents><target name="magecommunity"><dir name="Iterable"><dir name="TrackOrderPlaced"><dir name="Helper"><file name="Data.php" hash="a6029c49149215655477fac0442b365f"/></dir><dir name="Model"><dir name="Email"><file name="Template.php" hash="225b9fb6b5eac3b506813bae86e1f005"/></dir><file name="Observer.php" hash="07fc03a2086562b26c751bd1146f07ba"/><file name="TrackingEventTypes.php" hash="b81614a3a0fcd67aee43a29093044261"/></dir><dir name="etc"><file name="config.xml" hash="76c01eefd541d334f5bcf839a31e49de"/><file name="system.xml" hash="32d1f49eb03cd585b7c33a894fe4de15"/></dir><dir name=".idea"><file name="TrackOrderPlaced.iml" hash="64a676a732fd4b7f408cdd46b49aaa24"/><file name="compiler.xml" hash="7e7efa3e3d6514a0ff290e4dfce3cbe9"/><dir name="copyright"><file name="profiles_settings.xml" hash="b1e0b181e080c28b1d116582290e6e97"/></dir><file name="encodings.xml" hash="f1c5edfa5b1a67aabcb9e41674afa252"/><file name="misc.xml" hash="a09f56c13a544171f953e7723e0d4439"/><file name="modules.xml" hash="c93cdff764916047e398fcf5b105a3ed"/><dir name="scopes"><file name="scope_settings.xml" hash="3d0b1957d39aa5636904788c54e654cf"/></dir><file name="vcs.xml" hash="1b4ab30910ae53c73594cd0e3db9840b"/><file name="workspace.xml" hash="b02b6a3c3faf804a4810d8cdc8c10c8f"/><file name=".name" hash="8b29e935aaea69d5d9c071be993c4610"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="iterable"><file name="common.xml" hash="d90fbb22fb34fa29deb6b0e131f9e767"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Iterable_TrackOrderPlaced.xml" hash="0d4506dadf95eecb54e215ed03b2c6a7"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="iterable"><dir name="images"><file name="section_logo.png" hash="fe5090ba955a890c1efe2c09cb260342"/></dir><file name="iterable.css" hash="4d928c5a4ed76d62e246a57ee868ec23"/><file name="iterable.css~" hash="2c3ee0498f159bc59bee37cd3c508f27"/></dir></dir></dir></dir></target></contents>
|
23 |
<compatible/>
|
24 |
<dependencies><required><php><min>5.3.1</min><max>6.0.0</max></php></required></dependencies>
|
25 |
</package>
|