Asperience_Productextend - Version 0.1.2

Version Notes

If you have ideas for improvements or find bugs, please send them to Ronan Capitaine or Jean-Sébastien Hederer at www.asperience.fr, with ASPerience Productextend as part of the subject line.

Download this release

Release Info

Developer Magento Core Team
Extension Asperience_Productextend
Version 0.1.2
Comparing to
See all releases


Code changes from version 0.1.1 to 0.1.2

app/code/local/Asperience/Productextend/Model/Observer.php CHANGED
@@ -13,6 +13,8 @@ class Asperience_Productextend_Model_Observer
13
  const XML_PATH_EMAIL_SENDER = 'catalog/productextend/sender_email_identity';
14
  const XML_PATH_EMAIL_TEMPLATE = 'catalog/productextend/email_price_template';
15
 
 
 
16
  const XML_PATH_ALLOW_NEW = 'catalog/productextend/allow_new';
17
  const XML_PATH_ALLOW_PRICE = 'catalog/productextend/allow_price';
18
  const XML_PATH_ALLOW_SPE_PRICE = 'catalog/productextend/allow_price_special';
@@ -20,10 +22,20 @@ class Asperience_Productextend_Model_Observer
20
 
21
 
22
  protected $_oldProduct = array();
 
23
  protected $_isNew = False;
24
  protected $_isNewPrice = False;
25
  protected $_isNewPriceSpecial = False;
26
 
 
 
 
 
 
 
 
 
 
27
  protected function _sendMail($product)
28
  {
29
  if($product) {
@@ -33,46 +45,49 @@ class Asperience_Productextend_Model_Observer
33
 
34
  //Préparation des données du mail
35
  $dataMail = array(
36
- 'name' => $product->getName(),
37
- 'sku' => $product->getSku(),
38
- 'type' => $product->getTypeId(),
39
- 'user' => Mage::getSingleton('admin/session')->getUser()->getUsername(),
40
- 'date' => Mage::helper('core')->formatDate(null, 'full')
 
 
41
  );
42
-
43
- if($this->_isNew){
44
- //Si le nouveau produit est une promotion
45
- $dataMail['title'] = Mage::helper('productextend')->__('New product :');
46
  if(!$product->isGrouped()){
47
- $dataMail['price'] = Mage::helper('core')->currency($product->getPrice());
 
48
  if($this->_isNewPriceSpecial){
49
- $dataMail['special_price'] = Mage::helper('core')->currency($product->getSpecialPrice());
 
50
  }
51
  }
52
-
53
- } else {
 
 
 
 
 
54
  //Si le prix du produit existant a changé
55
  if($this->_isNewPrice){
56
- $dataMail['title'] = Mage::helper('productextend')->__('Price change :');
57
- $dataMail['price'] = Mage::helper('core')->currency($this->_oldProduct['price']);
58
- $dataMail['new_price'] = " -> ".Mage::helper('core')->currency($product->getPrice());
59
- $dataMail['special_price'] = Mage::helper('core')->currency($product->getSpecialPrice());
60
- }elseif($this->_isNewPriceSpecial){
61
- $dataMail['title'] = Mage::helper('productextend')->__('Special price change :');
62
- $dataMail['price'] = Mage::helper('core')->currency($product->getPrice());
63
- $dataMail['special_price'] = Mage::helper('core')->currency($this->_oldProduct['special_price']);
64
- $dataMail['new_special_price'] = " -> ".Mage::helper('core')->currency($product->getSpecialPrice());
65
- }elseif($this->_isNewPrice && $this->_isNewPriceSpecial){
66
- $dataMail['title'] = Mage::helper('productextend')->__('Special and Current price change :');
67
- $dataMail['price'] = Mage::helper('core')->currency($this->_oldProduct['price']);
68
- $dataMail['new_price'] = " -> ".Mage::helper('core')->currency($product->getPrice());
69
- $dataMail['special_price'] = Mage::helper('core')->currency($this->_oldProduct['special_price']);
70
- $dataMail['new_special_price'] = " -> ".Mage::helper('core')->currency($product->getSpecialPrice());
71
- }else{
72
- throw new Exception();
73
  }
 
 
74
  }
75
-
76
  $postObject = new Varien_Object();
77
  $postObject->setData($dataMail);
78
 
@@ -101,7 +116,7 @@ class Asperience_Productextend_Model_Observer
101
  $translate->setTranslateInline(true);
102
 
103
  }catch (Exception $e) {
104
- Mage::getSingleton('core/session')->addError(Mage::helper('productextend')->__('An error arose during the sending of emails.'));
105
  }
106
  }
107
  }
@@ -110,50 +125,62 @@ class Asperience_Productextend_Model_Observer
110
  {
111
  $product = $observer->getEvent()->getProduct();
112
 
113
- //Si le produit est nouveau
114
- if($this->_isNew){
115
- //Si le nouveau produit est une promotion
116
- if(!$product->isGrouped() && $product->getSpecialPrice()){
117
- $this->_isNewPriceSpecial = True;
118
- }
119
- } else {
120
- //Si le prix du produit existant à changé
121
- if($product->getPrice() != $this->_oldProduct['price']){
122
- $this->_isNewPrice = True;
123
- }
124
- //Si le prix spécial du produit existant est nouveau ou changé
125
- if($product->getSpecialPrice() && ($product->getSpecialPrice() != $this->_oldProduct['special_price'] ||
126
- $product->getSpecialFromDate() != $this->_oldProduct['special_date'])){
127
- $this->_isNewPriceSpecial = True;
 
 
 
 
 
 
 
 
128
  }
129
- }
130
-
 
 
 
 
 
 
 
 
131
  //s'il y a une promo: mise en base de données
132
  if($this->_isNewPriceSpecial && Mage::getStoreConfig(self::XML_PATH_ALLOW_SAVE)){
133
  Mage::getModel('productextend/promotion')->savePromo($product);
134
  }
135
-
136
- //S'il y a un nouveau produit ou un changement de prix: envoie de mail
137
- if($this->_isNew ||
138
- $this->_isNewPrice && Mage::getStoreConfig(self::XML_PATH_ALLOW_PRICE)||
139
- $this->_isNewPriceSpecial && Mage::getStoreConfig(self::XML_PATH_ALLOW_SPE_PRICE)){
140
- $this->_sendMail($product);
141
- }
142
  }
143
 
144
  public function beforeSave($observer)
145
  {
146
  $product = $observer->getEvent()->getProduct();
147
  $productId = $product->getId();
148
-
 
149
  if($productId){
150
  $product = Mage::getModel('catalog/product')
151
  ->load($productId);
152
  $this->_oldProduct = array(
153
  'price' => $product->getPrice(),
154
  'special_price' => $product->getSpecialPrice(),
155
- 'special_date' => $product->getSpecialFromDate()
 
156
  );
 
157
  } elseif(Mage::getStoreConfig(self::XML_PATH_ALLOW_NEW)){
158
  $this->_isNew = True;
159
  }
13
  const XML_PATH_EMAIL_SENDER = 'catalog/productextend/sender_email_identity';
14
  const XML_PATH_EMAIL_TEMPLATE = 'catalog/productextend/email_price_template';
15
 
16
+ const XML_PATH_ALLOW_INACTIVE = 'catalog/productextend/allow_inactive';
17
+ const XML_PATH_ALLOW_STATUS = 'catalog/productextend/allow_status';
18
  const XML_PATH_ALLOW_NEW = 'catalog/productextend/allow_new';
19
  const XML_PATH_ALLOW_PRICE = 'catalog/productextend/allow_price';
20
  const XML_PATH_ALLOW_SPE_PRICE = 'catalog/productextend/allow_price_special';
22
 
23
 
24
  protected $_oldProduct = array();
25
+ protected $_changeStatus = False;
26
  protected $_isNew = False;
27
  protected $_isNewPrice = False;
28
  protected $_isNewPriceSpecial = False;
29
 
30
+ public function formatPrice($price)
31
+ {
32
+ return Mage::helper('sales')->formatPrice($price);
33
+ }
34
+
35
+ public function __($data){
36
+ return Mage::helper('productextend')->__($data);
37
+ }
38
+
39
  protected function _sendMail($product)
40
  {
41
  if($product) {
45
 
46
  //Préparation des données du mail
47
  $dataMail = array(
48
+ 'name' => $product->getName(),
49
+ 'sku' => $product->getSku(),
50
+ 'type' => $product->getTypeId(),
51
+ 'user' => Mage::getSingleton('admin/session')->getUser()->getUsername(),
52
+ 'date' => Mage::helper('core')->formatDate(null, 'full'),
53
+ 'comment' => '',
54
+ 'title' => $this->__('Product Modification :')
55
  );
56
+
57
+ //S'il y a un nouveau produit
58
+ if($this->_isNew){
59
+ $dataMail['title'] = $this->__('New product :');
60
  if(!$product->isGrouped()){
61
+ $dataMail['comment'] .= $this->__('Price : ');
62
+ $dataMail['comment'] .= $this->formatPrice($product->getPrice());
63
  if($this->_isNewPriceSpecial){
64
+ $dataMail['comment'] .= '<br />'.$this->__('Special Price : ');
65
+ $dataMail['comment'] .= $this->formatPrice($product->getSpecialPrice());
66
  }
67
  }
68
+ }elseif($this->_changeStatus || $this->_isNewPrice || $this->_isNewPriceSpecial){
69
+ //Si le statut du produit change
70
+ if($this->_changeStatus){
71
+ $dataMail['comment'] .= $this->__('Product Status Change : ');
72
+ $dataMail['comment'] .= Mage::getSingleton('catalog/product_status')->getOptionText($this->_oldProduct['status']);
73
+ $dataMail['comment'] .= ' -> '.Mage::getSingleton('catalog/product_status')->getOptionText($product->getStatus()).'<br />';
74
+ }
75
  //Si le prix du produit existant a changé
76
  if($this->_isNewPrice){
77
+ $dataMail['comment'] .= $this->__('Price : ');
78
+ $dataMail['comment'] .= $this->formatPrice($this->_oldProduct['price']);
79
+ $dataMail['comment'] .= ' -> '.$this->formatPrice($product->getPrice()).'<br />';
80
+ }
81
+ //Si le prix spécial du produit existant a changé
82
+ if($this->_isNewPriceSpecial){
83
+ $dataMail['comment'] .= $this->__('Special Price : ');
84
+ $dataMail['comment'] .= $this->formatPrice($this->_oldProduct['special_price']);
85
+ $dataMail['comment'] .= ' -> '.$this->formatPrice($product->getSpecialPrice());
 
 
 
 
 
 
 
 
86
  }
87
+ }else{
88
+ throw new Exception();
89
  }
90
+
91
  $postObject = new Varien_Object();
92
  $postObject->setData($dataMail);
93
 
116
  $translate->setTranslateInline(true);
117
 
118
  }catch (Exception $e) {
119
+ Mage::getSingleton('core/session')->addError($this->__('An error arose during the sending of emails.'));
120
  }
121
  }
122
  }
125
  {
126
  $product = $observer->getEvent()->getProduct();
127
 
128
+ //Si le produit est actif
129
+ if($product->getStatus()==1 || self::XML_PATH_ALLOW_INACTIVE){
130
+
131
+ //Si le produit est nouveau
132
+ if($this->_isNew){
133
+ //Si le nouveau produit est une promotion
134
+ if(!$product->isGrouped() && $product->getSpecialPrice()){
135
+ $this->_isNewPriceSpecial = True;
136
+ }
137
+ }else {
138
+ //Si le produit change de statut
139
+ if($this->_oldProduct['status'] != $product->getStatus()){
140
+ $this->_changeStatus = True;
141
+ }
142
+ //Si le prix du produit existant à changé
143
+ if($product->getPrice() != $this->_oldProduct['price']){
144
+ $this->_isNewPrice = True;
145
+ }
146
+ //Si le prix spécial du produit existant est nouveau ou changé
147
+ if($product->getSpecialPrice() && ($product->getSpecialPrice() != $this->_oldProduct['special_price'] ||
148
+ $product->getSpecialFromDate() != $this->_oldProduct['special_date'])){
149
+ $this->_isNewPriceSpecial = True;
150
+ }
151
  }
152
+
153
+ //S'il y a un nouveau produit ou un changement de prix: envoie de mail
154
+ if($this->_isNew ||
155
+ $this->_changeStatus && Mage::getStoreConfig(self::XML_PATH_ALLOW_STATUS)||
156
+ $this->_isNewPrice && Mage::getStoreConfig(self::XML_PATH_ALLOW_PRICE)||
157
+ $this->_isNewPriceSpecial && Mage::getStoreConfig(self::XML_PATH_ALLOW_SPE_PRICE)){
158
+ $this->_sendMail($product);
159
+ }
160
+ }
161
+
162
  //s'il y a une promo: mise en base de données
163
  if($this->_isNewPriceSpecial && Mage::getStoreConfig(self::XML_PATH_ALLOW_SAVE)){
164
  Mage::getModel('productextend/promotion')->savePromo($product);
165
  }
 
 
 
 
 
 
 
166
  }
167
 
168
  public function beforeSave($observer)
169
  {
170
  $product = $observer->getEvent()->getProduct();
171
  $productId = $product->getId();
172
+
173
+ //Le produit existe
174
  if($productId){
175
  $product = Mage::getModel('catalog/product')
176
  ->load($productId);
177
  $this->_oldProduct = array(
178
  'price' => $product->getPrice(),
179
  'special_price' => $product->getSpecialPrice(),
180
+ 'special_date' => $product->getSpecialFromDate(),
181
+ 'status' => $product->getStatus()
182
  );
183
+ //Le produit est nouveau
184
  } elseif(Mage::getStoreConfig(self::XML_PATH_ALLOW_NEW)){
185
  $this->_isNew = True;
186
  }
app/code/local/Asperience/Productextend/etc/config.xml CHANGED
@@ -175,6 +175,8 @@
175
  <active>1</active>
176
  </general>
177
  <productextend>
 
 
178
  <allow_new><![CDATA[1]]></allow_new>
179
  <allow_price><![CDATA[1]]></allow_price>
180
  <allow_price_special><![CDATA[1]]></allow_price_special>
175
  <active>1</active>
176
  </general>
177
  <productextend>
178
+ <allow_inactive><![CDATA[1]]></allow_inactive>
179
+ <allow_status><![CDATA[1]]></allow_status>
180
  <allow_new><![CDATA[1]]></allow_new>
181
  <allow_price><![CDATA[1]]></allow_price>
182
  <allow_price_special><![CDATA[1]]></allow_price_special>
app/code/local/Asperience/Productextend/etc/system.xml CHANGED
@@ -19,11 +19,29 @@
19
  <show_in_website>1</show_in_website>
20
  <show_in_store>0</show_in_store>
21
  <fields>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  <allow_new translate="label">
23
  <label>Allow alert when there is a new product</label>
24
  <frontend_type>select</frontend_type>
25
  <source_model>adminhtml/system_config_source_yesno</source_model>
26
- <sort_order>1</sort_order>
27
  <show_in_default>1</show_in_default>
28
  <show_in_website>1</show_in_website>
29
  <show_in_store>1</show_in_store>
@@ -32,7 +50,7 @@
32
  <label>Allow alert when product price changes</label>
33
  <frontend_type>select</frontend_type>
34
  <source_model>adminhtml/system_config_source_yesno</source_model>
35
- <sort_order>2</sort_order>
36
  <show_in_default>1</show_in_default>
37
  <show_in_website>1</show_in_website>
38
  <show_in_store>1</show_in_store>
@@ -41,7 +59,7 @@
41
  <label>Allow alert when product special price changes</label>
42
  <frontend_type>select</frontend_type>
43
  <source_model>adminhtml/system_config_source_yesno</source_model>
44
- <sort_order>3</sort_order>
45
  <show_in_default>1</show_in_default>
46
  <show_in_website>1</show_in_website>
47
  <show_in_store>1</show_in_store>
@@ -50,7 +68,7 @@
50
  <label>Save products in promotions history</label>
51
  <frontend_type>select</frontend_type>
52
  <source_model>adminhtml/system_config_source_yesno</source_model>
53
- <sort_order>4</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>
@@ -58,7 +76,7 @@
58
  <recipient_email translate="label">
59
  <label>Send Emails To</label>
60
  <frontend_type>text</frontend_type>
61
- <sort_order>5</sort_order>
62
  <show_in_default>1</show_in_default>
63
  <show_in_website>1</show_in_website>
64
  <show_in_store>1</show_in_store>
@@ -68,7 +86,7 @@
68
  <label>Price alert Email Template</label>
69
  <frontend_type>select</frontend_type>
70
  <source_model>adminhtml/system_config_source_email_template</source_model>
71
- <sort_order>6</sort_order>
72
  <show_in_default>1</show_in_default>
73
  <show_in_website>1</show_in_website>
74
  <show_in_store>0</show_in_store>
@@ -77,7 +95,7 @@
77
  <label>Alert Email Sender</label>
78
  <frontend_type>select</frontend_type>
79
  <source_model>adminhtml/system_config_source_email_identity</source_model>
80
- <sort_order>7</sort_order>
81
  <show_in_default>1</show_in_default>
82
  <show_in_website>1</show_in_website>
83
  <show_in_store>0</show_in_store>
19
  <show_in_website>1</show_in_website>
20
  <show_in_store>0</show_in_store>
21
  <fields>
22
+ <allow_inactive translate="label">
23
+ <label>Allow alerts when the product is inactive</label>
24
+ <frontend_type>select</frontend_type>
25
+ <source_model>adminhtml/system_config_source_yesno</source_model>
26
+ <sort_order>1</sort_order>
27
+ <show_in_default>1</show_in_default>
28
+ <show_in_website>1</show_in_website>
29
+ <show_in_store>1</show_in_store>
30
+ </allow_inactive>
31
+ <allow_status translate="label">
32
+ <label>Allow alert when product status changes</label>
33
+ <frontend_type>select</frontend_type>
34
+ <source_model>adminhtml/system_config_source_yesno</source_model>
35
+ <sort_order>2</sort_order>
36
+ <show_in_default>1</show_in_default>
37
+ <show_in_website>1</show_in_website>
38
+ <show_in_store>1</show_in_store>
39
+ </allow_status>
40
  <allow_new translate="label">
41
  <label>Allow alert when there is a new product</label>
42
  <frontend_type>select</frontend_type>
43
  <source_model>adminhtml/system_config_source_yesno</source_model>
44
+ <sort_order>3</sort_order>
45
  <show_in_default>1</show_in_default>
46
  <show_in_website>1</show_in_website>
47
  <show_in_store>1</show_in_store>
50
  <label>Allow alert when product price changes</label>
51
  <frontend_type>select</frontend_type>
52
  <source_model>adminhtml/system_config_source_yesno</source_model>
53
+ <sort_order>4</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>
59
  <label>Allow alert when product special price changes</label>
60
  <frontend_type>select</frontend_type>
61
  <source_model>adminhtml/system_config_source_yesno</source_model>
62
+ <sort_order>5</sort_order>
63
  <show_in_default>1</show_in_default>
64
  <show_in_website>1</show_in_website>
65
  <show_in_store>1</show_in_store>
68
  <label>Save products in promotions history</label>
69
  <frontend_type>select</frontend_type>
70
  <source_model>adminhtml/system_config_source_yesno</source_model>
71
+ <sort_order>6</sort_order>
72
  <show_in_default>1</show_in_default>
73
  <show_in_website>1</show_in_website>
74
  <show_in_store>1</show_in_store>
76
  <recipient_email translate="label">
77
  <label>Send Emails To</label>
78
  <frontend_type>text</frontend_type>
79
+ <sort_order>7</sort_order>
80
  <show_in_default>1</show_in_default>
81
  <show_in_website>1</show_in_website>
82
  <show_in_store>1</show_in_store>
86
  <label>Price alert Email Template</label>
87
  <frontend_type>select</frontend_type>
88
  <source_model>adminhtml/system_config_source_email_template</source_model>
89
+ <sort_order>8</sort_order>
90
  <show_in_default>1</show_in_default>
91
  <show_in_website>1</show_in_website>
92
  <show_in_store>0</show_in_store>
95
  <label>Alert Email Sender</label>
96
  <frontend_type>select</frontend_type>
97
  <source_model>adminhtml/system_config_source_email_identity</source_model>
98
+ <sort_order>9</sort_order>
99
  <show_in_default>1</show_in_default>
100
  <show_in_website>1</show_in_website>
101
  <show_in_store>0</show_in_store>
app/locale/en_US/template/email/asperience_product_alert.html CHANGED
@@ -13,9 +13,9 @@
13
  <p style="padding-left: 30px;">Product name : {{var data.name}}</p>
14
  <p style="padding-left: 30px;">SKU : {{var data.sku}}</p>
15
  <p style="padding-left: 30px;">Admin user : {{var data.user}}</p>
16
- <p style="padding-left: 30px;">Price : {{var data.price}}{{var data.new_price}}</p>
17
- <p style="padding-left: 30px;">Special Price : {{var data.special_price}} {{var data.new_special_price}}</p>
18
  <p style="padding-left: 30px;">Date : {{var data.date}}</p>
19
  </div>
20
  </span>
21
- </p>
 
13
  <p style="padding-left: 30px;">Product name : {{var data.name}}</p>
14
  <p style="padding-left: 30px;">SKU : {{var data.sku}}</p>
15
  <p style="padding-left: 30px;">Admin user : {{var data.user}}</p>
16
+ <p style="padding-left: 30px;">{{var data.comment}}</p>
 
17
  <p style="padding-left: 30px;">Date : {{var data.date}}</p>
18
  </div>
19
  </span>
20
+ </p>
21
+
app/locale/fr_FR/Asperience_Productextend.csv CHANGED
@@ -2,11 +2,14 @@
2
  "Product Alerts in internal","Alertes du produit en interne"
3
  "Deleted product","Produit supprimé"
4
  "An error arose during the sending of emails.","Une erreur est survenue lors de l'envoi d'emails."
5
- "Price change :","Changement de prix :"
6
- "Special price change :","Changement de prix promotionnel :"
7
- "New product :","Nouveau produit :"
8
- "Allow alert when there is a new product", "Autoriser l'alerte quand il y a un nouveau produit"
9
- "Allow alert when product special price changes", "Autoriser l'alerte quand le prix spécial du produit change"
10
  "Save products in promotions history","Enregistrer les promotions dans l'historique"
11
- "Special and Current price change :","Changement de prix normal et promotionnel :"
12
- "This product is not listed in the promotions history.","Ce produit n'est pas répertorié dans l'historique des promotions."
 
 
 
 
2
  "Product Alerts in internal","Alertes du produit en interne"
3
  "Deleted product","Produit supprimé"
4
  "An error arose during the sending of emails.","Une erreur est survenue lors de l'envoi d'emails."
5
+ "Allow alert when there is a new product","Autoriser l'alerte quand il y a un nouveau produit"
6
+ "Allow alert when product special price changes","Autoriser l'alerte quand le prix spécial du produit change"
7
+ "Allow alerts when the product is inactive","Autoriser les alertes quand le produit est désactivé"
8
+ "Allow alert when product status changes","Autoriser l'alerte quand le statut du produit change"
 
9
  "Save products in promotions history","Enregistrer les promotions dans l'historique"
10
+ "New product :","Nouveau produit :"
11
+ "Product Modification :","Modification du produit :"
12
+ "Product Status Change : ","Changement de Statut : "
13
+ "Price : ","Prix : "
14
+ "Special Price : ","Prix spécial : "
15
+ "This product is not listed in the promotions history.","Ce produit n'est pas répertorié dans l'historique des promotions."
app/locale/fr_FR/template/email/asperience_product_alert.html CHANGED
@@ -12,9 +12,8 @@
12
  <div style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial; margin: 8px;">
13
  <p style="padding-left: 30px;">Nom du produit : {{var data.name}}</p>
14
  <p style="padding-left: 30px;">Référence : {{var data.sku}}</p>
15
- <p style="padding-left: 30px;">Utilisteur : {{var data.user}}</p>
16
- <p style="padding-left: 30px;">Prix : {{var data.price}}{{var data.new_price}}</p>
17
- <p style="padding-left: 30px;">Prix spécial : {{var data.special_price}} {{var data.new_special_price}}</p>
18
  <p style="padding-left: 30px;">Date : {{var data.date}}</p>
19
  </div>
20
  </span>
12
  <div style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial; margin: 8px;">
13
  <p style="padding-left: 30px;">Nom du produit : {{var data.name}}</p>
14
  <p style="padding-left: 30px;">Référence : {{var data.sku}}</p>
15
+ <p style="padding-left: 30px;">Utilisateur : {{var data.user}}</p>
16
+ <p style="padding-left: 30px;">{{var data.comment}}</p>
 
17
  <p style="padding-left: 30px;">Date : {{var data.date}}</p>
18
  </div>
19
  </span>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Asperience_Productextend</name>
4
- <version>0.1.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
7
  <channel>community</channel>
@@ -10,15 +10,16 @@
10
  <description>This module allows to send alerts during modifications on products. Indeed, an email is sent in internal when:
11
  - A new product is created
12
  - Product price is changed
 
13
  - Product special price is changed
14
 
15
  This module is developed by the ASPerience French company.
16
  http://www.asperience.fr</description>
17
- <notes>If you have ideas for improvements or find bugs, please send them to Ronan Capitaine or Jean-S&#xE9;bastien Hederer at www.asperience.fr, with ASPerience PrintOrderLine as part of the subject line.</notes>
18
  <authors><author><name>Jean-S&#xE9;bastien Hederer</name><user>auto-converted</user><email>hedererjs@asperience.fr</email></author><author><name>Ronan Capitaine</name><user>auto-converted</user><email>capitainer@asperience.fr</email></author></authors>
19
- <date>2010-03-25</date>
20
- <time>14:30:29</time>
21
- <contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="productextend.xml" hash="e0a9d36ca38f943ff3946517bc3a9dc0"/></dir><dir name="template"><dir name="productextend"><dir name="catalog"><dir name="product"><dir name="edit"><dir name="price"><file name="promotion.phtml" hash="8f63bea1ed6a6942604a1a69886d75df"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Asperience_Productextend.xml" hash="e15facf94881f12d9e64657ec9615850"/></dir></dir></dir></target><target name="magelocal"><dir name="Asperience"><dir name="Productextend"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Price"><file name="Promotion.php" hash="4feaa043b0afadb736789fb79e3f867f"/></dir><file name="Attributes.php" hash="149bc00f31d03695d7a36691e3193c19"/></dir></dir></dir></dir><dir name="Promotion"><dir name="Grid"><dir name="Renderer"><file name="Products.php" hash="ae59c7cd384c82fda09baa2fb5174913"/></dir></dir><file name="Grid.php" hash="8023efdaae78b25e19ff432d658d6ed0"/></dir><file name="Promotion.php" hash="0823551962e067c77f98137b92220766"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="PromotionController.php" hash="b371ace2eb96bb8a5135aea4032211b9"/></dir></dir><dir name="etc"><file name="config.xml" hash="95b5a020d0c2e8bdbfdc659e8bc86107"/><file name="system.xml" hash="d059d307acb7d591d13f34e7ba5c14a2"/></dir><dir name="Helper"><file name="Data.php" hash="7a4ab078a15b8576710888b8323e9c79"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Promotion"><file name="Collection.php" hash="b53b2dd050281bc911f6b6c2038e1219"/></dir><file name="Promotion.php" hash="a734f2dd5e568ba6f3b0a58234b6edc8"/></dir><file name="Observer.php" hash="7e023d9efab63d8dadc285da36077826"/><file name="Promotion.php" hash="0869da74086b4a818b49e5578e1a659f"/></dir><dir name="sql"><dir name="productextend_setup"><file name="mysql4-install-0.1.0.php" hash="1f4685ed186c53e1530567ce1732bf5c"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="e72704ad932a3a63f134551fadb77d15"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><file name="asperience_product_alert.html" hash="57bcf89f6a90b13660d44f96d20634cf"/></dir></dir></dir><dir name="fr_FR"><dir name="template"><dir name="email"><file name="asperience_product_alert.html" hash="2bcfe15f8ef6e8c5d6dd3a2eb71b6b28"/></dir></dir><file name="Asperience_Productextend.csv" hash="744b5b1400033dc4790f58974595963a"/></dir></target></contents>
22
  <compatible/>
23
  <dependencies/>
24
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Asperience_Productextend</name>
4
+ <version>0.1.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
7
  <channel>community</channel>
10
  <description>This module allows to send alerts during modifications on products. Indeed, an email is sent in internal when:
11
  - A new product is created
12
  - Product price is changed
13
+ - Product status is changed
14
  - Product special price is changed
15
 
16
  This module is developed by the ASPerience French company.
17
  http://www.asperience.fr</description>
18
+ <notes>If you have ideas for improvements or find bugs, please send them to Ronan Capitaine or Jean-S&#xE9;bastien Hederer at www.asperience.fr, with ASPerience Productextend as part of the subject line.</notes>
19
  <authors><author><name>Jean-S&#xE9;bastien Hederer</name><user>auto-converted</user><email>hedererjs@asperience.fr</email></author><author><name>Ronan Capitaine</name><user>auto-converted</user><email>capitainer@asperience.fr</email></author></authors>
20
+ <date>2010-05-26</date>
21
+ <time>10:04:16</time>
22
+ <contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="productextend.xml" hash="e0a9d36ca38f943ff3946517bc3a9dc0"/></dir><dir name="template"><dir name="productextend"><dir name="catalog"><dir name="product"><dir name="edit"><dir name="price"><file name="promotion.phtml" hash="8f63bea1ed6a6942604a1a69886d75df"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Asperience_Productextend.xml" hash="e15facf94881f12d9e64657ec9615850"/></dir></dir></dir></target><target name="magelocal"><dir name="Asperience"><dir name="Productextend"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Price"><file name="Promotion.php" hash="4feaa043b0afadb736789fb79e3f867f"/></dir><file name="Attributes.php" hash="149bc00f31d03695d7a36691e3193c19"/></dir></dir></dir></dir><dir name="Promotion"><dir name="Grid"><dir name="Renderer"><file name="Products.php" hash="ae59c7cd384c82fda09baa2fb5174913"/></dir></dir><file name="Grid.php" hash="8023efdaae78b25e19ff432d658d6ed0"/></dir><file name="Promotion.php" hash="0823551962e067c77f98137b92220766"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="PromotionController.php" hash="b371ace2eb96bb8a5135aea4032211b9"/></dir></dir><dir name="etc"><file name="config.xml" hash="4437261f3c76e4275ed7caa6930ba768"/><file name="system.xml" hash="1c1a5e9b5881cd74b9c5f667c94499d1"/></dir><dir name="Helper"><file name="Data.php" hash="7a4ab078a15b8576710888b8323e9c79"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Promotion"><file name="Collection.php" hash="b53b2dd050281bc911f6b6c2038e1219"/></dir><file name="Promotion.php" hash="a734f2dd5e568ba6f3b0a58234b6edc8"/></dir><file name="Observer.php" hash="a219d34e83f6d3fff03507dfa36b2a2e"/><file name="Promotion.php" hash="0869da74086b4a818b49e5578e1a659f"/></dir><dir name="sql"><dir name="productextend_setup"><file name="mysql4-install-0.1.0.php" hash="1f4685ed186c53e1530567ce1732bf5c"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="e72704ad932a3a63f134551fadb77d15"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><file name="asperience_product_alert.html" hash="7703bd13f66d22b2a46f8308b02a791b"/></dir></dir></dir><dir name="fr_FR"><dir name="template"><dir name="email"><file name="asperience_product_alert.html" hash="af405ef11aab0cd5795d0736533007c1"/></dir></dir><file name="Asperience_Productextend.csv" hash="c44ca9dd7aeb4dca59edbe698de7909e"/></dir></target></contents>
23
  <compatible/>
24
  <dependencies/>
25
  </package>