Version Notes
Equel to x price.
Email layout updated.
Several bug fixes.
Attributes auto creation.
Download this release
Release Info
Developer | Heimen |
Extension | A4s_Pricemotion |
Version | 0.2.16 |
Comparing to | |
See all releases |
Code changes from version 0.2.15 to 0.2.16
- app/code/local/A4s/Pricemotion/Helper/Data.php +18 -3
- app/code/local/A4s/Pricemotion/Model/Observer.php +21 -8
- app/code/local/A4s/Pricemotion/Model/Rules.php +1 -0
- app/code/local/A4s/Pricemotion/etc/config.xml +1 -1
- app/code/local/A4s/Pricemotion/etc/system.xml +10 -1
- app/design/adminhtml/default/default/template/pricemotion/mass_price_rules.phtml +2 -0
- app/design/adminhtml/default/default/template/pricemotion/price_rules.phtml +3 -1
- app/design/frontend/base/default/template/pricemotion/report_items.phtml +11 -0
- app/locale/nl_NL/Pricemotion.csv +18 -2
- app/locale/nl_NL/template/email/pricemotion.html +9 -9
- package.xml +17 -10
- skin/adminhtml/default/default/pricemotion/pricemotion.css +0 -6
app/code/local/A4s/Pricemotion/Helper/Data.php
CHANGED
@@ -78,6 +78,7 @@ class A4s_Pricemotion_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
78 |
return Mage::getStoreConfig('pricemotion_options/default/ean_att');
|
79 |
}
|
80 |
|
|
|
81 |
/**
|
82 |
* Get the attributes in which the name is saved
|
83 |
* @return string
|
@@ -149,6 +150,14 @@ class A4s_Pricemotion_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
149 |
return Mage::getStoreConfig('pricemotion_options/default/special_price');
|
150 |
}
|
151 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
/**
|
153 |
* Get pricemotion information
|
154 |
* @param Mage_Catalog_Model_Product $product
|
@@ -166,7 +175,7 @@ class A4s_Pricemotion_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
166 |
//echo " |Request URL: " . $this->getServiceUrl() . self::SERIAL_URL . $this->getSerial() . self::EAN_URL . urlencode($ean) . "| ";
|
167 |
}
|
168 |
$xml_request = $this->getXml($ean);
|
169 |
-
} elseif($name_att && ($pname = $product->getData($name_att))) {
|
170 |
if($display_log) {
|
171 |
//echo " |Request URL: " . $this->getServiceUrl() . self::NAME_TO_EAN_URL . self::SERIAL_URL . $this->getSerial() . self::NAME_URL . urlencode($pname) . "| ";
|
172 |
}
|
@@ -209,6 +218,12 @@ class A4s_Pricemotion_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
209 |
'cleanPrice'=> number_format($price, 2, ".", "")
|
210 |
);
|
211 |
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
$return['prices'][] = number_format($price, 2, ".", "");
|
213 |
}
|
214 |
}
|
@@ -295,7 +310,7 @@ class A4s_Pricemotion_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
295 |
if($response === false) {
|
296 |
$return['message'] = $this->__('Service not available') . ' (Error: E001a)';
|
297 |
} else {
|
298 |
-
$response_xml = simplexml_load_string($response);
|
299 |
|
300 |
if($response_xml === false) {
|
301 |
$return['message'] = $this->__('Service not available') . ' (Error: E002) Response: ' . $response;
|
@@ -363,4 +378,4 @@ class A4s_Pricemotion_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
363 |
|
364 |
}
|
365 |
|
366 |
-
}
|
78 |
return Mage::getStoreConfig('pricemotion_options/default/ean_att');
|
79 |
}
|
80 |
|
81 |
+
|
82 |
/**
|
83 |
* Get the attributes in which the name is saved
|
84 |
* @return string
|
150 |
return Mage::getStoreConfig('pricemotion_options/default/special_price');
|
151 |
}
|
152 |
|
153 |
+
/**
|
154 |
+
* Get the attribute in which the company names that are to be escaped is saved
|
155 |
+
* @return string
|
156 |
+
*/
|
157 |
+
public function getEscNames() {
|
158 |
+
return Mage::getStoreConfig('pricemotion_options/default/escape_names');
|
159 |
+
}
|
160 |
+
|
161 |
/**
|
162 |
* Get pricemotion information
|
163 |
* @param Mage_Catalog_Model_Product $product
|
175 |
//echo " |Request URL: " . $this->getServiceUrl() . self::SERIAL_URL . $this->getSerial() . self::EAN_URL . urlencode($ean) . "| ";
|
176 |
}
|
177 |
$xml_request = $this->getXml($ean);
|
178 |
+
} elseif($name_att && ($pname = $product->getData($name_att)) && strlen($ean) > 8) {
|
179 |
if($display_log) {
|
180 |
//echo " |Request URL: " . $this->getServiceUrl() . self::NAME_TO_EAN_URL . self::SERIAL_URL . $this->getSerial() . self::NAME_URL . urlencode($pname) . "| ";
|
181 |
}
|
218 |
'cleanPrice'=> number_format($price, 2, ".", "")
|
219 |
);
|
220 |
} else {
|
221 |
+
if($this->getEscNames()) {
|
222 |
+
$escs_array = array() + explode(',',$this->getEscNames());
|
223 |
+
if(in_array($price_item->seller, $escs_array)){
|
224 |
+
continue;
|
225 |
+
}
|
226 |
+
}
|
227 |
$return['prices'][] = number_format($price, 2, ".", "");
|
228 |
}
|
229 |
}
|
310 |
if($response === false) {
|
311 |
$return['message'] = $this->__('Service not available') . ' (Error: E001a)';
|
312 |
} else {
|
313 |
+
$response_xml = simplexml_load_string(str_replace('&', '&', $response));
|
314 |
|
315 |
if($response_xml === false) {
|
316 |
$return['message'] = $this->__('Service not available') . ' (Error: E002) Response: ' . $response;
|
378 |
|
379 |
}
|
380 |
|
381 |
+
}
|
app/code/local/A4s/Pricemotion/Model/Observer.php
CHANGED
@@ -77,9 +77,9 @@ class A4s_Pricemotion_Model_Observer
|
|
77 |
{
|
78 |
self::$coll_count = self::$coll_count + 1;
|
79 |
$product = $args;
|
80 |
-
$log_file = "
|
81 |
Mage::log('Loaded product ' . $product->getId(), null, $log_file);
|
82 |
-
if ($product->getStatus() != "1"
|
83 |
Mage::log('SKIPPED: product disabled', null, $log_file);
|
84 |
} else {
|
85 |
$pricemotion = Mage::helper('pricemotion')->getPricemotion($product, false, false, true);
|
@@ -128,7 +128,7 @@ class A4s_Pricemotion_Model_Observer
|
|
128 |
if ($display_log) {
|
129 |
self::$display_log = true;
|
130 |
}
|
131 |
-
$log_file = "
|
132 |
Mage::log('Update attributes cron started', null, $log_file);
|
133 |
$lowestprice_att = Mage::helper("pricemotion")->getLowestPriceAtt();
|
134 |
$difference_att = Mage::helper("pricemotion")->getPriceDiffAtt();
|
@@ -199,7 +199,7 @@ class A4s_Pricemotion_Model_Observer
|
|
199 |
{
|
200 |
error_reporting(E_ALL);
|
201 |
ini_set("display_errors", "On");
|
202 |
-
$log_file = "
|
203 |
echo 'Cron started\r\n';
|
204 |
Mage::log('Cron started', null, $log_file);
|
205 |
|
@@ -543,19 +543,32 @@ class A4s_Pricemotion_Model_Observer
|
|
543 |
}
|
544 |
break;
|
545 |
case A4s_Pricemotion_Model_Rules::RULE_IN_TOP:
|
546 |
-
|
547 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
548 |
//$cron_email .= "Rule 'in top'\r\n";
|
549 |
sort($pricemotion['prices']);
|
550 |
if (count($pricemotion['prices'])) {
|
551 |
$array_position = $rule->getInTopValue() - 1;
|
552 |
if (isset($pricemotion['prices'][$array_position])) {
|
553 |
$top_price = $pricemotion['prices'][$array_position];
|
554 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
555 |
if (Mage::helper('pricemotion')->isRoundedPrice()) {
|
556 |
$new_price = floor($new_price);
|
557 |
}
|
558 |
} else {
|
|
|
559 |
$top_price = end($pricemotion['prices']);
|
560 |
$new_price = $top_price + 0.01;
|
561 |
if (Mage::helper('pricemotion')->isRoundedPrice()) {
|
@@ -699,7 +712,7 @@ class A4s_Pricemotion_Model_Observer
|
|
699 |
$report_table_items[] = array(
|
700 |
"id" => $product->getId(),
|
701 |
"name" => $product->getName(),
|
702 |
-
"error" => Mage::helper('pricemotion')->__('
|
703 |
);
|
704 |
}
|
705 |
//$cron_email .= "\r\n";
|
77 |
{
|
78 |
self::$coll_count = self::$coll_count + 1;
|
79 |
$product = $args;
|
80 |
+
$log_file = "pricemotion_log_update_attributes_callback" . date("Y-m-d-h") . ".log";
|
81 |
Mage::log('Loaded product ' . $product->getId(), null, $log_file);
|
82 |
+
if ($product->getStatus() != "1" || $product->getEnablePricemotion() != "1") {
|
83 |
Mage::log('SKIPPED: product disabled', null, $log_file);
|
84 |
} else {
|
85 |
$pricemotion = Mage::helper('pricemotion')->getPricemotion($product, false, false, true);
|
128 |
if ($display_log) {
|
129 |
self::$display_log = true;
|
130 |
}
|
131 |
+
$log_file = "pricemotion_log_update_attributes" . date("Y-m-d-h") . ".log";
|
132 |
Mage::log('Update attributes cron started', null, $log_file);
|
133 |
$lowestprice_att = Mage::helper("pricemotion")->getLowestPriceAtt();
|
134 |
$difference_att = Mage::helper("pricemotion")->getPriceDiffAtt();
|
199 |
{
|
200 |
error_reporting(E_ALL);
|
201 |
ini_set("display_errors", "On");
|
202 |
+
$log_file = "pricemotion_log_setprices" . date("Y-m-d-h") . ".log";
|
203 |
echo 'Cron started\r\n';
|
204 |
Mage::log('Cron started', null, $log_file);
|
205 |
|
543 |
}
|
544 |
break;
|
545 |
case A4s_Pricemotion_Model_Rules::RULE_IN_TOP:
|
546 |
+
case A4s_Pricemotion_Model_Rules::RULE_MATCH_TOP:
|
547 |
+
if ($rule->getStatus()==A4s_Pricemotion_Model_Rules::RULE_IN_TOP) {
|
548 |
+
echo 'Rule in top\r\n';
|
549 |
+
Mage::log('Rule in top', null, $log_file);
|
550 |
+
} else {
|
551 |
+
echo 'Rule match top\r\n';
|
552 |
+
Mage::log('Rule match top', null, $log_file);
|
553 |
+
}
|
554 |
//$cron_email .= "Rule 'in top'\r\n";
|
555 |
sort($pricemotion['prices']);
|
556 |
if (count($pricemotion['prices'])) {
|
557 |
$array_position = $rule->getInTopValue() - 1;
|
558 |
if (isset($pricemotion['prices'][$array_position])) {
|
559 |
$top_price = $pricemotion['prices'][$array_position];
|
560 |
+
if ($rule->getStatus()==A4s_Pricemotion_Model_Rules::RULE_IN_TOP) {
|
561 |
+
//We go below number x
|
562 |
+
$new_price = $top_price - 0.01;
|
563 |
+
} else {
|
564 |
+
//We match the price
|
565 |
+
$new_price = $top_price;
|
566 |
+
}
|
567 |
if (Mage::helper('pricemotion')->isRoundedPrice()) {
|
568 |
$new_price = floor($new_price);
|
569 |
}
|
570 |
} else {
|
571 |
+
//Top is not big enough, make it 1 cent more expensive
|
572 |
$top_price = end($pricemotion['prices']);
|
573 |
$new_price = $top_price + 0.01;
|
574 |
if (Mage::helper('pricemotion')->isRoundedPrice()) {
|
712 |
$report_table_items[] = array(
|
713 |
"id" => $product->getId(),
|
714 |
"name" => $product->getName(),
|
715 |
+
"error" => Mage::helper('pricemotion')->__('')
|
716 |
);
|
717 |
}
|
718 |
//$cron_email .= "\r\n";
|
app/code/local/A4s/Pricemotion/Model/Rules.php
CHANGED
@@ -14,6 +14,7 @@ class A4s_Pricemotion_Model_Rules extends Mage_Core_Model_Abstract
|
|
14 |
const RULE_BELOW_AVERAGE = 1;
|
15 |
const RULE_IN_TOP = 2;
|
16 |
const LOWEST_PRICE = 3;
|
|
|
17 |
|
18 |
public function _construct()
|
19 |
{
|
14 |
const RULE_BELOW_AVERAGE = 1;
|
15 |
const RULE_IN_TOP = 2;
|
16 |
const LOWEST_PRICE = 3;
|
17 |
+
const RULE_MATCH_TOP = 4;
|
18 |
|
19 |
public function _construct()
|
20 |
{
|
app/code/local/A4s/Pricemotion/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<A4s_Pricemotion>
|
5 |
-
<version>0.2.
|
6 |
</A4s_Pricemotion>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<A4s_Pricemotion>
|
5 |
+
<version>0.2.16</version>
|
6 |
</A4s_Pricemotion>
|
7 |
</modules>
|
8 |
<global>
|
app/code/local/A4s/Pricemotion/etc/system.xml
CHANGED
@@ -121,6 +121,15 @@
|
|
121 |
<show_in_store>1</show_in_store>
|
122 |
<comment>Instead of changing the actual product price set this to Yes and PriceMotion will change the 'Special Price'.</comment>
|
123 |
</special_price>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
</fields>
|
125 |
</default>
|
126 |
<emails translate="label comment" module="pricemotion">
|
@@ -166,4 +175,4 @@
|
|
166 |
</sections>
|
167 |
|
168 |
|
169 |
-
</config>
|
121 |
<show_in_store>1</show_in_store>
|
122 |
<comment>Instead of changing the actual product price set this to Yes and PriceMotion will change the 'Special Price'.</comment>
|
123 |
</special_price>
|
124 |
+
<escape_names translate="label">
|
125 |
+
<label>Company names to be ignored</label>
|
126 |
+
<frontend_type>text</frontend_type>
|
127 |
+
<sort_order>75</sort_order>
|
128 |
+
<show_in_default>1</show_in_default>
|
129 |
+
<show_in_website>1</show_in_website>
|
130 |
+
<show_in_store>1</show_in_store>
|
131 |
+
<comment>List the company names (seperated by a comma ',') as displayed in the Pricemotion tab on the 'Edit Product' page, that you do not want to include in the execution of your price rules.</comment>
|
132 |
+
</escape_names>
|
133 |
</fields>
|
134 |
</default>
|
135 |
<emails translate="label comment" module="pricemotion">
|
175 |
</sections>
|
176 |
|
177 |
|
178 |
+
</config>
|
app/design/adminhtml/default/default/template/pricemotion/mass_price_rules.phtml
CHANGED
@@ -27,6 +27,8 @@
|
|
27 |
<div class="price-rule-box">
|
28 |
<input type="radio" name="pricemotion[price_rules]" id="pm_top_enabled" value="<?php echo A4s_Pricemotion_Model_Rules::RULE_IN_TOP ?>" />
|
29 |
<label for="pm_top_enabled"><?php echo $this->__('The price is always in top') ?></label>
|
|
|
|
|
30 |
<input type="text" class="input-text" name="pricemotion[top]" id="pm_top" />
|
31 |
<label for="pm_top"><?php echo $this->__('of lowest prices.') ?></label>
|
32 |
</div>
|
27 |
<div class="price-rule-box">
|
28 |
<input type="radio" name="pricemotion[price_rules]" id="pm_top_enabled" value="<?php echo A4s_Pricemotion_Model_Rules::RULE_IN_TOP ?>" />
|
29 |
<label for="pm_top_enabled"><?php echo $this->__('The price is always in top') ?></label>
|
30 |
+
<input type="radio" name="pricemotion[price_rules]" id="pm_top_enabled" value="<?php echo A4s_Pricemotion_Model_Rules::RULE_MATCH_TOP ?>" />
|
31 |
+
<label for="pm_top_enabled"><?php echo $this->__('The price is always matching number') ?></label>
|
32 |
<input type="text" class="input-text" name="pricemotion[top]" id="pm_top" />
|
33 |
<label for="pm_top"><?php echo $this->__('of lowest prices.') ?></label>
|
34 |
</div>
|
app/design/adminhtml/default/default/template/pricemotion/price_rules.phtml
CHANGED
@@ -24,7 +24,9 @@ $rules = $this->getProductRules();
|
|
24 |
</div>
|
25 |
<div class="price-rule-box">
|
26 |
<input type="radio" name="pricemotion[price_rules]" id="pm_top_enabled" value="<?php echo A4s_Pricemotion_Model_Rules::RULE_IN_TOP ?>" <?php if($rules->getStatus() == A4s_Pricemotion_Model_Rules::RULE_IN_TOP): ?>checked="checked"<?php endif; ?>/>
|
27 |
-
<label for="pm_top_enabled"><?php echo $this->__('The price is always in top') ?></label
|
|
|
|
|
28 |
<input type="text" value="<?php echo $rules->getInTopValue() ?>" class="input-text" name="pricemotion[top]" id="pm_top" />
|
29 |
<label for="pm_top"><?php echo $this->__('of lowest prices.') ?></label>
|
30 |
</div>
|
24 |
</div>
|
25 |
<div class="price-rule-box">
|
26 |
<input type="radio" name="pricemotion[price_rules]" id="pm_top_enabled" value="<?php echo A4s_Pricemotion_Model_Rules::RULE_IN_TOP ?>" <?php if($rules->getStatus() == A4s_Pricemotion_Model_Rules::RULE_IN_TOP): ?>checked="checked"<?php endif; ?>/>
|
27 |
+
<label for="pm_top_enabled"><?php echo $this->__('The price is always in top') ?></label><br/>
|
28 |
+
<input type="radio" name="pricemotion[price_rules]" id="pm_top_enabled" value="<?php echo A4s_Pricemotion_Model_Rules::RULE_MATCH_TOP ?>" <?php if($rules->getStatus() == A4s_Pricemotion_Model_Rules::RULE_MATCH_TOP): ?>checked="checked"<?php endif; ?>/>
|
29 |
+
<label for="pm_top_enabled"><?php echo $this->__('The price is always matching number') ?></label><br/>
|
30 |
<input type="text" value="<?php echo $rules->getInTopValue() ?>" class="input-text" name="pricemotion[top]" id="pm_top" />
|
31 |
<label for="pm_top"><?php echo $this->__('of lowest prices.') ?></label>
|
32 |
</div>
|
app/design/frontend/base/default/template/pricemotion/report_items.phtml
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php foreach($this->getItems() as $item): ?>
|
2 |
+
<tr>
|
3 |
+
<td><?php echo $item['id']; ?></td>
|
4 |
+
<td><?php echo $item['name']; ?></td>
|
5 |
+
<td><?php echo Mage::helper('pricemotion')->__($item['type']); ?></td>
|
6 |
+
<td><?php echo $item['price']; ?></td>
|
7 |
+
<td><?php echo $item['new_price']; ?></td>
|
8 |
+
<td><?php echo $item['min_price']; ?></td>
|
9 |
+
<td><?php echo (isset($item['error'])) ? $item['error'] : $item['status']; ?></td>
|
10 |
+
</tr>
|
11 |
+
<?php endforeach; ?>
|
app/locale/nl_NL/Pricemotion.csv
CHANGED
@@ -19,7 +19,8 @@
|
|
19 |
"Prices","Prijzen"
|
20 |
"Service not available","Service of product is niet beschikbaar"
|
21 |
"The price is always","De prijs is altijd"
|
22 |
-
"The price is always in top","De prijs
|
|
|
23 |
"Vendor","Winkel"
|
24 |
"Cron Started","NL-Cron Started"
|
25 |
"Loaded %s rules","NL-Loaded %s rules"
|
@@ -35,4 +36,19 @@
|
|
35 |
"Show PriceMotion Prices","Gebruik Pricemotion"
|
36 |
"Equal to lowest price","Gelijk aan laagste prijs"
|
37 |
"lowest price","laagste prijs"
|
38 |
-
"Update PriceMotion Price Rules","Update Pricemotion prijs regels"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
"Prices","Prijzen"
|
20 |
"Service not available","Service of product is niet beschikbaar"
|
21 |
"The price is always","De prijs is altijd"
|
22 |
+
"The price is always in top","De prijs is goedkoper dan nummer"
|
23 |
+
"The price is always matching number","De prijs staat altijd gelijk aan nummer"
|
24 |
"Vendor","Winkel"
|
25 |
"Cron Started","NL-Cron Started"
|
26 |
"Loaded %s rules","NL-Loaded %s rules"
|
36 |
"Show PriceMotion Prices","Gebruik Pricemotion"
|
37 |
"Equal to lowest price","Gelijk aan laagste prijs"
|
38 |
"lowest price","laagste prijs"
|
39 |
+
"Update PriceMotion Price Rules","Update Pricemotion prijs regels"
|
40 |
+
"Company names to be ignored","Concurrenten/eigen naam om te negeren"
|
41 |
+
"Pricemotion URL","Pricemotion URL"
|
42 |
+
"Pricemotion Messages URL","Pricemotion Berichten URL"
|
43 |
+
"Serial","Serial sleutel"
|
44 |
+
"EAN Attribute","EAN attribuut"
|
45 |
+
"Name Attribute","Naam attribuut"
|
46 |
+
"Cost Price Attribute","Kostprijs attribuut"
|
47 |
+
"Lowest Price Attribute","Laagste prijs attribuut"
|
48 |
+
"Price Difference Attribute","Prijsverschil attribuut"
|
49 |
+
"Rounded Prices","Prijzen afronden"
|
50 |
+
"Use 'Special Price'","Update 'speciale prijs'"
|
51 |
+
"Instead of changing the actual product price set this to Yes and PriceMotion will change the 'Special Price'.","Zet op Ja om in plaats van het normale prijs veld de 'speciale prijs' bij te werken."
|
52 |
+
"Cron Reports","E-mail overzicht prijswijzigingen"
|
53 |
+
"List the company names (seperated by a comma ',') as displayed in the Pricemotion tab on the 'Edit Product' page, that you do not want to include in the execution of your price rules.","Vermeld de namen van de bedrijven gescheiden door de comma welke u wilt uitsluiten van de prijsregels. Bijvoorbeeld om eigen prijzen of prijzen van specifieke concurrenten te negeren."
|
54 |
+
"Send emails with reports after cron is finished.","Verstuur een e-mail met een overzicht van prijswijzigingen nadat deze periodiek is bijgewerkt."
|
app/locale/nl_NL/template/email/pricemotion.html
CHANGED
@@ -12,11 +12,11 @@ body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif;
|
|
12 |
@-->
|
13 |
|
14 |
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
15 |
-
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:
|
16 |
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
17 |
<tr>
|
18 |
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
19 |
-
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="
|
20 |
<!-- [ header starts here] -->
|
21 |
<tr>
|
22 |
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
@@ -25,20 +25,20 @@ body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif;
|
|
25 |
<tr>
|
26 |
<td valign="top">
|
27 |
<p style="font-size:12px; line-height:16px; margin:0;">
|
28 |
-
PriceMotion
|
29 |
</p>
|
30 |
<p style="font-size:12px; line-height:16px; margin:0;">{{var rules_loaded}} regels geladen</p>
|
31 |
</td>
|
32 |
</tr>
|
33 |
<tr>
|
34 |
<td>
|
35 |
-
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="
|
36 |
<tr>
|
37 |
-
<td><b>
|
38 |
-
<td><b>
|
39 |
-
<td><b>Regel
|
40 |
-
<td><b>
|
41 |
-
<td><b>
|
42 |
<td><b>Margebewaking</b></td>
|
43 |
<td><b>Status</b></td>
|
44 |
</tr>
|
12 |
@-->
|
13 |
|
14 |
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
15 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:30px;">
|
16 |
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
17 |
<tr>
|
18 |
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
19 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="100%" style="border:1px solid #E0E0E0;">
|
20 |
<!-- [ header starts here] -->
|
21 |
<tr>
|
22 |
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
25 |
<tr>
|
26 |
<td valign="top">
|
27 |
<p style="font-size:12px; line-height:16px; margin:0;">
|
28 |
+
PriceMotion E-mail Update
|
29 |
</p>
|
30 |
<p style="font-size:12px; line-height:16px; margin:0;">{{var rules_loaded}} regels geladen</p>
|
31 |
</td>
|
32 |
</tr>
|
33 |
<tr>
|
34 |
<td>
|
35 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="100%" style="border:1px solid #E0E0E0;">
|
36 |
<tr>
|
37 |
+
<td><b>ID</b></td>
|
38 |
+
<td><b>Productnaam</b></td>
|
39 |
+
<td><b>Regel</b></td>
|
40 |
+
<td><b>Oud</b></td>
|
41 |
+
<td><b>Nieuw</b></td>
|
42 |
<td><b>Margebewaking</b></td>
|
43 |
<td><b>Status</b></td>
|
44 |
</tr>
|
package.xml
CHANGED
@@ -1,18 +1,25 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>A4s_Pricemotion</name>
|
4 |
-
<version>0.2.
|
5 |
<stability>stable</stability>
|
6 |
-
<license
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
-
<summary>Pricemotion
|
10 |
-
<description>Pricemotion
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
<compatible/>
|
17 |
-
<dependencies><required><php><min>5.2.0</min><max>5.5.0</max></php></required></dependencies>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>A4s_Pricemotion</name>
|
4 |
+
<version>0.2.16</version>
|
5 |
<stability>stable</stability>
|
6 |
+
<license>GNU GPL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
+
<summary>Pricemotion delivers the prices of Dutch competitors right in Magento. You do not have to through all those websites of your competitors anymore. </summary>
|
10 |
+
<description>Pricemotion delivers the prices of Dutch competitors right in Magento. You do not have to through all those websites of your competitors anymore. 
|
11 |
+

|
12 |
+
Just open up a product in Magento and look at the Pricemotion tab. All prices of your competitors are there including the highest, lowest, average and median price. You can make decisions right away. 
|
13 |
+

|
14 |
+
You can also let the work be done for you. Just setup a pricerule and the prices are updated automatically four times a day. To be sure nothing goes wrong we have margin check so that you can trust your selling prices are not below your acquiring price and you make money. For those who don't trust automatic systems we can send you an email about that and leave the prices for you to set.</description>
|
15 |
+
<notes>Equel to x price.
|
16 |
+
Email layout updated.
|
17 |
+
Several bug fixes.
|
18 |
+
Attributes auto creation.</notes>
|
19 |
+
<authors><author><name>Heimen</name><user>pricemotion</user><email>heimen@pricemotion.nl</email></author></authors>
|
20 |
+
<date>2014-10-23</date>
|
21 |
+
<time>13:34:33</time>
|
22 |
+
<contents><target name="magelocal"><dir name="A4s"><dir name="Pricemotion"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Action"><file name="Rules.php" hash="2ab2d7b2aec730e4180c214e4111c6d6"/></dir><file name="Grid.php" hash="efa1e9b5133e2f173bc478c29168fc80"/><file name="Pricerules.php" hash="cb8685c1f0de60337d52b86307f16dae"/><file name="Tab.php" hash="af00da1a6dff03d99390a48086572df4"/></dir></dir><dir name="Form"><dir name="Element"><file name="Errormsg.php" hash="67a6e14c48db851da3ce29dc636066ab"/><file name="Prices.php" hash="0a3b56aeee92427b954b3642b419b336"/></dir></dir></dir></dir><dir name="Helper"><dir name="Catalog"><dir name="Product"><file name="Action.php" hash="8126e50cf75eb79d8e2c8d2f077b6e7f"/></dir></dir><file name="Data.php" hash="848bf746991dadcb5fe7fe65bf60b3ee"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Rules"><file name="Collection.php" hash="422047623e90aeeaf3056aa735e5cf51"/></dir><file name="Rules.php" hash="de43a9a3bf018ff3dc88289b400cd959"/></dir><file name="Observer.php" hash="d0fdecfea8a429ace88a9804777efae8"/><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="db37feaae0b61a2f1af2bf2f3bd0f620"/></dir></dir></dir><file name="Rules.php" hash="89cc7b2d19f18dca40bf53c3c35efcfd"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Product"><file name="Attributes.php" hash="d2e820f8b5888e1394e34b640738f1d9"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ActionController.php" hash="436f4b1f3f0f4c87313a5aaabf963f3a"/></dir></dir><dir name="etc"><file name="config.xml" hash="8d208ba2c726fda0a7149b119ff7fd02"/><file name="system.xml" hash="fdb0df916e543f61d61ec77b82563ca1"/></dir><dir name="sql"><dir name="pricemotion_setup"><file name="mysql4-install-0.1.0.php" hash="c33e0086a9b77f31642eb1a921623166"/><file name="mysql4-upgrade-0.2.10-0.2.11.php" hash="8c89afb7b2c3f5ba56ac39c8d0b72e67"/><file name="mysql4-upgrade-0.2.12-0.2.13.php" hash="579437094cfe6c059aa3c16a9d43bf3a"/><file name="mysql4-upgrade-0.2.8-0.2.9.php" hash="0d320ad04bd30316daa8b1994211af9a"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pricemotion.xml" hash="b0b4f5f55155551c4523bfad0ac4dd28"/></dir><dir name="template"><dir name="pricemotion"><file name="mass_price_rules.phtml" hash="b1ca05a79f3a7e408445b4faa11e8a6b"/><file name="price_rules.phtml" hash="57470cb06e722e7344a5e51e87c37d08"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="pricemotion"><file name="report_items.phtml" hash="b4b4917387c60086aefc4f218071145a"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="A4s_Pricemotion.xml" hash="8579f9f81887bdb95098fa360a783553"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Pricemotion.csv" hash="0ab8bfb05c1e3f7bdd26b84596432ac5"/><dir name="template"><dir name="email"><file name="pricemotion.html" hash="b1910a27cd87ee07612ed4cb89deca3b"/></dir></dir></dir><dir name="nl_NL"><file name="Pricemotion.csv" hash="a10d700e52dcd67029383e83b6b1da6a"/><dir name="template"><dir name="email"><file name="pricemotion.html" hash="c658c320679e50d67eb7a24239dd1d4e"/></dir></dir></dir></target></contents>
|
23 |
<compatible/>
|
24 |
+
<dependencies><required><php><min>5.2.0</min><max>5.5.0</max></php><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.5.0</min><max>1.9</max></package></required></dependencies>
|
25 |
</package>
|
skin/adminhtml/default/default/pricemotion/pricemotion.css
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
.price-rule-box {
|
2 |
-
background: none repeat scroll 0 0 #E7EFEF;
|
3 |
-
border: 1px solid #CDDDDD;
|
4 |
-
margin: 0.7em 0;
|
5 |
-
padding: 0.4em;
|
6 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|