Version Notes
- added stock management
- added layered recommendation
- fixed attribute management
- fixed recoId empty list issue
Download this release
Release Info
Developer | Mathieu |
Extension | Affinity_Items |
Version | 1.1.5 |
Comparing to | |
See all releases |
Code changes from version 1.1.4 to 1.1.5
- app/code/local/AffinityEngine/AffinityItems/Block/Index.php +28 -11
- app/code/local/AffinityEngine/AffinityItems/Model/Source/Recoconfig.php +73 -72
- app/code/local/AffinityEngine/AffinityItems/Model/Sync/OrderSync.php +14 -0
- app/code/local/AffinityEngine/AffinityItems/Model/Sync/ProductSync.php +7 -5
- app/code/local/AffinityEngine/AffinityItems/etc/config.xml +147 -147
- app/etc/modules/AffinityEngine_AffinityItems.xml +1 -1
- package.xml +8 -7
app/code/local/AffinityEngine/AffinityItems/Block/Index.php
CHANGED
@@ -24,7 +24,7 @@ class AffinityEngine_AffinityItems_Block_Index extends Mage_Core_Block_Template
|
|
24 |
// $orderLines = $this->getCartOrderLines();
|
25 |
// $context = "recoCart";
|
26 |
} elseif (strpos($path, 'category')) {
|
27 |
-
$refs =
|
28 |
$refType = "category";
|
29 |
//$category_id = (Mage::registry('current_category')) ? Mage::registry('current_category')->getId() : false;
|
30 |
// $context = "recoCategory";
|
@@ -44,27 +44,31 @@ class AffinityEngine_AffinityItems_Block_Index extends Mage_Core_Block_Template
|
|
44 |
|
45 |
$aecontext = new stdClass();
|
46 |
//$aecontext->context = $context;
|
47 |
-
|
48 |
$aecontext->recoId = $recoId;
|
49 |
|
50 |
if (isset($area))
|
51 |
$aecontext->area = $area;
|
52 |
$aecontext->size = (int) $no_prod;
|
53 |
-
/*if (isset($product))
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
if(isset($refs)) {
|
60 |
-
if(!is_array($refs))
|
61 |
$refs = array($refs);
|
62 |
$aecontext->refs = $refs;
|
63 |
}
|
64 |
-
if(isset($refType))
|
65 |
$aecontext->refType = $refType;
|
66 |
if (isset($expr))
|
67 |
$aecontext->keywords = (string) $expr;
|
|
|
|
|
|
|
|
|
68 |
$recomemendation = new AffinityEngine_AffinityItems_Model_Sdk_Recommendation_Recommendation($aecontext, false);
|
69 |
$products = $recomemendation->getRecommendation();
|
70 |
|
@@ -74,6 +78,19 @@ class AffinityEngine_AffinityItems_Block_Index extends Mage_Core_Block_Template
|
|
74 |
return;
|
75 |
}
|
76 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
public function loadProductsById($ids) {
|
78 |
//$ids = array(877,875);
|
79 |
$products = Mage::getModel('catalog/product')->getCollection()
|
24 |
// $orderLines = $this->getCartOrderLines();
|
25 |
// $context = "recoCart";
|
26 |
} elseif (strpos($path, 'category')) {
|
27 |
+
$refs = (Mage::registry('current_category')) ? Mage::registry('current_category')->getId() : false;
|
28 |
$refType = "category";
|
29 |
//$category_id = (Mage::registry('current_category')) ? Mage::registry('current_category')->getId() : false;
|
30 |
// $context = "recoCategory";
|
44 |
|
45 |
$aecontext = new stdClass();
|
46 |
//$aecontext->context = $context;
|
47 |
+
|
48 |
$aecontext->recoId = $recoId;
|
49 |
|
50 |
if (isset($area))
|
51 |
$aecontext->area = $area;
|
52 |
$aecontext->size = (int) $no_prod;
|
53 |
+
/* if (isset($product))
|
54 |
+
$aecontext->productId = (string) $product;
|
55 |
+
if (isset($category_id))
|
56 |
+
$aecontext->categoryId = (string) $category_id;
|
57 |
+
if (isset($orderLines))
|
58 |
+
$aecontext->orderLines = $orderLines; */
|
59 |
+
if (isset($refs)) {
|
60 |
+
if (!is_array($refs))
|
61 |
$refs = array($refs);
|
62 |
$aecontext->refs = $refs;
|
63 |
}
|
64 |
+
if (isset($refType))
|
65 |
$aecontext->refType = $refType;
|
66 |
if (isset($expr))
|
67 |
$aecontext->keywords = (string) $expr;
|
68 |
+
if (isset($refType) && $refType == 'category')
|
69 |
+
$aecontext = $this->getFacetAttributes($aecontext);
|
70 |
+
|
71 |
+
$this->helper('affinityitems')->log('[DEBUG]', $aecontext);
|
72 |
$recomemendation = new AffinityEngine_AffinityItems_Model_Sdk_Recommendation_Recommendation($aecontext, false);
|
73 |
$products = $recomemendation->getRecommendation();
|
74 |
|
78 |
return;
|
79 |
}
|
80 |
|
81 |
+
public function getFacetAttributes($ae_object) {
|
82 |
+
$filters = array();
|
83 |
+
$appliedFilters = Mage::getSingleton('catalog/layer')->getState()->getFilters();
|
84 |
+
foreach ($appliedFilters as $filter) {
|
85 |
+
// price filter does not have attribute ID, it generated from price range of products
|
86 |
+
if ($filter->getFilter()->getRequestVar() == 'price') continue;
|
87 |
+
$filters[] = array($filter->getValue());
|
88 |
+
}
|
89 |
+
if (!empty($filters))
|
90 |
+
$ae_object->facetAttributes = $filters;
|
91 |
+
return $ae_object;
|
92 |
+
}
|
93 |
+
|
94 |
public function loadProductsById($ids) {
|
95 |
//$ids = array(877,875);
|
96 |
$products = Mage::getModel('catalog/product')->getCollection()
|
app/code/local/AffinityEngine/AffinityItems/Model/Source/Recoconfig.php
CHANGED
@@ -1,82 +1,83 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
class AffinityEngine_AffinityItems_Model_Source_Recoconfig
|
4 |
-
{
|
5 |
-
public static function getRecoIds()
|
6 |
-
{
|
7 |
-
$request = new AffinityEngine_AffinityItems_Model_Sdk_Request_SiteRequest(array());
|
8 |
-
$data = $request->get();
|
9 |
-
return isset($data['recoIds']) ? json_decode($data['recoIds']) : array();
|
10 |
-
}
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
}
|
19 |
-
return $recoIds;
|
20 |
-
}
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
return $recoIds;
|
30 |
-
}
|
31 |
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
}
|
41 |
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
}
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
}
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
}
|
71 |
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
}
|
81 |
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<?php
|
2 |
|
3 |
+
class AffinityEngine_AffinityItems_Model_Source_Recoconfig {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
+
public function getRecoIds() {
|
6 |
+
Mage::helper('affinityitems/aeadapter')->registerWebsiteId($this->getWebsiteId());
|
7 |
+
$request = new AffinityEngine_AffinityItems_Model_Sdk_Request_SiteRequest(array());
|
8 |
+
$data = $request->get();
|
9 |
+
return isset($data['recoIds']) ? json_decode($data['recoIds']) : array();
|
10 |
+
}
|
|
|
|
|
|
|
11 |
|
12 |
+
public function getWebsiteId() {
|
13 |
+
if ($websiteCode = Mage::app()->getRequest()->getParam('website')) {
|
14 |
+
$website = Mage::getModel('core/website')->load($websiteCode);
|
15 |
+
return $website->getId();
|
16 |
+
}
|
17 |
+
return 0;
|
18 |
+
}
|
|
|
|
|
19 |
|
20 |
+
public function home() {
|
21 |
+
$recoIds = array();
|
22 |
+
$tmp = self::getRecoIds();
|
23 |
+
foreach ($tmp as $recoId) {
|
24 |
+
$recoIds[$recoId] = $recoId;
|
25 |
+
}
|
26 |
+
return $recoIds;
|
27 |
+
}
|
|
|
28 |
|
29 |
+
public function right() {
|
30 |
+
$recoIds = array();
|
31 |
+
$tmp = self::getRecoIds();
|
32 |
+
foreach ($tmp as $recoId) {
|
33 |
+
$recoIds[$recoId] = $recoId;
|
34 |
+
}
|
35 |
+
return $recoIds;
|
36 |
+
}
|
|
|
37 |
|
38 |
+
public function left() {
|
39 |
+
$recoIds = array();
|
40 |
+
$tmp = self::getRecoIds();
|
41 |
+
foreach ($tmp as $recoId) {
|
42 |
+
$recoIds[$recoId] = $recoId;
|
43 |
+
}
|
44 |
+
return $recoIds;
|
45 |
+
}
|
|
|
46 |
|
47 |
+
public function product() {
|
48 |
+
$recoIds = array();
|
49 |
+
$tmp = self::getRecoIds();
|
50 |
+
foreach ($tmp as $recoId) {
|
51 |
+
$recoIds[$recoId] = $recoId;
|
52 |
+
}
|
53 |
+
return $recoIds;
|
54 |
+
}
|
|
|
55 |
|
56 |
+
public function cart() {
|
57 |
+
$recoIds = array();
|
58 |
+
$tmp = self::getRecoIds();
|
59 |
+
foreach ($tmp as $recoId) {
|
60 |
+
$recoIds[$recoId] = $recoId;
|
61 |
+
}
|
62 |
+
return $recoIds;
|
63 |
+
}
|
|
|
64 |
|
65 |
+
public function category() {
|
66 |
+
$recoIds = array();
|
67 |
+
$tmp = self::getRecoIds();
|
68 |
+
foreach ($tmp as $recoId) {
|
69 |
+
$recoIds[$recoId] = $recoId;
|
70 |
+
}
|
71 |
+
return $recoIds;
|
72 |
+
}
|
73 |
+
|
74 |
+
public function search() {
|
75 |
+
$recoIds = array();
|
76 |
+
$tmp = self::getRecoIds();
|
77 |
+
foreach ($tmp as $recoId) {
|
78 |
+
$recoIds[$recoId] = $recoId;
|
79 |
+
}
|
80 |
+
return $recoIds;
|
81 |
+
}
|
82 |
+
|
83 |
+
}
|
app/code/local/AffinityEngine/AffinityItems/Model/Sync/OrderSync.php
CHANGED
@@ -102,9 +102,23 @@ class AffinityEngine_AffinityItems_Model_Sync_OrderSync extends AffinityEngine_A
|
|
102 |
$orderLine->attributeIds = $attributes;
|
103 |
$orderLine->quantity = (int) $item->getQtyOrdered();
|
104 |
array_push($orderLines, $orderLine);
|
|
|
|
|
|
|
|
|
105 |
}
|
106 |
|
107 |
return $orderLines;
|
108 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
|
110 |
}
|
102 |
$orderLine->attributeIds = $attributes;
|
103 |
$orderLine->quantity = (int) $item->getQtyOrdered();
|
104 |
array_push($orderLines, $orderLine);
|
105 |
+
|
106 |
+
// sync qty/stock if needed
|
107 |
+
$this->syncQtyCheck($item->getProductId());
|
108 |
+
|
109 |
}
|
110 |
|
111 |
return $orderLines;
|
112 |
}
|
113 |
+
|
114 |
+
public function syncQtyCheck($pid) {
|
115 |
+
if ($pid) {
|
116 |
+
$product = Mage::getModel('catalog/product')->load($pid);
|
117 |
+
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
|
118 |
+
if ($stock->getIsInStock() == 0 || $stock->getQty() == 0) {
|
119 |
+
Mage::getModel('affinityitems/sync_productSync')->syncProductFromObserver($pid);
|
120 |
+
}
|
121 |
+
}
|
122 |
+
}
|
123 |
|
124 |
}
|
app/code/local/AffinityEngine/AffinityItems/Model/Sync/ProductSync.php
CHANGED
@@ -149,11 +149,13 @@ class AffinityEngine_AffinityItems_Model_Sync_ProductSync extends AffinityEngine
|
|
149 |
}
|
150 |
|
151 |
public function isRecomendable($prod) {
|
152 |
-
$reco = false;
|
153 |
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($prod);
|
154 |
-
|
155 |
-
|
156 |
-
|
|
|
|
|
157 |
return $reco;
|
158 |
}
|
159 |
|
@@ -263,7 +265,7 @@ class AffinityEngine_AffinityItems_Model_Sync_ProductSync extends AffinityEngine
|
|
263 |
|
264 |
// get all attributes of a product
|
265 |
foreach ($attributes as $attribute) {
|
266 |
-
if ($attribute->
|
267 |
|
268 |
$attributeCode = $attribute->getAttributeCode();
|
269 |
$label = $attribute->getFrontend()->getLabel($p);
|
149 |
}
|
150 |
|
151 |
public function isRecomendable($prod) {
|
152 |
+
$reco = "false";
|
153 |
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($prod);
|
154 |
+
$stockAndQty = ($stock->getIsInStock() != 0 && $stock->getQty() != 0) ? true : false;
|
155 |
+
// status must be enabled, visibility anything but NOT visible, product must be in stock with QTY more then 0, and must be assined to any category
|
156 |
+
if ($prod->getStatus() == 1 && $prod->getVisibility() != 1 && $stockAndQty && count($prod->getCategoryIds()) != 0)
|
157 |
+
$reco = "true";
|
158 |
+
$this->logger->log('[DEBUG]', 'Recomendable: ' . $reco);
|
159 |
return $reco;
|
160 |
}
|
161 |
|
265 |
|
266 |
// get all attributes of a product
|
267 |
foreach ($attributes as $attribute) {
|
268 |
+
if ($attribute->getIsFilterable()) {
|
269 |
|
270 |
$attributeCode = $attribute->getAttributeCode();
|
271 |
$label = $attribute->getFrontend()->getLabel($p);
|
app/code/local/AffinityEngine/AffinityItems/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<AffinityEngine_AffinityItems>
|
5 |
-
<version>1.1.
|
6 |
</AffinityEngine_AffinityItems>
|
7 |
</modules>
|
8 |
|
@@ -63,22 +63,22 @@
|
|
63 |
</observers>
|
64 |
</catalog_product_save_after>
|
65 |
<catalog_category_save_commit_after>
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
<
|
75 |
<observers>
|
76 |
<affinityEngine_saveorder>
|
77 |
<class>AffinityEngine_AffinityItems_Model_Observer</class>
|
78 |
<method>saveOrder</method>
|
79 |
</affinityEngine_saveorder>
|
80 |
</observers>
|
81 |
-
</
|
82 |
<catalog_controller_category_delete>
|
83 |
<observers>
|
84 |
<affinityEngine_deletecategory>
|
@@ -268,141 +268,141 @@
|
|
268 |
|
269 |
<default>
|
270 |
<affinityitems>
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
</default>
|
395 |
|
396 |
-
<crontab>
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
</crontab>
|
408 |
</config>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<AffinityEngine_AffinityItems>
|
5 |
+
<version>1.1.5</version>
|
6 |
</AffinityEngine_AffinityItems>
|
7 |
</modules>
|
8 |
|
63 |
</observers>
|
64 |
</catalog_product_save_after>
|
65 |
<catalog_category_save_commit_after>
|
66 |
+
<observers>
|
67 |
+
<affinityEngine_savecategory>
|
68 |
+
<type>singleton</type>
|
69 |
+
<class>AffinityEngine_AffinityItems_Model_Observer</class>
|
70 |
+
<method>saveCategory</method>
|
71 |
+
</affinityEngine_savecategory>
|
72 |
+
</observers>
|
73 |
+
</catalog_category_save_commit_after>
|
74 |
+
<sales_order_save_after>
|
75 |
<observers>
|
76 |
<affinityEngine_saveorder>
|
77 |
<class>AffinityEngine_AffinityItems_Model_Observer</class>
|
78 |
<method>saveOrder</method>
|
79 |
</affinityEngine_saveorder>
|
80 |
</observers>
|
81 |
+
</sales_order_save_after>
|
82 |
<catalog_controller_category_delete>
|
83 |
<observers>
|
84 |
<affinityEngine_deletecategory>
|
268 |
|
269 |
<default>
|
270 |
<affinityitems>
|
271 |
+
<general>
|
272 |
+
<storeid>
|
273 |
+
0
|
274 |
+
</storeid>
|
275 |
+
</general>
|
276 |
+
<items_home>
|
277 |
+
<number_products>4</number_products>
|
278 |
+
<number_products_per_line>4</number_products_per_line>
|
279 |
+
<recommendation_config>personalization</recommendation_config>
|
280 |
+
<image_size>0</image_size>
|
281 |
+
<parent_div>,ae_products_block_center clearfix</parent_div>
|
282 |
+
<title_class>ae_block_title_center</title_class>
|
283 |
+
<content_div>,ae_content_block_center</content_div>
|
284 |
+
<ul>,ae_list_products_block_center</ul>
|
285 |
+
<li>,ae_product_block_center</li>
|
286 |
+
<product_image_class>ae_img_center</product_image_class>
|
287 |
+
<product_name_class>ae_products_name_center</product_name_class>
|
288 |
+
<product_dsecription_class>ae_product_description</product_dsecription_class>
|
289 |
+
<price_container_class>ae_price_container_center</price_container_class>
|
290 |
+
<price_class>ae_price_center</price_class>
|
291 |
+
</items_home>
|
292 |
+
<items_left>
|
293 |
+
<number_products>4</number_products>
|
294 |
+
<number_products_per_line>4</number_products_per_line>
|
295 |
+
<image_size>0</image_size>
|
296 |
+
<parent_div>,ae_products_block_center clearfix</parent_div>
|
297 |
+
<title_class>ae_block_title_center</title_class>
|
298 |
+
<content_div>,ae_content_block_center</content_div>
|
299 |
+
<ul>,ae_list_products_block_center</ul>
|
300 |
+
<li>,ae_product_block_center</li>
|
301 |
+
<product_image_class>ae_img_center</product_image_class>
|
302 |
+
<product_name_class>ae_products_name_center</product_name_class>
|
303 |
+
<product_dsecription_class>ae_product_description</product_dsecription_class>
|
304 |
+
<price_container_class>ae_price_container_center</price_container_class>
|
305 |
+
<price_class>ae_price_center</price_class>
|
306 |
+
</items_left>
|
307 |
+
<items_right>
|
308 |
+
<number_products>4</number_products>
|
309 |
+
<number_products_per_line>4</number_products_per_line>
|
310 |
+
<recommendation_config>personalization</recommendation_config>
|
311 |
+
<image_size>0</image_size>
|
312 |
+
<parent_div>,ae_products_block_center clearfix</parent_div>
|
313 |
+
<title_class>ae_block_title_center</title_class>
|
314 |
+
<content_div>,ae_content_block_center</content_div>
|
315 |
+
<ul>,ae_list_products_block_center</ul>
|
316 |
+
<li>,ae_product_block_center</li>
|
317 |
+
<product_image_class>ae_img_center</product_image_class>
|
318 |
+
<product_name_class>ae_products_name_center</product_name_class>
|
319 |
+
<product_dsecription_class>ae_product_description</product_dsecription_class>
|
320 |
+
<price_container_class>ae_price_container_center</price_container_class>
|
321 |
+
<price_class>ae_price_center</price_class>
|
322 |
+
</items_right>
|
323 |
+
<items_cart>
|
324 |
+
<number_products>4</number_products>
|
325 |
+
<number_products_per_line>4</number_products_per_line>
|
326 |
+
<recommendation_config>personalization</recommendation_config>
|
327 |
+
<image_size>0</image_size>
|
328 |
+
<parent_div>,ae_products_block_center clearfix</parent_div>
|
329 |
+
<title_class>ae_block_title_center</title_class>
|
330 |
+
<content_div>,ae_content_block_center</content_div>
|
331 |
+
<ul>,ae_list_products_block_center</ul>
|
332 |
+
<li>,ae_product_block_center</li>
|
333 |
+
<product_image_class>ae_img_center</product_image_class>
|
334 |
+
<product_name_class>ae_products_name_center</product_name_class>
|
335 |
+
<product_dsecription_class>ae_product_description</product_dsecription_class>
|
336 |
+
<price_container_class>ae_price_container_center</price_container_class>
|
337 |
+
<price_class>ae_price_center</price_class>
|
338 |
+
</items_cart>
|
339 |
+
<items_product>
|
340 |
+
<number_products>4</number_products>
|
341 |
+
<number_products_per_line>4</number_products_per_line>
|
342 |
+
<recommendation_config>personalization</recommendation_config>
|
343 |
+
<image_size>0</image_size>
|
344 |
+
<parent_div>,ae_products_block_center clearfix</parent_div>
|
345 |
+
<title_class>ae_block_title_center</title_class>
|
346 |
+
<content_div>,ae_content_block_center</content_div>
|
347 |
+
<ul>,ae_list_products_block_center</ul>
|
348 |
+
<li>,ae_product_block_center</li>
|
349 |
+
<product_image_class>ae_img_center</product_image_class>
|
350 |
+
<product_name_class>ae_products_name_center</product_name_class>
|
351 |
+
<product_dsecription_class>ae_product_description</product_dsecription_class>
|
352 |
+
<price_container_class>ae_price_container_center</price_container_class>
|
353 |
+
<price_class>ae_price_center</price_class>
|
354 |
+
</items_product>
|
355 |
+
<items_search>
|
356 |
+
<number_products>4</number_products>
|
357 |
+
<number_products_per_line>4</number_products_per_line>
|
358 |
+
<recommendation_config>personalization</recommendation_config>
|
359 |
+
<image_size>0</image_size>
|
360 |
+
<parent_div>,ae_products_block_center clearfix</parent_div>
|
361 |
+
<title_class>ae_block_title_center</title_class>
|
362 |
+
<content_div>,ae_content_block_center</content_div>
|
363 |
+
<ul>,ae_list_products_block_center</ul>
|
364 |
+
<li>,ae_product_block_center</li>
|
365 |
+
<product_image_class>ae_img_center</product_image_class>
|
366 |
+
<product_name_class>ae_products_name_center</product_name_class>
|
367 |
+
<product_dsecription_class>ae_product_description</product_dsecription_class>
|
368 |
+
<price_container_class>ae_price_container_center</price_container_class>
|
369 |
+
<price_class>ae_price_center</price_class>
|
370 |
+
</items_search>
|
371 |
+
<items_category>
|
372 |
+
<number_products>4</number_products>
|
373 |
+
<number_products_per_line>4</number_products_per_line>
|
374 |
+
<recommendation_config>personalization</recommendation_config>
|
375 |
+
<image_size>0</image_size>
|
376 |
+
<parent_div>,ae_products_block_center clearfix</parent_div>
|
377 |
+
<title_class>ae_block_title_center</title_class>
|
378 |
+
<content_div>,ae_content_block_center</content_div>
|
379 |
+
<ul>,ae_list_products_block_center</ul>
|
380 |
+
<li>,ae_product_block_center</li>
|
381 |
+
<product_image_class>ae_img_center</product_image_class>
|
382 |
+
<product_name_class>ae_products_name_center</product_name_class>
|
383 |
+
<product_dsecription_class>ae_product_description</product_dsecription_class>
|
384 |
+
<price_container_class>ae_price_container_center</price_container_class>
|
385 |
+
<price_class>ae_price_center</price_class>
|
386 |
+
</items_category>
|
387 |
+
<image_size>
|
388 |
+
<default>125,125</default>
|
389 |
+
<large>458,458</large>
|
390 |
+
<medium>250,250</medium>
|
391 |
+
<small>98,98</small>
|
392 |
+
</image_size>
|
393 |
+
</affinityitems>
|
394 |
+
</default>
|
395 |
|
396 |
+
<crontab>
|
397 |
+
<jobs>
|
398 |
+
<affinityitems_sync>
|
399 |
+
<schedule>
|
400 |
+
<cron_expr>*/5 * * * *</cron_expr>
|
401 |
+
</schedule>
|
402 |
+
<run>
|
403 |
+
<model>affinityitems/cron::Sync</model>
|
404 |
+
</run>
|
405 |
+
</affinityitems_sync>
|
406 |
+
</jobs>
|
407 |
+
</crontab>
|
408 |
</config>
|
app/etc/modules/AffinityEngine_AffinityItems.xml
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
<AffinityEngine_AffinityItems>
|
5 |
<active>true</active>
|
6 |
<codePool>local</codePool>
|
7 |
-
<version>1.1.
|
8 |
</AffinityEngine_AffinityItems>
|
9 |
</modules>
|
10 |
</config>
|
4 |
<AffinityEngine_AffinityItems>
|
5 |
<active>true</active>
|
6 |
<codePool>local</codePool>
|
7 |
+
<version>1.1.5</version>
|
8 |
</AffinityEngine_AffinityItems>
|
9 |
</modules>
|
10 |
</config>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Affinity_Items</name>
|
4 |
-
<version>1.1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3</license>
|
7 |
<channel>community</channel>
|
@@ -42,14 +42,15 @@ Affinity items pricing model is a pure success based pricing model. There are no
|
|
42 |
Developers
|
43 |

|
44 |
Affinity items Magento extension is also downloadable from our developer platform: http://developer.affinity-engine.fr/affinityitems/magento/wikis/master/en-home</description>
|
45 |
-
<notes>- added
|
46 |
-
- added
|
47 |
-
- fixed
|
|
|
48 |
</notes>
|
49 |
<authors><author><name>Mathieu</name><user>BARAN</user><email>mathieu@affinity-engine.fr</email></author></authors>
|
50 |
-
<date>2015-09-
|
51 |
-
<time>
|
52 |
-
<contents><target name="magelocal"><dir name="AffinityEngine"><dir name="AffinityItems"><dir name="Block"><dir name="Adminhtml"><dir name="Affinityitems"><file name="Grid.php" hash="de34b472132fc34610da4b2257f17176"/></dir><file name="Affinityitems.php" hash="5b3ec37b91405b80e060902a21ed8e9c"/><file name="Affinityitemsbackend.php" hash="40aa694ef6ee2f256f202cf1a144ce0b"/></dir><file name="Index.php" hash="
|
53 |
<compatible/>
|
54 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
55 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Affinity_Items</name>
|
4 |
+
<version>1.1.5</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3</license>
|
7 |
<channel>community</channel>
|
42 |
Developers
|
43 |

|
44 |
Affinity items Magento extension is also downloadable from our developer platform: http://developer.affinity-engine.fr/affinityitems/magento/wikis/master/en-home</description>
|
45 |
+
<notes>- added stock management
|
46 |
+
- added layered recommendation
|
47 |
+
- fixed attribute management
|
48 |
+
- fixed recoId empty list issue
|
49 |
</notes>
|
50 |
<authors><author><name>Mathieu</name><user>BARAN</user><email>mathieu@affinity-engine.fr</email></author></authors>
|
51 |
+
<date>2015-09-30</date>
|
52 |
+
<time>12:26:59</time>
|
53 |
+
<contents><target name="magelocal"><dir name="AffinityEngine"><dir name="AffinityItems"><dir name="Block"><dir name="Adminhtml"><dir name="Affinityitems"><file name="Grid.php" hash="de34b472132fc34610da4b2257f17176"/></dir><file name="Affinityitems.php" hash="5b3ec37b91405b80e060902a21ed8e9c"/><file name="Affinityitemsbackend.php" hash="40aa694ef6ee2f256f202cf1a144ce0b"/></dir><file name="Index.php" hash="26dd228804672c0d45f10b9fc39f903b"/><dir name="Renderer"><dir name="Config"><file name="Classes.php" hash="8c3d39529ef95c439b8e679a3912d9be"/><file name="Imagesize.php" hash="1a1bdd54722e5cf9ecb0318655b5f6db"/><file name="Ipblacklist.php" hash="645526f7fc6ad0ca8835f027d3a8c5f9"/><file name="Serverlist.php" hash="5c0f647a50a9444cde02909bcc164c6f"/><file name="Siteinfo.php" hash="baed3f0f265f0e93537d75ed988c871b"/><file name="Version.php" hash="48fe7d204de5dbc4194b54b6c3df41e9"/></dir></dir></dir><dir name="Helper"><file name="Aeadapter.php" hash="d2ff77ec63677d25e411d45042aeb326"/><file name="Data.php" hash="659e81e6fe364e5f1970191e3b2115e3"/></dir><dir name="Model"><file name="Action.php" hash="2eb81ffd225b596d389c63f158818809"/><file name="Cart.php" hash="726ae5561ab9e01ee72c036f42914469"/><file name="CatProdRepo.php" hash="326f055745d51d128b1e2e00c7fdb286"/><file name="Config.php" hash="b29bcfd6f1ed91bd0f83b56563732a4b"/><file name="Cron.php" hash="d4c580adc720b8c93b3d2735046cc3bb"/><file name="Log.php" hash="2c2f523188b50e7a4cf5ff6d79d1c3b5"/><file name="Observer.php" hash="a27c175b5c067cf10d5784b05b963eed"/><dir name="Resource"><dir name="Action"><file name="Collection.php" hash="326d82fe39153680f99defdb1e846476"/></dir><file name="Action.php" hash="6cd9f6a6d4b87e220c3bbf271a24810d"/><dir name="Cart"><file name="Collection.php" hash="9a8c23023645f9170102980ce56bc193"/></dir><file name="Cart.php" hash="8bb395c3ebfc043326c6001d623270a4"/><dir name="CatProdRepo"><file name="Collection.php" hash="bf98be72eae2c0859046142ed2d7fb4c"/></dir><file name="CatProdRepo.php" hash="4781a985d1b889633ed28d98b28378bf"/><dir name="Log"><file name="Collection.php" hash="935eae91b74f30c4a960b1c18f373050"/></dir><file name="Log.php" hash="bc36af5602145cc1fc094fa17289eb1a"/><dir name="Syncrotate"><file name="Collection.php" hash="66bd261226b6865c5a52ef28e9b064ea"/></dir><file name="Syncrotate.php" hash="0d3b60d41d19f49c8dc673fd61007de5"/></dir><dir name="Sdk"><dir name="Abtesting"><file name="Abtesting.php" hash="7e15e1a98aaa55f0dee24ecacf813f54"/></dir><dir name="Core"><file name="AbstractRequest.php" hash="d92ec4494b9cee5fa1343594024336fd"/><file name="Curl.php" hash="4d79b217f9dc05d6a0afdb2515e372f9"/></dir><dir name="Recommendation"><file name="Recommendation.php" hash="64929784b877e32281705eee0c056533"/></dir><dir name="Request"><file name="ActionRequest.php" hash="a4128a5365d69a19e72ed9d7fe357514"/><file name="CategoryRequest.php" hash="31db44e9f404ee80a29939424a1a3596"/><file name="CustomerRequest.php" hash="3f1a0758034a2865e5bdf0e439694212"/><file name="DisableRequest.php" hash="9eeb721518be067c57eb8ce58df3d270"/><file name="GuestRequest.php" hash="78dd970ae4d0612853ddcdafd4de8ec4"/><file name="HostRequest.php" hash="8df4275aaf02019d9228ee14b395abe5"/><file name="LinkGuestToMemberRequest.php" hash="499c3986c89b09942c424542375d4d58"/><file name="MemberRequest.php" hash="74747f67cca8cccad5e6e346cfc157b0"/><file name="NotificationRequest.php" hash="3758c90470a9a32bafc8395a30127490"/><file name="OrderRequest.php" hash="590c8d40c2202f0becd50ec9a97c6885"/><file name="ProductRequest.php" hash="ad20d6f489728b5863867bd6bfaca753"/><file name="RecommendationRequest.php" hash="dc4e986ed4b224cbc1f36464e8610a43"/><file name="ResynchronizeRequest.php" hash="5d534d27011644ba14aa58bd935394bd"/><file name="SiteRequest.php" hash="42029a530971606fd2a2fd4cdb23b8b3"/></dir></dir><dir name="Source"><file name="Enviroment.php" hash="099b2a345377ceb795674a5d4d30a6a7"/><file name="Imagesize.php" hash="fa63ae1460a85dae21b0c6a3aabd6e35"/><file name="Loglevel.php" hash="8ffa64757752eaba56cac5b8bb1ff7a3"/><file name="Recoconfig.php" hash="6c22772e25b4832021067090c61a1e88"/></dir><dir name="Sync"><file name="ActionSync.php" hash="52f8661cf04949ee8d390fa84cef2b4c"/><file name="CartActionSync.php" hash="00ffa3870ffab842261b771e80b89c3a"/><file name="CategorySync.php" hash="829ffddb16589edda245860f25452ef9"/><file name="MemberSync.php" hash="1b4216a76bfeb78490ae34a31c6fc6a8"/><file name="OrderSync.php" hash="9f8fc7058302125e276f875fbb9ccfa3"/><file name="ProductSync.php" hash="89c149843dd4f217883cc7789d8ea5d5"/><file name="Sync.php" hash="def552c615693c6e217fc272335aab4c"/></dir><file name="Syncrotate.php" hash="358dd78e37da93c0450162c0b20e185b"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Dropdown"><file name="Values.php" hash="5e4f3df023f2745c27d72b73ff2d09ec"/></dir></dir></dir></dir></dir><dir name="bin"><file name="manual-run.php" hash="cb2223d194aea92cf5626000c4ddfde8"/></dir><dir name="controllers"><file name="ActionController.php" hash="de57a5b767913931b63fe29eb6e2311f"/><dir name="Adminhtml"><file name="AffinityitemsbackendController.php" hash="a1f7026fd8ac2def3b25826a11b41f0a"/><file name="AffinityitemslogController.php" hash="54903640158b2163526431001a1c51d9"/><file name="AjaxController.php" hash="793c65d49a7932a5c2fac07ea9a40e9e"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="3db0abc036764375bece30c5bb5dc976"/><file name="config.xml" hash="4ab7571e5ae93c0a29e22eccaaefad5b"/><file name="system.xml" hash="16effd86c38e6c13f166a5ffbb10f5c1"/></dir><dir name="sql"><dir name="affinityitems_setup"><file name="mysql4-install-1.0.0.php" hash="084acd16e18a817ab84e2479bcf2622e"/><file name="mysql4-upgrade-1.1.3-1.1.4.php" hash="ebd883bed32bd6bb2f5eb4976e1b1699"/></dir></dir><file name="uninstall.sql" hash="73cb0928320f6f5325c6d21a87bf49eb"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="AffinityEngine_AffinityItems.xml" hash="3c29cccc323b328b2969ece831694211"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="affinityitems.xml" hash="32d45a407463b4e76b5e30dab765b965"/></dir><dir name="template"><dir name="affinityitems"><file name="affinityitems_login.phtml" hash="f5673a792b174e9595290d60e2257135"/><file name="affinityitems_sync.phtml" hash="4e4713289acda3e95b592c94f8587906"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="affinityengine"><file name="affinityitems.xml" hash="9a2c254e32f5d69deef0e3d74f007905"/></dir></dir><dir name="template"><dir name="affinityengine"><file name="ae_css.phtml" hash="828164eb0fcf039ac670c432d2d56c0d"/><file name="ae_js.phtml" hash="cde8d2a00a5f76b5932d1ad71c4ac4d2"/><file name="horizontal.phtml" hash="ef22dbc5d8803e0fab10cce0f94cfe32"/><file name="pricehtml.phtml" hash="a4c2c740d9119fb016c8e005ed5ad7ca"/><file name="vertical.phtml" hash="4b378f94d695d2eabc30560636c91aa5"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="affinityitems"><file name="affinityitems.css" hash="ecb8e40e67270c872e53b18f46a42671"/></dir></dir><dir name="js"><dir name="affinityitems"><file name="affinityitems.js" hash="9dd718da50afee4a5bbdc4780e10ae72"/><file name="jquery-noconflict.js" hash="1f3b8801b59144eeaee27caa7c5c15db"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="affinityengine"><dir name="img"><file name="aeboard.jpg" hash="9481a712582bcac6bdc2727a9cf52b3b"/><file name="aemoney.jpg" hash="6dc4d7612be1efe77784c622fa73985d"/><file name="aestart.jpg" hash="277c540ae19974133f473a731145f33d"/><file name="ailogo.png" hash="df2799c4ee9e68bd793cb85149fea2e7"/><file name="checked.png" hash="d4122f013483f59be79719385405a0de"/><file name="disabled.png" hash="fd56b078b4c3423735c667358285dc06"/><file name="enabled.png" hash="2499c302772cacbaf5d3c85427f2e7c5"/><file name="error.png" hash="bc87cd99143fc930408e379d5c3aa0f0"/><file name="index.php" hash="931175008efa4be6a17827fefd16937d"/><file name="loading.gif" hash="30d8e72bfdae694b1938658e1b087df0"/><file name="logo.png" hash="af48761d7b17a4e5115b8f16aaf634b6"/><file name="pdf.png" hash="95b561422892384337eb2eabb968a558"/><file name="unchecked.png" hash="0f5ec71a07abf89590209349c85b58ff"/></dir><file name="jquery-noconflict.js" hash="3d8c3103282467d2cd94031dbf4a75b6"/><file name="main.css" hash="58cbab2fcea443ea9dad70bb0cd4dad8"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="AffinityEngine_AffinityItems.csv" hash="e8531b7ad38442694a0091c4daf586d4"/></dir></target></contents>
|
54 |
<compatible/>
|
55 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
56 |
</package>
|