BeezUP_Module_feed_and_tracker - Version 3.0.0

Version Notes

Version 3.0.0 - Added child product flow - Flexible total order amount - Out of stock products filter
Version 2.2.0 - Added configurable product flow Version 2.1.1 - Fix bug tracker with SSL
Version 2.1.0 - New Module Architecture - Tracker position (head or before body end) - Use Catalog Price rules - Enable or disable BOM
Version 2.0.2 - Fix multi store category
Version 2.0.1 - Fix bug with flat mode
Version 2.0.0 - Add BOM Tag for UTF-8 - Flow generation lighter
Version 1.0.1 - New method for categories Tree - Add Table Rates method for Shipping Version 0.2.2 - Fix Bug With extension name - Add debug mod for flow - Edit language files and add setup comments
Version 0.2.1 - Bug with product associated to root category only - Remove first ans last space in SKU and product name - Remove description newline
Version 0.2.0 - Add CSV file - Add Store View filter on products and attributes - Fixed bug on SKU and attibutes type select
Version 0.1.0 - 1st release

Download this release

Release Info

Developer Magento Core Team
Extension BeezUP_Module_feed_and_tracker
Version 3.0.0
Comparing to
See all releases


Version 3.0.0

app/code/community/BeezUp/Block/Tracking.php ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Block_Tracking extends Mage_Core_Block_Text
4
+ {
5
+
6
+ public function getStoreId()
7
+ {
8
+ return Mage::getStoreConfig('beezup/tracking/storeid');
9
+ }
10
+
11
+ public function getOrderTracker()
12
+ {
13
+ if (!$this->getOrder() || !$this->getStoreId()) return '';
14
+
15
+ $order = $this->getOrder();
16
+ $infos = $this->getProductsInformations($order);
17
+
18
+ $marge = '';
19
+ if (Mage::getStoreConfig('beezup/tracking/marge')) {
20
+ $marge = '&ListProductMargin=' . $infos['margin'] . '';
21
+ }
22
+
23
+ //montant HT sans frais de port
24
+ if(Mage::getStoreConfig('beezup/tracking/montant')=="HT"){
25
+ $totalCost = number_format($order->getSubtotal(), 2, '.', '');
26
+ }
27
+ //montant HT avec frais de port
28
+ else if(Mage::getStoreConfig('beezup/tracking/montant')=="HT_port"){
29
+ $totalCost = number_format($order->getSubtotal()+$order->getShippingInclTax(), 2, '.', '');
30
+ }
31
+ //montant TTC sans frais de port
32
+ else if(Mage::getStoreConfig('beezup/tracking/montant')=="TTC"){
33
+ $totalCost = number_format($order->getBaseGrandTotal()-$order->getShippingInclTax(), 2, '.', '');
34
+ }
35
+ //montant TTC avec frais de port
36
+ else if(Mage::getStoreConfig('beezup/tracking/montant')=="TTC_port"){
37
+ $totalCost = number_format($order->getBaseGrandTotal(), 2, '.', '');
38
+ }
39
+
40
+ if(Mage::app()->getStore()->isCurrentlySecure()) {
41
+ $script = '<img src="https://tracker.beezup.com/SO?StoreId='. trim($this->getStoreId()) .
42
+ '&OrderMerchantId=' . $order->getIncrementId() .
43
+ '&TotalCost=' . $totalCost .
44
+ '&ValidPayement=true'.
45
+ '&ListProductId='. $infos['id'] .
46
+ '&ListProductQuantity='. $infos['qty'] .
47
+ '&ListProductUnitPrice=' . $infos['price'] .
48
+ $marge .
49
+ '" />' .
50
+ PHP_EOL;
51
+ }
52
+ else {
53
+ $script = '<img src="http://tracker.beezup.com/SO?StoreId='. trim($this->getStoreId()) .
54
+ '&OrderMerchantId=' . $order->getIncrementId() .
55
+ '&TotalCost=' . $totalCost .
56
+ '&ValidPayement=true'.
57
+ '&ListProductId='. $infos['id'] .
58
+ '&ListProductQuantity='. $infos['qty'] .
59
+ '&ListProductUnitPrice=' . $infos['price'] .
60
+ $marge .
61
+ '" />' .
62
+ PHP_EOL;
63
+ }
64
+
65
+ if (Mage::getStoreConfigFlag('beezup/tracking/debug')) Mage::log($script, 7, 'beezup.log');
66
+
67
+ return $script;
68
+ }
69
+
70
+ public function getProductsInformations($order)
71
+ {
72
+ $id = '';
73
+ $qty = '';
74
+ $price = '';
75
+ $margin = '';
76
+ $items = $order->getAllItems();
77
+
78
+ foreach ($items as $itemId => $item) {
79
+ if(number_format($item->getBasePrice(), 2, '.', '')!=0.00){
80
+ $product = Mage::getModel('catalog/product')->load($item->getProductId());
81
+ $id .= $item->getProductId() . '|';
82
+ $qty .= intval($item->getQtyOrdered()) . '|';
83
+ $price .= number_format($item->getBasePrice(), 2, '.', '') . '|';
84
+ $margin .= number_format($item->getBasePrice() - $product->getCost(), 2, '.', '') . '|';
85
+ }
86
+ }
87
+ return array('id' => substr($id, 0, -1), 'qty' => substr($qty, 0, -1), 'price' => substr($price, 0, -1), 'margin' => substr($margin, 0, -1));
88
+ }
89
+
90
+ protected function _toHtml()
91
+ {
92
+ $this->setCacheLifetime(null);
93
+ $this->addText($this->getOrderTracker());
94
+ return parent::_toHtml();
95
+ }
96
+
97
+ }
app/code/community/BeezUp/Block/Xml.php ADDED
@@ -0,0 +1,331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Block_Xml extends Mage_Core_Block_Text
4
+ {
5
+ /**
6
+ Xml permet de r�cup�rer tous les produits simples
7
+ **/
8
+ public function getXml()
9
+ {
10
+ /* Load Model and Helper */
11
+ $beezup = Mage::getModel('beezup/products');
12
+ $helper = Mage::helper('beezup');
13
+
14
+ /* Initially load the useful elements */
15
+ $_ht = $helper->getConfig('beezup/flux/ht');
16
+ $_description = $helper->getConfig('beezup/flux/description');
17
+ $_tablerates = $helper->getConfig('beezup/flux/tablerates_weight_destination') ? $beezup->getTablerates() : 0;
18
+ $_categories = $beezup->getCategoriesAsArray(Mage::helper('catalog/category')->getStoreCategories());
19
+ $_attributes = $helper->getConfig('beezup/flux/attributes') ? explode(',', $helper->getConfig('beezup/flux/attributes')) : array();
20
+ $_vat = ($_ht && is_numeric($helper->getConfig('beezup/flux/vat'))) ? (preg_replace('(\,+)', '.', $helper->getConfig('beezup/flux/vat')) / 100) + 1 : 1;
21
+ $_catalog_rules = $helper->getConfig('beezup/flux/catalog_rules');
22
+
23
+ /* Build file */
24
+ $xml = $helper->getConfig('beezup/flux/bom') ? "\xEF\xBB\xBF" : '';
25
+ $xml .= '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL . '<catalog>' . PHP_EOL;
26
+
27
+ $products = $beezup->getProducts();
28
+
29
+ foreach ($products as $p) {
30
+ $categories = $beezup->getProductsCategories($p, $_categories);
31
+
32
+ if (count($categories)) {
33
+ $qty = $beezup->getQty($p->getId());
34
+ $stock = $beezup->getIsInStock($qty);
35
+ $shipping = $beezup->getDelivery($qty);
36
+ $price = $p->getPrice();
37
+ $special_price = $p->getSpecialPrice() ? $p->getSpecialPrice() : $p->getPrice();
38
+ $final_price = $_catalog_rules ? $p->getFinalPrice() : $special_price;
39
+
40
+ $xml .= '<product>';
41
+ $xml .= $helper->tag($this->__('b_unique_id'), $p->getId());
42
+ $xml .= $helper->tag($this->__('b_sku'), trim($p->getSku()), 1);
43
+ $xml .= $helper->tag($this->__('b_title'), trim($p->getName()), 1);
44
+ $xml .= $helper->tag($this->__('b_description'), preg_replace("/(\r\n|\n|\r)/", ' ', strip_tags($p->getData($_description))), 1);
45
+ $xml .= $helper->tag($this->__('b_product_url'), $p->getProductUrl(), 1);
46
+ $xml .= $helper->tag($this->__('b_product_image'), $helper->getImageDir() . $p->getImage(), 1);
47
+ $xml .= $helper->tag($this->__('b_availability'), $stock, 1);
48
+ $xml .= $helper->tag($this->__('b_qty'), $qty);
49
+ $xml .= $helper->tag($this->__('b_delivery'), $shipping, 1);
50
+ $xml .= $helper->tag($this->__('b_shipping'), $helper->currency($beezup->getShippingAmount($p->getWeight(), $_tablerates)));
51
+ $xml .= $helper->tag($this->__('b_weight'), $helper->currency($p->getWeight()));
52
+ $xml .= $helper->tag($this->__('b_price'), $helper->currency($final_price*$_vat));
53
+ if ($price != $final_price) $xml .= $helper->tag($this->__('b_regular_price'), $helper->currency($price*$_vat));
54
+ $i = 1;
55
+ foreach ($categories as $v) $xml .= $helper->tag($this->__('b_category_%s', $i++), $v, 1);
56
+ foreach ($_attributes as $a) {
57
+ $value = $p->getResource()->getAttribute($a)->getFrontend()->getValue($p);
58
+ $xml .= $helper->tag($a, is_float($value) ? $helper->currency($value) : $value, is_float($value) ? 0 : 1);
59
+ }
60
+
61
+ $xml .= '</product>' . PHP_EOL;
62
+ }
63
+ }
64
+
65
+ $xml .= '</catalog>';
66
+
67
+ return $xml;
68
+ }
69
+
70
+ /**
71
+ Configurable permet de r�cup�rer tous les produits (p�re, enfant et simple)
72
+ **/
73
+ public function getXmlConfigurable()
74
+ {
75
+ /* Load Model and Helper */
76
+ $beezup = Mage::getModel('beezup/products');
77
+ $helper = Mage::helper('beezup');
78
+
79
+ /* Initially load the useful elements */
80
+ $_ht = $helper->getConfig('beezup/flux/ht');
81
+ $_description = $helper->getConfig('beezup/flux/description');
82
+ $_tablerates = $helper->getConfig('beezup/flux/tablerates_weight_destination') ? $beezup->getTablerates() : 0;
83
+ $_categories = $beezup->getCategoriesAsArray(Mage::helper('catalog/category')->getStoreCategories());
84
+ $_attributes = $helper->getConfig('beezup/flux/attributes') ? explode(',', $helper->getConfig('beezup/flux/attributes')) : array();
85
+ $_vat = ($_ht && is_numeric($helper->getConfig('beezup/flux/vat'))) ? (preg_replace('(\,+)', '.', $helper->getConfig('beezup/flux/vat')) / 100) + 1 : 1;
86
+ $_catalog_rules = $helper->getConfig('beezup/flux/catalog_rules');
87
+
88
+ /* Build file */
89
+ $xml = $helper->getConfig('beezup/flux/bom') ? "\xEF\xBB\xBF" : '';
90
+ $xml .= '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL . '<catalog>' . PHP_EOL;
91
+
92
+ //r�cup�re tous les produits
93
+ $products = $beezup->getProducts(true);
94
+ $childs = $beezup->getConfigurableProducts(true);
95
+
96
+ //parcours les produits
97
+ foreach ($products as $p) {
98
+ $categories = $beezup->getProductsCategories($p, $_categories);
99
+ $varationTheme = $beezup->getOptions($p);
100
+
101
+ if (count($categories)) {
102
+ //si l'�l�ment est un p�re, on va traiter ces enfants
103
+ if(isset($childs[$p->getId()])) {
104
+ $childrens = $childs[$p->getId()];
105
+
106
+ foreach($childrens as $c) {
107
+ $qty = $beezup->getQty($c->getId());
108
+ $stock = $beezup->getIsInStock($qty);
109
+ $shipping = $beezup->getDelivery($qty);
110
+ $price = $c->getPrice();
111
+ $special_price = $c->getSpecialPrice() ? $c->getSpecialPrice() : $c->getPrice();
112
+ $final_price = $_catalog_rules ? $c->getFinalPrice() : $special_price;
113
+
114
+ $xml .= '<product>';
115
+ $xml .= $helper->tag($this->__('b_unique_id'), $c->getId());
116
+ $xml .= $helper->tag($this->__('b_sku'), trim($c->getSku()), 1);
117
+
118
+ $xml .= $helper->tag($this->__('parent_or_child'), 'child', 1);
119
+ $xml .= $helper->tag($this->__('parent_id'), $p->getId());
120
+ $xml .= $helper->tag($this->__('variation-theme'), $varationTheme, 1);
121
+
122
+ $xml .= $helper->tag($this->__('b_title'), trim($p->getName()), 1);
123
+ $xml .= $helper->tag($this->__('b_description'), preg_replace("/(\r\n|\n|\r)/", ' ', strip_tags($p->getData($_description))), 1);
124
+ $xml .= $helper->tag($this->__('b_product_url'), $p->getProductUrl(), 1);
125
+ $xml .= $helper->tag($this->__('b_product_image'), $helper->getImageDir() . $p->getImage(), 1);
126
+ $xml .= $helper->tag($this->__('b_availability'), $stock, 1);
127
+ $xml .= $helper->tag($this->__('b_qty'), $qty);
128
+ $xml .= $helper->tag($this->__('b_delivery'), $shipping, 1);
129
+ $xml .= $helper->tag($this->__('b_shipping'), $helper->currency($beezup->getShippingAmount($c->getWeight(), $_tablerates)));
130
+ $xml .= $helper->tag($this->__('b_weight'), $helper->currency($c->getWeight()));
131
+ $xml .= $helper->tag($this->__('b_price'), $helper->currency($final_price*$_vat));
132
+ if ($price != $final_price) $xml .= $helper->tag($this->__('b_regular_price'), '');
133
+ $i = 1;
134
+ foreach ($categories as $v) $xml .= $helper->tag($this->__('b_category_%s', $i++), $v, 1);
135
+ foreach ($_attributes as $a) {
136
+ $value = $c->getResource()->getAttribute($a)->getFrontend()->getValue($c);
137
+ $xml .= $helper->tag($a, is_float($value) ? $helper->currency($value) : $value, is_float($value) ? 0 : 1);
138
+ }
139
+ $xml .= '</product>' . PHP_EOL;
140
+ }
141
+
142
+ $qty = $beezup->getQty($p->getId());
143
+ $stock = $beezup->getIsInStock($qty);
144
+ $shipping = $beezup->getDelivery($qty);
145
+ $price = $p->getPrice();
146
+ $special_price = $p->getSpecialPrice() ? $p->getSpecialPrice() : $p->getPrice();
147
+ $final_price = $_catalog_rules ? $p->getFinalPrice() : $special_price;
148
+
149
+
150
+ // si c'est un �l�ment parent
151
+ $xml .= '<product>';
152
+ $xml .= $helper->tag($this->__('b_unique_id'), $p->getId());
153
+ $xml .= $helper->tag($this->__('b_sku'), trim($p->getSku()), 1);
154
+
155
+ $xml .= $helper->tag($this->__('parent_or_child'), 'parent', 1);
156
+ $xml .= $helper->tag($this->__('parent_id'), '');
157
+ $xml .= $helper->tag($this->__('variation-theme'), $varationTheme, 1);
158
+
159
+ $xml .= $helper->tag($this->__('b_title'), trim($p->getName()), 1);
160
+ $xml .= $helper->tag($this->__('b_description'), preg_replace("/(\r\n|\n|\r)/", ' ', strip_tags($p->getData($_description))), 1);
161
+ $xml .= $helper->tag($this->__('b_product_url'), $p->getProductUrl(), 1);
162
+ $xml .= $helper->tag($this->__('b_product_image'), $helper->getImageDir() . $p->getImage(), 1);
163
+ $xml .= $helper->tag($this->__('b_availability'), $stock, 1);
164
+ $xml .= $helper->tag($this->__('b_qty'), $qty);
165
+ $xml .= $helper->tag($this->__('b_delivery'), $shipping, 1);
166
+ $xml .= $helper->tag($this->__('b_shipping'), $helper->currency($beezup->getShippingAmount($p->getWeight(), $_tablerates)));
167
+ $xml .= $helper->tag($this->__('b_weight'), $helper->currency($p->getWeight()));
168
+ $xml .= $helper->tag($this->__('b_price'), $helper->currency($final_price*$_vat));
169
+ if ($price != $final_price) $xml .= $helper->tag($this->__('b_regular_price'), $helper->currency($price*$_vat));
170
+ $i = 1;
171
+ foreach ($categories as $v) $xml .= $helper->tag($this->__('b_category_%s', $i++), $v, 1);
172
+ foreach ($_attributes as $a) {
173
+ $value = $p->getResource()->getAttribute($a)->getFrontend()->getValue($p);
174
+ $xml .= $helper->tag($a, is_float($value) ? $helper->currency($value) : $value, is_float($value) ? 0 : 1);
175
+ }
176
+
177
+ $xml .= '</product>' . PHP_EOL;
178
+ }
179
+ }
180
+ }
181
+
182
+ $product_simple = $beezup->getProductsSimple();
183
+
184
+ foreach ($product_simple as $p) {
185
+
186
+ $prodAttributeSet = Mage::getModel('eav/entity_attribute_set')->load($p->getAttributeSetId())->getAttributeSetName();
187
+
188
+ if($prodAttributeSet=='Default'){
189
+ $categories = $beezup->getProductsCategories($p, $_categories);
190
+
191
+ if (count($categories)) {
192
+ $qty = $beezup->getQty($p->getId());
193
+ $stock = $beezup->getIsInStock($qty);
194
+ $shipping = $beezup->getDelivery($qty);
195
+ $price = $p->getPrice();
196
+ $special_price = $p->getSpecialPrice() ? $p->getSpecialPrice() : $p->getPrice();
197
+ $final_price = $_catalog_rules ? $p->getFinalPrice() : $special_price;
198
+
199
+ $xml .= '<product>';
200
+ $xml .= $helper->tag($this->__('b_unique_id'), $p->getId());
201
+ $xml .= $helper->tag($this->__('b_sku'), trim($p->getSku()), 1);
202
+
203
+ $xml .= $helper->tag($this->__('parent_or_child'), 'simple', 1);
204
+ $xml .= $helper->tag($this->__('parent_id'), '');
205
+ $xml .= $helper->tag($this->__('variation-theme'), '', 1);
206
+
207
+ $xml .= $helper->tag($this->__('b_title'), trim($p->getName()), 1);
208
+ $xml .= $helper->tag($this->__('b_description'), preg_replace("/(\r\n|\n|\r)/", ' ', strip_tags($p->getData($_description))), 1);
209
+ $xml .= $helper->tag($this->__('b_product_url'), $p->getProductUrl(), 1);
210
+ $xml .= $helper->tag($this->__('b_product_image'), $helper->getImageDir() . $p->getImage(), 1);
211
+ $xml .= $helper->tag($this->__('b_availability'), $stock, 1);
212
+ $xml .= $helper->tag($this->__('b_qty'), $qty);
213
+ $xml .= $helper->tag($this->__('b_delivery'), $shipping, 1);
214
+ $xml .= $helper->tag($this->__('b_shipping'), $helper->currency($beezup->getShippingAmount($p->getWeight(), $_tablerates)));
215
+ $xml .= $helper->tag($this->__('b_weight'), $helper->currency($p->getWeight()));
216
+ $xml .= $helper->tag($this->__('b_price'), $helper->currency($final_price*$_vat));
217
+ if ($price != $final_price) $xml .= $helper->tag($this->__('b_regular_price'), $helper->currency($price*$_vat));
218
+ $i = 1;
219
+ foreach ($categories as $v) $xml .= $helper->tag($this->__('b_category_%s', $i++), $v, 1);
220
+ foreach ($_attributes as $a) {
221
+ $value = $p->getResource()->getAttribute($a)->getFrontend()->getValue($p);
222
+ $xml .= $helper->tag($a, is_float($value) ? $helper->currency($value) : $value, is_float($value) ? 0 : 1);
223
+ }
224
+
225
+ $xml .= '</product>' . PHP_EOL;
226
+ }
227
+ }
228
+ }
229
+
230
+ $xml .= '</catalog>';
231
+
232
+ return $xml;
233
+ }
234
+
235
+ /**
236
+ Children permet de r�cup�rer tous les produits enfants
237
+ **/
238
+ public function getXmlChild()
239
+ {
240
+ /* Load Model and Helper */
241
+ $beezup = Mage::getModel('beezup/products');
242
+ $helper = Mage::helper('beezup');
243
+
244
+ /* Initially load the useful elements */
245
+ $_ht = $helper->getConfig('beezup/flux/ht');
246
+ $_description = $helper->getConfig('beezup/flux/description');
247
+ $_tablerates = $helper->getConfig('beezup/flux/tablerates_weight_destination') ? $beezup->getTablerates() : 0;
248
+ $_categories = $beezup->getCategoriesAsArray(Mage::helper('catalog/category')->getStoreCategories());
249
+ $_attributes = $helper->getConfig('beezup/flux/attributes') ? explode(',', $helper->getConfig('beezup/flux/attributes')) : array();
250
+ $_vat = ($_ht && is_numeric($helper->getConfig('beezup/flux/vat'))) ? (preg_replace('(\,+)', '.', $helper->getConfig('beezup/flux/vat')) / 100) + 1 : 1;
251
+ $_catalog_rules = $helper->getConfig('beezup/flux/catalog_rules');
252
+
253
+ /* Build file */
254
+ $xml = $helper->getConfig('beezup/flux/bom') ? "\xEF\xBB\xBF" : '';
255
+ $xml .= '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL . '<catalog>' . PHP_EOL;
256
+
257
+ $childs = $beezup->getConfigurableProducts(false);
258
+
259
+ foreach ($childs as $c) {
260
+
261
+ //r�cup�rer l'image sur le p�re
262
+ $productParentIds=Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($c->getId());
263
+ foreach($productParentIds as $productParentId){
264
+ $productParent = Mage::getModel('catalog/product')->load($productParentId);
265
+ $image=$productParent->getImage();
266
+ $categories = $beezup->getProductsCategories($productParent, $_categories);
267
+ $url = $productParent->getProductUrl();
268
+ $name = $productParent->getName();
269
+ $description = $productParent->getData($_description);
270
+ }
271
+
272
+ if(count($categories)){
273
+ $qty = $beezup->getQty($c->getId());
274
+ $stock = $beezup->getIsInStock($qty);
275
+ $shipping = $beezup->getDelivery($qty);
276
+ $price = $c->getPrice();
277
+ $special_price = $c->getSpecialPrice() ? $c->getSpecialPrice() : $c->getPrice();
278
+ $final_price = $_catalog_rules ? $c->getFinalPrice() : $special_price;
279
+
280
+ $xml .= '<product>';
281
+ $xml .= $helper->tag($this->__('b_unique_id'), $c->getId());
282
+ $xml .= $helper->tag($this->__('b_sku'), trim($c->getSku()), 1);
283
+
284
+ $xml .= $helper->tag($this->__('parent_or_child'), 'child', 1);
285
+ $xml .= $helper->tag($this->__('parent_id'), $c->getParentId());
286
+
287
+ $xml .= $helper->tag($this->__('b_title'), trim($name), 1);
288
+ $xml .= $helper->tag($this->__('b_description'), preg_replace("/(\r\n|\n|\r)/", ' ', strip_tags($description)), 1);
289
+ $xml .= $helper->tag($this->__('b_product_url'), $url, 1);
290
+ $xml .= $helper->tag($this->__('b_product_image'), $helper->getImageDir() . $image, 1); //r�cup�re l'image sur le p�re
291
+ $xml .= $helper->tag($this->__('b_availability'), $stock, 1);
292
+ $xml .= $helper->tag($this->__('b_qty'), $qty);
293
+ $xml .= $helper->tag($this->__('b_delivery'), $shipping, 1);
294
+ $xml .= $helper->tag($this->__('b_shipping'), $helper->currency($beezup->getShippingAmount($c->getWeight(), $_tablerates)));
295
+ $xml .= $helper->tag($this->__('b_weight'), $helper->currency($c->getWeight()));
296
+ $xml .= $helper->tag($this->__('b_price'), $helper->currency($final_price*$_vat));
297
+ if ($price != $final_price) $xml .= $helper->tag($this->__('b_regular_price'), '');
298
+ $i = 1;
299
+ foreach ($categories as $v) $xml .= $helper->tag($this->__('b_category_%s', $i++), $v, 1);
300
+ foreach ($_attributes as $a) {
301
+ $value = $c->getResource()->getAttribute($a)->getFrontend()->getValue($c);
302
+ $xml .= $helper->tag($a, is_float($value) ? $helper->currency($value) : $value, is_float($value) ? 0 : 1);
303
+ }
304
+
305
+ $xml .= '</product>' . PHP_EOL;
306
+ }
307
+ }
308
+
309
+ $xml .= '</catalog>';
310
+
311
+ return $xml;
312
+ }
313
+
314
+ protected function _toHtml()
315
+ {
316
+ $this->setCacheLifetime(null);
317
+
318
+ if($this->getConfigurable()) {
319
+ $this->addText($this->getXmlConfigurable());
320
+ }
321
+ else if($this->getChildXML()){
322
+ $this->addText($this->getXmlChild());
323
+ }
324
+ else {
325
+ $this->addText($this->getXml());
326
+ }
327
+
328
+ return parent::_toHtml();
329
+ }
330
+
331
+ }
app/code/community/BeezUp/Helper/Data.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+
6
+ /*
7
+ * Retrieve product image directory
8
+ *
9
+ * @return string
10
+ */
11
+ public function getImageDir()
12
+ {
13
+ return Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product';
14
+ }
15
+
16
+ /*
17
+ * Retrieve config path value
18
+ *
19
+ * @return string
20
+ */
21
+ public function getConfig($path = '')
22
+ {
23
+ if($path) {
24
+ return Mage::getStoreConfig($path);
25
+ }
26
+ return '';
27
+ }
28
+
29
+ /*
30
+ * Retrieve Remote Address
31
+ *
32
+ * @return string
33
+ */
34
+ public function getRemoteAddr()
35
+ {
36
+ return $_SERVER['REMOTE_ADDR'];
37
+ }
38
+
39
+ /*
40
+ * Retrieve tag
41
+ *
42
+ * @param string $tagName
43
+ * @param string $content
44
+ * @param bool $cdata
45
+ * @return string
46
+ */
47
+ public function tag($tagName, $content, $cdata = 0)
48
+ {
49
+ $result = '<' . $tagName . '>';
50
+ if ($cdata) $result .= '<![CDATA[';
51
+ $result .= preg_replace('(^' . $this->__('No') . '$)', '', trim($content));
52
+ if ($cdata) $result .= ']]>';
53
+ $result .= '</' . $tagName . '>';
54
+ return $result;
55
+ }
56
+
57
+ /*
58
+ * Format currency
59
+ *
60
+ * @param float $v
61
+ * @return string
62
+ */
63
+ public function currency($v)
64
+ {
65
+ return number_format($v, 2, '.', '');
66
+ }
67
+
68
+ }
app/code/community/BeezUp/Model/Observer.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Model_Observer
4
+ {
5
+
6
+ public function addBlockTracking($observer)
7
+ {
8
+ if (!Mage::getStoreConfigFlag('beezup/tracking/active') || !Mage::getStoreConfig('beezup/tracking/storeid')) return '';
9
+
10
+ $layout = $observer->getLayout();
11
+ $blockParent = $layout->getXpath("//block[@name='".Mage::getStoreConfig('beezup/tracking/position')."']");
12
+
13
+ if (!$blockParent) return $this;
14
+
15
+ $block = $blockParent[0]->addChild('block');
16
+ $block->addAttribute('type', 'beezup/tracking');
17
+ $block->addAttribute('name', 'beezup_tracking');
18
+ $block->addAttribute('as', 'beezup_tracking');
19
+ }
20
+
21
+ public function addOrder($observer)
22
+ {
23
+ if (!Mage::getStoreConfigFlag('beezup/tracking/active') || !Mage::getStoreConfig('beezup/tracking/storeid')) return '';
24
+
25
+ $order = Mage::getModel('sales/order')->loadByIncrementId(Mage::getSingleton('checkout/session')->getLastRealOrderId());
26
+ $beezupBlock = Mage::app()->getFrontController()->getAction()->getLayout()->getBlock('beezup_tracking');
27
+ if ($order && $beezupBlock) {
28
+ $beezupBlock->setOrder($order);
29
+ }
30
+ }
31
+
32
+ }
app/code/community/BeezUp/Model/Products.php ADDED
@@ -0,0 +1,276 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Model_Products extends Mage_Core_Model_Abstract
4
+ {
5
+
6
+ /*
7
+ * Retrieve products collection
8
+ *
9
+ * @param bool $configurable
10
+ * @return Mage_Catalog_Model_Resource_Product_Collection?
11
+ */
12
+ public function getProducts($configurable = false)
13
+ {
14
+ $products = Mage::getResourceModel('catalog/product_collection')
15
+ ->addAttributeToFilter('status', 1)
16
+ ->addAttributeToFilter('visibility', array('in' => array(Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG, Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)))
17
+ ->addAttributeToFilter('price', array('neq' => 0))
18
+ ->addAttributeToSelect('name')
19
+ ->addAttributeToSelect('weight')
20
+ ->addAttributeToSelect('sku')
21
+ ->addAttributeToSelect('price')
22
+ ->addAttributeToSelect('special_price')
23
+ ->addAttributeToSelect('small_image')
24
+ ->addAttributeToSelect('image')
25
+ ->addAttributeToSelect(Mage::getStoreConfig('beezup/flux/description'))
26
+ ->addStoreFilter();
27
+
28
+ if($configurable) $products->addAttributeToFilter('type_id', Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE);
29
+
30
+ if(Mage::getStoreConfig('beezup/flux/stock')){
31
+ $products= $products->joinField('inventory_in_stock', 'cataloginventory_stock_item', 'is_in_stock', 'product_id=entity_id','is_in_stock>=0', 'left')
32
+ ->addAttributeToFilter('inventory_in_stock', array('neq' => 0));
33
+ }
34
+
35
+ $attributes = explode(',', Mage::getStoreConfig('beezup/flux/attributes'));
36
+ foreach ($attributes as $a) $products->addAttributeToSelect($a);
37
+
38
+ if (Mage::getStoreConfig('beezup/flux/debug_flux')) $products->setPageSize(10);
39
+
40
+ return $products;
41
+ }
42
+
43
+
44
+ public function getProductsSimple()
45
+ {
46
+ $products = Mage::getResourceModel('catalog/product_collection')
47
+ ->addAttributeToFilter('status', 1)
48
+ ->addAttributeToFilter('visibility', array('in' => array(Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG, Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)))
49
+ ->addAttributeToFilter('price', array('neq' => 0))
50
+ ->addAttributeToSelect('name')
51
+ ->addAttributeToSelect('weight')
52
+ ->addAttributeToSelect('sku')
53
+ ->addAttributeToSelect('price')
54
+ ->addAttributeToSelect('special_price')
55
+ ->addAttributeToSelect('small_image')
56
+ ->addAttributeToSelect('image')
57
+ ->addAttributeToSelect(Mage::getStoreConfig('beezup/flux/description'))
58
+ ->addStoreFilter();
59
+
60
+ $products->addAttributeToFilter('type_id', Mage_Catalog_Model_Product_Type::TYPE_SIMPLE);
61
+
62
+ if(Mage::getStoreConfig('beezup/flux/stock')){
63
+ $products= $products->joinField('inventory_in_stock', 'cataloginventory_stock_item', 'is_in_stock', 'product_id=entity_id','is_in_stock>=0', 'left')
64
+ ->addAttributeToFilter('inventory_in_stock', array('neq' => 0));
65
+ }
66
+
67
+ $attributes = explode(',', Mage::getStoreConfig('beezup/flux/attributes'));
68
+ foreach ($attributes as $a) $products->addAttributeToSelect($a);
69
+
70
+ if (Mage::getStoreConfig('beezup/flux/debug_flux')) $products->setPageSize(10);
71
+
72
+ return $products;
73
+ }
74
+
75
+ /*
76
+ * Retrieve configurable products collection
77
+ *
78
+ * @return Mage_Catalog_Model_Resource_Product_Collection?
79
+ */
80
+ public function getConfigurableProducts($config = true) {
81
+ $products = Mage::getResourceModel('catalog/product_type_configurable_product_collection')
82
+ ->addAttributeToFilter('status', 1)
83
+ ->addAttributeToFilter('price', array('neq' => 0))
84
+ ->addAttributeToSelect('name')
85
+ ->addAttributeToSelect('weight')
86
+ ->addAttributeToSelect('sku')
87
+ ->addAttributeToSelect('price')
88
+ ->addAttributeToSelect('special_price')
89
+ ->addAttributeToSelect('small_image')
90
+ ->addAttributeToSelect('image')
91
+ ->addAttributeToSelect(Mage::getStoreConfig('beezup/flux/description'))
92
+ ->addStoreFilter();
93
+
94
+ if(Mage::getStoreConfig('beezup/flux/stock')){
95
+ $products= $products->joinField('inventory_in_stock', 'cataloginventory_stock_item', 'is_in_stock', 'product_id=entity_id','is_in_stock>=0', 'left')
96
+ ->addAttributeToFilter('inventory_in_stock', array('neq' => 0));
97
+ }
98
+
99
+ $attributes = explode(',', Mage::getStoreConfig('beezup/flux/attributes'));
100
+ foreach ($attributes as $a) $products->addAttributeToSelect($a);
101
+
102
+ $productsArray = $products;
103
+
104
+ //si on est dans le cas o� on veut les p�res et les fils
105
+ if($config){
106
+ $productsArray = array();
107
+
108
+ foreach($products as $p) {
109
+ $productsArray[$p->getParentId()][] = $p;
110
+ }
111
+ }
112
+
113
+ return $productsArray;
114
+ }
115
+
116
+ /*
117
+ * Collect options applicable to the configurable product for Varation Theme
118
+ *
119
+ * @param Mage_Catalog_Model_Product $product
120
+ * @return String
121
+ */
122
+
123
+ public function getOptions($product) {
124
+ $childs = $this->getConfigurableProducts();
125
+
126
+ //si c'est un parent
127
+ if(isset($childs[$product->getId()])) {
128
+ $productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
129
+
130
+ $attributeOptions = array();
131
+
132
+ foreach ($productAttributeOptions as $productAttribute) {
133
+ $attributeOptions[] = ucfirst($productAttribute['attribute_code']);
134
+ }
135
+
136
+ return implode('',$attributeOptions);
137
+ }
138
+ }
139
+
140
+ /*
141
+ * Retrieve products stock
142
+ *
143
+ * @param int $id
144
+ * @param int $qty
145
+ * @return int
146
+ */
147
+ public function getQty($productId, $qty = 0)
148
+ {
149
+ $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
150
+ if ($stockItem->getManageStock()) {
151
+ if ($stockItem->getIsInStock()) {
152
+ $qty = intval($stockItem->getQty());
153
+ $qty = ($qty <= 0) ? 0 : $qty;
154
+ }
155
+ } else {
156
+ $qty = 100;
157
+ }
158
+ return $qty;
159
+ }
160
+
161
+ /*
162
+ * Retrieve product shipping amount
163
+ *
164
+ * @param float $weight
165
+ * @param Mage_Shipping_Model_Mysql4_Carrier_Tablerate_Collection $tablerates
166
+ * @return float
167
+ */
168
+ public function getShippingAmount($weight, $tablerates)
169
+ {
170
+ $shipping_amount = 0;
171
+
172
+ if ($tablerates && $tablerates instanceof Mage_Shipping_Model_Mysql4_Carrier_Tablerate_Collection) {
173
+ foreach ($tablerates as $t) {
174
+ if ($weight <= $t->getConditionValue()) $shipping_amount = $t->getPrice();
175
+ }
176
+ } else {
177
+ $shipping_amount = preg_replace('(\,+)', '.', trim(Mage::getStoreConfig('beezup/flux/ship')));
178
+ if (!is_numeric($shipping_amount)) $shipping_amount = 0;
179
+ }
180
+ return $shipping_amount;
181
+ }
182
+
183
+ /*
184
+ * Retrieve Tablerates
185
+ *
186
+ * @return Mage_Shipping_Model_Mysql4_Carrier_Tablerate_Collection
187
+ */
188
+ public function getTablerates()
189
+ {
190
+ return Mage::getResourceModel('shipping/carrier_tablerate_collection')->setOrder('condition_value', 'desc');
191
+ }
192
+
193
+ /*
194
+ * Retrieve product is in stock
195
+ *
196
+ * @param float $qty
197
+ * @return string
198
+ */
199
+ public function getIsInStock($qty)
200
+ {
201
+ return ($qty > 0) ? Mage::helper('beezup')->__('In Stock') : Mage::helper('beezup')->__('Out of Stock');
202
+ }
203
+
204
+ /*
205
+ * Retrieve product delivery
206
+ *
207
+ * @param float $qty
208
+ * @return string
209
+ */
210
+ public function getDelivery($qty)
211
+ {
212
+ return ($qty > 0) ? Mage::getStoreConfig('beezup/flux/days_in') : Mage::getStoreConfig('beezup/flux/days_out');
213
+ }
214
+
215
+ /*
216
+ * Retrieve store categories as array (recursive)
217
+ *
218
+ * @param Varien_Data_Tree_Node_Collection $categories
219
+ * @param string $parent
220
+ * @param array $cats
221
+ * @return string
222
+ */
223
+ public function getCategoriesAsArray($categories, $parent = '', &$cats = array())
224
+ {
225
+ foreach ($categories as $c) {
226
+ $cats[$c['entity_id']] = $parent . $c['name'];
227
+
228
+ if (!Mage::helper('catalog/category_flat')->isEnabled()) {
229
+ if ($childs = $c->getChildren()) {
230
+ $this->getCategoriesAsArray($childs, $parent . $c['name'] . '||', $cats);
231
+ }
232
+ } else {
233
+ if (isset($c['children_nodes'])) {
234
+ $this->getCategoriesAsArray($c['children_nodes'], $parent . $c['name'] . '||', $cats);
235
+ }
236
+ }
237
+ }
238
+ return $cats;
239
+ }
240
+
241
+ /*
242
+ * Retrieve product categories
243
+ *
244
+ * @param Mage_Catalog_Model_Product $product
245
+ * @param array $categories
246
+ * @return array
247
+ */
248
+ public function getProductsCategories($product,$categories)
249
+ {
250
+ $_categories = $product->getCategoryIds();
251
+
252
+ sort($_categories);
253
+ $result = array();
254
+ if(count($_categories)) {
255
+ $_count = 0;
256
+ foreach($_categories as $c) {
257
+ if(isset($categories[$c])) {
258
+ if(count(explode('||',$categories[$c])) > $_count) $result = explode('||',$categories[$c]);
259
+ $_count = count($result);
260
+ }
261
+ }
262
+ }
263
+ return $result;
264
+ }
265
+
266
+ /*
267
+ * Retrieve current store
268
+ *
269
+ * @return Mage_Core_Model_Store
270
+ */
271
+ public function getStore()
272
+ {
273
+ return Mage::app()->getStore();
274
+ }
275
+
276
+ }
app/code/community/BeezUp/Model/System/Config/Source/Attributes.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Model_System_Config_Source_Attributes
4
+ {
5
+
6
+ public function toOptionArray()
7
+ {
8
+
9
+ $attribute = Mage::getResourceModel('eav/entity_attribute_collection')->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId());
10
+ $attributeArray = array();
11
+
12
+ foreach ($attribute as $option) {
13
+ if ($option->getIsUserDefined() && $option->getFrontendLabel()) {
14
+ $attributeArray[] = array('value' => $option->getAttributeCode(), 'label' => $option->getAttributeCode());
15
+ }
16
+ }
17
+
18
+ return $attributeArray;
19
+ }
20
+
21
+ }
app/code/community/BeezUp/Model/System/Config/Source/Description.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Model_System_Config_Source_Description
4
+ {
5
+
6
+ public function toOptionArray()
7
+ {
8
+ return array(
9
+ array('value' => 'short_description', 'label' => Mage::helper('beezup')->__('Short Description')),
10
+ array('value' => 'description', 'label' => Mage::helper('beezup')->__('Description')),
11
+ array('value' => 'meta_description', 'label' => Mage::helper('beezup')->__('Meta Description')),
12
+ );
13
+ }
14
+
15
+ }
app/code/community/BeezUp/Model/System/Config/Source/Montant.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Model_System_Config_Source_Montant
4
+ {
5
+
6
+ public function toOptionArray()
7
+ {
8
+ return array(
9
+ array('value' => "HT", 'label' => Mage::helper('beezup')->__('Excl. Tax - without shipping costs')),
10
+ array('value' => "HT_port", 'label' => Mage::helper('beezup')->__('Excl. Tax - with shipping costs')),
11
+ array('value' => "TTC", 'label' => Mage::helper('beezup')->__('Incl. Tax - without shipping costs')),
12
+ array('value' => "TTC_port", 'label' => Mage::helper('beezup')->__('Incl. Tax - with shipping costs')),
13
+ );
14
+ }
15
+
16
+ }
app/code/community/BeezUp/Model/System/Config/Source/Position.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Model_System_Config_Source_Position
4
+ {
5
+
6
+ public function toOptionArray()
7
+ {
8
+ return array(
9
+ array('value' => 'head', 'label' => Mage::helper('beezup')->__('Head')),
10
+ array('value' => 'before_body_end', 'label' => Mage::helper('beezup')->__('Before body end')),
11
+ );
12
+ }
13
+
14
+ }
app/code/community/BeezUp/Model/System/Config/Source/Price.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_Model_System_Config_Source_Price
4
+ {
5
+
6
+ public function toOptionArray()
7
+ {
8
+ return array(
9
+ array('value' => 1, 'label' => Mage::helper('beezup')->__('Excl. Tax')),
10
+ array('value' => 0, 'label' => Mage::helper('beezup')->__('Incl. Tax')),
11
+ );
12
+ }
13
+
14
+ }
app/code/community/BeezUp/controllers/CatalogController.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class BeezUp_CatalogController extends Mage_Core_Controller_Front_Action
4
+ {
5
+
6
+ public function preDispatch()
7
+ {
8
+ parent::preDispatch();
9
+
10
+ $helper = Mage::helper('beezup');
11
+
12
+ $_active = $helper->getConfig('beezup/flux/active');
13
+ $_ip = $helper->getConfig('beezup/flux/ip');
14
+ $_key = $helper->getConfig('beezup/flux/key');
15
+
16
+ if (!$_active || ($_ip && $_ip != $helper->getRemoteAddr()) || ($_key && $this->getRequest()->getParam('key') != $_key)) {
17
+ $this->norouteAction();
18
+ }
19
+ }
20
+
21
+ public function xmlAction()
22
+ {
23
+ $this->getResponse()->setBody($this->getLayout()->createBlock('beezup/xml')->setConfigurable(false)->setChildXML(false)->toHtml());
24
+ }
25
+
26
+ public function configurableAction()
27
+ {
28
+ $this->getResponse()->setBody($this->getLayout()->createBlock('beezup/xml')->setConfigurable(true)->setChildXML(false)->toHtml());
29
+ }
30
+
31
+ public function childAction()
32
+ {
33
+ $this->getResponse()->setBody($this->getLayout()->createBlock('beezup/xml')->setConfigurable(false)->setChildXML(true)->toHtml());
34
+ }
35
+
36
+ }
app/code/community/BeezUp/etc/config.xml ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <BeezUp>
5
+ <version>3.0.0</version>
6
+ </BeezUp>
7
+ </modules>
8
+ <global>
9
+ <blocks>
10
+ <beezup>
11
+ <class>BeezUp_Block</class>
12
+ </beezup>
13
+ </blocks>
14
+ <models>
15
+ <beezup>
16
+ <class>BeezUp_Model</class>
17
+ </beezup>
18
+ </models>
19
+ <helpers>
20
+ <beezup>
21
+ <class>BeezUp_Helper</class>
22
+ </beezup>
23
+ </helpers>
24
+ </global>
25
+ <frontend>
26
+ <routers>
27
+ <beezup>
28
+ <use>standard</use>
29
+ <args>
30
+ <module>BeezUp</module>
31
+ <frontName>beezup</frontName>
32
+ </args>
33
+ </beezup>
34
+ </routers>
35
+ <events>
36
+ <controller_action_layout_generate_blocks_before>
37
+ <observers>
38
+ <beezup_visitors_tracking>
39
+ <type>singleton</type>
40
+ <class>beezup/observer</class>
41
+ <method>addBlockTracking</method>
42
+ </beezup_visitors_tracking>
43
+ </observers>
44
+ </controller_action_layout_generate_blocks_before>
45
+ <checkout_onepage_controller_success_action>
46
+ <observers>
47
+ <beezup_sales_tracking>
48
+ <type>singleton</type>
49
+ <class>beezup/observer</class>
50
+ <method>addOrder</method>
51
+ </beezup_sales_tracking>
52
+ </observers>
53
+ </checkout_onepage_controller_success_action>
54
+ </events>
55
+ <translate>
56
+ <modules>
57
+ <BeezUp>
58
+ <files>
59
+ <default>BeezUp.csv</default>
60
+ </files>
61
+ </BeezUp>
62
+ </modules>
63
+ </translate>
64
+ </frontend>
65
+ <adminhtml>
66
+ <acl>
67
+ <resources>
68
+ <admin>
69
+ <children>
70
+ <system>
71
+ <children>
72
+ <config>
73
+ <children>
74
+ <beezup>
75
+ <title>BeezUP</title>
76
+ </beezup>
77
+ </children>
78
+ </config>
79
+ </children>
80
+ </system>
81
+ </children>
82
+ </admin>
83
+ </resources>
84
+ </acl>
85
+ <translate>
86
+ <modules>
87
+ <BeezUp>
88
+ <files>
89
+ <default>BeezUp.csv</default>
90
+ </files>
91
+ </BeezUp>
92
+ </modules>
93
+ </translate>
94
+ </adminhtml>
95
+ <default>
96
+ <beezup>
97
+ <tracking>
98
+ <active>0</active>
99
+ <storeid></storeid>
100
+ <marge>0</marge>
101
+ <debug>0</debug>
102
+ <montant>HT</montant>
103
+ <position>head</position>
104
+ </tracking>
105
+ <flux>
106
+ <active>0</active>
107
+ <debug_flux>1</debug_flux>
108
+ <ht>1</ht>
109
+ <vat>19.6</vat>
110
+ <tablerates_weight_destination>0</tablerates_weight_destination>
111
+ <days_in>1-2</days_in>
112
+ <days_out>6-8</days_out>
113
+ <description>short_description</description>
114
+ <catalog_rules>0</catalog_rules>
115
+ <bom>1</bom>
116
+ <ship></ship>
117
+ <key></key>
118
+ <ip></ip>
119
+ </flux>
120
+ </beezup>
121
+ </default>
122
+ </config>
app/code/community/BeezUp/etc/system.xml ADDED
@@ -0,0 +1,225 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <config>
2
+ <sections>
3
+ <beezup translate="label" module="beezup">
4
+ <label>BeezUP</label>
5
+ <tab>catalog</tab>
6
+ <sort_order>900</sort_order>
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
+ <groups>
11
+ <tracking translate="label">
12
+ <label>Tracking</label>
13
+ <frontend_type>text</frontend_type>
14
+ <comment><![CDATA[<div style="font-size:11px;padding:3px;margin-bottom:20px;background:#FFF9E9;border:1px solid #EEE2BE">Support BeezUP : <a href="mailto:help@beezup.com">help@beezup.com</a> (Magento BeezUP v3.0.0) - <a href="http://go.beezup.com" target="_blank">My BeezUP Account</a></div>]]></comment>
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
+ <active translate="label">
21
+ <label>Enabled</label>
22
+ <frontend_type>select</frontend_type>
23
+ <source_model>adminhtml/system_config_source_yesno</source_model>
24
+ <sort_order>1</sort_order>
25
+ <show_in_default>1</show_in_default>
26
+ <show_in_website>1</show_in_website>
27
+ <show_in_store>1</show_in_store>
28
+ </active>
29
+ <storeid translate="label">
30
+ <label>Store ID</label>
31
+ <frontend_type>text</frontend_type>
32
+ <comment><![CDATA[Get your Store ID from My trackers page in your BeezUP account]]></comment>
33
+ <sort_order>2</sort_order>
34
+ <show_in_default>1</show_in_default>
35
+ <show_in_website>1</show_in_website>
36
+ <show_in_store>1</show_in_store>
37
+ </storeid>
38
+ <marge translate="label">
39
+ <label>Calculate product margin</label>
40
+ <frontend_type>select</frontend_type>
41
+ <source_model>adminhtml/system_config_source_yesno</source_model>
42
+ <comment><![CDATA[The field cost must be indicated for all products]]></comment>
43
+ <sort_order>3</sort_order>
44
+ <show_in_default>1</show_in_default>
45
+ <show_in_website>1</show_in_website>
46
+ <show_in_store>1</show_in_store>
47
+ </marge>
48
+ <montant translate="label">
49
+ <label>Total orders amount</label>
50
+ <frontend_type>select</frontend_type>
51
+ <source_model>beezup/system_config_source_montant</source_model>
52
+ <sort_order>4</sort_order>
53
+ <show_in_default>1</show_in_default>
54
+ <show_in_website>1</show_in_website>
55
+ <show_in_store>1</show_in_store>
56
+ </montant>
57
+ <debug translate="label">
58
+ <label>Logs</label>
59
+ <frontend_type>select</frontend_type>
60
+ <source_model>adminhtml/system_config_source_yesno</source_model>
61
+ <comment><![CDATA[Enable tracker logs (var/log/beezup.log)]]></comment>
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>
66
+ </debug>
67
+ </fields>
68
+ </tracking>
69
+ </groups>
70
+ <groups>
71
+ <flux translate="label">
72
+ <label>Catalog Flow</label>
73
+ <frontend_type>text</frontend_type>
74
+ <comment><![CDATA[<div style="font-size:11px;padding:3px;margin-bottom:20px;background:#FFF9E9;border:1px solid #EEE2BE">Support BeezUP : <a href="mailto:help@beezup.com">help@beezup.com</a> (Magento BeezUP v3.0.0) - <a href="http://go.beezup.com" target="_blank">My BeezUP Account</a></div>]]></comment>
75
+ <sort_order>2</sort_order>
76
+ <show_in_default>1</show_in_default>
77
+ <show_in_website>1</show_in_website>
78
+ <show_in_store>1</show_in_store>
79
+ <fields>
80
+ <active translate="label">
81
+ <label>Enabled</label>
82
+ <comment><![CDATA[www.yoursite.com/beezup/catalog/xml<br />www.yoursite.com/beezup/catalog/configurable <br /> www.yoursite.com/beezup/catalog/child]]></comment>
83
+ <frontend_type>select</frontend_type>
84
+ <source_model>adminhtml/system_config_source_yesno</source_model>
85
+ <sort_order>1</sort_order>
86
+ <show_in_default>1</show_in_default>
87
+ <show_in_website>1</show_in_website>
88
+ <show_in_store>1</show_in_store>
89
+ </active>
90
+ <debug_flux translate="label">
91
+ <label>Debug Mode</label>
92
+ <comment><![CDATA[Limit the number of products]]></comment>
93
+ <frontend_type>select</frontend_type>
94
+ <source_model>adminhtml/system_config_source_yesno</source_model>
95
+ <sort_order>2</sort_order>
96
+ <show_in_default>1</show_in_default>
97
+ <show_in_website>1</show_in_website>
98
+ <show_in_store>1</show_in_store>
99
+ </debug_flux>
100
+ <stock translate="label">
101
+ <label>Filter out of stock products</label>
102
+ <frontend_type>select</frontend_type>
103
+ <source_model>adminhtml/system_config_source_yesno</source_model>
104
+ <sort_order>3</sort_order>
105
+ <show_in_default>1</show_in_default>
106
+ <show_in_website>1</show_in_website>
107
+ <show_in_store>1</show_in_store>
108
+ </stock>
109
+ <ship translate="label">
110
+ <label>Shipping (Incl. Tax)</label>
111
+ <frontend_type>text</frontend_type>
112
+ <sort_order>4</sort_order>
113
+ <show_in_default>1</show_in_default>
114
+ <show_in_website>1</show_in_website>
115
+ <show_in_store>1</show_in_store>
116
+ </ship>
117
+ <tablerates_weight_destination translate="label">
118
+ <label>Table Rates</label>
119
+ <comment><![CDATA[Use Table Rates (only Weight vs. Destination)]]></comment>
120
+ <frontend_type>select</frontend_type>
121
+ <source_model>adminhtml/system_config_source_yesno</source_model>
122
+ <sort_order>5</sort_order>
123
+ <show_in_default>1</show_in_default>
124
+ <show_in_website>1</show_in_website>
125
+ <show_in_store>1</show_in_store>
126
+ </tablerates_weight_destination>
127
+ <ht translate="label">
128
+ <label>Catalog Price</label>
129
+ <frontend_type>select</frontend_type>
130
+ <source_model>beezup/system_config_source_price</source_model>
131
+ <comment><![CDATA[Product Price Excl. Tax or Incl. Tax in catalog]]></comment>
132
+ <sort_order>6</sort_order>
133
+ <show_in_default>1</show_in_default>
134
+ <show_in_website>1</show_in_website>
135
+ <show_in_store>1</show_in_store>
136
+ </ht>
137
+ <vat translate="label">
138
+ <label>VAT Rates</label>
139
+ <frontend_type>text</frontend_type>
140
+ <sort_order>7</sort_order>
141
+ <show_in_default>1</show_in_default>
142
+ <show_in_website>1</show_in_website>
143
+ <show_in_store>1</show_in_store>
144
+ </vat>
145
+ <catalog_rules translate="label">
146
+ <label>Use Catalog Price Rules</label>
147
+ <comment><![CDATA[Let off if Catalog Price Rules are not used]]></comment>
148
+ <frontend_type>select</frontend_type>
149
+ <source_model>adminhtml/system_config_source_yesno</source_model>
150
+ <sort_order>8</sort_order>
151
+ <show_in_default>1</show_in_default>
152
+ <show_in_website>1</show_in_website>
153
+ <show_in_store>1</show_in_store>
154
+ </catalog_rules>
155
+ <days_in translate="label">
156
+ <label>Delivery Time if Product in Stock</label>
157
+ <frontend_type>text</frontend_type>
158
+ <comment><![CDATA[Enter eg 1-2 for 1 to 2 days]]></comment>
159
+ <sort_order>9</sort_order>
160
+ <show_in_default>1</show_in_default>
161
+ <show_in_website>1</show_in_website>
162
+ <show_in_store>1</show_in_store>
163
+ </days_in>
164
+ <days_out translate="label">
165
+ <label>Delivery Time if Product out of Stock</label>
166
+ <frontend_type>text</frontend_type>
167
+ <comment><![CDATA[Enter eg 6-8 for 6 to 8 days]]></comment>
168
+ <sort_order>10</sort_order>
169
+ <show_in_default>1</show_in_default>
170
+ <show_in_website>1</show_in_website>
171
+ <show_in_store>1</show_in_store>
172
+ </days_out>
173
+ <description translate="label">
174
+ <label>Product description</label>
175
+ <frontend_type>select</frontend_type>
176
+ <source_model>beezup/system_config_source_description</source_model>
177
+ <sort_order>11</sort_order>
178
+ <show_in_default>1</show_in_default>
179
+ <show_in_website>1</show_in_website>
180
+ <show_in_store>1</show_in_store>
181
+ </description>
182
+ <attributes translate="label">
183
+ <label>Specific Attributes</label>
184
+ <frontend_type>multiselect</frontend_type>
185
+ <source_model>beezup/system_config_source_attributes</source_model>
186
+ <sort_order>12</sort_order>
187
+ <show_in_default>1</show_in_default>
188
+ <show_in_website>1</show_in_website>
189
+ <show_in_store>1</show_in_store>
190
+ </attributes>
191
+ <ip translate="label">
192
+ <label>BeezUP Server IP address</label>
193
+ <comment><![CDATA[Only this IP address will be able to read the flow (leave empty to disable the restriction)]]></comment>
194
+ <frontend_type>text</frontend_type>
195
+ <sort_order>13</sort_order>
196
+ <show_in_default>1</show_in_default>
197
+ <show_in_website>1</show_in_website>
198
+ <show_in_store>1</show_in_store>
199
+ </ip>
200
+ <key translate="label">
201
+ <label>Key</label>
202
+ <frontend_type>text</frontend_type>
203
+ <comment><![CDATA[Protects the flow by a unique key (Eg: 85ds6f7): www.yoursite.com/beezup/catalog/xml/key/85ds6f7/]]></comment>
204
+ <sort_order>14</sort_order>
205
+ <show_in_default>1</show_in_default>
206
+ <show_in_website>1</show_in_website>
207
+ <show_in_store>1</show_in_store>
208
+ </key>
209
+ <bom translate="label">
210
+ <label>Bom</label>
211
+ <frontend_type>select</frontend_type>
212
+ <source_model>adminhtml/system_config_source_yesno</source_model>
213
+ <comment><![CDATA[Add Byte Order Mark (BOM)]]></comment>
214
+ <sort_order>15</sort_order>
215
+ <show_in_default>1</show_in_default>
216
+ <show_in_website>1</show_in_website>
217
+ <show_in_store>1</show_in_store>
218
+ </bom>
219
+
220
+ </fields>
221
+ </flux>
222
+ </groups>
223
+ </beezup>
224
+ </sections>
225
+ </config>
app/etc/modules/BeezUp.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <BeezUp>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ </BeezUp>
8
+ </modules>
9
+ </config>
app/locale/en_US/BeezUp.csv ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Short Description,Short Description
2
+ Description,Description
3
+ Meta Description,Meta Description
4
+ Product description,Product description
5
+ Excl. Tax,Excl. Tax
6
+ Incl. Tax,Incl. Tax
7
+ No,No
8
+ Yes,Yes
9
+ In Stock,In Stock
10
+ Out of Stock,Out of Stock
11
+ Tracking,Tracking
12
+ Catalog Flow,Catalog Flow
13
+ Enabled,Enabled
14
+ Store ID,Store ID
15
+ Calculate product margin,Calculate product margin
16
+ VAT Rates,VAT Rates
17
+ Logs,Logs
18
+ www.yoursite.com/beezup/catalog/xml,www.yoursite.com/beezup/catalog/xml
19
+ BeezUP Server IP address,BeezUP Server IP address
20
+ Key,Key
21
+ Out of stock products,Out of stock products
22
+ Shipping (Incl. Tax),Shipping (Incl. Tax)
23
+ Catalog Price,Catalog Price
24
+ Delivery Time if Product in Stock,Delivery Time if Product in Stock
25
+ Delivery Time if Product out of Stock,Delivery Time if Product out of Stock
26
+ Specific Attributes,Specific Attributes
27
+ The field cost must be indicated for all products,The field cost must be indicated for all products
28
+ Product Price and Shipping Excl. Tax or Incl. Tax in catalog,Product Price and Shipping Excl. Tax or Incl. Tax in catalog
29
+ Enable tracker logs (var/log/beezup.log),Enable tracker logs (var/log/beezup.log)
30
+ Only this IP address will be able to read the flow (leave empty to disable the restriction),Only this IP address will be able to read the flow (leave empty to disable the restriction)
31
+ Protects the flow by a unique key (Eg: 85ds6f7): www.yoursite.com/beezup/catalog/xml/key/85ds6f7/,Protects the flow by a unique key (Eg: 85ds6f7): www.yoursite.com/beezup/catalog/xml/key/85ds6f7/
32
+ Product Price Excl. Tax or Incl. Tax in catalog,Product Price Excl. Tax or Incl. Tax in catalog
33
+ Enter eg 1-2 for 1 to 2 days,Enter eg 1-2 for 1 to 2 days
34
+ Enter eg 6-8 for 6 to 8 days,Enter eg 6-8 for 6 to 8 days
35
+ Field Separator,Field Separator
36
+ Get your Store ID from My trackers page in your BeezUP account,Get your Store ID from My trackers page in your BeezUP account
37
+ Only for CSV file,Only for CSV file
38
+ Use Catalog Price Rules,Use Catalog Price Rules
39
+ Let off if Catalog Price Rules are not used,Let off if Catalog Price Rules are not used
40
+ Debug Mode,Debug Mode
41
+ Limit the number of products,Limit the number of products
42
+ Table Rates,Table Rates
43
+ Use Table Rates (only Weight vs. Destination),Use Table Rates (only Weight vs. Destination)
44
+ Add Byte Order Mark (BOM),Add Byte Order Mark (BOM)
45
+ Tag position,Tag position
46
+ Head,Head
47
+ Before body end,Before body end
48
+ b_unique_id,unique_id
49
+ b_sku,sku
50
+ b_title,title
51
+ b_description,description
52
+ b_price,price
53
+ b_product_url,product_url
54
+ b_product_image,product_image
55
+ b_shipping,shipping
56
+ b_availability,availability
57
+ b_qty,qty
58
+ b_delivery,delivery
59
+ b_regular_price,regular_price
60
+ b_category_%s,category_%s
61
+ b_weight,weight
62
+ Total orders amount,Total orders amount
63
+ Excl. Tax - without shipping costs,Excl. Tax - without shipping costs
64
+ Excl. Tax - with shipping costs,Excl. Tax - with shipping costs
65
+ Incl. Tax - without shipping costs,Incl. Tax - without shipping costs
66
+ Incl. Tax - with shipping costs,Incl. Tax - with shipping costs
67
+ Filter out of stock products,Filter out of stock products
app/locale/es_ES/BeezUp.csv ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Short Description,Descripción corta
2
+ Description,Descripción larga
3
+ Meta Description,Meta descripción
4
+ Product description,Descripción del producto
5
+ Excl. Tax,sin IVA
6
+ Incl. Tax,con IVA
7
+ No,No
8
+ Yes,Sí
9
+ In Stock,En stock
10
+ Out of Stock,No disponible
11
+ Tracking,Tracking
12
+ Catalog Flow,Fichero catalogo
13
+ Enabled,Activar
14
+ Store ID,Store ID
15
+ Calculate product margin,Calculo del margen
16
+ VAT Rates,IVA
17
+ Logs,Logs
18
+ www.yoursite.com/beezup/catalog/xml,www.tutienda.com/beezup/catalog/xml
19
+ BeezUP Server IP address,Dirección IP del servidor BeezUP
20
+ Key,Key
21
+ Out of stock products,Productos no disponibles
22
+ Shipping (Incl. Tax),Gastos de envío (con IVA)
23
+ Catalog Price,Precio
24
+ Delivery Time if Product in Stock,Plazo de entrega si producto está en stock
25
+ Delivery Time if Product out of Stock,Plazo de entrega si producto no está disponible
26
+ Specific Attributes,Atributos específicos
27
+ The field cost must be indicated for all products,El campo coste tiene que ser rellenado para todos los productos
28
+ Product Price and Shipping Excl. Tax or Incl. Tax in catalog,Precio total incluyendo gastos de envío y IVA
29
+ Enable tracker logs (var/log/beezup.log),Activar los logs del tracker (var/log/beezup.log)
30
+ Only this IP address will be able to read the flow (leave empty to disable the restriction),Sólo esta dirección IP será capaz de leer el fichero con el catalogo de productos (dejar campo vacío para desactivar la restricción)
31
+ Protects the flow by a unique key (Eg: 85ds6f7): www.yoursite.com/beezup/catalog/xml/key/85ds6f7/,Proteger vuestro fichero con una contraseña (Ej: 85ds6f7): www.tutienda.com/beezup/catalog/xml/key/85ds6f7/
32
+ Product Price Excl. Tax or Incl. Tax in catalog,Precio con o sin IVA inseridos en el catalogo
33
+ Enter eg 1-2 for 1 to 2 days,Introduzca 1-2 por ejemplo, para 1 a 2 días
34
+ Enter eg 6-8 for 6 to 8 days,Introduzca 6-8 por ejemplo, para 6 a 8 días
35
+ Field Separator,Separador CSV
36
+ Get your Store ID from My trackers page in your BeezUP account,Recuperar Store ID de la página Mis Trackers en tu cuenta BeezUP
37
+ Only for CSV file,Sólo para el fichero CSV
38
+ Use Catalog Price Rules,Use Catalog Price Rules
39
+ Let off if Catalog Price Rules are not used,Let off if Catalog Price Rules are not used
40
+ Debug Mode,Modo Debug
41
+ Limit the number of products,Limitar el número de productos
42
+ Table Rates,Gastos de envío por peso y destino
43
+ Use Table Rates (only Weight vs. Destination),Utilizar el modo por peso y destino para el cálculo de los gastos de envío
44
+ Add Byte Order Mark (BOM),Add Byte Order Mark (BOM)
45
+ Tag position,Tag position
46
+ Head,Head
47
+ Before body end,Before body end
48
+ b_unique_id,identificador_unico
49
+ b_sku,sku
50
+ b_title,nombre_producto
51
+ b_description,descripcion
52
+ b_price,precio
53
+ b_product_url,url_producto
54
+ b_product_image,url_imagen
55
+ b_shipping,gastos_de_envio
56
+ b_availability,disponibilidad
57
+ b_qty,cantidad_disponible
58
+ b_delivery,gastos_de_envio
59
+ b_regular_price,promocion
60
+ b_category_%s,categoria_%s
61
+ b_weight,weight
62
+ Total orders amount,Importe del pedido
63
+ Excl. Tax - without shipping costs,Sin IVA - sin gastos de envío
64
+ Excl. Tax - with shipping costs,Sin IVA - con gastos de envío
65
+ Incl. Tax - without shipping costs,Con IVA - sin gastos de envío
66
+ Incl. Tax - with shipping costs,Con IVA - con gastos de envío
67
+ Filter out of stock products,Filtrar productos sin stock
app/locale/fr_FR/BeezUp.csv ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Short Description,Description courte
2
+ Description,Description longue
3
+ Meta Description,Meta description
4
+ Product description,Description du produit
5
+ Excl. Tax,HT
6
+ Incl. Tax,TTC
7
+ No,Non
8
+ Yes,Oui
9
+ In Stock,En stock
10
+ Out of Stock,Hors stock
11
+ Tracking,Tracking
12
+ Catalog Flow,Flux
13
+ Enabled,Activer
14
+ Store ID,Store ID
15
+ Calculate product margin,Calculer la marge
16
+ VAT Rates,Taux TVA
17
+ Logs,Logs
18
+ www.yoursite.com/beezup/catalog/xml,www.votreboutique.com/beezup/catalog/xml
19
+ BeezUP Server IP address,Adresse IP du serveur BeezUP
20
+ Key,Clé
21
+ Out of stock products,Produits hors stock
22
+ Shipping (Incl. Tax),Frais de port (TTC)
23
+ Catalog Price,Prix catalogue
24
+ Delivery Time if Product in Stock,Délais de livraison si produit en stock
25
+ Delivery Time if Product out of Stock,Délais de livraison si produit hors stock
26
+ Specific Attributes,Attributs spécifiques
27
+ The field cost must be indicated for all products,Le champ coût doit être renseigné pour l'ensemble des produits
28
+ Product Price and Shipping Excl. Tax or Incl. Tax in catalog,Prix produits et frais de port saisis en HT ou TTC
29
+ Enable tracker logs (var/log/beezup.log),Activer les logs du tracker (var/log/beezup.log)
30
+ Only this IP address will be able to read the flow (leave empty to disable the restriction),Seule cette adresse IP sera en mesure de lire le flux (laisser vide pour désactiver la restriction)
31
+ Protects the flow by a unique key (Eg: 85ds6f7): www.yoursite.com/beezup/catalog/xml/key/85ds6f7/,Protége le flux par une clé unique (Ex : 85ds6f7) : www.votresite.com/beezup/catalog/xml/key/85ds6f7/
32
+ Product Price Excl. Tax or Incl. Tax in catalog,Prix produits saisis en HT ou TTC
33
+ Enter eg 1-2 for 1 to 2 days,Saisissez par exemple 1-2 pour 1 à 2 jours
34
+ Enter eg 6-8 for 6 to 8 days,Saisissez par exemple 6-8 pour 6 à 8 jours
35
+ Field Separator,Séparateur de champs
36
+ Get your Store ID from My trackers page in your BeezUP account,Récupérez votre Store ID depuis la page 'Mes trackers' de votre compte BeezUP
37
+ Only for CSV file,Uniquement pour le fichier CSV
38
+ Use Catalog Price Rules,Inclure les régles de prix catalogue
39
+ Let off if Catalog Price Rules are not used,Désactiver si les régles de prix catalogue ne sont pas utlisées
40
+ Debug Mode,Mode Debug
41
+ Limit the number of products,Limiter le nombre de produits
42
+ Table Rates,Frais de port poids par destination
43
+ Use Table Rates (only Weight vs. Destination),Utiliser le mode tarification poids par destination pour le calcul des frais de port
44
+ Add Byte Order Mark (BOM),Ajouter le Byte Order Mark (activer de préférence)
45
+ Tag position,Position du tag
46
+ Head,En-tête (head)
47
+ Before body end,En bas de page (body)
48
+ b_unique_id,identifiant_unique
49
+ b_sku,sku
50
+ b_title,titre
51
+ b_description,description
52
+ b_price,prix
53
+ b_product_url,url_produit
54
+ b_product_image,url_image
55
+ b_shipping,port
56
+ b_availability,disponibilite
57
+ b_qty,qte
58
+ b_delivery,delai_de_livraison
59
+ b_regular_price,prix_barre
60
+ b_category_%s,categorie_%s
61
+ b_weight,poids
62
+ Total orders amount,Montant total des commandes
63
+ Excl. Tax - without shipping costs,HT - sans frais de port
64
+ Excl. Tax - with shipping costs,HT - avec frais de port
65
+ Incl. Tax - without shipping costs,TTC - sans frais de port
66
+ Incl. Tax - with shipping costs,TTC - avec frais de port
67
+ Filter out of stock products,Filtrer les produits hors stock
package.xml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>BeezUP_Module_feed_and_tracker</name>
4
+ <version>3.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>BeezUP is a web solution allowing any stores to easily publish their products on more than 1000 networks around the world : Price Comparison Engines, Marketplaces, Affiliation Networks, Cashback websites, etc. More than 15 countries are today covered.</summary>
10
+ <description>This module generates the XML catalogue feed and the sales tracker that you need to work with BeezUP&#xD;
11
+ &#xD;
12
+ Details :&#xD;
13
+ &#xD;
14
+ This module can be set-up through "System&gt; Configuration &gt; Catalog &gt; BeezUP"&#xD;
15
+ 3 feeds can be used : either http://www.yourstore.com/beezup/catalog/xml or for configured products : http://www.yourstore.com/beezup/catalog/configurable&#xD;
16
+ or for only children products :&#xD;
17
+ http://www.yourstore.com/beezup/catalog/child&#xD;
18
+ &#xD;
19
+ Mandatory fields are automatically added to the feed, all optional fields and your customized attributes can be added easily through the module configuration page.</description>
20
+ <notes>Version 3.0.0 - Added child product flow - Flexible total order amount - Out of stock products filter&#xD;
21
+ Version 2.2.0 - Added configurable product flow Version 2.1.1 - Fix bug tracker with SSL &#xD;
22
+ Version 2.1.0 - New Module Architecture - Tracker position (head or before body end) - Use Catalog Price rules - Enable or disable BOM &#xD;
23
+ Version 2.0.2 - Fix multi store category &#xD;
24
+ Version 2.0.1 - Fix bug with flat mode &#xD;
25
+ Version 2.0.0 - Add BOM Tag for UTF-8 - Flow generation lighter &#xD;
26
+ Version 1.0.1 - New method for categories Tree - Add Table Rates method for Shipping Version 0.2.2 - Fix Bug With extension name - Add debug mod for flow - Edit language files and add setup comments &#xD;
27
+ Version 0.2.1 - Bug with product associated to root category only - Remove first ans last space in SKU and product name - Remove description newline &#xD;
28
+ Version 0.2.0 - Add CSV file - Add Store View filter on products and attributes - Fixed bug on SKU and attibutes type select &#xD;
29
+ Version 0.1.0 - 1st release</notes>
30
+ <authors><author><name>Charles BARAT</name><user>auto-converted</user><email>charles@beezup.com</email></author></authors>
31
+ <date>2013-05-28</date>
32
+ <time>14:51:47</time>
33
+ <contents><target name="magelocale"><dir name="en_US"><file name="BeezUp.csv" hash="98a22e98c4da4053f1c4e98d46ce1d61"/></dir><dir name="es_ES"><file name="BeezUp.csv" hash="44f5d4e9d3023ff9289904a0bdabc56f"/></dir><dir name="fr_FR"><file name="BeezUp.csv" hash="b9fb62b5214234682809685d7f732f0f"/></dir></target><target name="magecommunity"><dir name="BeezUp"><dir name="Block"><file name="Tracking.php" hash="455b06ca7208bab816f227980ff97f67"/><file name="Xml.php" hash="2eddc8d5aa9953ab259d2000a3c5b5a2"/></dir><dir name="Helper"><file name="Data.php" hash="1a40dbf0ff07f30c8c6be624da058e0b"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Source"><file name="Attributes.php" hash="4bba8f38763988edf7940df0b8bdce92"/><file name="Description.php" hash="ab4cc7e3c931544aff38d3bc2cd517dd"/><file name="Position.php" hash="bed34c5746369dc5d9ea9f6589ac6c74"/><file name="Price.php" hash="2c07ae280bf2f6e073fa738fad4e03e3"/><file name="Montant.php" hash="3460701acf11007082c88f8ee9bef6fa"/></dir></dir></dir><file name="Observer.php" hash="434ced3bc78542186217c92c5df9e394"/><file name="Products.php" hash="2d26e7205c275ede5ba36e8f73140c76"/></dir><dir name="controllers"><file name="CatalogController.php" hash="cfd53d5adb5c48185cc502ac031d793f"/></dir><dir name="etc"><file name="config.xml" hash="089114858b1752437b374c0bc4b36c42"/><file name="system.xml" hash="c2d5567fba819db2118f80c3d4c40dc0"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="BeezUp.xml" hash="93df32f86c55b57363b9abc62cf68474"/></dir></target></contents>
34
+ <compatible/>
35
+ <dependencies/>
36
+ </package>