signpost - Version 1.0.0

Version Notes

Use our Signpost extension for Magento to sync your Magento clients in real time to your Signpost account. Setup takes 2 minutes, and all syncing is in the background. When a customer signs up in Magento, they will be immediately imported into Signpost for you to being marketing to.

Download this release

Release Info

Developer bill
Extension signpost
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

Documentation.pdf ADDED
Binary file
app/code/community/MySolutions/Signpost/Helper/Api.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Description of Observer:
5
+ *
6
+ * @author amitb@digitalaptech.com
7
+ */
8
+ class MySolutions_Signpost_Helper_Api {
9
+
10
+
11
+ public function CallSignPostContacts($emailAddress ,$name){
12
+
13
+ $ApiUrl = Mage::helper('signpost')->getApiUrl();
14
+ $XApiKey = Mage::helper('signpost')->getXApiKey();
15
+ $MerchantId = Mage::helper('signpost')->getMerchantId();
16
+
17
+ if($ApiUrl && $XApiKey && $MerchantId ){
18
+
19
+ $data= array(
20
+ 'merchantId' => $MerchantId,
21
+ 'name' => $name ,
22
+ 'contacts' =>array(
23
+ array('emailAddress' => $emailAddress)
24
+ )
25
+ );
26
+ // log print
27
+ // Mage::log(print_r($data, 1), null, 'signpost.log');
28
+ $request = json_encode($data);
29
+ /* Hit Signpost APi */
30
+ try {
31
+
32
+ $ch = curl_init();
33
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
34
+ curl_setopt($ch, CURLOPT_URL, $ApiUrl.'/contacts');
35
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
36
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
37
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
38
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
39
+
40
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
41
+ 'Content-Type: application/json',
42
+ 'x-api-key: '.$XApiKey,
43
+ 'Content-Length: ' . strlen($request))
44
+ );
45
+
46
+ $responseBody = curl_exec($ch);
47
+ curl_close($ch);
48
+ /* Mage::log('prefix'.Zend_Debug::dump($responseBody, null, false), null,
49
+ 'signp.log'); */
50
+ $responseBodyJson = json_decode( $responseBody);
51
+
52
+ if(isset($responseBodyJson->message)){
53
+ return $responseBodyJson->message;
54
+ }
55
+ return FALSE;
56
+ }
57
+ catch (Exception $e) {
58
+ Mage::logException($e) ;
59
+ }
60
+ return false;
61
+ }
62
+
63
+ }
64
+ }
app/code/community/MySolutions/Signpost/Helper/Data.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Description of Data
5
+ *
6
+ * @author amitb@digitalaptech
7
+ */
8
+ class MySolutions_Signpost_Helper_Data extends Mage_Core_Helper_Data {
9
+
10
+ /* get Api url from configuration */
11
+
12
+ public function getApiUrl($store = null){
13
+ if(Mage::getStoreConfig('signpost/apis/url', $store)){
14
+ return Mage::getStoreConfig('signpost/apis/url', $store);
15
+ }
16
+ return false;
17
+ }
18
+
19
+ /* get Api X-APi Key -*/
20
+ public function getXApiKey($store = null){
21
+
22
+ if(Mage::getStoreConfig('signpost/apis/x_api_key', $store)){
23
+ return Mage::getStoreConfig('signpost/apis/x_api_key', $store);
24
+ }
25
+ return false;
26
+ }
27
+ public function getMerchantId($store = null){
28
+ if(Mage::getStoreConfig('signpost/apis/merchant_id', $store)){
29
+ return Mage::getStoreConfig('signpost/apis/merchant_id', $store);
30
+ }
31
+ return false;
32
+ }
33
+ }
app/code/community/MySolutions/Signpost/Model/Observer.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Description of Observer:
5
+ *
6
+ * @author amitb@digitalaptech.com
7
+ */
8
+ class MySolutions_Signpost_Model_Observer {
9
+
10
+ public function PushCustomerData(Varien_Event_Observer $observer) {
11
+
12
+ /** @var $customer Mage_Customer_Model_Customer */
13
+ $customer = $observer->getEvent()->getCustomer();
14
+
15
+ $object = $observer->getEvent()->getDataObject();
16
+
17
+ /* Call Sign post Api whenver Customer is new */
18
+
19
+
20
+ if($object->isObjectNew()) {
21
+ Mage::helper('signpost/api')->CallSignPostContacts($customer->getEmail()
22
+ ,$customer->getName());
23
+
24
+ }
25
+
26
+ }
27
+ public function PushGuestCustomerData(Varien_Event_Observer $observer) {
28
+
29
+ /** @var $customer Mage_Customer_Model_Customer */
30
+ $order = $observer->getEvent()->getOrder();
31
+
32
+
33
+ /* Call Sign post Api whenver Customer is new */
34
+
35
+
36
+ if($order->getCustomerIsGuest()){
37
+ Mage::helper('signpost/api')->CallSignPostContacts($order->getCustomerEmail()
38
+ ,$order->getBillingAddress()->getName());
39
+
40
+ }
41
+
42
+ }
43
+ }
app/code/community/MySolutions/Signpost/etc/adminhtml.xml ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <admin>
6
+ <children>
7
+ <system>
8
+ <children>
9
+ <config>
10
+ <children>
11
+ <signpost translate="title" module="signpost">
12
+ <title>Signpost Section</title>
13
+ </signpost>
14
+ </children>
15
+ </config>
16
+ </children>
17
+ </system>
18
+
19
+ </children>
20
+ </admin>
21
+ </resources>
22
+ </acl>
23
+ </config>
app/code/community/MySolutions/Signpost/etc/config.xml ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ To change this license header, choose License Headers in Project Properties.
4
+ To change this template file, choose Tools | Templates
5
+ and open the template in the editor.
6
+ -->
7
+ <config>
8
+ <modules>
9
+ <MySolutions_Signpost>
10
+ <version>1.0.0</version>
11
+ </MySolutions_Signpost>
12
+ </modules>
13
+ <global>
14
+ <helpers>
15
+ <signpost>
16
+ <class>MySolutions_Signpost_Helper</class>
17
+ </signpost>
18
+ </helpers>
19
+ <models>
20
+ <signpost>
21
+ <class>MySolutions_Signpost_Model</class>
22
+ </signpost>
23
+ </models>
24
+ <!--
25
+ * Push Customer Data to signpost
26
+ * whenever Customer will created
27
+ -->
28
+ <events>
29
+ <customer_save_before>
30
+ <observers>
31
+ <push_data_to_signpost_when_customer_register>
32
+ <class>signpost/observer</class>
33
+ <method>PushCustomerData</method>
34
+ <type>singleton</type>
35
+ </push_data_to_signpost_when_customer_register>
36
+ </observers>
37
+ </customer_save_before>
38
+
39
+ <!--
40
+ * Push guest Customer Data to signpost
41
+ * whenever order will placed
42
+ -->
43
+ <checkout_submit_all_after>
44
+ <observers>
45
+ <push_data_to_signpost_when_order_place>
46
+ <class>signpost/observer</class>
47
+ <method>PushGuestCustomerData</method>
48
+ <type>singleton</type>
49
+ </push_data_to_signpost_when_order_place>
50
+ </observers>
51
+ </checkout_submit_all_after>
52
+ </events>
53
+ </global>
54
+ </config>
app/code/community/MySolutions/Signpost/etc/system.xml ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <sections>
4
+ <signpost translate="label" module="signpost">
5
+ <label>Sign Post configuration</label>
6
+ <tab>customer</tab>
7
+ <show_in_default>1</show_in_default>
8
+ <show_in_website>1</show_in_website>
9
+ <show_in_store>1</show_in_store>
10
+ <sort_order>131</sort_order>
11
+ <groups>
12
+ <apis translate="label">
13
+ <label>Api Details(All fields should be field)</label>
14
+ <frontend_type>text</frontend_type>
15
+ <sort_order>1</sort_order>
16
+ <show_in_default>1</show_in_default>
17
+ <show_in_website>1</show_in_website>
18
+ <show_in_store>1</show_in_store>
19
+ <fields>
20
+ <url translate="label">
21
+ <label>Api url</label>
22
+ <frontend_type>text</frontend_type>
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
+ </url>
28
+ <merchant_id translate="label">
29
+ <label>Merchant id</label>
30
+ <frontend_type>text</frontend_type>
31
+ <sort_order>2</sort_order>
32
+ <show_in_default>1</show_in_default>
33
+ <show_in_website>1</show_in_website>
34
+ <show_in_store>1</show_in_store>
35
+ </merchant_id>
36
+ <x_api_key translate="label">
37
+ <label>X Api Key</label>
38
+ <frontend_type>text</frontend_type>
39
+ <sort_order>3</sort_order>
40
+ <show_in_default>1</show_in_default>
41
+ <show_in_website>1</show_in_website>
42
+ <show_in_store>1</show_in_store>
43
+ </x_api_key>
44
+ </fields>
45
+ </apis>
46
+ </groups>
47
+ </signpost>
48
+ </sections>
49
+ </config>
app/etc/modules/MySolutions_Signpost.xml ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <modules>
4
+ <MySolutions_Signpost>
5
+ <codePool>community</codePool>
6
+ <active>true</active>
7
+ <depends>
8
+ <Mage_Customer/>
9
+ </depends>
10
+ </MySolutions_Signpost>
11
+ </modules>
12
+ </config>
package.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>signpost</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license>Open Software License (OSL)</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Sync your Magento clients to your Signpost account in real time!</summary>
10
+ <description>Use our Signpost extension for Magento to sync your Magento clients in real time to your Signpost account. Setup takes 2 minutes, and all syncing is in the background. When a customer signs up in Magento, they will be immediately imported into Signpost for you to being marketing to.</description>
11
+ <notes>Use our Signpost extension for Magento to sync your Magento clients in real time to your Signpost account. Setup takes 2 minutes, and all syncing is in the background. When a customer signs up in Magento, they will be immediately imported into Signpost for you to being marketing to.</notes>
12
+ <authors><author><name>bill</name><user>bill</user><email>bill@fowsolutions.com</email></author></authors>
13
+ <date>2016-08-05</date>
14
+ <time>11:15:43</time>
15
+ <contents><target name="magecommunity"><dir name="MySolutions"><dir name="Signpost"><dir name="Helper"><file name="Api.php" hash="0363e4f5fbf376dbb88523877511d7b6"/><file name="Data.php" hash="663b68f8791edb68b858d8a98c06aa08"/></dir><dir name="Model"><file name="Observer.php" hash="be44956c2149d682782a86bfe9e710dd"/></dir><dir name="etc"><file name="adminhtml.xml" hash="538c8907978a7324957f6cfae1a9d5fd"/><file name="config.xml" hash="847b9ae6bd1df5d4878ba8f7213caaa4"/><file name="system.xml" hash="7444aaf16a152a4056ac1ff4e6d5ef83"/></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="MySolutions_Signpost.xml" hash="ee4d069d3d1220bda8e6c14d2b8abc35"/></dir></dir></dir><dir name="."><file name="Documentation.pdf" hash="ad955b2e71995768c4c3a0c91d6923c7"/></dir></target></contents>
16
+ <compatible/>
17
+ <dependencies><required><php><min>4.0.1</min><max>5.0.0</max></php></required></dependencies>
18
+ </package>