diglin_ricento - Version 1.6.2

Version Notes

## Version 1.6.2
- Bugfix: reduce the risk of backend user to be blocked to list products on ricardo if token is going to expire (now one day before users cannot list products)
- Feature: Shell Script to force update of inventory
- Feature: Allow to use simple product picture instead of the configurable one via configuration activation
- Bugfix: Issue with wrong configuration condition to import transaction
- Feature: Attribute merging in description, add a table display
- Feature: Cleanup hanging chunk_running job in case of communication error with ricardo API
- Feature: Via activation of the configuration, allow to add into the description visible on frontend attributes + allow also to use the price of the simple products linked to a configurable product instead of using base price of configurable and its options

## Version 1.4.1.4
- Fix of non existing and not needed Event method

## Version 1.4.1.2
- Improve compatibility with old PHP 5.3 version

## Version 1.4.1
- Improve compatibility for Magento 1.7.0

## Version 1.4.0
- Feature: decrease the inventory of products sold on ricardo side when a product is sold in Magento or inventory qty is decreased, only if the stock is not enough for the current listed product inventory or stop the product on ricardo if qty in stock is 0

## Version 1.3.6
- [BUGFIX] Memory consumption reduced with Image resizing

## Version 1.3.5
- ENHANCEMENT: add shell script to retrieve missing transactions or update ricardo article ids on magento side (WARNING: edit the script before to proceed)
- ENHANCEMENT: Import all orders of any Magento products published on ricardo side (no dependency anymore with ricardo article IDs)
- FIX: issue with article closed on Magento side although still activate on ricardo.ch side (when using auto renewal)

## Version 1.3.4
- ENHANCEMENT: compatibility with Magento 1.9.2.2 and patch 6788
- ENHANCEMENT: cleanup old products in reactivation phase from the temporary file in var/tmp (workaround)
- ENHANCEMENT: allow to duplicate a ricardo order and keep the related information
- ENHANCEMENT: resize images pictures to 1800px height or width before to publish a product list when products are imported
- ENHANCEMENT: allow fees calculation even for products not mapped to a ricardo category
- ENHANCEMENT: prevent error message to be displayed for products having an empty string in DB for media gallery (weird but it happened in some installation)

## Version 1.3.2
- FIX: issue with free delivery (ERROR 91 from ricardo API)

## Version 1.3.1
- ENHANCEMENT: allow pictures higher than 600px
- ENHANCEMENT: send pictures in base64 encoding instead using bytes array. Decrease memory used on server side
- FIX: issue with the watermarks of this extension when this one is not defined in Configuration > Design > Watermark

## Version 1.3.0
- ENHANCEMENT: update API calls due to replacement of API methods with new methods name. Important: extension users MUST update to this version otherwise the extension won't work on 27.08.2015 cause of the ricardo API update.
- ENHANCEMENT: send pictures in base64 encoding instead using bytes array. Decrease memory used on server side
- ENHANCEMENT: update Support controllers due to Magento security patches
- ENHANCEMENT: change the payment information box with article ID instead of the transaction ID (users are not aware about this transaction ID)
- ENHANCEMENT: allow to create orders with products not in stock on Magento side.
- FIX: issue with stopped products when there were in reactivation phase on ricardo.ch side
- FIX: issue with products which should start immediately
- FIX: several issues depending on some shops having third party extensions which may in conflict with the logic of this extension
- FIX: issue with links to products from the log grid
- FIX: issue with merging of orders under certain conditions depending on when the customers ordered several products of the shop owner
- FIX: issue while resizing tall pictures hanging listing synchronization cause of pictures to big

## Version 1.2.0
- FEATURE: add column into customer (ricardo username) and order grid (is ricardo order?). Configurable to show them or not from configuration page of the extension
- FIX: amount of products to get fees is limited to 200 on ricardo.ch side. Get fees even if a shop owner has more than 200 article in the product list

## Version 1.1.3
- ENHANCEMENT: add notifications to get news about the extension when updates are available. This can be via the configuration disabled.
- ENHANCEMENT: add configuration options for watermark picture to publish products with a specific watermark for the ricardo.ch platform
- ENHANCEMENT: add configuration options to allow or not to use the product image placeholder of a shop owner in case of issue with missing picture files on server or in case of memory limit error
- FIX: missing transactions import when products were already sold
- FIX: prevent to stop an article if it has been sold but has been automatically reactivated on ricardo.ch side
- FIX: status of products was not correctly set when a product is sold and internally saved
- FIX: display of category mapping popup on IE < 9
- FIX: confirmation fees popup on IE all versions
- FIX: issue when trying to warm up product pictures while saving product listing items with products having no picture basic selection
- FIX: price calculation when orders are imported into a non Swiss shop

## Version 1.1.2
- ENHANCEMENT: allow html code for payment information
- ENHANCEMENT: prevent unwanted email sending
- ENHANCEMENT: add system.log in the configuration export for assistance purpose
- FIX: issue with quantity to use when publishing on ricardo.ch if the product inventory is not managed
- FIX: prevent to use default Magento picture if an article do not set base picture for a product
- FIX: add missing french token expiration email template
- FIX: issue with some store configuration having several store views but no default store (made some issue to get current currency value)

## Version 1.1.1
- ENHANCEMENT: warm up the cache of picture after a product is inserted in the product list
- FIX: issue with logic to get sold and unsold articles necessary when articles were planned then publicly available and in the meantime has been sold without that the extension knows about the new article ID

## Version 1.1.0
- NEW: add buttons to export configuration into a tar.gz archive and/or send it to support shop owner in case of issue with all necessary information: php, magento, installed modules version, ricardo and latest order tables from the database, log files. No customer information are saved.
- NEW: support currency conversion based on the defined Magento currencies rate. It sets prices in CHF to ricardo.ch, products with price catalog in EUR/USD/... and does the opposite while importing a ricardo order in Magento (CHF to EUR/USD/...). Magento Currency Rates must be configured to work.
- NEW: while selecting a ricardo category, you can now provide the product name to get a suggestion of the category/ies you may use
- NEW: display a popup window with a summary of the fees for the current product list before to proceed "Check and List". Data of the form are saved when relevant before to display these fees
- NEW: allow to merge short and description if ricardo description is missing at product level and if the extension is configured for that - Default "disabled"
- NEW: support Magento Watermark Pictures
- NEW: add ricardo banner in the dashboard of the extension
- ENHANCEMENT: make description with carriage return to
HTML Tag configurable - default is 0
- ENHANCEMENT: refactor order import process to reduce potential issues
- ENHANCEMENT: add a new dispatcher to close articles properly for those which are not anymore available on ricardo.ch
- ENHANCEMENT: global performance improvement with the ricardo API and product pictures (> X MB - image attribute and media gallery)
- ENHANCEMENT: configurable products and their options having price are computed differently, it fixes some issues with price calculation but also allow Fees calculation
- ENHANCEMENT: links of the backend user interface depending on the user language are correctly defined (french or german)
- ENHANCEMENT: related products of configurable products are displayed in the products grid of a list after a product is added or after the products listing is saved instead to wait that the product listing is checked
- ENHANCEMENT: cleanup, factorize and perform code related to configurable products
- ENHANCEMENT: set auto increment value of auction sales type to 1 per default
- ENHANCEMENT: the inventory column in the products grid of the products listing has several meaning: 1) if the product is already listed, the value displayed is the quantity of product sent and still available on ricardo, 2) if the product is not yet listed, the quantity displayed is calculated based on the configuration at the product list or the product level, it will be automatically refreshed if the stock of the product changed before it is listed.
- FIX: issue with price calculation when price scope is per website instead global
- FIX: issue with grouped product quantity - default is 1 if related products don't have quantity defined
- FIX: issue with order synchronization on Magento 1.7 and the ricardo payment method
- FIX: issue with Internet Explorer when configuring a product and using defaults values are not expected
- FIX: some translations issue
- FIX: issue with shipping description while editing the configuration at product level into a products listing
- FIX: memory issue due to pictures too big and API requirements (bytes array)
- FIX: issue with MagentoConnect install

## Version 1.0.18
- Add improvements brought by the ricardo library

## Version 1.0.17
- Fix an issue with the transfer of the data via API

## Version 1.0.16
- 077aced Fix issue with wrong memory test at picture level
- 4fb9f9f Change comment
- 0acd985 Improve memory consumption due to images and expected bytes array on ricardo API side
- 411b1b8 Change url for the ricardo assistant on production
- 05d9364 Update README for license information
- 947efb5 Factorize some process in order creation
- 970f5ee Update translation string
- ccc9802 Update translation string "Until sold"
- 73aadc0 [ENHANCE] Seems that external extension instantiate the shipping class, as it is outside of the order scope, an object is missing and provide an error. We fixed it even if we don't support externa
- b161609 [ENHANCE] Prevent memory consumption due to the size of pictures and the fact that we need to unpack the pictures bytes to create bytes array for the ricardo.ch API
- 41e95ee Update Copyright to ricardo.ch AG (keep same license)
- 128b28d Update config.xml version
- 29b5e61 Update language string key in CSV files

## Version 1.0.15
- 8cc97f0 [ENHANCE] Delete old jobs in the SQL way (no collection), speed up the delete and may prevent mysql error
- 571d315 Open new window for a link located into the product list and jumping into ricardo.ch website
- d6be0f1 [BUGFIX] Change the translation string from Ricardo to ricardo.ch
- 195c744 Cosmetic code improvements
- ddd1ff0 Fix an issue with deleting product item from a listing
- 7a71702 Revert deleted xml file to generate magento connect package
- 7fc6abb Update order dispatcher to get error messages
- 6804aba Update Hint.php

## Version 1.0.14
- Fix an issue revealed after fixes done in version 1.0.13 related to getting sales options and rules from products listing item during getting new orders

## Version 1.0.13
- Important fix for price products (and sales options & rules in general) when several listing processes running at same time

## Version 1.0.12
- 7485ad0 Prevent Exception while editing product if API problem appear while conditions options
- 2927622 Add translation for frontend, change payment info template
- 29069ea Fix wrong variable name for payment method instruction
- 1738457 add payment block info in frontend area too for email generated from backend
- 259f885 Fix issue with products grid and massaction
- 8d37514 Update readme file
- ea18812 Redirect to edit page if error occur
- 0fe5a3c Implement Bank information display if ricardo.ch payment method Bank transfer is used, Remove the cleanup listing log as it is duplicate with the job cleanup
- 9cd82a8 Change order of the tab display 1) Synchronization 2) Listing Log instead of the opposite
- bc809c0 Fix random security error message on fresh install

## Version 1.0.10
- e2304ab Change the status of an item to stop if the item has not been sold. It will stop the complete list if all items are stopped.
- e2c0676 Set website Id while saving new customer even if store id was also provided to be sure that the user is saved into the correct website
- 0d01b4a Fix missing log url in message
- ff1005c Skip required option when creating an order, also for custom option
- 9b48ef6 Fix missing home number

## Version 1.0.9
- Fix issue with some optional API property set to 0 (like template Id)
- 0c1eb42 Revert temporary success / error in dispatcher list , improve translations of string in product grid
- 74c3284 Show a small message in sync grid while running or chunk running to allow to differentiate both kind of sync
- 68eed7f Raise to 400 items to trigger in dispatch
- 1d3a839 Prevent create a new job while having a chunk running sync list
- 3241ef0 Change the way to handle the bucket of items in the dispatcher, fix a bug while triggering the order dispatcher and getting the list of listed items
- adcbc59 Improve message display in sync grid
- 6b6c45e Fix issue with "Until Sold" feature
- 2f48ea4 Improve the way to set/get successful or error log item
- 86fcc17 Display Product list name in the sync log grid instead to put it as message
- 1219b09 Fix issue with products grid and configurable products having article inserted also as simple article
- 95efdca Fix duplicate collection item error
- 4d38ed3 Make the option Schedule Reactivation "Until Sold" better explicit and working
- 03bc9cd Update code documentation
- 658c9f6 In some cases, picture's extension is not recognized so change the logic to determine if it exists or not Catch Exception and log them in cron class

## Version 1.0.8
- b5f1afa Update translations file
- c0d3fbb Fix issue with dispatcher and completed status
- 27c48c9 Fix interface issue (invisible language was also required input) with language selection and payment method "other" which needs a payment description and shipping description field if shipping "other" is selected
- 9e0be11 Improve debugging content when dispatcher mets errors
- b994fa0 Improve grid translations for products
- 84baa1b Change order of token DEV/PROD configuration fields
- 868e576 Fix issue with product price max limit (should be only for "Buy now" and payment method with credit card)
- 379a51b Fix issue with too long strings saved into DB if error occurred
- 0eb9f8d Cosmetic code changes
- 79ce926 Change translation
- 356c909 Fix issue with job message and json encoding (some loop appeared in some use cases)
- 738f316 Better judge if some values must be retrieved from the API depending if the extension is configured or not
- cd34d94 Prevent loop when doing the dispatch
- 14d3beb fix uninstall file txt with wrong language folder package
- a5e6350 Fix translation issue in the sync grid
- 90a2f7c Fix issue if extension is disabled with payment and shipping methods
- 33055cc Add nl2br for description

## Version 1.0.7
- 42f18da Prevent warning messages for some variables, Prevent Exception when picture doesn't exist in preview, set per default the dev mode to 1 because user receives BETA API Token first and some people doesn't set correctly the configuration
- 29767d9 Add more condition to display error in case of wrong API configuration and coming from banner notification
- 57da567 Invite user to check his configuration if a problem occurs
- c514cb0 Merge branch 'develop'

## Version 1.0.6
- 6a6ca4f Do not set the status of the parent configurable product when list on ricardo.ch
- eb0d25a Handle correctly errors if done in the backend notification banner
- 68f812a add short description as fallback product description
- bb0c931 change redirect url and add error message
- c4fbe49 Check and List action: save also product listing information
- 349218a Merge branch 'develop' of git://github.com/diglin/ricento into develop
- f467eb4 Fix issue with grid of products after filter reset (missing form key hidden field)
- 4cc8e3b Revert changes done for RIC-102, display products item w/o any error
- afb9215 Add new url to register to the API
- c0b50e9 In case errors are coming from the API but it is at backend notification level, we catch the error and display it as session error message
- 7d0c803 Merge branch 'develop' of github.com:diglin/ricento into develop
- 068a409 allow to delete a job even if it is running, fix some typo translations, allow to save when clicking on "check and list" button from a product listing

## Version 1.0.5
- c1b3c90 Merge branch 'develop'
- 9f59a2f Fix definitely issue RIC-102 with product grid display
- 3c3547a Fix issue RIC-102: product grid display in product listing with some configuration provide error cause of the collection and duplicate items found
- 5d1706e Merge pull request #1 from diglin/develop

## Version 1.0.4
- ebaec62 Remove the filter collection to not get "not visible" products. Don't remember the reason of this filter, hope it doesn't have consequence with order creation (normally no)
- 90e2a93 Merge branch 'develop'

## Version 1.0.3
- c55a6dd Fix issue with wrong store id, should not be website id while getting storeConfig
- 00c2960 Update README.md

## Version 1.0.2
- 880dbfd Fix issue if API not yet configured and Product Edit Page is requested from the backend
- 5841d06 Update gitsubmodule (replace bitbucket with github)
- be2b77a Update readme file
- 9384e3c Update doc

Download this release

Release Info

Developer diglin
Extension diglin_ricento
Version 1.6.2
Comparing to
See all releases


Code changes from version 1.4.1.4 to 1.6.2

Files changed (23) hide show
  1. app/code/community/Diglin/Ricento/.DS_Store +0 -0
  2. app/code/community/Diglin/Ricento/Block/Adminhtml/Notifications/Default.php +1 -1
  3. app/code/community/Diglin/Ricento/Controller/Adminhtml/Action.php +7 -2
  4. app/code/community/Diglin/Ricento/Helper/Api.php +3 -3
  5. app/code/community/Diglin/Ricento/Helper/Data.php +50 -1
  6. app/code/community/Diglin/Ricento/Helper/Product.php +103 -0
  7. app/code/community/Diglin/Ricento/Model/.DS_Store +0 -0
  8. app/code/community/Diglin/Ricento/Model/Cron.php +5 -1
  9. app/code/community/Diglin/Ricento/Model/Dispatcher/Closed.php +4 -2
  10. app/code/community/Diglin/Ricento/Model/Dispatcher/Transaction.php +4 -0
  11. app/code/community/Diglin/Ricento/Model/Observer.php +2 -88
  12. {lib/Diglin/Ricardo/Managers/Sell → app/code/community/Diglin/Ricento/Model/Products/Listing}/.DS_Store +0 -0
  13. app/code/community/Diglin/Ricento/Model/Products/Listing/Item.php +9 -2
  14. app/code/community/Diglin/Ricento/Model/Products/Listing/Item/Product.php +145 -32
  15. {lib/Diglin/Ricardo → app/code/community/Diglin/Ricento/Model/Resource}/.DS_Store +0 -0
  16. {lib/Diglin/Ricardo/Managers → app/code/community/Diglin/Ricento/Model/Resource/Sync}/.DS_Store +0 -0
  17. app/code/community/Diglin/Ricento/Model/Resource/Sync/Job.php +28 -1
  18. app/code/community/Diglin/Ricento/Model/Validate/Products/Item.php +7 -1
  19. app/code/community/Diglin/Ricento/data/.DS_Store +0 -0
  20. app/code/community/Diglin/Ricento/etc/config.xml +5 -1
  21. app/code/community/Diglin/Ricento/etc/system.xml +44 -4
  22. lib/Diglin/Ricardo/Managers/SellerAccount/.DS_Store +0 -0
  23. package.xml +14 -5
app/code/community/Diglin/Ricento/.DS_Store CHANGED
Binary file
app/code/community/Diglin/Ricento/Block/Adminhtml/Notifications/Default.php CHANGED
@@ -48,7 +48,7 @@ class Diglin_Ricento_Block_Adminhtml_Notifications_Default extends Mage_Adminhtm
48
  protected function _toHtml()
49
  {
50
  try {
51
- if (Mage::getSingleton('admin/session')->isAllowed('system/ricento')) {
52
  return parent::_toHtml();
53
  }
54
  } catch (\Diglin\Ricardo\Exceptions\CurlException $e) {
48
  protected function _toHtml()
49
  {
50
  try {
51
+ if (Mage::getSingleton('admin/session')->isAllowed('ricento')) {
52
  return parent::_toHtml();
53
  }
54
  } catch (\Diglin\Ricardo\Exceptions\CurlException $e) {
app/code/community/Diglin/Ricento/Controller/Adminhtml/Action.php CHANGED
@@ -60,7 +60,7 @@ abstract class Diglin_Ricento_Controller_Adminhtml_Action extends Mage_Adminhtml
60
  $helperApi = Mage::helper('diglin_ricento/api');
61
  $websiteId = $this->_initListing()->getWebsiteId();
62
 
63
- return $helper->isEnabled($websiteId) && $helper->isConfigured($websiteId) && !$helperApi->apiTokenCredentialGoingToExpire($websiteId);
64
  }
65
 
66
  /**
@@ -209,9 +209,14 @@ abstract class Diglin_Ricento_Controller_Adminhtml_Action extends Mage_Adminhtml
209
 
210
  $hashImage = array();
211
 
 
 
212
  foreach ($collectionListingItemChildren->getItems() as $item) {
213
  // Warm picture cache to prevent memory consumption while listing items
214
- $images = (array) $item->getProduct()->getImages($item->getBaseProductId());
 
 
 
215
 
216
  foreach ($images as $image) {
217
  $filename = $image['filepath'];
60
  $helperApi = Mage::helper('diglin_ricento/api');
61
  $websiteId = $this->_initListing()->getWebsiteId();
62
 
63
+ return $helper->isEnabled($websiteId) && $helper->isConfigured($websiteId) && !$helperApi->apiTokenCredentialValidation($websiteId);
64
  }
65
 
66
  /**
209
 
210
  $hashImage = array();
211
 
212
+ $useConfigurableSimpleProductPicture = Mage::helper('diglin_ricento')->useConfigurableSimpleProductPicture();
213
+
214
  foreach ($collectionListingItemChildren->getItems() as $item) {
215
  // Warm picture cache to prevent memory consumption while listing items
216
+ $images = (array) $item->getProduct()
217
+ ->getImages(
218
+ ($useConfigurableSimpleProductPicture) ? $item->getProductId() : $item->getBaseProductId()
219
+ );
220
 
221
  foreach ($images as $image) {
222
  $filename = $image['filepath'];
app/code/community/Diglin/Ricento/Helper/Api.php CHANGED
@@ -32,7 +32,7 @@ class Diglin_Ricento_Helper_Api extends Mage_Core_Helper_Abstract
32
  const CACHE_LIFETIME = 86400;
33
 
34
  /**
35
- * Get if the token credential is going to expire or even not exist
36
  *
37
  * @param int|string|Mage_Core_Model_Website $website
38
  * @return bool
@@ -52,7 +52,7 @@ class Diglin_Ricento_Helper_Api extends Mage_Core_Helper_Abstract
52
  }
53
 
54
  /**
55
- * The API token can be validated X days before expiration
56
  *
57
  * @param int $website
58
  * @return bool
@@ -60,8 +60,8 @@ class Diglin_Ricento_Helper_Api extends Mage_Core_Helper_Abstract
60
  public function apiTokenCredentialValidation($website = 0)
61
  {
62
  $dayDelay = Mage::helper('diglin_ricento')->getExpirationNotificationValidationDelay();
63
-
64
  $expirationDate = $this->getExpirationDate($website);
 
65
  if (empty($expirationDate) ||
66
  isset($expirationDate) && time() >= (Mage::getSingleton('core/date')->timestamp($expirationDate) - ($dayDelay * 24 * 3600))
67
  ) {
32
  const CACHE_LIFETIME = 86400;
33
 
34
  /**
35
+ * Get if the token credential is going to expire or even not exist - Default is 7 days
36
  *
37
  * @param int|string|Mage_Core_Model_Website $website
38
  * @return bool
52
  }
53
 
54
  /**
55
+ * The API token can be validated X days before expiration - Default is 1 day
56
  *
57
  * @param int $website
58
  * @return bool
60
  public function apiTokenCredentialValidation($website = 0)
61
  {
62
  $dayDelay = Mage::helper('diglin_ricento')->getExpirationNotificationValidationDelay();
 
63
  $expirationDate = $this->getExpirationDate($website);
64
+
65
  if (empty($expirationDate) ||
66
  isset($expirationDate) && time() >= (Mage::getSingleton('core/date')->timestamp($expirationDate) - ($dayDelay * 24 * 3600))
67
  ) {
app/code/community/Diglin/Ricento/Helper/Data.php CHANGED
@@ -59,11 +59,13 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
59
  const CFG_STATS_APPID = 'ricento/global/stats_app_id';
60
  const CFG_STATS_APPID_TEST = 'ricento/global/stats_app_id_test';
61
  const CFG_UPDATE_NOTIFICATION = 'ricento/global/update_notification';
 
62
 
63
  /**
64
  * Listing config
65
  */
66
  const CFG_MERGE_DESCRIPTIONS = 'ricento/listing/merge_descriptions';
 
67
  const CFG_NL2BR = 'ricento/listing/nl2br';
68
  const CFG_WATERMARK_ENABLED = 'ricento/listing/watermark_enabled';
69
  const CFG_WATERMARK = 'ricento/listing/watermark_image';
@@ -71,6 +73,8 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
71
  const CFG_WATERMARK_POSITION = 'ricento/listing/watermark_position';
72
  const CFG_WATERMARK_SIZE = 'ricento/listing/watermark_size';
73
  const CFG_IMAGE_PLACEHOLDER = 'ricento/listing/placeholder_allowed';
 
 
74
 
75
  /**
76
  * Cleanup Job config
@@ -768,6 +772,15 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
768
  return Mage::getStoreConfigFlag(self::CFG_MERGE_DESCRIPTIONS, $storeId);
769
  }
770
 
 
 
 
 
 
 
 
 
 
771
  /**
772
  * @param Diglin_Ricento_Model_Products_Listing_Item $item
773
  * @return int|string
@@ -884,4 +897,40 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
884
  {
885
  return Mage::getStoreConfigFlag(self::CFG_UPDATE_NOTIFICATION, $store);
886
  }
887
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  const CFG_STATS_APPID = 'ricento/global/stats_app_id';
60
  const CFG_STATS_APPID_TEST = 'ricento/global/stats_app_id_test';
61
  const CFG_UPDATE_NOTIFICATION = 'ricento/global/update_notification';
62
+ const CFG_IMPORT_TRANSACTION = 'ricento/global/import_transaction';
63
 
64
  /**
65
  * Listing config
66
  */
67
  const CFG_MERGE_DESCRIPTIONS = 'ricento/listing/merge_descriptions';
68
+ const CFG_MERGE_ATTRIBUTES = 'ricento/listing/merge_attributes';
69
  const CFG_NL2BR = 'ricento/listing/nl2br';
70
  const CFG_WATERMARK_ENABLED = 'ricento/listing/watermark_enabled';
71
  const CFG_WATERMARK = 'ricento/listing/watermark_image';
73
  const CFG_WATERMARK_POSITION = 'ricento/listing/watermark_position';
74
  const CFG_WATERMARK_SIZE = 'ricento/listing/watermark_size';
75
  const CFG_IMAGE_PLACEHOLDER = 'ricento/listing/placeholder_allowed';
76
+ const CFG_CONFIGURABLE_PRICE = 'ricento/listing/configurable_price';
77
+ const CFG_CONFIGURABLE_PICTURE = 'ricento/listing/configurable_picture';
78
 
79
  /**
80
  * Cleanup Job config
772
  return Mage::getStoreConfigFlag(self::CFG_MERGE_DESCRIPTIONS, $storeId);
773
  }
774
 
775
+ /**
776
+ * @param int $storeId
777
+ * @return mixed
778
+ */
779
+ public function canMergeAttributes($storeId = 0)
780
+ {
781
+ return Mage::getStoreConfigFlag(self::CFG_MERGE_ATTRIBUTES, $storeId);
782
+ }
783
+
784
  /**
785
  * @param Diglin_Ricento_Model_Products_Listing_Item $item
786
  * @return int|string
897
  {
898
  return Mage::getStoreConfigFlag(self::CFG_UPDATE_NOTIFICATION, $store);
899
  }
900
+
901
+ /**
902
+ * @param null $store
903
+ * @return bool
904
+ */
905
+ public function canImportTransaction($store = null)
906
+ {
907
+ return Mage::getStoreConfigFlag(self::CFG_IMPORT_TRANSACTION, $store);
908
+ }
909
+
910
+ /**
911
+ * @param null $store
912
+ * @return bool
913
+ */
914
+ public function useConfigurableSimpleProductPrice($store = null)
915
+ {
916
+ return Mage::getStoreConfigFlag(self::CFG_CONFIGURABLE_PRICE, $store);
917
+ }
918
+
919
+ /**
920
+ * @param null $store
921
+ * @return bool
922
+ */
923
+ public function useConfigurableSimpleProductPicture($store = null)
924
+ {
925
+ return Mage::getStoreConfigFlag(self::CFG_CONFIGURABLE_PICTURE, $store);
926
+ }
927
+
928
+ /**
929
+ * @param null $store
930
+ * @return bool
931
+ */
932
+ public function isNl2BrEnabled($store = null)
933
+ {
934
+ return Mage::getStoreConfigFlag(self::CFG_NL2BR, $store);
935
+ }
936
+ }
app/code/community/Diglin/Ricento/Helper/Product.php ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Diglin GmbH - Switzerland
4
+ *
5
+ * @author Sylvain Rayé <support at diglin.com>
6
+ * @category Diglin
7
+ * @package Diglin_Ricento
8
+ * @copyright Copyright (c) 2011-2017 Diglin (http://www.diglin.com)
9
+ */
10
+
11
+ /**
12
+ * Class Diglin_Ricento_Helper_Product
13
+ */
14
+ class Diglin_Ricento_Helper_Product extends Mage_Core_Helper_Abstract
15
+ {
16
+ /**
17
+ * @param Diglin_Ricento_Model_Products_Listing_Item $ricardoProductItem
18
+ * @param Mage_CatalogInventory_Model_Stock_Item|null $stockItem
19
+ */
20
+ public function proceedInventoryUpdate(
21
+ Diglin_Ricento_Model_Products_Listing_Item $ricardoProductItem,
22
+ Mage_CatalogInventory_Model_Stock_Item $stockItem = null
23
+ ) {
24
+ $productList = $ricardoProductItem->getProductsListing();
25
+ $salesOptions = $productList->getSalesOptions();
26
+
27
+ if ($salesOptions->getSalesType() != Diglin_Ricento_Model_Config_Source_Sales_Type::BUYNOW) {
28
+ return;
29
+ }
30
+
31
+ if (is_null($stockItem)) {
32
+ $stockItem = Mage::getSingleton('cataloginventory/stock_item')->loadByProduct($ricardoProductItem->getProductId());
33
+ }
34
+
35
+ if (!$stockItem->getManageStock()) {
36
+ return;
37
+ }
38
+
39
+ $realRemainingQty = $stockItem->getQty();
40
+
41
+ $newQuantity = null;
42
+
43
+ if ($realRemainingQty <= 0) {
44
+ $newQuantity = 0;
45
+ } else if ($realRemainingQty < $ricardoProductItem->getQtyInventory()) {
46
+ $newQuantity = $realRemainingQty;
47
+ } else if ($realRemainingQty >= $ricardoProductItem->getQtyInventory()) {
48
+ return;
49
+ }
50
+
51
+ try {
52
+ $sell = Mage::getSingleton('diglin_ricento/api_services_sell');
53
+
54
+ if ($newQuantity > 0) {
55
+
56
+ $ricardoProductItem->setQtyInventory($newQuantity);
57
+
58
+ $sell->updateArticleBuyNowQuantity($ricardoProductItem);
59
+
60
+ $ricardoProductItem->save();
61
+
62
+ if (Mage::helper('diglin_ricento')->isDebugEnabled()) {
63
+ Mage::log(sprintf('Product Listing Item ID %s - Qty Inventory updated to %s',
64
+ $ricardoProductItem->getId(), $newQuantity), Zend_Log::INFO, Diglin_Ricento_Helper_Data::LOG_FILE);
65
+ }
66
+
67
+ } else if ($newQuantity <= 0) {
68
+ $dispatcher = Mage::getSingleton('diglin_ricento/dispatcher');
69
+
70
+ $dispatcher->dispatch(Diglin_Ricento_Model_Sync_Job::TYPE_SYNCLIST)->proceed();
71
+ $dispatcher->dispatch(Diglin_Ricento_Model_Sync_Job::TYPE_TRANSACTION)->proceed();
72
+
73
+ $sell->stopArticle($ricardoProductItem);
74
+
75
+ $ricardoProductItem
76
+ ->setIsPlanned(null)
77
+ ->setRicardoArticleId(null)
78
+ ->setQtyInventory(null)
79
+ ->setStatus(Diglin_Ricento_Helper_Data::STATUS_STOPPED)
80
+ ->save();
81
+
82
+ Mage::log(sprintf('Product Listing Item ID %s - Qty Inventory is 0 - Article is stopped',
83
+ $ricardoProductItem->getId()), Zend_Log::INFO, Diglin_Ricento_Helper_Data::LOG_FILE);
84
+ }
85
+ } catch (Exception $e) {
86
+ $helper = Mage::helper('diglin_ricento');
87
+ $message = $helper->__('Error while updating quantity on ricardo side %s for the product listing item ID %d',
88
+ $e->getMessage(), $ricardoProductItem->getId());
89
+
90
+ if (Mage::app()->getStore()->isAdmin()) {
91
+ Mage::getSingleton('adminhtml/session')->addError($message);
92
+ }
93
+
94
+ Mage::log($message, Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE);
95
+
96
+ if ($helper->canSendEmailNotification()) {
97
+ Mage::helper('diglin_ricento/tools')->sendAdminNotification($message);
98
+ }
99
+
100
+ return;
101
+ }
102
+ }
103
+ }
app/code/community/Diglin/Ricento/Model/.DS_Store CHANGED
Binary file
app/code/community/Diglin/Ricento/Model/Cron.php CHANGED
@@ -135,7 +135,11 @@ class Diglin_Ricento_Model_Cron
135
  $helperData = Mage::helper('diglin_ricento');
136
  $websiteId = Mage::app()->getWebsite()->getId();
137
 
138
- if ($helper->apiTokenCredentialValidation($websiteId) && !$helper->isMerchantNotifiedApiAuthorization($websiteId) && $helperData->canSendEmailNotification()) {
 
 
 
 
139
  $helperTools = Mage::helper('diglin_ricento/tools');
140
  $helperTools->sendMerchantAuthorizationNotification(array(
141
  'shop_url' => Mage::helper('adminhtml')->getUrl('adminhtml')
135
  $helperData = Mage::helper('diglin_ricento');
136
  $websiteId = Mage::app()->getWebsite()->getId();
137
 
138
+ if (
139
+ $helper->apiTokenCredentialValidation($websiteId)
140
+ && !$helper->isMerchantNotifiedApiAuthorization($websiteId)
141
+ && $helperData->canSendEmailNotification()
142
+ ) {
143
  $helperTools = Mage::helper('diglin_ricento/tools');
144
  $helperTools->sendMerchantAuthorizationNotification(array(
145
  'shop_url' => Mage::helper('adminhtml')->getUrl('adminhtml')
app/code/community/Diglin/Ricento/Model/Dispatcher/Closed.php CHANGED
@@ -19,6 +19,7 @@ use \Diglin\Ricardo\Managers\SellerAccount\Parameter\OpenArticlesParameter;
19
  class Diglin_Ricento_Model_Dispatcher_Closed extends Diglin_Ricento_Model_Dispatcher_Abstract
20
  {
21
  const SLEEP_REACTIVATION_TIME = 900; // 15 min in sec
 
22
  /**
23
  * @var int
24
  */
@@ -63,6 +64,7 @@ class Diglin_Ricento_Model_Dispatcher_Closed extends Diglin_Ricento_Model_Dispat
63
  * Check that there is not already running job instead of creating a new one
64
  */
65
  Mage::getResourceModel('diglin_ricento/sync_job')->cleanupPendingJob($this->_jobType, $listingId);
 
66
 
67
  // pending progress doesn't make sense here as we cleanup before but keep it to be sure everything ok
68
  $job = Mage::getModel('diglin_ricento/sync_job');
@@ -182,6 +184,7 @@ class Diglin_Ricento_Model_Dispatcher_Closed extends Diglin_Ricento_Model_Dispat
182
  }
183
 
184
  $skip = false;
 
185
  // We do not stop anything if the article ID has just been changed and the product is still open
186
  if (isset($inTransitionArticlesResult['TotalLines']) && $inTransitionArticlesResult['TotalLines'] > 0) {
187
  $articleId = $inTransitionArticlesResult['InTransitionArticles'][0]['ArticleId'];
@@ -305,13 +308,12 @@ class Diglin_Ricento_Model_Dispatcher_Closed extends Diglin_Ricento_Model_Dispat
305
  */
306
  public function pullArticleToClose($var)
307
  {
308
- $return = true;
309
  foreach ($this->_openRicardoArticleIds as $articleId) {
310
  if ($var == $articleId['ArticleId']) {
311
  return false;
312
  }
313
  }
314
 
315
- return $return;
316
  }
317
  }
19
  class Diglin_Ricento_Model_Dispatcher_Closed extends Diglin_Ricento_Model_Dispatcher_Abstract
20
  {
21
  const SLEEP_REACTIVATION_TIME = 900; // 15 min in sec
22
+
23
  /**
24
  * @var int
25
  */
64
  * Check that there is not already running job instead of creating a new one
65
  */
66
  Mage::getResourceModel('diglin_ricento/sync_job')->cleanupPendingJob($this->_jobType, $listingId);
67
+ Mage::getResourceModel('diglin_ricento/sync_job')->cleanupChunkRunningJob($this->_jobType, $listingId);
68
 
69
  // pending progress doesn't make sense here as we cleanup before but keep it to be sure everything ok
70
  $job = Mage::getModel('diglin_ricento/sync_job');
184
  }
185
 
186
  $skip = false;
187
+
188
  // We do not stop anything if the article ID has just been changed and the product is still open
189
  if (isset($inTransitionArticlesResult['TotalLines']) && $inTransitionArticlesResult['TotalLines'] > 0) {
190
  $articleId = $inTransitionArticlesResult['InTransitionArticles'][0]['ArticleId'];
308
  */
309
  public function pullArticleToClose($var)
310
  {
 
311
  foreach ($this->_openRicardoArticleIds as $articleId) {
312
  if ($var == $articleId['ArticleId']) {
313
  return false;
314
  }
315
  }
316
 
317
+ return true;
318
  }
319
  }
app/code/community/Diglin/Ricento/Model/Dispatcher/Transaction.php CHANGED
@@ -33,6 +33,10 @@ class Diglin_Ricento_Model_Dispatcher_Transaction extends Diglin_Ricento_Model_D
33
  */
34
  public function proceed()
35
  {
 
 
 
 
36
  $plResource = Mage::getResourceModel('diglin_ricento/products_listing');
37
  $readConnection = $plResource->getReadConnection();
38
  $select = $readConnection
33
  */
34
  public function proceed()
35
  {
36
+ if (!Mage::helper('diglin_ricento')->canImportTransaction()) {
37
+ return $this;
38
+ }
39
+
40
  $plResource = Mage::getResourceModel('diglin_ricento/products_listing');
41
  $readConnection = $plResource->getReadConnection();
42
  $select = $readConnection
app/code/community/Diglin/Ricento/Model/Observer.php CHANGED
@@ -133,7 +133,7 @@ class Diglin_Ricento_Model_Observer
133
  ->addFieldToFilter('is_planned', 0);
134
 
135
  foreach ($collection->getItems() as $productItem) {
136
- $this->_proceedInventoryUpdate($productItem);
137
  }
138
  }
139
 
@@ -160,93 +160,7 @@ class Diglin_Ricento_Model_Observer
160
  && !$ricardoItem->getIsPlanned()
161
  && $ricardoItem->getRicardoArticleId()
162
  ) {
163
- $this->_proceedInventoryUpdate($ricardoItem, $stockItem);
164
- }
165
- }
166
-
167
- /**
168
- * @param Diglin_Ricento_Model_Products_Listing_Item $ricardoProductItem
169
- * @param Mage_CatalogInventory_Model_Stock_Item|null $stockItem
170
- */
171
- protected function _proceedInventoryUpdate(Diglin_Ricento_Model_Products_Listing_Item $ricardoProductItem, Mage_CatalogInventory_Model_Stock_Item $stockItem = null)
172
- {
173
- $productList = $ricardoProductItem->getProductsListing();
174
- $salesOptions = $productList->getSalesOptions();
175
-
176
- if ($salesOptions->getSalesType() != Diglin_Ricento_Model_Config_Source_Sales_Type::BUYNOW) {
177
- return;
178
- }
179
-
180
- if (is_null($stockItem)) {
181
- $stockItem = Mage::getSingleton('cataloginventory/stock_item')->loadByProduct($ricardoProductItem->getProductId());
182
- }
183
-
184
- if (!$stockItem->getManageStock()) {
185
- return;
186
- }
187
-
188
- $realRemainingQty = $stockItem->getQty();
189
-
190
- $newQuantity = null;
191
-
192
- if ($realRemainingQty <= 0) {
193
- $newQuantity = 0;
194
- } else if ($realRemainingQty < $ricardoProductItem->getQtyInventory()) {
195
- $newQuantity = $realRemainingQty;
196
- } else if ($realRemainingQty >= $ricardoProductItem->getQtyInventory()) {
197
- return;
198
- }
199
-
200
- try {
201
- $sell = Mage::getSingleton('diglin_ricento/api_services_sell');
202
-
203
- if ($newQuantity > 0) {
204
-
205
- $ricardoProductItem->setQtyInventory($newQuantity);
206
-
207
- $sell->updateArticleBuyNowQuantity($ricardoProductItem);
208
-
209
- $ricardoProductItem->save();
210
-
211
- if (Mage::helper('diglin_ricento')->isDebugEnabled()) {
212
- Mage::log(sprintf('Product Listing Item ID %s - Qty Inventory updated to %s',
213
- $ricardoProductItem->getId(), $newQuantity), Zend_Log::INFO, Diglin_Ricento_Helper_Data::LOG_FILE);
214
- }
215
-
216
- } else if ($newQuantity <= 0) {
217
- $dispatcher = Mage::getSingleton('diglin_ricento/dispatcher');
218
-
219
- $dispatcher->dispatch(Diglin_Ricento_Model_Sync_Job::TYPE_SYNCLIST)->proceed();
220
- $dispatcher->dispatch(Diglin_Ricento_Model_Sync_Job::TYPE_TRANSACTION)->proceed();
221
-
222
- $sell->stopArticle($ricardoProductItem);
223
-
224
- $ricardoProductItem
225
- ->setIsPlanned(null)
226
- ->setRicardoArticleId(null)
227
- ->setQtyInventory(null)
228
- ->setStatus(Diglin_Ricento_Helper_Data::STATUS_STOPPED)
229
- ->save();
230
-
231
- Mage::log(sprintf('Product Listing Item ID %s - Qty Inventory is 0 - Article is stopped',
232
- $ricardoProductItem->getId()), Zend_Log::INFO, Diglin_Ricento_Helper_Data::LOG_FILE);
233
- }
234
- } catch (Exception $e) {
235
- $helper = Mage::helper('diglin_ricento');
236
- $message = $helper->__('Error while updating quantity on ricardo side %s for the product listing item ID %d',
237
- $e->getMessage(), $ricardoProductItem->getId());
238
-
239
- if (Mage::app()->getStore()->isAdmin()) {
240
- Mage::getSingleton('adminhtml/session')->addError($message);
241
- }
242
-
243
- Mage::log($message, Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE);
244
-
245
- if ($helper->canSendEmailNotification()) {
246
- Mage::helper('diglin_ricento/tools')->sendAdminNotification($message);
247
- }
248
-
249
- return;
250
  }
251
  }
252
 
133
  ->addFieldToFilter('is_planned', 0);
134
 
135
  foreach ($collection->getItems() as $productItem) {
136
+ Mage::helper('diglin_ricento/product')->proceedInventoryUpdate($productItem);
137
  }
138
  }
139
 
160
  && !$ricardoItem->getIsPlanned()
161
  && $ricardoItem->getRicardoArticleId()
162
  ) {
163
+ Mage::helper('diglin_ricento/product')->proceedInventoryUpdate($ricardoItem, $stockItem);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  }
165
  }
166
 
{lib/Diglin/Ricardo/Managers/Sell → app/code/community/Diglin/Ricento/Model/Products/Listing}/.DS_Store RENAMED
Binary file
app/code/community/Diglin/Ricento/Model/Products/Listing/Item.php CHANGED
@@ -335,7 +335,7 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
335
  public function getProductDescription($sub = true)
336
  {
337
  $description = $this->getProduct()->getDescription($this->getBaseProductId(), $this->getStoreId(), $sub);
338
- $description = (Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_NL2BR)) ? nl2br($description) : $description;
339
 
340
  return strip_tags($description, implode('', Mage::helper('diglin_ricento')->getAllowedTags()));
341
  }
@@ -348,6 +348,7 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
348
  public function getProductPrice($convert = true)
349
  {
350
  $priceOptions = array();
 
351
  if ($this->getParentProductId()) {
352
  foreach ($this->getAdditionalData()->getOptions() as $option) {
353
  if (isset($option['pricing_value'])) {
@@ -546,7 +547,13 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
546
  */
547
  protected function _setInsertArticlePictures(InsertArticleParameter $insertArticleParameter)
548
  {
549
- $images = (array) $this->getProduct()->getImages($this->getBaseProductId());
 
 
 
 
 
 
550
  $i = 0;
551
  $hash = array();
552
 
335
  public function getProductDescription($sub = true)
336
  {
337
  $description = $this->getProduct()->getDescription($this->getBaseProductId(), $this->getStoreId(), $sub);
338
+ $description = (Mage::helper('diglin_ricento')->isNl2BrEnabled($this->getStoreId())) ? nl2br($description) : $description;
339
 
340
  return strip_tags($description, implode('', Mage::helper('diglin_ricento')->getAllowedTags()));
341
  }
348
  public function getProductPrice($convert = true)
349
  {
350
  $priceOptions = array();
351
+
352
  if ($this->getParentProductId()) {
353
  foreach ($this->getAdditionalData()->getOptions() as $option) {
354
  if (isset($option['pricing_value'])) {
547
  */
548
  protected function _setInsertArticlePictures(InsertArticleParameter $insertArticleParameter)
549
  {
550
+ $useConfigurableSimpleProductPicture = Mage::helper('diglin_ricento')->useConfigurableSimpleProductPicture();
551
+
552
+ $images = (array) $this->getProduct()
553
+ ->getImages(
554
+ ($useConfigurableSimpleProductPicture) ? $this->getProductId() : $this->getBaseProductId()
555
+ );
556
+
557
  $i = 0;
558
  $hash = array();
559
 
app/code/community/Diglin/Ricento/Model/Products/Listing/Item/Product.php CHANGED
@@ -118,6 +118,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
118
  $this->_model = null;
119
  $this->_productListingItemId = null;
120
  $this->_associatedProducts = null;
 
121
  return $this;
122
  }
123
 
@@ -133,6 +134,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
133
 
134
  if ($this->getProductId() > 0) {
135
  $this->loadProduct();
 
136
  return $this->_model;
137
  }
138
 
@@ -199,7 +201,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
199
  {
200
  (!is_null($productId)) && $this->_productId = $productId;
201
 
202
- $productId = (int) is_null($productId) ? $this->getProductId() : $productId;
203
 
204
  if (empty($productId)) {
205
  return false;
@@ -229,7 +231,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
229
  $this->_sku = $data['sku'];
230
  $this->_has_options = $data['has_options'];
231
  $this->_required_options = $data['required_options'];
232
- $this->_category_ids = (array) explode(',', $data['category_ids']);
233
  }
234
 
235
  return $data;
@@ -242,7 +244,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
242
  public function getTypeInstance($singleton = false)
243
  {
244
  $typeInstance = $this->getMagentoProduct()->getTypeInstance($singleton);
245
- $typeInstance->setStoreFilter( (int) $this->getStoreId(), $this->getMagentoProduct());
246
 
247
  return $typeInstance;
248
  }
@@ -257,7 +259,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
257
  return $this->_model->getTypeId();
258
  }
259
 
260
- $productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
261
 
262
  if (empty($productId) && empty($this->_typeid)) {
263
  return false;
@@ -280,7 +282,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
280
  return $this->_model->getHasOptions();
281
  }
282
 
283
- $productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
284
 
285
  if (empty($productId) && empty($this->_has_options)) {
286
  return false;
@@ -290,7 +292,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
290
  $this->getProductInformation($productId);
291
  }
292
 
293
- return (bool) $this->_has_options;
294
  }
295
 
296
  /**
@@ -303,7 +305,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
303
  return $this->_model->getRequiredOptions();
304
  }
305
 
306
- $productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
307
 
308
  if (empty($productId) && empty($this->_required_options)) {
309
  return false;
@@ -313,7 +315,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
313
  $this->getProductInformation($productId);
314
  }
315
 
316
- return (bool) $this->_required_options;
317
  }
318
 
319
  /**
@@ -322,7 +324,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
322
  */
323
  public function getCategoryIds($productId = null)
324
  {
325
- $productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
326
 
327
  if (empty($productId) && empty($this->_category_ids)) {
328
  return false;
@@ -332,7 +334,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
332
  $this->getProductInformation($productId);
333
  }
334
 
335
- return (array) $this->_category_ids;
336
  }
337
 
338
  /**
@@ -343,8 +345,8 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
343
  */
344
  public function getTitle($productId = null, $storeId = null, $sub = true)
345
  {
346
- $productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
347
- $storeId = (int) (is_null($storeId) ? $this->getStoreId() : $storeId);
348
 
349
  $titles = array(
350
  'ricardo_title',
@@ -385,8 +387,8 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
385
  */
386
  public function getSubtitle($productId = null, $storeId = null, $sub = true)
387
  {
388
- $productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
389
- $storeId = (int) (is_null($storeId) ? $this->getStoreId() : $storeId);
390
 
391
  $subtitle = '';
392
 
@@ -414,8 +416,8 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
414
  */
415
  public function getDescription($productId = null, $storeId = null, $sub = true)
416
  {
417
- $productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
418
- $storeId = (int) (is_null($storeId) ? $this->getStoreId() : $storeId);
419
 
420
  $descriptions = array(
421
  'ricardo_description',
@@ -424,11 +426,15 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
424
  );
425
 
426
  $canMergeDescriptions = Mage::helper('diglin_ricento')->canMergeDescriptions($storeId);
 
427
  $returnedDescription = null;
428
  $mergedDescriptions = array();
429
  $skip = false;
 
 
430
 
431
  foreach ($this->getStoresList($storeId) as $id) {
 
432
  if (is_null($id)) {
433
  continue;
434
  }
@@ -448,7 +454,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
448
  foreach ($descriptions as $description) {
449
  $result = $this->_getProductText($description, $productId, $id);
450
  $returnedDescription = $result[$description];
451
- $rowFounded = (bool) (count($result) >= 1);
452
 
453
  if ((!$rowFounded && $canMergeDescriptions || !$rowFounded && $description == 'ricardo_description') && $id != 0) {
454
  $returnedDescription = $this->_getProductText($description, $productId, 0);
@@ -465,9 +471,9 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
465
  }
466
 
467
  if ($canMergeDescriptions && count($mergedDescriptions) && !$skip) {
468
- if (!empty($mergedDescriptions['short_description']) && !empty($mergedDescriptions['description'])) {
469
- $returnedDescription = $mergedDescriptions['short_description'] . '<br><br>' . $mergedDescriptions['description'];
470
- }
471
  if (!empty($returnedDescription)) {
472
  $skip = true;
473
  }
@@ -478,6 +484,66 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
478
  }
479
  }
480
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
481
  if (empty($returnedDescription)) {
482
  return '';
483
  } else if ($sub) {
@@ -514,7 +580,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
514
  return $this->_model->getSku();
515
  }
516
 
517
- $productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
518
 
519
  if (empty($productId) && empty($this->_sku)) {
520
  return false;
@@ -727,6 +793,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
727
  }
728
  }
729
  }
 
730
  return true;
731
  }
732
 
@@ -759,10 +826,10 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
759
 
760
  $select = $readConnection
761
  ->select()
762
- ->from(array('cpev'=> $coreResource->getTableName('catalog_product_entity_varchar')), array($field => 'value'))
763
  ->join(
764
  array('ea' => $coreResource->getTableName('eav_attribute')),
765
- '`cpev`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \''. $field .'\'',
766
  array()
767
  )
768
  ->where('`cpev`.`entity_id` = ?', $productId)
@@ -783,10 +850,10 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
783
 
784
  $select = $readConnection
785
  ->select()
786
- ->from(array('cpet'=> $this->_getCoreResource()->getTableName('catalog_product_entity_text')), array($field => 'value', 'entity_id'))
787
  ->join(
788
  array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
789
- '`cpet`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \''. $field .'\'',
790
  array()
791
  )
792
  ->where('`cpet`.`entity_id` = ?', $productId)
@@ -795,6 +862,38 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
795
  return $readConnection->fetchRow($select);
796
  }
797
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
798
  /**
799
  * @param $field
800
  * @return string
@@ -825,7 +924,12 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
825
  $field = 'price';
826
  }
827
 
828
- $productId = ($this->getProductListingItem()->getParentProductId()) ? $this->getProductListingItem()->getParentProductId() : $this->getProductId();
 
 
 
 
 
829
  $price = $this->_getPrice($field, $productId, $this->_defaultStoreId);
830
 
831
  if ($price === false) {
@@ -836,7 +940,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
836
  $price = $this->_getProductBasePrice('price', false);
837
  }
838
 
839
- if ($this->getProductListingItem()->getParentProductId() && count($this->getPriceOptions())) {
840
  foreach ($this->getPriceOptions() as $option) {
841
  $price += Mage::helper('diglin_ricento/price')->calcSelectionPrice($option, $price);
842
  }
@@ -872,14 +976,14 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
872
  $readConnection = $this->_getReadConnection();
873
  $select = $readConnection
874
  ->select()
875
- ->from(array('cped'=> $this->_getCoreResource()->getTableName('catalog_product_entity_decimal')), array($field => 'value'))
876
  ->join(
877
  array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
878
- '`cped`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \''. $field .'\'',
879
  array()
880
  )
881
- ->where('`cped`.`entity_id` = ?', (int) $productId)
882
- ->where('`cped`.`store_id` = ?', (int) $storeId);
883
 
884
  return $readConnection->fetchOne($select);
885
  }
@@ -900,6 +1004,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
900
  $groupedInstance = $this->getTypeInstance(true);
901
  $this->_associatedProducts = $groupedInstance->getAssociatedProducts($this->getMagentoProduct());
902
  }
 
903
  return $this->_associatedProducts;
904
  }
905
 
@@ -971,6 +1076,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
971
  $configurableInstance = $this->getTypeInstance(true);
972
  $this->_usedProducts = $configurableInstance->getUsedProducts(null, $this->getMagentoProduct());
973
  }
 
974
  return $this->_usedProducts;
975
  }
976
 
@@ -1076,6 +1182,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
1076
  public function setProductId($productId)
1077
  {
1078
  $this->_productId = $productId;
 
1079
  return $this;
1080
  }
1081
 
@@ -1094,6 +1201,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
1094
  public function setStoreId($storeId)
1095
  {
1096
  $this->_storeId = $storeId;
 
1097
  return $this;
1098
  }
1099
 
@@ -1112,6 +1220,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
1112
  public function setDefaultStoreId($defaultStoreId)
1113
  {
1114
  $this->_defaultStoreId = $defaultStoreId;
 
1115
  return $this;
1116
  }
1117
 
@@ -1130,6 +1239,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
1130
  public function setProductListingItem(Diglin_Ricento_Model_Products_Listing_Item $productListingItem)
1131
  {
1132
  $this->_productListingItem = $productListingItem;
 
1133
  return $this;
1134
  }
1135
 
@@ -1141,6 +1251,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
1141
  if (empty($this->_productListingItem) && $this->getProductListingItemId()) {
1142
  $this->_productListingItem = Mage::getModel('diglin_ricento/products_listing_item')->load($this->getProductListingItemId());
1143
  }
 
1144
  return $this->_productListingItem;
1145
  }
1146
 
@@ -1150,7 +1261,8 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
1150
  */
1151
  public function setProductListingItemId($productListingItemId)
1152
  {
1153
- $this->_productListingItemId = (int) $productListingItemId;
 
1154
  return $this;
1155
  }
1156
 
@@ -1201,6 +1313,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
1201
  public function setPriceOptions($priceOptions)
1202
  {
1203
  $this->_priceOptions = $priceOptions;
 
1204
  return $this;
1205
  }
1206
  }
118
  $this->_model = null;
119
  $this->_productListingItemId = null;
120
  $this->_associatedProducts = null;
121
+
122
  return $this;
123
  }
124
 
134
 
135
  if ($this->getProductId() > 0) {
136
  $this->loadProduct();
137
+
138
  return $this->_model;
139
  }
140
 
201
  {
202
  (!is_null($productId)) && $this->_productId = $productId;
203
 
204
+ $productId = (int)is_null($productId) ? $this->getProductId() : $productId;
205
 
206
  if (empty($productId)) {
207
  return false;
231
  $this->_sku = $data['sku'];
232
  $this->_has_options = $data['has_options'];
233
  $this->_required_options = $data['required_options'];
234
+ $this->_category_ids = (array)explode(',', $data['category_ids']);
235
  }
236
 
237
  return $data;
244
  public function getTypeInstance($singleton = false)
245
  {
246
  $typeInstance = $this->getMagentoProduct()->getTypeInstance($singleton);
247
+ $typeInstance->setStoreFilter((int)$this->getStoreId(), $this->getMagentoProduct());
248
 
249
  return $typeInstance;
250
  }
259
  return $this->_model->getTypeId();
260
  }
261
 
262
+ $productId = (int)(is_null($productId) ? $this->getProductId() : $productId);
263
 
264
  if (empty($productId) && empty($this->_typeid)) {
265
  return false;
282
  return $this->_model->getHasOptions();
283
  }
284
 
285
+ $productId = (int)(is_null($productId) ? $this->getProductId() : $productId);
286
 
287
  if (empty($productId) && empty($this->_has_options)) {
288
  return false;
292
  $this->getProductInformation($productId);
293
  }
294
 
295
+ return (bool)$this->_has_options;
296
  }
297
 
298
  /**
305
  return $this->_model->getRequiredOptions();
306
  }
307
 
308
+ $productId = (int)(is_null($productId) ? $this->getProductId() : $productId);
309
 
310
  if (empty($productId) && empty($this->_required_options)) {
311
  return false;
315
  $this->getProductInformation($productId);
316
  }
317
 
318
+ return (bool)$this->_required_options;
319
  }
320
 
321
  /**
324
  */
325
  public function getCategoryIds($productId = null)
326
  {
327
+ $productId = (int)(is_null($productId) ? $this->getProductId() : $productId);
328
 
329
  if (empty($productId) && empty($this->_category_ids)) {
330
  return false;
334
  $this->getProductInformation($productId);
335
  }
336
 
337
+ return (array)$this->_category_ids;
338
  }
339
 
340
  /**
345
  */
346
  public function getTitle($productId = null, $storeId = null, $sub = true)
347
  {
348
+ $productId = (int)(is_null($productId) ? $this->getProductId() : $productId);
349
+ $storeId = (int)(is_null($storeId) ? $this->getStoreId() : $storeId);
350
 
351
  $titles = array(
352
  'ricardo_title',
387
  */
388
  public function getSubtitle($productId = null, $storeId = null, $sub = true)
389
  {
390
+ $productId = (int)(is_null($productId) ? $this->getProductId() : $productId);
391
+ $storeId = (int)(is_null($storeId) ? $this->getStoreId() : $storeId);
392
 
393
  $subtitle = '';
394
 
416
  */
417
  public function getDescription($productId = null, $storeId = null, $sub = true)
418
  {
419
+ $productId = (int)(is_null($productId) ? $this->getProductId() : $productId);
420
+ $storeId = (int)(is_null($storeId) ? $this->getStoreId() : $storeId);
421
 
422
  $descriptions = array(
423
  'ricardo_description',
426
  );
427
 
428
  $canMergeDescriptions = Mage::helper('diglin_ricento')->canMergeDescriptions($storeId);
429
+ $canMergeAttributes = Mage::helper('diglin_ricento')->canMergeAttributes($storeId);
430
  $returnedDescription = null;
431
  $mergedDescriptions = array();
432
  $skip = false;
433
+ $descriptionSeparator = (Mage::helper('diglin_ricento')->isNl2BrEnabled($storeId)) ? PHP_EOL : '<br/>';
434
+ $separator = (Mage::helper('diglin_ricento')->isNl2BrEnabled($storeId)) ? '' : PHP_EOL;
435
 
436
  foreach ($this->getStoresList($storeId) as $id) {
437
+
438
  if (is_null($id)) {
439
  continue;
440
  }
454
  foreach ($descriptions as $description) {
455
  $result = $this->_getProductText($description, $productId, $id);
456
  $returnedDescription = $result[$description];
457
+ $rowFounded = (bool)(count($result) >= 1);
458
 
459
  if ((!$rowFounded && $canMergeDescriptions || !$rowFounded && $description == 'ricardo_description') && $id != 0) {
460
  $returnedDescription = $this->_getProductText($description, $productId, 0);
471
  }
472
 
473
  if ($canMergeDescriptions && count($mergedDescriptions) && !$skip) {
474
+ ksort($mergedDescriptions);
475
+ $returnedDescription = implode($descriptionSeparator, $mergedDescriptions);
476
+
477
  if (!empty($returnedDescription)) {
478
  $skip = true;
479
  }
484
  }
485
  }
486
 
487
+ if ($canMergeAttributes) {
488
+ foreach ($this->getStoresList($storeId) as $id) {
489
+ if (is_null($id)) {
490
+ continue;
491
+ }
492
+
493
+ /* @var $attributeCollection Mage_Catalog_Model_Resource_Product_Attribute_Collection */
494
+ $attributeCollection = Mage::getResourceModel('catalog/product_attribute_collection');
495
+ $attributeCollection
496
+ ->addFieldToFilter('additional_table.is_visible_on_front', 1)
497
+ ->addFieldToFilter('frontend_input', array('in' => array('select', 'text', 'textarea')))
498
+ ->addFieldToFilter('backend_type', array('in' => array('int', 'varchar', 'text')))
499
+ ->setOrder('position', 'asc');
500
+
501
+ $attributes = array();
502
+
503
+ /* @var $item Mage_Eav_Model_Entity_Attribute */
504
+ foreach ($attributeCollection->getItems() as $item) {
505
+
506
+ $method = $value = null;
507
+
508
+ switch ($item->getBackendType()) {
509
+ case 'int':
510
+ $method = '_getProductIntText';
511
+ break;
512
+ case 'varchar':
513
+ $method = '_getProductVarchar';
514
+ break;
515
+ case 'text':
516
+ $method = '_getProductText';
517
+ break;
518
+ }
519
+
520
+ if ($method && method_exists($this, $method)) {
521
+ $result = $this->$method($item->getAttributeCode(), $productId, $id);
522
+
523
+ if ($method == '_getProductVarchar') {
524
+ $value[$item->getAttributeCode()] = $result;
525
+ } else {
526
+ $value = $result;
527
+ }
528
+
529
+ if (!empty($value[$item->getAttributeCode()]) && !isset($hashAttributeKey[$item->getAttributeCode()])) {
530
+ $attributes[] = sprintf('<li style="padding:5px"><ul><li style="min-width:15%%;float:left;display: table-cell">%s:</li><li style="display: table-cell">%s</li></ul></li>', $item->getStoreLabel($id), $value[$item->getAttributeCode()]);
531
+ $hashAttributeKey[$item->getAttributeCode()] = true;
532
+ }
533
+ }
534
+ }
535
+
536
+ if (count($attributes)) {
537
+ $attributesOut = '<br/>';
538
+ $attributesOut .= '<ul style="list-style: none;padding:0;">';
539
+ $attributesOut .= implode($separator, $attributes);
540
+ $attributesOut .= '</ul>';
541
+
542
+ $returnedDescription .= $attributesOut;
543
+ }
544
+ }
545
+ }
546
+
547
  if (empty($returnedDescription)) {
548
  return '';
549
  } else if ($sub) {
580
  return $this->_model->getSku();
581
  }
582
 
583
+ $productId = (int)(is_null($productId) ? $this->getProductId() : $productId);
584
 
585
  if (empty($productId) && empty($this->_sku)) {
586
  return false;
793
  }
794
  }
795
  }
796
+
797
  return true;
798
  }
799
 
826
 
827
  $select = $readConnection
828
  ->select()
829
+ ->from(array('cpev' => $coreResource->getTableName('catalog_product_entity_varchar')), array($field => 'value'))
830
  ->join(
831
  array('ea' => $coreResource->getTableName('eav_attribute')),
832
+ '`cpev`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \'' . $field . '\'',
833
  array()
834
  )
835
  ->where('`cpev`.`entity_id` = ?', $productId)
850
 
851
  $select = $readConnection
852
  ->select()
853
+ ->from(array('cpet' => $this->_getCoreResource()->getTableName('catalog_product_entity_text')), array($field => 'value', 'entity_id'))
854
  ->join(
855
  array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
856
+ '`cpet`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \'' . $field . '\'',
857
  array()
858
  )
859
  ->where('`cpet`.`entity_id` = ?', $productId)
862
  return $readConnection->fetchRow($select);
863
  }
864
 
865
+ /**
866
+ * @param $field
867
+ * @param null $productId
868
+ * @param int $storeId
869
+ * @return array
870
+ */
871
+ protected function _getProductIntText($field, $productId = null, $storeId = Mage_Core_Model_App::ADMIN_STORE_ID)
872
+ {
873
+ $readConnection = $this->_getReadConnection();
874
+
875
+ $select = $readConnection
876
+ ->select()
877
+ ->distinct()
878
+ ->from(
879
+ array('eaov' => $this->_getCoreResource()->getTableName('eav_attribute_option_value')),
880
+ array($field => 'value'))
881
+ ->join(
882
+ array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
883
+ '`ea`.`attribute_code` = \'' . $field . '\'',
884
+ array()
885
+ )
886
+ ->join(array('cpei' => $this->_getCoreResource()->getTableName('catalog_product_entity_int')),
887
+ '`cpei`.`attribute_id` = `ea`.`attribute_id`',
888
+ array()
889
+ )
890
+ ->where('`cpei`.`entity_id` = ?', $productId)
891
+ ->where('`eaov`.`store_id` = ?', $storeId)
892
+ ->where('eaov.option_id = cpei.value');
893
+
894
+ return $readConnection->fetchRow($select);
895
+ }
896
+
897
  /**
898
  * @param $field
899
  * @return string
924
  $field = 'price';
925
  }
926
 
927
+ $useSimplePrice = Mage::helper('diglin_ricento')->useConfigurableSimpleProductPrice();
928
+
929
+ $productId = ($this->getProductListingItem()->getParentProductId() && !$useSimplePrice)
930
+ ? $this->getProductListingItem()->getParentProductId()
931
+ : $this->getProductId();
932
+
933
  $price = $this->_getPrice($field, $productId, $this->_defaultStoreId);
934
 
935
  if ($price === false) {
940
  $price = $this->_getProductBasePrice('price', false);
941
  }
942
 
943
+ if ($this->getProductListingItem()->getParentProductId() && !$useSimplePrice && count($this->getPriceOptions())) {
944
  foreach ($this->getPriceOptions() as $option) {
945
  $price += Mage::helper('diglin_ricento/price')->calcSelectionPrice($option, $price);
946
  }
976
  $readConnection = $this->_getReadConnection();
977
  $select = $readConnection
978
  ->select()
979
+ ->from(array('cped' => $this->_getCoreResource()->getTableName('catalog_product_entity_decimal')), array($field => 'value'))
980
  ->join(
981
  array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
982
+ '`cped`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \'' . $field . '\'',
983
  array()
984
  )
985
+ ->where('`cped`.`entity_id` = ?', (int)$productId)
986
+ ->where('`cped`.`store_id` = ?', (int)$storeId);
987
 
988
  return $readConnection->fetchOne($select);
989
  }
1004
  $groupedInstance = $this->getTypeInstance(true);
1005
  $this->_associatedProducts = $groupedInstance->getAssociatedProducts($this->getMagentoProduct());
1006
  }
1007
+
1008
  return $this->_associatedProducts;
1009
  }
1010
 
1076
  $configurableInstance = $this->getTypeInstance(true);
1077
  $this->_usedProducts = $configurableInstance->getUsedProducts(null, $this->getMagentoProduct());
1078
  }
1079
+
1080
  return $this->_usedProducts;
1081
  }
1082
 
1182
  public function setProductId($productId)
1183
  {
1184
  $this->_productId = $productId;
1185
+
1186
  return $this;
1187
  }
1188
 
1201
  public function setStoreId($storeId)
1202
  {
1203
  $this->_storeId = $storeId;
1204
+
1205
  return $this;
1206
  }
1207
 
1220
  public function setDefaultStoreId($defaultStoreId)
1221
  {
1222
  $this->_defaultStoreId = $defaultStoreId;
1223
+
1224
  return $this;
1225
  }
1226
 
1239
  public function setProductListingItem(Diglin_Ricento_Model_Products_Listing_Item $productListingItem)
1240
  {
1241
  $this->_productListingItem = $productListingItem;
1242
+
1243
  return $this;
1244
  }
1245
 
1251
  if (empty($this->_productListingItem) && $this->getProductListingItemId()) {
1252
  $this->_productListingItem = Mage::getModel('diglin_ricento/products_listing_item')->load($this->getProductListingItemId());
1253
  }
1254
+
1255
  return $this->_productListingItem;
1256
  }
1257
 
1261
  */
1262
  public function setProductListingItemId($productListingItemId)
1263
  {
1264
+ $this->_productListingItemId = (int)$productListingItemId;
1265
+
1266
  return $this;
1267
  }
1268
 
1313
  public function setPriceOptions($priceOptions)
1314
  {
1315
  $this->_priceOptions = $priceOptions;
1316
+
1317
  return $this;
1318
  }
1319
  }
{lib/Diglin/Ricardo → app/code/community/Diglin/Ricento/Model/Resource}/.DS_Store RENAMED
Binary file
{lib/Diglin/Ricardo/Managers → app/code/community/Diglin/Ricento/Model/Resource/Sync}/.DS_Store RENAMED
Binary file
app/code/community/Diglin/Ricento/Model/Resource/Sync/Job.php CHANGED
@@ -66,7 +66,7 @@ class Diglin_Ricento_Model_Resource_Sync_Job extends Diglin_Ricento_Model_Resour
66
  ->join(array('jl' => $this->getTable('diglin_ricento/sync_job_listing')),
67
  'jl.job_id = sj.job_id', '*')
68
  ->where('jl.products_listing_id = ?', $productListingId)
69
- ->where('job_Type = ? ', $jobType)
70
  ->where('progress = ?', Diglin_Ricento_Model_Sync_Job::PROGRESS_PENDING)
71
  ->deleteFromSelect('sj');
72
 
@@ -76,4 +76,31 @@ class Diglin_Ricento_Model_Resource_Sync_Job extends Diglin_Ricento_Model_Resour
76
 
77
  return $this;
78
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  }
66
  ->join(array('jl' => $this->getTable('diglin_ricento/sync_job_listing')),
67
  'jl.job_id = sj.job_id', '*')
68
  ->where('jl.products_listing_id = ?', $productListingId)
69
+ ->where('job_type = ? ', $jobType)
70
  ->where('progress = ?', Diglin_Ricento_Model_Sync_Job::PROGRESS_PENDING)
71
  ->deleteFromSelect('sj');
72
 
76
 
77
  return $this;
78
  }
79
+
80
+ /**
81
+ * @param $jobType
82
+ * @param $productListingId
83
+ * @return $this
84
+ */
85
+ public function cleanupChunkRunningJob($jobType, $productListingId)
86
+ {
87
+ $readConnection = $this->_getReadAdapter();
88
+
89
+ $select = $readConnection
90
+ ->select()
91
+ ->from(array('sj' => $this->getTable('diglin_ricento/sync_job')), 'job_id')
92
+ ->join(array('jl' => $this->getTable('diglin_ricento/sync_job_listing')),
93
+ 'jl.job_id = sj.job_id', '*')
94
+ ->where('jl.products_listing_id = ?', $productListingId)
95
+ ->where('job_type = ? ', $jobType)
96
+ ->where('progress = ?', Diglin_Ricento_Model_Sync_Job::PROGRESS_CHUNK_RUNNING)
97
+ ->where('((TO_DAYS(sj.updated_at) + ?) < TO_DAYS(now()))', 1) // Keep max 1 day
98
+ ->deleteFromSelect('sj');
99
+
100
+ if (!empty($select) && !is_numeric($select)) {
101
+ $readConnection->query($select);
102
+ }
103
+
104
+ return $this;
105
+ }
106
  }
app/code/community/Diglin/Ricento/Model/Validate/Products/Item.php CHANGED
@@ -306,7 +306,13 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
306
  */
307
  public function validatePicture(Diglin_Ricento_Model_Products_Listing_Item $item)
308
  {
309
- $assignedImages = $item->getProduct()->getImages();
 
 
 
 
 
 
310
  if (empty($assignedImages) && ($item->getSalesOptions()->getPromotionSpace() || $item->getSalesOptions()->getPromotionStartPage())) {
311
  // Errors - No promotion possible if no image in the product
312
  $this->_errors[] = $this->getHelper()->__('You cannot use the privilege spaces as you do not have any pictures for this product.');
306
  */
307
  public function validatePicture(Diglin_Ricento_Model_Products_Listing_Item $item)
308
  {
309
+ $useConfigurableSimpleProductPicture = Mage::helper('diglin_ricento')->useConfigurableSimpleProductPicture();
310
+
311
+ $assignedImages = $item->getProduct()
312
+ ->getImages(
313
+ ($useConfigurableSimpleProductPicture) ? $item->getProductId() : $item->getBaseProductId()
314
+ );
315
+
316
  if (empty($assignedImages) && ($item->getSalesOptions()->getPromotionSpace() || $item->getSalesOptions()->getPromotionStartPage())) {
317
  // Errors - No promotion possible if no image in the product
318
  $this->_errors[] = $this->getHelper()->__('You cannot use the privilege spaces as you do not have any pictures for this product.');
app/code/community/Diglin/Ricento/data/.DS_Store CHANGED
Binary file
app/code/community/Diglin/Ricento/etc/config.xml CHANGED
@@ -13,7 +13,7 @@
13
  <config>
14
  <modules>
15
  <Diglin_Ricento>
16
- <version>1.4.1.3</version>
17
  </Diglin_Ricento>
18
  </modules>
19
 
@@ -38,10 +38,13 @@
38
  </adminnotification>
39
  <listing>
40
  <merge_descriptions>0</merge_descriptions>
 
41
  <nl2br>0</nl2br>
42
  <watermark_enabled>0</watermark_enabled>
43
  <watermark_imageOpacity>100</watermark_imageOpacity>
44
  <placeholder_allowed>0</placeholder_allowed>
 
 
45
  </listing>
46
  <global>
47
  <merge_order>1</merge_order>
@@ -60,6 +63,7 @@
60
  <update_notification>1</update_notification>
61
  <customer_grid>1</customer_grid>
62
  <order_grid>1</order_grid>
 
63
  </global>
64
  <api_config>
65
  <enabled>1</enabled>
13
  <config>
14
  <modules>
15
  <Diglin_Ricento>
16
+ <version>1.6.2</version>
17
  </Diglin_Ricento>
18
  </modules>
19
 
38
  </adminnotification>
39
  <listing>
40
  <merge_descriptions>0</merge_descriptions>
41
+ <merge_attributes>0</merge_attributes>
42
  <nl2br>0</nl2br>
43
  <watermark_enabled>0</watermark_enabled>
44
  <watermark_imageOpacity>100</watermark_imageOpacity>
45
  <placeholder_allowed>0</placeholder_allowed>
46
+ <configurable_price>0</configurable_price>
47
+ <configurable_picture>0</configurable_picture>
48
  </listing>
49
  <global>
50
  <merge_order>1</merge_order>
63
  <update_notification>1</update_notification>
64
  <customer_grid>1</customer_grid>
65
  <order_grid>1</order_grid>
66
+ <import_transaction>1</import_transaction>
67
  </global>
68
  <api_config>
69
  <enabled>1</enabled>
app/code/community/Diglin/Ricento/etc/system.xml CHANGED
@@ -67,7 +67,7 @@
67
  <label>Decrease Inventory</label>
68
  <frontend_type>select</frontend_type>
69
  <source_model>adminhtml/system_config_source_yesno</source_model>
70
- <comment><![CDATA[Do you want to decrease the stock on ricardo.ch side when an order is placed or when you change the inventory qty of a product? <strong>IMPORTANT</strong>: <ul><li>it's not possible to increase the quantity if the order is canceled.</li><li>The product is stopped if the quantity is below than 1.</li><li>Only product sold on ricardo having direct sales type can be decreased.</li><li>If a product is not stock managed, this feature won't do anything.</li><li>If there is enough quantity in stock compared to the one listed on ricardo, the decrease won't be proceed.</li></ul>]]></comment>
71
  <sort_order>20</sort_order>
72
  <show_in_default>1</show_in_default>
73
  <show_in_website>0</show_in_website>
@@ -124,6 +124,16 @@
124
  <show_in_website>0</show_in_website>
125
  <show_in_store>0</show_in_store>
126
  </order_grid>
 
 
 
 
 
 
 
 
 
 
127
  </fields>
128
  </global>
129
 
@@ -144,6 +154,16 @@
144
  <show_in_website>0</show_in_website>
145
  <show_in_store>0</show_in_store>
146
  </merge_descriptions>
 
 
 
 
 
 
 
 
 
 
147
  <nl2br>
148
  <label>Replace Carriage Return with br HTML Tag</label>
149
  <frontend_type>select</frontend_type>
@@ -154,7 +174,7 @@
154
  <show_in_website>0</show_in_website>
155
  <show_in_store>0</show_in_store>
156
  </nl2br>
157
- <placeholder_allowed>
158
  <label>Allow Image Placeholder</label>
159
  <frontend_type>select</frontend_type>
160
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -164,8 +184,28 @@
164
  <show_in_website>0</show_in_website>
165
  <show_in_store>0</show_in_store>
166
  </placeholder_allowed>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
 
168
- <watermark translate="label" module="catalog">
169
  <label>Watermark - Watermark with domain name extension (e.g. My-Company.ch) included are forbidden</label>
170
  <frontend_model>diglin_ricento/adminhtml_config_source_heading</frontend_model>
171
  <sort_order>35</sort_order>
@@ -183,7 +223,7 @@
183
  <show_in_website>0</show_in_website>
184
  <show_in_store>0</show_in_store>
185
  </watermark_enabled>
186
- <watermark_size translate="label comment" module="diglin_ricento">
187
  <label>Watermark Default Size</label>
188
  <frontend_type>text</frontend_type>
189
  <sort_order>50</sort_order>
67
  <label>Decrease Inventory</label>
68
  <frontend_type>select</frontend_type>
69
  <source_model>adminhtml/system_config_source_yesno</source_model>
70
+ <comment><![CDATA[Do you want to decrease the stock on ricardo.ch side when an order is placed or when you change the inventory qty of a product? <strong>IMPORTANT</strong>: 1) it's not possible to increase the quantity if the order is canceled. 2) The product is stopped if the quantity is below than 1. 3) Only product sold on ricardo having direct sales type can be decreased. 4) If a product is not stock managed, this feature won't do anything 5) If there is enough quantity in stock compared to the one listed on ricardo, the decrease won't be proceed.]]></comment>
71
  <sort_order>20</sort_order>
72
  <show_in_default>1</show_in_default>
73
  <show_in_website>0</show_in_website>
124
  <show_in_website>0</show_in_website>
125
  <show_in_store>0</show_in_store>
126
  </order_grid>
127
+ <import_transaction module="diglin_ricento" translate="label comment">
128
+ <label>Import ricardo orders</label>
129
+ <frontend_type>select</frontend_type>
130
+ <source_model>adminhtml/system_config_source_yesno</source_model>
131
+ <comment><![CDATA[Allow to import and create order from ricardo into Magento]]></comment>
132
+ <sort_order>80</sort_order>
133
+ <show_in_default>1</show_in_default>
134
+ <show_in_website>0</show_in_website>
135
+ <show_in_store>0</show_in_store>
136
+ </import_transaction>
137
  </fields>
138
  </global>
139
 
154
  <show_in_website>0</show_in_website>
155
  <show_in_store>0</show_in_store>
156
  </merge_descriptions>
157
+ <merge_attributes translate="label comment">
158
+ <label>Merge "Visible in frontend" Attributes</label>
159
+ <frontend_type>select</frontend_type>
160
+ <source_model>adminhtml/system_config_source_yesno</source_model>
161
+ <comment><![CDATA[Do you want to merge and show into the product description all visible frontend attributes.]]></comment>
162
+ <sort_order>11</sort_order>
163
+ <show_in_default>1</show_in_default>
164
+ <show_in_website>0</show_in_website>
165
+ <show_in_store>0</show_in_store>
166
+ </merge_attributes>
167
  <nl2br>
168
  <label>Replace Carriage Return with br HTML Tag</label>
169
  <frontend_type>select</frontend_type>
174
  <show_in_website>0</show_in_website>
175
  <show_in_store>0</show_in_store>
176
  </nl2br>
177
+ <placeholder_allowed translate="label comment" module="diglin_ricento">
178
  <label>Allow Image Placeholder</label>
179
  <frontend_type>select</frontend_type>
180
  <source_model>adminhtml/system_config_source_yesno</source_model>
184
  <show_in_website>0</show_in_website>
185
  <show_in_store>0</show_in_store>
186
  </placeholder_allowed>
187
+ <configurable_price translate="label comment" module="diglin_ricento">
188
+ <label>Use Price from Simple Product</label>
189
+ <frontend_type>select</frontend_type>
190
+ <source_model>adminhtml/system_config_source_yesno</source_model>
191
+ <comment><![CDATA[Price of a configurable product is normally based on the configurable product price and its options. Here you can use directly the price of the simple products linked to the configurable product, options price and base price of the configurable product will be ignored.]]></comment>
192
+ <sort_order>31</sort_order>
193
+ <show_in_default>1</show_in_default>
194
+ <show_in_website>0</show_in_website>
195
+ <show_in_store>0</show_in_store>
196
+ </configurable_price>
197
+ <configurable_picture translate="label comment" module="diglin_ricento">
198
+ <label>Use Picture from Simple Product</label>
199
+ <frontend_type>select</frontend_type>
200
+ <source_model>adminhtml/system_config_source_yesno</source_model>
201
+ <comment><![CDATA[Picture of a configurable product is normally the one of the configurable product . Here you can use the picture of the simple products linked to the configurable product if they are existing.]]></comment>
202
+ <sort_order>32</sort_order>
203
+ <show_in_default>1</show_in_default>
204
+ <show_in_website>0</show_in_website>
205
+ <show_in_store>0</show_in_store>
206
+ </configurable_picture>
207
 
208
+ <watermark translate="label" module="diglin_ricento">
209
  <label>Watermark - Watermark with domain name extension (e.g. My-Company.ch) included are forbidden</label>
210
  <frontend_model>diglin_ricento/adminhtml_config_source_heading</frontend_model>
211
  <sort_order>35</sort_order>
223
  <show_in_website>0</show_in_website>
224
  <show_in_store>0</show_in_store>
225
  </watermark_enabled>
226
+ <watermark_size translate="label comment" module="catalog">
227
  <label>Watermark Default Size</label>
228
  <frontend_type>text</frontend_type>
229
  <sort_order>50</sort_order>
lib/Diglin/Ricardo/Managers/SellerAccount/.DS_Store DELETED
Binary file
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>diglin_ricento</name>
4
- <version>1.4.1.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0">OSL v3.0</license>
7
  <channel>community</channel>
@@ -38,7 +38,16 @@
38
  &lt;p&gt;With around 700,000 current offers (auctions and fixed price), 2.5 million brand-name articles on &lt;a href="http://www.ricardoshops"&gt;ricardoshops&lt;/a&gt;.ch, around 100,000 vehicles plus 35,000 parts and accessories on &lt;a href="http://www.autoricardo.ch"&gt;autoricardo.ch&lt;/a&gt; and over 2.3 million members, ricardo.ch is the largest online marketplace in Switzerland. Every three minutes somebody buys an article on &lt;a href="http://www.ricardo.ch"&gt;ricardo.ch&lt;/a&gt; using a mobile device. ricardo.ch AG employs over 140 people in Switzerland and is headquartered in Zug.&lt;/p&gt;&#xD;
39
  &lt;h2&gt;About Diglin&lt;/h2&gt;&#xD;
40
  &lt;p&gt;&lt;a href="http://www.diglin.com"&gt;Diglin&lt;/a&gt; is the Swiss eCommerce Agency per excellence, realizing your eCommerce project with success. It will accompany along the whole life of your eCommerce project at any levels: conception, realization, design, marketing, logistic, data treatment and management, resource optimization, cost efficiency, increase in turnover, etc. Diglin concentrates its activities mainly with the solutions Magento (eCommerce), OroCRM (CRM) and Akeneo (PIM) and work with its partners highly qualified to provide you the best solutions regarding your needs. &lt;/p&gt;</description>
41
- <notes>## Version 1.4.1.4&#xD;
 
 
 
 
 
 
 
 
 
42
  - Fix of non existing and not needed Event method&#xD;
43
  &#xD;
44
  ## Version 1.4.1.2&#xD;
@@ -276,9 +285,9 @@
276
  - be2b77a Update readme file&#xD;
277
  - 9384e3c Update doc</notes>
278
  <authors><author><name>diglin</name><user>diglin</user><email>sly@diglin.com</email></author></authors>
279
- <date>2016-10-26</date>
280
- <time>18:39:52</time>
281
- <contents><target name="magecommunity"><dir name="Diglin"><dir name="Ricento"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Source"><file name="Heading.php" hash="b433ef94dec29580215fc43109ee8f8c"/><file name="Hint.php" hash="a854f35041a700f7518c607039e82e0f"/></dir></dir><dir name="Dashboard"><file name="Account.php" hash="bc2731e95f36c20ba58681ea32c05c4a"/><file name="Banner.php" hash="342cbe73ba3b32f9bdc8313149ec931a"/><file name="Bestsellers.php" hash="a9432528b536631a678319e82afeeeec"/><file name="Lifetime.php" hash="e3a70e02e94f980f9d1aaf0ecf9a20bb"/><file name="News.php" hash="6ee052d661649e532b9d1ca4678a572a"/><dir name="Renderer"><file name="Price.php" hash="0fc32c2882a63176370bef21733e9e21"/></dir><file name="Turnover.php" hash="5e6865955e7a9698593a53fec3726676"/></dir><dir name="Form"><dir name="Element"><dir name="Checkboxes"><file name="Extensible.php" hash="bc4c39a051f7a159f5e23dff34ad811d"/></dir><dir name="Fieldset"><file name="Inline.php" hash="292183da97b985cecc1b6d1ce1ee4a35"/></dir><dir name="Radios"><file name="Extensible.php" hash="0bd7bcc853668d572fa21be57bb47575"/></dir></dir></dir><dir name="Log"><dir name="Listing"><file name="Grid.php" hash="c216e361e99b10448fc164a076f8bfb6"/></dir><dir name="Sync"><dir name="Grid"><dir name="Renderer"><file name="Progress.php" hash="bd4639208f7cedafe37f95df3537cd46"/><file name="Title.php" hash="b38daffffedf227e2d1c44b7a9e176d2"/></dir></dir><file name="Grid.php" hash="ed1b6b85b7d94acf4327e2975a953742"/></dir><file name="Tabs.php" hash="9e96072c16f78b41844d294e498b4401"/></dir><file name="Log.php" hash="5b9580b2d6b69f76b384f60fdebe3747"/><dir name="Notifications"><file name="Default.php" hash="167bfaa55e28c709dbf3697d7830a71a"/><file name="Expiration.php" hash="def727b9262a4020af85becc71ea4eef"/></dir><dir name="Page"><file name="Menu.php" hash="0a6dde8103fb1444621ccdf484957c02"/></dir><dir name="Products"><dir name="Category"><file name="Children.php" hash="307e037abc251848b0694b3529edfbfc"/><dir name="Form"><dir name="Renderer"><file name="Categories.php" hash="76c3af26e9c3aa7c3d9f09d941997d57"/><file name="Mapping.php" hash="dc875b3554f7595382bfa8a11478405f"/></dir></dir><dir name="Mapping"><file name="Tree.php" hash="524d1d3387fbaa130552aca4e0591598"/></dir><file name="Mapping.php" hash="93298c7e13b142501b4fc8888113ed2b"/><dir name="Tree"><file name="Categories.php" hash="515975899617d335d6976e27ef7b573d"/><file name="Form.php" hash="d81bbe3285b496dc3c14625aa9b91e03"/></dir><file name="Tree.php" hash="8aa9c622715b021a8e857410b881b68c"/></dir><dir name="Listing"><file name="Confirmation.php" hash="cdb2ceca5b00a34d5a947c91ca722cd6"/><dir name="Edit"><file name="Form.php" hash="e1a9fe7cab032a32ca3407a76ce7fbee"/><dir name="Renderer"><file name="Article.php" hash="cf0e96bc078ab23d5641f6f2022749c8"/><file name="Configured.php" hash="4660b7102533fa42a83eb37603cc76a7"/><file name="Customoptions.php" hash="64d5d9a0b2fb3a97145cee69eda09e0c"/><file name="Inventory.php" hash="772903adb11487f69a3d02846d3fefe6"/><file name="Name.php" hash="bb38f3924522574e64ba6e811ff46450"/><file name="Price.php" hash="b6112891273ff496374b2778227b4143"/><file name="Status.php" hash="b114cd85e41eca64fe57a6ff51d5ee43"/></dir><dir name="Tabs"><file name="General.php" hash="14d287a2fc7ff8913697be143f79a367"/><dir name="Products"><file name="Add.php" hash="d85973292fb9fad08333ac4a13493215"/><file name="Massaction.php" hash="e9abc1d73fee5e1bb85569a80f37b9e5"/></dir><file name="Products.php" hash="10c6d381c61010065633e2da4b3b7b97"/><file name="Rules.php" hash="7b913d102970f46fb8db6ec409322d7c"/><file name="Selloptions.php" hash="111b94ee6039995882b30f29ccbce570"/></dir><file name="Tabs.php" hash="6c3df947696a88a2509cfcf25a28c38b"/></dir><file name="Edit.php" hash="e263001bb8fa2dde2be0cd1addf03748"/><dir name="Form"><file name="Abstract.php" hash="aa96a74bc83b7dae21a982812eb6fd90"/></dir><dir name="Grid"><dir name="Renderer"><file name="Status.php" hash="842be30b0586aa7481c91bd68928b955"/><file name="Total.php" hash="9570d3f5b50c043c0444d5fb3411f6f2"/></dir></dir><file name="Grid.php" hash="5b4c42ede2a076fc76b21b0511826d39"/><dir name="Item"><dir name="Edit"><file name="Form.php" hash="780650cb73819b55b355fe01119f703c"/><dir name="Tabs"><file name="Rules.php" hash="f8488f76c14247e25a61da9b03df0593"/><file name="Selloptions.php" hash="d4613fae72dd1fe3c68bff8419a82750"/></dir><file name="Tabs.php" hash="5d0781303281ae745d3609f907bd19d2"/></dir><file name="Edit.php" hash="6ab0342f46397cb1a2516f05077e79e9"/><file name="Preview.php" hash="e30655fb9ec51bf40de8c10d16af3a9d"/></dir><file name="Log.php" hash="f7cdaab52d3769ff93321e7647d67c06"/><dir name="New"><file name="Form.php" hash="38ab04ded807490619a0e3b1cb75c9e0"/></dir><file name="New.php" hash="59eea06c9b8ec22162c3fcaeba2933e1"/></dir><file name="Listing.php" hash="0c101749125ce6e1822b6f749ca924d2"/></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Button.php" hash="67d754bed74b6389355d554b255e7488"/></dir></dir></dir></dir><file name=".DS_Store" hash="72cb31c5cebe3828c3893e9ad7d8e874"/></dir><dir name="Payment"><file name="Info.php" hash="c63a717a400752ec569657d2cd418195"/></dir><file name=".DS_Store" hash="9e4d6465f1c9413c6138669f65821870"/></dir><dir name="Controller"><dir name="Adminhtml"><file name="Action.php" hash="a74d205205b120dad924500f0205a375"/><dir name="Products"><file name="Listing.php" hash="e132285e9a08bb96160882b034409360"/></dir></dir><file name=".DS_Store" hash="4d5d9c90ca3336c5032cfdfa17aedd6f"/></dir><file name="Exception.php" hash="93c9bde391933089d1e6632cea5ad786"/><dir name="Helper"><file name="Api.php" hash="67ae3a1cc9a3a6ba9db34ed327865ae6"/><dir name="Dashboard"><file name="Turnover.php" hash="eda721699f2e5cf8e298e0024a63a545"/></dir><file name="Data.php" hash="f57fcc66f9e32e89545a6fa10a8de7fa"/><file name="Image.php" hash="d6561be83da2f9add6b5cd80e79c6162"/><file name="Price.php" hash="ef6cb7106ba52582621e2a59de2553e4"/><file name="Support.php" hash="3cca6b96cc057332d86dca6c41822eba"/><file name="Tools.php" hash="13c923ae2c56e8305e481cb27570212d"/><file name=".DS_Store" hash="42504db0bd8d0f8007bef503bf8111c1"/></dir><dir name="Model"><dir name="Api"><dir name="Services"><file name="Abstract.php" hash="f8604c8e66857c1fbead4f77393ee999"/><file name="Customer.php" hash="d500e9e9035ffd8500407611f6796ad9"/><file name="Search.php" hash="d40fd404bfb3a2d5de9d6020df14b483"/><file name="Security.php" hash="d5f1d425155e4749344850e7b09feb22"/><file name="Sell.php" hash="aa16c82ad3f6291ed4168d65c3dbefe2"/><file name="Selleraccount.php" hash="c0d31d32fee8b7c6347b81202a1ba0e5"/><file name="System.php" hash="7c20e49754e5e93503fc3ef7e4918dc8"/></dir><file name="Token.php" hash="a4145e890cafbd223fa42ba5b477c025"/><file name=".DS_Store" hash="55fcfbe6faaeb2570fa5db55bd4d7ea1"/></dir><dir name="Config"><dir name="Source"><file name="Abstract.php" hash="d671ca4f2f26f145f5fad2e30b532124"/><file name="Categories.php" hash="f982ceecede3d42547a08e6a36f49218"/><file name="Languages.php" hash="2c03657ebf714148b73cb3f15ef4488c"/><dir name="Products"><dir name="Listing"><file name="Log.php" hash="ba3a7d1e422755cd6739bed8820066c0"/><file name="Status.php" hash="170990ec2272e76863bbdc88be6a023b"/></dir></dir><dir name="Rules"><file name="Payment.php" hash="4d14509c99fa3c4fc26037b246f78265"/><dir name="Shipping"><file name="Availability.php" hash="f97891bf6fdf0765d0289c43bb457a97"/><file name="Calculation.php" hash="912f16d303a9b401d1de9d37296dde0a"/><file name="Packages.php" hash="d4ce5652ae2a80eeb8839290dfb64ee6"/></dir><file name="Shipping.php" hash="e66853a3ea9b51a0900fdadba935ae42"/></dir><dir name="Sales"><file name="Currency.php" hash="b07535355281a36f3b7e358d23a77e15"/><file name="Days.php" hash="5643dd61f80ccc52cbe29e75f18df2d9"/><dir name="Order"><file name="Status.php" hash="a3718bb7ab59b4d60748dee241888651"/></dir><dir name="Price"><file name="Method.php" hash="020a8e8d0d9d35802ea88c0028af4673"/><file name="Source.php" hash="94c5e4b5eb86ced80e5412159e6cf0f4"/></dir><dir name="Product"><dir name="Condition"><file name="Source.php" hash="14849df28b52facc5d91f462e9a90781"/></dir><file name="Condition.php" hash="32faa3b36d1b7de9577798578152d044"/></dir><file name="Promotion.php" hash="dfd838cfe50880d8d2facbf3b062b398"/><file name="Reactivation.php" hash="33d9dd75eeb119eb3b05bbb4dda8e432"/><file name="Template.php" hash="ccffc7632cd03d87f0245cd801d0bae5"/><file name="Type.php" hash="6f545897bbe8b99d5b30e4102279b827"/><file name="Warranty.php" hash="8762d38677d82bc8048e3d5d88b36eae"/></dir><file name="Status.php" hash="813afb1e443192b1d6a7d9937e56cafd"/><file name="Store.php" hash="6930c1537e4ebf98885d5c333bec3ffa"/><dir name="Sync"><file name="Progress.php" hash="d0430a73504085929ba5f8a3e867da07"/><file name="Status.php" hash="f4b8e72c905175730b3d566dee80ade6"/><file name="Type.php" hash="f3e216055d4e7e30f0d5a17de914a233"/></dir><file name="Watermark.php" hash="75b4bb2d4e63e970483ce3043ca33a7b"/><file name="Website.php" hash="c0168510dc5252a0689416959882136b"/></dir></dir><file name="Cron.php" hash="4cd03859ff8ea13780aa5e848b09267f"/><dir name="Dispatcher"><file name="Abstract.php" hash="2840777c292eeea5f30859ceb7a32753"/><dir name="Check"><file name="List.php" hash="6b9eef4d652debf6be1b333b73b737a0"/></dir><file name="Closed.php" hash="832f67b40eda28f2191960a692aedde4"/><file name="List.php" hash="a4fff4a4d0fbffe7321b81401a665b77"/><file name="Order.php" hash="e3c1f18748c79f57cec41382f5832415"/><file name="Stop.php" hash="0d50fec7ca9aec8cd4ae0679268e189c"/><dir name="Sync"><file name="List.php" hash="eb4cc8966d896098fa452a917b0d41e6"/></dir><file name="Transaction.php" hash="e0dac92b147c2a244a95b14a030cc428"/><file name=".DS_Store" hash="ffc6974cacdba2fa044a37f669033112"/></dir><file name="Dispatcher.php" hash="d00fda597c8a294d6d133aceb0f7c922"/><dir name="Entity"><dir name="Attribute"><dir name="Source"><file name="Conditions.php" hash="1223272c226b7bf7d1c6c61f27ef687e"/></dir></dir></dir><file name="Feed.php" hash="fecf4fead5bf6ab0742a8b8b2cb39dea"/><file name="Filter.php" hash="268a294b3309eb642434e8e59eacd291"/><file name="Image.php" hash="c28f161eb11c3e6bfebea855b957b1b5"/><file name="Observer.php" hash="1c74462263c6918e8980ded14abf3790"/><dir name="Products"><dir name="Category"><file name="Mapping.php" hash="b6df1431d7310759e5be17f29eb10df0"/></dir><file name="Category.php" hash="642f0520f549d520e9050a0286a56358"/><dir name="Listing"><dir name="Item"><file name="Product.php" hash="9e21b17779506e91c153f8996dbce27a"/></dir><file name="Item.php" hash="fe47f1895ab4842456bbc7e27b8a26ec"/><file name="Log.php" hash="98fa75315e6c2b490fea82854dbbbded"/></dir><file name="Listing.php" hash="8877ce70cb6ddb612e2f25ccfc3092c3"/></dir><dir name="Resource"><dir name="Api"><dir name="Token"><file name="Collection.php" hash="d2ab663440e27258841be3cf4a357a70"/></dir><file name="Token.php" hash="9899e9aa48e2ee7d416e840d575fff47"/></dir><dir name="Products"><dir name="Listing"><file name="Collection.php" hash="19b8f5d9d0107c897151d91e0cbae08e"/><dir name="Item"><file name="Collection.php" hash="c1d27c28e0c52f6f15641fe90cf2fba8"/></dir><file name="Item.php" hash="450a69ddd9023a40d1431f4a5c93a7db"/><dir name="Log"><file name="Collection.php" hash="c0b02c61246b76a31f2673931d90e985"/></dir><file name="Log.php" hash="514311bff0eee5b00e775c8b59b8b5a1"/></dir><file name="Listing.php" hash="450a3122ecd268a8714f90d06bd01328"/></dir><dir name="Rule"><file name="Collection.php" hash="9c35a937efb27fe3fd57616621035ceb"/></dir><file name="Rule.php" hash="2ec8533cbc357e2a204dcf6bcbdb2d88"/><dir name="Sales"><dir name="Options"><file name="Collection.php" hash="fbc1af66e9ce3c33f47cab4853d5bd3e"/></dir><file name="Options.php" hash="dbb7e3ecf2c1716cdbbc8fa81b25bdda"/><dir name="Transaction"><file name="Collection.php" hash="f661980fd6a907df331cd7df1f211dd0"/></dir><file name="Transaction.php" hash="f81eb7d223ab9357598199150c1281a2"/></dir><dir name="Sync"><file name="Abstract.php" hash="15030d2414b0ad5dc99b56cd656f92e8"/><dir name="Job"><file name="Collection.php" hash="b9bd2b8a3a7271524e65898a5f1fbd68"/><dir name="Listing"><file name="Collection.php" hash="a713a5910489912448c85a9987635a45"/></dir><file name="Listing.php" hash="44ec78a770948d9504c1138ce1f41fe1"/></dir><file name="Job.php" hash="a7496261d34501fc9a5c56a87110c688"/></dir></dir><file name="Rule.php" hash="4ff575a44898a6b63cdb22dc1c3bb180"/><dir name="Sales"><dir name="Method"><file name="Payment.php" hash="9ba10f1ceb6f4a97cb02a852afbb7e15"/><file name="Shipping.php" hash="2c7a63fe51d57deaf2cbc9c6ede6099b"/></dir><file name="Options.php" hash="d6bb5ab7343e79f2341113b8b6a123d0"/><dir name="Order"><file name="Create.php" hash="fa28733d72ddc214510f64f559189bf3"/><file name="Exception.php" hash="74d31df9035a6145563b25e9a5b0324b"/></dir><file name="Transaction.php" hash="81133f876c4988ebcf89f9bad6a19cd3"/></dir><file name="SplAutoloader.php" hash="39c58e1f9e4221d222960b801f9367e3"/><dir name="Sync"><file name="Abstract.php" hash="fc6ac3f307ea104c66fe4e758dd3a4a9"/><dir name="Job"><file name="Listing.php" hash="593875bf5d4d5588b684e39d833779b7"/></dir><file name="Job.php" hash="3983213a2e778479676fddcb74dc0e38"/></dir><dir name="Validate"><dir name="Products"><file name="Item.php" hash="4c1c96a5231c7465bb985612380e5386"/></dir><dir name="Rules"><file name="Methods.php" hash="9dcfc409d29f8eeb301c109212f1956e"/></dir><dir name="Sales"><file name="Increment.php" hash="1f92ec9c6ca26d34bdb3981e777bda14"/></dir></dir><file name=".DS_Store" hash="3ae9d9f4a3463233e35f17617c76ed5f"/></dir><dir name="Test"><dir name="Model"><file name="Feed.php" hash="21c43e7f00928e1679a51ba1a77f0802"/><dir name="Rule"><dir name="Validate"><dir name="expectations"><file name="testPaymentMethodCombinations.yaml" hash="c1070f1ae555a8c32a7761980e589857"/></dir><dir name="providers"><file name="testPaymentMethodCombinations.yaml" hash="0dfd5c1d335e10540607a391b33a9a2c"/></dir></dir><file name="Validate.php" hash="08260abb9a0bd685da4097916dfddc31"/></dir><dir name="Sales"><dir name="Validate"><dir name="Increment"><dir name="expectations"><file name="testStartPriceIncrementCombination.yaml" hash="15ffe7bd8373cda25aed179c08171881"/></dir><dir name="providers"><file name="testStartPriceIncrementCombination.yaml" hash="345726c8c358be678a93c38fbff504dc"/></dir></dir><file name="Increment.php" hash="e32cd91e3f683e5300cbb91ad6f2f093"/></dir></dir></dir><file name=".DS_Store" hash="2d0ef23cfffbd7152f42d8ffd810eb3d"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Ricento"><file name="AccountController.php" hash="5b393da5104d7eccca93cc5ffc92fefd"/><file name="ApiController.php" hash="6947a1eaffd2a8a58af845659c9e0ec7"/><file name="DashboardController.php" hash="31259cb34b7fe9aba47e89d05eddabe0"/><file name="IndexController.php" hash="2b5ea838548d420f7705f63ab19c3aa0"/><file name="LogController.php" hash="c031048bd0d6138b22d7753a6f448c6e"/><dir name="Products"><file name="CategoryController.php" hash="119fae443c68a1f5abed66aa14640d17"/><dir name="Listing"><file name="ItemController.php" hash="db68f1c059cd16b5627dad88cf2bb0e3"/></dir><file name="ListingController.php" hash="0affe1d0ef795dc54738bedc11b1accd"/></dir><file name="SupportController.php" hash="68333da5952b58017013b5588d179b5b"/><file name="SyncController.php" hash="080782e7520ec7bdfeadf0ca908d6daf"/></dir></dir><file name=".DS_Store" hash="dc98ed3cbee208bd03bdd2eb069b4224"/></dir><dir name="data"><dir name="ricento_setup"><file name="data-install-1.0.0.php" hash="738f1d059e3968daea8592615106c7cf"/><file name="data-upgrade-1.0.18-1.1.0.php" hash="7f4480a5e13d64529e87219bc7f3348e"/><file name="data-upgrade-1.1.3-1.1.4.php" hash="3abe85a002f54038dfd8fe14902f8fb1"/><file name="data-upgrade-1.3.6-1.3.7.php" hash="cf225ef561d88215231873391196343c"/></dir><file name=".DS_Store" hash="7a5eb044b368a5c2b1ed98d94ce316cb"/></dir><dir name="etc"><file name="adminhtml.xml" hash="58b5594384a65411338e66fa271312d2"/><file name="config.xml" hash="80e32f55d60457997df2aa70587ba9ec"/><file name="jstranslator.xml" hash="3a4a6307012f9660f925863659b38a2f"/><file name="system.xml" hash="e3e28c4ab66076f9d304165d360674dd"/><file name="uninstall.txt" hash="660b44580246f818f8e22f4c5a530c9b"/></dir><dir name="sql"><dir name="ricento_setup"><file name="install-1.0.0.php" hash="bc9f3b05ae68e0d8899a066384566801"/><file name="uninstall.php" hash="d0e2d68583a950374796b1d817c2958f"/><file name="upgrade-1.0.18-1.1.0.php" hash="fcf5dae1df75bbd2bca9193eef430d75"/><file name="upgrade-1.0.8-1.0.9.php" hash="47e0ce995ae6d7aff77245cbf05d0832"/><file name="upgrade-1.1.2-1.1.3.php" hash="c0c6c88441cd7aa216b04b512f4a44bc"/><file name="upgrade-1.1.3-1.1.4.php" hash="bc6aedfbbaf0cb942820579eecc6b912"/></dir><file name=".DS_Store" hash="7e19d3c3504d466eef74382a945d7586"/></dir><file name=".DS_Store" hash="798c51bafa3e22e3cbb4a7861cc85d0d"/></dir></dir></target><target name="magelib"><dir name="Diglin"><dir name="Ricardo"><file name="Api.php" hash="134fa85c9b0103979ad93ab67250c5f0"/><dir name="Composer"><file name="Magento.php" hash="2b1396d290496bd8e744d6d5b0be797e"/></dir><file name="Config.php" hash="1045568136c433270ddc178025d96a87"/><dir name="Core"><file name="ApiInterface.php" hash="c5a36ca69d27d76d913a2c4cb2d5876e"/><file name="ConfigInterface.php" hash="cd5d8d9eb5e0dd6946d4caf63f0cf6b2"/><file name="Helper.php" hash="4695227c2c6ddb099559fd688b54aa60"/></dir><dir name="Enums"><file name="AbstractEnums.php" hash="8e401abbc33bdbab34223bb3f4950166"/><dir name="Article"><file name="ArticlesTypes.php" hash="e13b730e4c5656091305c6e8a1031b8f"/><file name="CloseListStatus.php" hash="d67f65e3de13cf6747e6e10bc0c1bb21"/><file name="InternalReferenceType.php" hash="6c8eddab52eea86efb142999f76e7b65"/><file name="PromotionCode.php" hash="67c1026f8d2e31e02083c99bdc1250b3"/><file name="Warranty.php" hash="ec403c6fe606572fdb7e92eda4e2eff0"/></dir><file name="ArticleErrors.php" hash="705927167cdc08eb4ada7d7ce055af22"/><dir name="Customer"><file name="ArticleTypeFilter.php" hash="1ae6e485167cb19da3eadd12efe9cc42"/><file name="OpenArticlesSortBy.php" hash="7b73af00d1a0af79ffa33d0281d2af28"/><file name="PaidStatusFilter.php" hash="b6ff931bebcfa37a09a5cab04fdb7448"/><file name="ShippedStatusFilter.php" hash="c906c8a60ea6e91f68bf1015dce18177"/><file name="SoldArticlesSortBy.php" hash="80c3241b09c3f61a1711a449404667e0"/><file name="TransitionStatus.php" hash="29d33076004e5f9ee9b52e7b2e33bebb"/></dir><file name="CustomerErrors.php" hash="38588fb9c5a425d490593dc5f23eb2d7"/><file name="GeneralErrors.php" hash="65c4369f521e99dfe8f20f0b0b5d67a3"/><file name="PaymentMethods.php" hash="4bfcb7bc7ab1181cb8cc544f050b5d6b"/><file name="PictureErrors.php" hash="ad7e4888ec4b8b43ab70b2154de4adc0"/><file name="PictureExtension.php" hash="9f76c645e57efed13f52d74c23a687e6"/><file name="SearchErrors.php" hash="f16b01e7d62b76734a38776e546beb7f"/><file name="SecurityErrors.php" hash="cb6112e33a4d8fb318e84e028181838b"/><dir name="System"><file name="CategoryArticleType.php" hash="8b680d1791cafec2e43907b144ad63c8"/><file name="CategoryBrandingFilter.php" hash="c7eb8c9d61adb8cc76ae3c47638fcfab"/><file name="LanguageCode.php" hash="6998c880c44fbdbe3b60321818976b9a"/><file name="LanguageId.php" hash="bcef589026b025591b4fa6bb9328fbbd"/></dir></dir><dir name="Exceptions"><file name="ArticleException.php" hash="b5290b26c6e711e6f1074f9d6687c066"/><file name="CurlException.php" hash="b1fa36bf6f663f942ec444dcc1e75044"/><file name="CustomerException.php" hash="d011aad98f970733f7eefe369f53fee6"/><file name="ExceptionAbstract.php" hash="44f45dd5222a6810bc73b2825045c5bc"/><file name="GeneralException.php" hash="18d42b47fd69a9b427cb4427a5d56e56"/><file name="PictureException.php" hash="ba3f6cc087f6b0103ecc96b4357ab0ac"/><file name="SearchException.php" hash="ecd9902786eecb50414d3dd7e01b3492"/><file name="SecurityException.php" hash="b4b500a3f2abdc3bc957284d5fbc42a9"/><file name="TechnicalException.php" hash="fdad217159c2c995ef4415e6f6383456"/></dir><dir name="Managers"><file name="Customer.php" hash="e2b3241594fecb5ef944466b34c8fbfe"/><file name="ManagerAbstract.php" hash="13dca083592bd0651f06a03fe9dd589a"/><file name="ParameterAbstract.php" hash="e9725c5915f48d375bef33f377247083"/><dir name="Search"><dir name="Parameter"><file name="GetCategoryBestMatchParameter.php" hash="14619ec6f6dc3e45d68930189cd27ec9"/></dir></dir><file name="Search.php" hash="66d5733d48ebb8711525650cce74e705"/><file name="Security.php" hash="b9dd72f0724ec454d023b4767b687116"/><dir name="Sell"><dir name="Parameter"><file name="AddArticlePicturesParameter.php" hash="8e607c9579f951f94a9bed199acc1145"/><file name="AppendArticleDescriptionParameter.php" hash="f38f51ff97640e024a4c08cc6eeab652"/><file name="AppendDescriptionParameter.php" hash="8140c7d52d1f33dbe621e889251b923f"/><file name="ArticleDeliveryParameter.php" hash="d695329a3bc7e47b4409e11a3042e1a2"/><file name="ArticleDescriptionParameter.php" hash="98fef4f221b9f3a11ee9078bfd5116f0"/><file name="ArticleInformationParameter.php" hash="9900793d70875a80ca47d5d3e98691a9"/><file name="ArticleInternalReferenceParameter.php" hash="84cf8bcf50e6dda593b4f9570e1f6ed9"/><file name="ArticlePictureParameter.php" hash="795c16aa7096c1086cffe6506b051e8e"/><file name="BaseInsertArticleWithTrackingParameter.php" hash="5fdeb6656f1b0ebdf9fb76c8ba5973df"/><file name="CloseArticleParameter.php" hash="7f0a426ba4b277d9c02be87b5725cc45"/><file name="CloseArticlesParameter.php" hash="cbdc9f2045c7e1b440b5252d63717947"/><file name="ClosePlannedArticleParameter.php" hash="5ee0ee9a0b79098ee38bf0a4f8420551"/><file name="DeletePlannedArticleParameter.php" hash="f86cb01ff7cb1b91ece3191cde3cf6e1"/><file name="DeletePlannedArticlesParameter.php" hash="af2ec04803bb457b070fd73db749a72d"/><file name="GetArticleFeeParameter.php" hash="926f8960ce9162686d1eee03002ef5ca"/><file name="GetArticlesFeeParameter.php" hash="8d37fced5969657911facef553bf1f04"/><file name="InsertArticleParameter.php" hash="23707dad2636f8e0dda5423769f9e175"/><file name="InsertArticlesParameter.php" hash="4a6cdef758e32538ff4495d383567a4d"/><file name="UpdateArticleBuyNowQuantityParameter.php" hash="ee7fb893cf13ea756e498559b8975050"/><file name="UpdateArticleParameter.php" hash="d9291f525d389cc2c45be6ad2d5213ea"/><file name="UpdateArticlePicturesParameter.php" hash="33962ef42331f70924399e6ddfcad2fc"/></dir><file name=".DS_Store" hash="4714d55c69fd09a2ceec6e3816a4cf51"/></dir><file name="Sell.php" hash="2730bd1615206b871319b53d623e8852"/><dir name="SellerAccount"><dir name="Parameter"><file name="ArticlesParameter.php" hash="45b41edc80da0abca182528299e6013c"/><file name="ClosedArticlesParameter.php" hash="b45eb7085da6129b1b91218865016dcb"/><file name="GetInTransitionArticlesParameter.php" hash="17f0a9b9911445cbf3a7a3f82363dc23"/><file name="OpenArticlesParameter.php" hash="601558abc262ec42d9d00f7ea7c0b044"/><file name="PlannedArticleParameter.php" hash="95c671b72c8b31a4dd396271bc5d13a2"/><file name="PlannedArticlesParameter.php" hash="f68737054ccda8cd5893f2448cbed2ee"/><file name="SoldArticlesParameter.php" hash="31aa25a901627cabf5b55c7f66a74f1b"/><file name="UnsoldArticlesParameter.php" hash="75e878f0d7fb1b9ed5a72278fb433d78"/></dir><file name=".DS_Store" hash="3d608634b4f8dee8ffe8a3e02634ce82"/></dir><file name="SellerAccount.php" hash="16a6d18120714133ae07b609d0e950eb"/><file name="System.php" hash="c2b865dcfc0875cd417ec902dc759f69"/><file name=".DS_Store" hash="f5983829670b2c93b2d0b8c293e26298"/></dir><file name="Service.php" hash="697c4d014f6d70f223c21b7e90bbb82f"/><dir name="Services"><file name="Customer.php" hash="465b82a364b820d53312e57973abb6f4"/><file name="Search.php" hash="6be0957fb2b889736d9a360e00b5142b"/><file name="Security.php" hash="3e82163587f9f61ea52c24f706335251"/><file name="Sell.php" hash="79442b2ea189b9acc1b6e96eec6e42ba"/><file name="SellerAccount.php" hash="a55787d327e38ddd436debd70ab8a794"/><file name="ServiceAbstract.php" hash="41b0fcbaff2a2df4baa925c58028a39b"/><file name="System.php" hash="ed174d4b1b1113fe512a6e0d5c4c5164"/></dir><file name=".DS_Store" hash="5c6329e1a335813ea5a3066fb7949ebe"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Diglin_Ricento.xml" hash="6d1e5869e9a5ba5933a37d87a7c5cec5"/></dir></target><target name="mageweb"><dir name="js"><dir name="ricento"><file name="Countable.js" hash="dc66f2e57b917e39f897f254bcc8ec1b"/><file name="adminhtml.js" hash="ceb469bc46126e7e31e97d289300870b"/><dir name="livepipe-ui"><file name="livepipe.js" hash="d15a0747cdc197a7f7081d5be4f20d01"/><file name="progressbar.js" hash="2153c666af9b91c65111124665cb57f7"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="ricento.xml" hash="c80cfd59f267e963cd3c647c8fba2992"/></dir><dir name="template"><dir name="ricento"><dir name="dashboard"><file name="account.phtml" hash="ad9d11463db769518a00fcf2d8f1bbb5"/><file name="banner.phtml" hash="9233cbde4520f4419ca87691906b48c5"/><file name="bestsellers.phtml" hash="c48282d7a83354f8054b20b751b9852e"/><file name="lifeturnover.phtml" hash="09c399dcd6aa68cb503c987a43aa3dce"/><file name="news.phtml" hash="799bab071c5a7b20b4c81f99824d3bc0"/><file name="toolbar.phtml" hash="408768e1804cc2685dd7a0bf5f95f8b5"/><dir name="turnover"><file name="graph.phtml" hash="96117aecbc0a074884357713482e5878"/></dir><file name="turnover.phtml" hash="0a85c63eef0863076504ee479c419e60"/></dir><file name="dashboard.phtml" hash="9f5db0d087823f15e6d428ae6dd773ec"/><file name="iframe.phtml" hash="e256fa4dec9eadf41f7c2b5f10ba48bd"/><dir name="js"><dir name="rules"><dir name="validate"><file name="paymentshipping.phtml" hash="8977da22325a8c1f469ce7eb4166f793"/></dir></dir><dir name="salesoptions"><dir name="validate"><file name="increment.phtml" hash="22d268c8498ad4ee3d6a18bdf42d2c26"/></dir></dir><dir name="sync"><file name="progress.phtml" hash="6e8c2dff5d024c7cb093b4df56f46ff3"/></dir></dir><file name="log.phtml" hash="1402eabd3eb946784c59c68a724738d9"/><dir name="notifications"><file name="configured.phtml" hash="f36530088576fdc4836a40012700f252"/><file name="expiration.phtml" hash="01d21a1804692ee9a83f9dd3f05d407b"/></dir><dir name="payment"><dir name="info"><file name="default.phtml" hash="771301b833f6e04b52cf9e9ef09fa188"/><dir name="pdf"><file name="default.phtml" hash="5ea160a594ac5569c0f32a46cd472e14"/></dir></dir></dir><dir name="products"><dir name="category"><file name="children.phtml" hash="bfe6d5d5ba7cb24f4a0f3344af224f0c"/><dir name="mapping"><file name="tree.phtml" hash="3dabf207a79d32b143e00b397c4a041b"/></dir><file name="mapping.phtml" hash="6a1def30027a07dc026a52e06a074dd3"/></dir><dir name="listing"><file name="confirmation.phtml" hash="4a33fc972a5ccb1088b3f631d88b053c"/><dir name="item"><dir name="edit"><file name="form.phtml" hash="15557d807e5aa6b5b34285729e04c3af"/></dir><file name="preview.phtml" hash="2d40dcc958496d49f8f2a72d96e37d91"/></dir></dir></dir><file name="stats.phtml" hash="80f99c7d36fb05d714369d291add351b"/><file name="support.phtml" hash="8dfdfcc91533594dbcbf40b6f30d469b"/><dir name="sync"><dir name="check"><file name="popup.phtml" hash="0152e8a3f85a7f9be5f24736c0f706de"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="ricento"><dir name="payment"><dir name="info"><file name="default.phtml" hash="73254e7af8ebd279f6f4156e88e8f465"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="ricento"><dir name="css"><dir name="images"><file name="ajax-loader.gif" hash="73e57937304d89f251e7e540a24b095a"/><file name="arrow_sans_right_32.gif" hash="276b86bab75976c98e3c5202916d927a"/><file name="monotone_check_yes_ok.png" hash="b7b1d4c572e0c2ed10435a802549ae64"/><file name="ricardo_16x16.png" hash="5987591334d1b58f66ae4db2683fa8fd"/><file name="ricardo_32x32.png" hash="0635c69692c26a4bd4707a91336d9b3b"/><file name="settings_icon.png" hash="4bdae9a6199655027b8b8aeee8f80ce4"/><file name="warning_msg_icon.gif" hash="4cf6ec7f59ab09f9c18b3a4301714c6d"/><file name="window_maximize.png" hash="0f9c031e141822fed135270e34b128d5"/><file name="window_minimize.png" hash="62e6795471543a0eff14a07bf271d8d7"/></dir><file name="ricento.css" hash="4a5b6dc77c04c770b82f12a8d75061c0"/></dir><dir name="images"><file name="KB.png" hash="187e953f8ebf9fe5829ec31427ff853b"/><file name="banner.png" hash="0b34711f9cdd44f07baef2b9b9536391"/><file name="contact.png" hash="85ed8d8113a897128ab1263e23b69dbb"/><file name="diglin.png" hash="cb24b7fec64fd8f906375d497b7e5e0f"/><file name="diglin@2x.png" hash="0e834d7839f61e789db16c028100b6ff"/><file name="github.png" hash="548d544d642e6afbba46dd2482f95af3"/><file name="online-support-48.png" hash="70f55fb3bc678875eaf53dfb214d7d3d"/><file name="ricardo.png" hash="21beeb511cf31d16ebc6b9d947806447"/><file name="ricardo@2x.png" hash="af83978f369def1e4e87fc06e4903c61"/><file name="settings-13-48.png" hash="3dc22c1da4f952687699e5fc23028232"/><file name="sinchronize-48.png" hash="15735cf3ca563303d9e981faba075750"/><file name="statistics-48.png" hash="38046c16959de9ee22b1679d4ddf3909"/><file name="view-details-48.png" hash="a8bbab2e728f1723e9e17dce5f939b22"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Diglin_Ricento.csv" hash="0a2a6458c816902af2baea8ec8bc9306"/><dir name="template"><dir name="email"><dir name="ricento"><file name="admin_message.html" hash="40225dc7f1b06dae985c230bc4f3d0b7"/><file name="private_message.html" hash="3b2ea2a457b176194d91aeb54a05bb47"/><file name="token_expiration.html" hash="d0214f1f7905f50328a1e13b0dd7a72d"/></dir></dir></dir></dir><dir name="fr_FR"><file name="Diglin_Ricento.csv" hash="a00c767781b5a221178ef756c4243d5a"/><dir name="template"><dir name="email"><dir name="ricento"><file name="admin_message.html" hash="40225dc7f1b06dae985c230bc4f3d0b7"/><file name="private_message.html" hash="3b2ea2a457b176194d91aeb54a05bb47"/><file name="token_expiration.html" hash="995fb9dea103f6efffc9c392efa160b7"/></dir></dir></dir></dir><dir name="de_DE"><file name="Diglin_Ricento.csv" hash="902644abcc8cc75246c46bad3a45bfd5"/><dir name="template"><dir name="email"><dir name="ricento"><file name="admin_message.html" hash="40225dc7f1b06dae985c230bc4f3d0b7"/><file name="private_message.html" hash="3b2ea2a457b176194d91aeb54a05bb47"/><file name="support.html" hash="6e381c94546829bfb963276e51cf731b"/><file name="token_expiration.html" hash="d0214f1f7905f50328a1e13b0dd7a72d"/></dir></dir></dir></dir><dir name="de_CH"><file name="Diglin_Ricento.csv" hash="902644abcc8cc75246c46bad3a45bfd5"/><dir name="template"><dir name="email"><dir name="ricento"><file name="admin_message.html" hash="40225dc7f1b06dae985c230bc4f3d0b7"/><file name="private_message.html" hash="3b2ea2a457b176194d91aeb54a05bb47"/></dir></dir></dir></dir></target></contents>
282
  <compatible/>
283
  <dependencies><required><php><min>5.3.2</min><max>8.0.0</max></php></required></dependencies>
284
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>diglin_ricento</name>
4
+ <version>1.6.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0">OSL v3.0</license>
7
  <channel>community</channel>
38
  &lt;p&gt;With around 700,000 current offers (auctions and fixed price), 2.5 million brand-name articles on &lt;a href="http://www.ricardoshops"&gt;ricardoshops&lt;/a&gt;.ch, around 100,000 vehicles plus 35,000 parts and accessories on &lt;a href="http://www.autoricardo.ch"&gt;autoricardo.ch&lt;/a&gt; and over 2.3 million members, ricardo.ch is the largest online marketplace in Switzerland. Every three minutes somebody buys an article on &lt;a href="http://www.ricardo.ch"&gt;ricardo.ch&lt;/a&gt; using a mobile device. ricardo.ch AG employs over 140 people in Switzerland and is headquartered in Zug.&lt;/p&gt;&#xD;
39
  &lt;h2&gt;About Diglin&lt;/h2&gt;&#xD;
40
  &lt;p&gt;&lt;a href="http://www.diglin.com"&gt;Diglin&lt;/a&gt; is the Swiss eCommerce Agency per excellence, realizing your eCommerce project with success. It will accompany along the whole life of your eCommerce project at any levels: conception, realization, design, marketing, logistic, data treatment and management, resource optimization, cost efficiency, increase in turnover, etc. Diglin concentrates its activities mainly with the solutions Magento (eCommerce), OroCRM (CRM) and Akeneo (PIM) and work with its partners highly qualified to provide you the best solutions regarding your needs. &lt;/p&gt;</description>
41
+ <notes>## Version 1.6.2&#xD;
42
+ - Bugfix: reduce the risk of backend user to be blocked to list products on ricardo if token is going to expire (now one day before users cannot list products)&#xD;
43
+ - Feature: Shell Script to force update of inventory&#xD;
44
+ - Feature: Allow to use simple product picture instead of the configurable one via configuration activation&#xD;
45
+ - Bugfix: Issue with wrong configuration condition to import transaction&#xD;
46
+ - Feature: Attribute merging in description, add a table display&#xD;
47
+ - Feature: Cleanup hanging chunk_running job in case of communication error with ricardo API&#xD;
48
+ - Feature: Via activation of the configuration, allow to add into the description visible on frontend attributes + allow also to use the price of the simple products linked to a configurable product instead of using base price of configurable and its options&#xD;
49
+ &#xD;
50
+ ## Version 1.4.1.4&#xD;
51
  - Fix of non existing and not needed Event method&#xD;
52
  &#xD;
53
  ## Version 1.4.1.2&#xD;
285
  - be2b77a Update readme file&#xD;
286
  - 9384e3c Update doc</notes>
287
  <authors><author><name>diglin</name><user>diglin</user><email>sly@diglin.com</email></author></authors>
288
+ <date>2017-05-02</date>
289
+ <time>15:50:57</time>
290
+ <contents><target name="magecommunity"><dir name="Diglin"><dir name="Ricento"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Source"><file name="Heading.php" hash="b433ef94dec29580215fc43109ee8f8c"/><file name="Hint.php" hash="a854f35041a700f7518c607039e82e0f"/></dir></dir><dir name="Dashboard"><file name="Account.php" hash="bc2731e95f36c20ba58681ea32c05c4a"/><file name="Banner.php" hash="342cbe73ba3b32f9bdc8313149ec931a"/><file name="Bestsellers.php" hash="a9432528b536631a678319e82afeeeec"/><file name="Lifetime.php" hash="e3a70e02e94f980f9d1aaf0ecf9a20bb"/><file name="News.php" hash="6ee052d661649e532b9d1ca4678a572a"/><dir name="Renderer"><file name="Price.php" hash="0fc32c2882a63176370bef21733e9e21"/></dir><file name="Turnover.php" hash="5e6865955e7a9698593a53fec3726676"/></dir><dir name="Form"><dir name="Element"><dir name="Checkboxes"><file name="Extensible.php" hash="bc4c39a051f7a159f5e23dff34ad811d"/></dir><dir name="Fieldset"><file name="Inline.php" hash="292183da97b985cecc1b6d1ce1ee4a35"/></dir><dir name="Radios"><file name="Extensible.php" hash="0bd7bcc853668d572fa21be57bb47575"/></dir></dir></dir><dir name="Log"><dir name="Listing"><file name="Grid.php" hash="c216e361e99b10448fc164a076f8bfb6"/></dir><dir name="Sync"><dir name="Grid"><dir name="Renderer"><file name="Progress.php" hash="bd4639208f7cedafe37f95df3537cd46"/><file name="Title.php" hash="b38daffffedf227e2d1c44b7a9e176d2"/></dir></dir><file name="Grid.php" hash="ed1b6b85b7d94acf4327e2975a953742"/></dir><file name="Tabs.php" hash="9e96072c16f78b41844d294e498b4401"/></dir><file name="Log.php" hash="5b9580b2d6b69f76b384f60fdebe3747"/><dir name="Notifications"><file name="Default.php" hash="f342e83a8b9ef85e07668171c084222c"/><file name="Expiration.php" hash="def727b9262a4020af85becc71ea4eef"/></dir><dir name="Page"><file name="Menu.php" hash="0a6dde8103fb1444621ccdf484957c02"/></dir><dir name="Products"><dir name="Category"><file name="Children.php" hash="307e037abc251848b0694b3529edfbfc"/><dir name="Form"><dir name="Renderer"><file name="Categories.php" hash="76c3af26e9c3aa7c3d9f09d941997d57"/><file name="Mapping.php" hash="dc875b3554f7595382bfa8a11478405f"/></dir></dir><dir name="Mapping"><file name="Tree.php" hash="524d1d3387fbaa130552aca4e0591598"/></dir><file name="Mapping.php" hash="93298c7e13b142501b4fc8888113ed2b"/><dir name="Tree"><file name="Categories.php" hash="515975899617d335d6976e27ef7b573d"/><file name="Form.php" hash="d81bbe3285b496dc3c14625aa9b91e03"/></dir><file name="Tree.php" hash="8aa9c622715b021a8e857410b881b68c"/></dir><dir name="Listing"><file name="Confirmation.php" hash="cdb2ceca5b00a34d5a947c91ca722cd6"/><dir name="Edit"><file name="Form.php" hash="e1a9fe7cab032a32ca3407a76ce7fbee"/><dir name="Renderer"><file name="Article.php" hash="cf0e96bc078ab23d5641f6f2022749c8"/><file name="Configured.php" hash="4660b7102533fa42a83eb37603cc76a7"/><file name="Customoptions.php" hash="64d5d9a0b2fb3a97145cee69eda09e0c"/><file name="Inventory.php" hash="772903adb11487f69a3d02846d3fefe6"/><file name="Name.php" hash="bb38f3924522574e64ba6e811ff46450"/><file name="Price.php" hash="b6112891273ff496374b2778227b4143"/><file name="Status.php" hash="b114cd85e41eca64fe57a6ff51d5ee43"/></dir><dir name="Tabs"><file name="General.php" hash="14d287a2fc7ff8913697be143f79a367"/><dir name="Products"><file name="Add.php" hash="d85973292fb9fad08333ac4a13493215"/><file name="Massaction.php" hash="e9abc1d73fee5e1bb85569a80f37b9e5"/></dir><file name="Products.php" hash="10c6d381c61010065633e2da4b3b7b97"/><file name="Rules.php" hash="7b913d102970f46fb8db6ec409322d7c"/><file name="Selloptions.php" hash="111b94ee6039995882b30f29ccbce570"/></dir><file name="Tabs.php" hash="6c3df947696a88a2509cfcf25a28c38b"/></dir><file name="Edit.php" hash="e263001bb8fa2dde2be0cd1addf03748"/><dir name="Form"><file name="Abstract.php" hash="aa96a74bc83b7dae21a982812eb6fd90"/></dir><dir name="Grid"><dir name="Renderer"><file name="Status.php" hash="842be30b0586aa7481c91bd68928b955"/><file name="Total.php" hash="9570d3f5b50c043c0444d5fb3411f6f2"/></dir></dir><file name="Grid.php" hash="5b4c42ede2a076fc76b21b0511826d39"/><dir name="Item"><dir name="Edit"><file name="Form.php" hash="780650cb73819b55b355fe01119f703c"/><dir name="Tabs"><file name="Rules.php" hash="f8488f76c14247e25a61da9b03df0593"/><file name="Selloptions.php" hash="d4613fae72dd1fe3c68bff8419a82750"/></dir><file name="Tabs.php" hash="5d0781303281ae745d3609f907bd19d2"/></dir><file name="Edit.php" hash="6ab0342f46397cb1a2516f05077e79e9"/><file name="Preview.php" hash="e30655fb9ec51bf40de8c10d16af3a9d"/></dir><file name="Log.php" hash="f7cdaab52d3769ff93321e7647d67c06"/><dir name="New"><file name="Form.php" hash="38ab04ded807490619a0e3b1cb75c9e0"/></dir><file name="New.php" hash="59eea06c9b8ec22162c3fcaeba2933e1"/></dir><file name="Listing.php" hash="0c101749125ce6e1822b6f749ca924d2"/></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Button.php" hash="67d754bed74b6389355d554b255e7488"/></dir></dir></dir></dir><file name=".DS_Store" hash="72cb31c5cebe3828c3893e9ad7d8e874"/></dir><dir name="Payment"><file name="Info.php" hash="c63a717a400752ec569657d2cd418195"/></dir><file name=".DS_Store" hash="9e4d6465f1c9413c6138669f65821870"/></dir><dir name="Controller"><dir name="Adminhtml"><file name="Action.php" hash="489587ba6fa9f84e11519186bc0f39f5"/><dir name="Products"><file name="Listing.php" hash="e132285e9a08bb96160882b034409360"/></dir></dir><file name=".DS_Store" hash="4d5d9c90ca3336c5032cfdfa17aedd6f"/></dir><file name="Exception.php" hash="93c9bde391933089d1e6632cea5ad786"/><dir name="Helper"><file name="Api.php" hash="f1fbb8db72c11effbf479aeb9932857f"/><dir name="Dashboard"><file name="Turnover.php" hash="eda721699f2e5cf8e298e0024a63a545"/></dir><file name="Data.php" hash="c4d1d64616a176e06c5555b3937809d5"/><file name="Image.php" hash="d6561be83da2f9add6b5cd80e79c6162"/><file name="Price.php" hash="ef6cb7106ba52582621e2a59de2553e4"/><file name="Product.php" hash="087cd5abda1a565a6a359f05476f024c"/><file name="Support.php" hash="3cca6b96cc057332d86dca6c41822eba"/><file name="Tools.php" hash="13c923ae2c56e8305e481cb27570212d"/><file name=".DS_Store" hash="42504db0bd8d0f8007bef503bf8111c1"/></dir><dir name="Model"><dir name="Api"><dir name="Services"><file name="Abstract.php" hash="f8604c8e66857c1fbead4f77393ee999"/><file name="Customer.php" hash="d500e9e9035ffd8500407611f6796ad9"/><file name="Search.php" hash="d40fd404bfb3a2d5de9d6020df14b483"/><file name="Security.php" hash="d5f1d425155e4749344850e7b09feb22"/><file name="Sell.php" hash="aa16c82ad3f6291ed4168d65c3dbefe2"/><file name="Selleraccount.php" hash="c0d31d32fee8b7c6347b81202a1ba0e5"/><file name="System.php" hash="7c20e49754e5e93503fc3ef7e4918dc8"/></dir><file name="Token.php" hash="a4145e890cafbd223fa42ba5b477c025"/><file name=".DS_Store" hash="55fcfbe6faaeb2570fa5db55bd4d7ea1"/></dir><dir name="Config"><dir name="Source"><file name="Abstract.php" hash="d671ca4f2f26f145f5fad2e30b532124"/><file name="Categories.php" hash="f982ceecede3d42547a08e6a36f49218"/><file name="Languages.php" hash="2c03657ebf714148b73cb3f15ef4488c"/><dir name="Products"><dir name="Listing"><file name="Log.php" hash="ba3a7d1e422755cd6739bed8820066c0"/><file name="Status.php" hash="170990ec2272e76863bbdc88be6a023b"/></dir></dir><dir name="Rules"><file name="Payment.php" hash="4d14509c99fa3c4fc26037b246f78265"/><dir name="Shipping"><file name="Availability.php" hash="f97891bf6fdf0765d0289c43bb457a97"/><file name="Calculation.php" hash="912f16d303a9b401d1de9d37296dde0a"/><file name="Packages.php" hash="d4ce5652ae2a80eeb8839290dfb64ee6"/></dir><file name="Shipping.php" hash="e66853a3ea9b51a0900fdadba935ae42"/></dir><dir name="Sales"><file name="Currency.php" hash="b07535355281a36f3b7e358d23a77e15"/><file name="Days.php" hash="5643dd61f80ccc52cbe29e75f18df2d9"/><dir name="Order"><file name="Status.php" hash="a3718bb7ab59b4d60748dee241888651"/></dir><dir name="Price"><file name="Method.php" hash="020a8e8d0d9d35802ea88c0028af4673"/><file name="Source.php" hash="94c5e4b5eb86ced80e5412159e6cf0f4"/></dir><dir name="Product"><dir name="Condition"><file name="Source.php" hash="14849df28b52facc5d91f462e9a90781"/></dir><file name="Condition.php" hash="32faa3b36d1b7de9577798578152d044"/></dir><file name="Promotion.php" hash="dfd838cfe50880d8d2facbf3b062b398"/><file name="Reactivation.php" hash="33d9dd75eeb119eb3b05bbb4dda8e432"/><file name="Template.php" hash="ccffc7632cd03d87f0245cd801d0bae5"/><file name="Type.php" hash="6f545897bbe8b99d5b30e4102279b827"/><file name="Warranty.php" hash="8762d38677d82bc8048e3d5d88b36eae"/></dir><file name="Status.php" hash="813afb1e443192b1d6a7d9937e56cafd"/><file name="Store.php" hash="6930c1537e4ebf98885d5c333bec3ffa"/><dir name="Sync"><file name="Progress.php" hash="d0430a73504085929ba5f8a3e867da07"/><file name="Status.php" hash="f4b8e72c905175730b3d566dee80ade6"/><file name="Type.php" hash="f3e216055d4e7e30f0d5a17de914a233"/></dir><file name="Watermark.php" hash="75b4bb2d4e63e970483ce3043ca33a7b"/><file name="Website.php" hash="c0168510dc5252a0689416959882136b"/></dir></dir><file name="Cron.php" hash="23e70b6b27ef46d786dac2a6744f0b3f"/><dir name="Dispatcher"><file name="Abstract.php" hash="2840777c292eeea5f30859ceb7a32753"/><dir name="Check"><file name="List.php" hash="6b9eef4d652debf6be1b333b73b737a0"/></dir><file name="Closed.php" hash="a70875e0cad7adf3767511da35f23ddc"/><file name="List.php" hash="a4fff4a4d0fbffe7321b81401a665b77"/><file name="Order.php" hash="e3c1f18748c79f57cec41382f5832415"/><file name="Stop.php" hash="0d50fec7ca9aec8cd4ae0679268e189c"/><dir name="Sync"><file name="List.php" hash="eb4cc8966d896098fa452a917b0d41e6"/></dir><file name="Transaction.php" hash="5d2f8cd3fff4c8b4feb97e1f070ecc98"/><file name=".DS_Store" hash="ffc6974cacdba2fa044a37f669033112"/></dir><file name="Dispatcher.php" hash="d00fda597c8a294d6d133aceb0f7c922"/><dir name="Entity"><dir name="Attribute"><dir name="Source"><file name="Conditions.php" hash="1223272c226b7bf7d1c6c61f27ef687e"/></dir></dir></dir><file name="Feed.php" hash="fecf4fead5bf6ab0742a8b8b2cb39dea"/><file name="Filter.php" hash="268a294b3309eb642434e8e59eacd291"/><file name="Image.php" hash="c28f161eb11c3e6bfebea855b957b1b5"/><file name="Observer.php" hash="a927ca5c499c6e569f6ebfedb50fa993"/><dir name="Products"><dir name="Category"><file name="Mapping.php" hash="b6df1431d7310759e5be17f29eb10df0"/></dir><file name="Category.php" hash="642f0520f549d520e9050a0286a56358"/><dir name="Listing"><dir name="Item"><file name="Product.php" hash="2bcb76b619f64cfcb24a4e3c32d7153c"/></dir><file name="Item.php" hash="340324152fd2cedf0f5607c08400d4dc"/><file name="Log.php" hash="98fa75315e6c2b490fea82854dbbbded"/><file name=".DS_Store" hash="591e5d85218171bbeb805635c68786fd"/></dir><file name="Listing.php" hash="8877ce70cb6ddb612e2f25ccfc3092c3"/></dir><dir name="Resource"><dir name="Api"><dir name="Token"><file name="Collection.php" hash="d2ab663440e27258841be3cf4a357a70"/></dir><file name="Token.php" hash="9899e9aa48e2ee7d416e840d575fff47"/></dir><dir name="Products"><dir name="Listing"><file name="Collection.php" hash="19b8f5d9d0107c897151d91e0cbae08e"/><dir name="Item"><file name="Collection.php" hash="c1d27c28e0c52f6f15641fe90cf2fba8"/></dir><file name="Item.php" hash="450a69ddd9023a40d1431f4a5c93a7db"/><dir name="Log"><file name="Collection.php" hash="c0b02c61246b76a31f2673931d90e985"/></dir><file name="Log.php" hash="514311bff0eee5b00e775c8b59b8b5a1"/></dir><file name="Listing.php" hash="450a3122ecd268a8714f90d06bd01328"/></dir><dir name="Rule"><file name="Collection.php" hash="9c35a937efb27fe3fd57616621035ceb"/></dir><file name="Rule.php" hash="2ec8533cbc357e2a204dcf6bcbdb2d88"/><dir name="Sales"><dir name="Options"><file name="Collection.php" hash="fbc1af66e9ce3c33f47cab4853d5bd3e"/></dir><file name="Options.php" hash="dbb7e3ecf2c1716cdbbc8fa81b25bdda"/><dir name="Transaction"><file name="Collection.php" hash="f661980fd6a907df331cd7df1f211dd0"/></dir><file name="Transaction.php" hash="f81eb7d223ab9357598199150c1281a2"/></dir><dir name="Sync"><file name="Abstract.php" hash="15030d2414b0ad5dc99b56cd656f92e8"/><dir name="Job"><file name="Collection.php" hash="b9bd2b8a3a7271524e65898a5f1fbd68"/><dir name="Listing"><file name="Collection.php" hash="a713a5910489912448c85a9987635a45"/></dir><file name="Listing.php" hash="44ec78a770948d9504c1138ce1f41fe1"/></dir><file name="Job.php" hash="6fdb7001bee36ad54b78179ce19f1c57"/><file name=".DS_Store" hash="48f668e309730b767d1e21fc0aac8e1f"/></dir><file name=".DS_Store" hash="7a815211db88bce9a7ddd6c4eb6d3e11"/></dir><file name="Rule.php" hash="4ff575a44898a6b63cdb22dc1c3bb180"/><dir name="Sales"><dir name="Method"><file name="Payment.php" hash="9ba10f1ceb6f4a97cb02a852afbb7e15"/><file name="Shipping.php" hash="2c7a63fe51d57deaf2cbc9c6ede6099b"/></dir><file name="Options.php" hash="d6bb5ab7343e79f2341113b8b6a123d0"/><dir name="Order"><file name="Create.php" hash="fa28733d72ddc214510f64f559189bf3"/><file name="Exception.php" hash="74d31df9035a6145563b25e9a5b0324b"/></dir><file name="Transaction.php" hash="81133f876c4988ebcf89f9bad6a19cd3"/></dir><file name="SplAutoloader.php" hash="39c58e1f9e4221d222960b801f9367e3"/><dir name="Sync"><file name="Abstract.php" hash="fc6ac3f307ea104c66fe4e758dd3a4a9"/><dir name="Job"><file name="Listing.php" hash="593875bf5d4d5588b684e39d833779b7"/></dir><file name="Job.php" hash="3983213a2e778479676fddcb74dc0e38"/></dir><dir name="Validate"><dir name="Products"><file name="Item.php" hash="54012ce014ae82ac8fc4d42f4db4daaa"/></dir><dir name="Rules"><file name="Methods.php" hash="9dcfc409d29f8eeb301c109212f1956e"/></dir><dir name="Sales"><file name="Increment.php" hash="1f92ec9c6ca26d34bdb3981e777bda14"/></dir></dir><file name=".DS_Store" hash="c52cf2ba588dd772cb92315c1074fe25"/></dir><dir name="Test"><dir name="Model"><file name="Feed.php" hash="21c43e7f00928e1679a51ba1a77f0802"/><dir name="Rule"><dir name="Validate"><dir name="expectations"><file name="testPaymentMethodCombinations.yaml" hash="c1070f1ae555a8c32a7761980e589857"/></dir><dir name="providers"><file name="testPaymentMethodCombinations.yaml" hash="0dfd5c1d335e10540607a391b33a9a2c"/></dir></dir><file name="Validate.php" hash="08260abb9a0bd685da4097916dfddc31"/></dir><dir name="Sales"><dir name="Validate"><dir name="Increment"><dir name="expectations"><file name="testStartPriceIncrementCombination.yaml" hash="15ffe7bd8373cda25aed179c08171881"/></dir><dir name="providers"><file name="testStartPriceIncrementCombination.yaml" hash="345726c8c358be678a93c38fbff504dc"/></dir></dir><file name="Increment.php" hash="e32cd91e3f683e5300cbb91ad6f2f093"/></dir></dir></dir><file name=".DS_Store" hash="2d0ef23cfffbd7152f42d8ffd810eb3d"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Ricento"><file name="AccountController.php" hash="5b393da5104d7eccca93cc5ffc92fefd"/><file name="ApiController.php" hash="6947a1eaffd2a8a58af845659c9e0ec7"/><file name="DashboardController.php" hash="31259cb34b7fe9aba47e89d05eddabe0"/><file name="IndexController.php" hash="2b5ea838548d420f7705f63ab19c3aa0"/><file name="LogController.php" hash="c031048bd0d6138b22d7753a6f448c6e"/><dir name="Products"><file name="CategoryController.php" hash="119fae443c68a1f5abed66aa14640d17"/><dir name="Listing"><file name="ItemController.php" hash="db68f1c059cd16b5627dad88cf2bb0e3"/></dir><file name="ListingController.php" hash="0affe1d0ef795dc54738bedc11b1accd"/></dir><file name="SupportController.php" hash="68333da5952b58017013b5588d179b5b"/><file name="SyncController.php" hash="080782e7520ec7bdfeadf0ca908d6daf"/></dir></dir><file name=".DS_Store" hash="dc98ed3cbee208bd03bdd2eb069b4224"/></dir><dir name="data"><dir name="ricento_setup"><file name="data-install-1.0.0.php" hash="738f1d059e3968daea8592615106c7cf"/><file name="data-upgrade-1.0.18-1.1.0.php" hash="7f4480a5e13d64529e87219bc7f3348e"/><file name="data-upgrade-1.1.3-1.1.4.php" hash="3abe85a002f54038dfd8fe14902f8fb1"/><file name="data-upgrade-1.3.6-1.3.7.php" hash="cf225ef561d88215231873391196343c"/></dir><file name=".DS_Store" hash="f39ea2fdcd73ce56fb3d94a509a96ab2"/></dir><dir name="etc"><file name="adminhtml.xml" hash="58b5594384a65411338e66fa271312d2"/><file name="config.xml" hash="703ed0b15ade9ef459a018da19349b51"/><file name="jstranslator.xml" hash="3a4a6307012f9660f925863659b38a2f"/><file name="system.xml" hash="a4755d6e4ed809c46941d185d34ecbf8"/><file name="uninstall.txt" hash="660b44580246f818f8e22f4c5a530c9b"/></dir><dir name="sql"><dir name="ricento_setup"><file name="install-1.0.0.php" hash="bc9f3b05ae68e0d8899a066384566801"/><file name="uninstall.php" hash="d0e2d68583a950374796b1d817c2958f"/><file name="upgrade-1.0.18-1.1.0.php" hash="fcf5dae1df75bbd2bca9193eef430d75"/><file name="upgrade-1.0.8-1.0.9.php" hash="47e0ce995ae6d7aff77245cbf05d0832"/><file name="upgrade-1.1.2-1.1.3.php" hash="c0c6c88441cd7aa216b04b512f4a44bc"/><file name="upgrade-1.1.3-1.1.4.php" hash="bc6aedfbbaf0cb942820579eecc6b912"/></dir><file name=".DS_Store" hash="7e19d3c3504d466eef74382a945d7586"/></dir><file name=".DS_Store" hash="deaa8814bb8ab8b203f9c930bff978fb"/></dir></dir></target><target name="magelib"><dir name="Diglin"><dir name="Ricardo"><file name="Api.php" hash="134fa85c9b0103979ad93ab67250c5f0"/><dir name="Composer"><file name="Magento.php" hash="2b1396d290496bd8e744d6d5b0be797e"/></dir><file name="Config.php" hash="1045568136c433270ddc178025d96a87"/><dir name="Core"><file name="ApiInterface.php" hash="c5a36ca69d27d76d913a2c4cb2d5876e"/><file name="ConfigInterface.php" hash="cd5d8d9eb5e0dd6946d4caf63f0cf6b2"/><file name="Helper.php" hash="4695227c2c6ddb099559fd688b54aa60"/></dir><dir name="Enums"><file name="AbstractEnums.php" hash="8e401abbc33bdbab34223bb3f4950166"/><dir name="Article"><file name="ArticlesTypes.php" hash="e13b730e4c5656091305c6e8a1031b8f"/><file name="CloseListStatus.php" hash="d67f65e3de13cf6747e6e10bc0c1bb21"/><file name="InternalReferenceType.php" hash="6c8eddab52eea86efb142999f76e7b65"/><file name="PromotionCode.php" hash="67c1026f8d2e31e02083c99bdc1250b3"/><file name="Warranty.php" hash="ec403c6fe606572fdb7e92eda4e2eff0"/></dir><file name="ArticleErrors.php" hash="705927167cdc08eb4ada7d7ce055af22"/><dir name="Customer"><file name="ArticleTypeFilter.php" hash="1ae6e485167cb19da3eadd12efe9cc42"/><file name="OpenArticlesSortBy.php" hash="7b73af00d1a0af79ffa33d0281d2af28"/><file name="PaidStatusFilter.php" hash="b6ff931bebcfa37a09a5cab04fdb7448"/><file name="ShippedStatusFilter.php" hash="c906c8a60ea6e91f68bf1015dce18177"/><file name="SoldArticlesSortBy.php" hash="80c3241b09c3f61a1711a449404667e0"/><file name="TransitionStatus.php" hash="29d33076004e5f9ee9b52e7b2e33bebb"/></dir><file name="CustomerErrors.php" hash="38588fb9c5a425d490593dc5f23eb2d7"/><file name="GeneralErrors.php" hash="65c4369f521e99dfe8f20f0b0b5d67a3"/><file name="PaymentMethods.php" hash="4bfcb7bc7ab1181cb8cc544f050b5d6b"/><file name="PictureErrors.php" hash="ad7e4888ec4b8b43ab70b2154de4adc0"/><file name="PictureExtension.php" hash="9f76c645e57efed13f52d74c23a687e6"/><file name="SearchErrors.php" hash="f16b01e7d62b76734a38776e546beb7f"/><file name="SecurityErrors.php" hash="cb6112e33a4d8fb318e84e028181838b"/><dir name="System"><file name="CategoryArticleType.php" hash="8b680d1791cafec2e43907b144ad63c8"/><file name="CategoryBrandingFilter.php" hash="c7eb8c9d61adb8cc76ae3c47638fcfab"/><file name="LanguageCode.php" hash="6998c880c44fbdbe3b60321818976b9a"/><file name="LanguageId.php" hash="bcef589026b025591b4fa6bb9328fbbd"/></dir></dir><dir name="Exceptions"><file name="ArticleException.php" hash="b5290b26c6e711e6f1074f9d6687c066"/><file name="CurlException.php" hash="b1fa36bf6f663f942ec444dcc1e75044"/><file name="CustomerException.php" hash="d011aad98f970733f7eefe369f53fee6"/><file name="ExceptionAbstract.php" hash="44f45dd5222a6810bc73b2825045c5bc"/><file name="GeneralException.php" hash="18d42b47fd69a9b427cb4427a5d56e56"/><file name="PictureException.php" hash="ba3f6cc087f6b0103ecc96b4357ab0ac"/><file name="SearchException.php" hash="ecd9902786eecb50414d3dd7e01b3492"/><file name="SecurityException.php" hash="b4b500a3f2abdc3bc957284d5fbc42a9"/><file name="TechnicalException.php" hash="fdad217159c2c995ef4415e6f6383456"/></dir><dir name="Managers"><file name="Customer.php" hash="e2b3241594fecb5ef944466b34c8fbfe"/><file name="ManagerAbstract.php" hash="13dca083592bd0651f06a03fe9dd589a"/><file name="ParameterAbstract.php" hash="e9725c5915f48d375bef33f377247083"/><dir name="Search"><dir name="Parameter"><file name="GetCategoryBestMatchParameter.php" hash="14619ec6f6dc3e45d68930189cd27ec9"/></dir></dir><file name="Search.php" hash="66d5733d48ebb8711525650cce74e705"/><file name="Security.php" hash="b9dd72f0724ec454d023b4767b687116"/><dir name="Sell"><dir name="Parameter"><file name="AddArticlePicturesParameter.php" hash="8e607c9579f951f94a9bed199acc1145"/><file name="AppendArticleDescriptionParameter.php" hash="f38f51ff97640e024a4c08cc6eeab652"/><file name="AppendDescriptionParameter.php" hash="8140c7d52d1f33dbe621e889251b923f"/><file name="ArticleDeliveryParameter.php" hash="d695329a3bc7e47b4409e11a3042e1a2"/><file name="ArticleDescriptionParameter.php" hash="98fef4f221b9f3a11ee9078bfd5116f0"/><file name="ArticleInformationParameter.php" hash="9900793d70875a80ca47d5d3e98691a9"/><file name="ArticleInternalReferenceParameter.php" hash="84cf8bcf50e6dda593b4f9570e1f6ed9"/><file name="ArticlePictureParameter.php" hash="795c16aa7096c1086cffe6506b051e8e"/><file name="BaseInsertArticleWithTrackingParameter.php" hash="5fdeb6656f1b0ebdf9fb76c8ba5973df"/><file name="CloseArticleParameter.php" hash="7f0a426ba4b277d9c02be87b5725cc45"/><file name="CloseArticlesParameter.php" hash="cbdc9f2045c7e1b440b5252d63717947"/><file name="ClosePlannedArticleParameter.php" hash="5ee0ee9a0b79098ee38bf0a4f8420551"/><file name="DeletePlannedArticleParameter.php" hash="f86cb01ff7cb1b91ece3191cde3cf6e1"/><file name="DeletePlannedArticlesParameter.php" hash="af2ec04803bb457b070fd73db749a72d"/><file name="GetArticleFeeParameter.php" hash="926f8960ce9162686d1eee03002ef5ca"/><file name="GetArticlesFeeParameter.php" hash="8d37fced5969657911facef553bf1f04"/><file name="InsertArticleParameter.php" hash="23707dad2636f8e0dda5423769f9e175"/><file name="InsertArticlesParameter.php" hash="4a6cdef758e32538ff4495d383567a4d"/><file name="UpdateArticleBuyNowQuantityParameter.php" hash="ee7fb893cf13ea756e498559b8975050"/><file name="UpdateArticleParameter.php" hash="d9291f525d389cc2c45be6ad2d5213ea"/><file name="UpdateArticlePicturesParameter.php" hash="33962ef42331f70924399e6ddfcad2fc"/></dir></dir><file name="Sell.php" hash="2730bd1615206b871319b53d623e8852"/><dir name="SellerAccount"><dir name="Parameter"><file name="ArticlesParameter.php" hash="45b41edc80da0abca182528299e6013c"/><file name="ClosedArticlesParameter.php" hash="b45eb7085da6129b1b91218865016dcb"/><file name="GetInTransitionArticlesParameter.php" hash="17f0a9b9911445cbf3a7a3f82363dc23"/><file name="OpenArticlesParameter.php" hash="601558abc262ec42d9d00f7ea7c0b044"/><file name="PlannedArticleParameter.php" hash="95c671b72c8b31a4dd396271bc5d13a2"/><file name="PlannedArticlesParameter.php" hash="f68737054ccda8cd5893f2448cbed2ee"/><file name="SoldArticlesParameter.php" hash="31aa25a901627cabf5b55c7f66a74f1b"/><file name="UnsoldArticlesParameter.php" hash="75e878f0d7fb1b9ed5a72278fb433d78"/></dir></dir><file name="SellerAccount.php" hash="16a6d18120714133ae07b609d0e950eb"/><file name="System.php" hash="c2b865dcfc0875cd417ec902dc759f69"/></dir><file name="Service.php" hash="697c4d014f6d70f223c21b7e90bbb82f"/><dir name="Services"><file name="Customer.php" hash="465b82a364b820d53312e57973abb6f4"/><file name="Search.php" hash="6be0957fb2b889736d9a360e00b5142b"/><file name="Security.php" hash="3e82163587f9f61ea52c24f706335251"/><file name="Sell.php" hash="79442b2ea189b9acc1b6e96eec6e42ba"/><file name="SellerAccount.php" hash="a55787d327e38ddd436debd70ab8a794"/><file name="ServiceAbstract.php" hash="41b0fcbaff2a2df4baa925c58028a39b"/><file name="System.php" hash="ed174d4b1b1113fe512a6e0d5c4c5164"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Diglin_Ricento.xml" hash="6d1e5869e9a5ba5933a37d87a7c5cec5"/></dir></target><target name="mageweb"><dir name="js"><dir name="ricento"><file name="Countable.js" hash="dc66f2e57b917e39f897f254bcc8ec1b"/><file name="adminhtml.js" hash="ceb469bc46126e7e31e97d289300870b"/><dir name="livepipe-ui"><file name="livepipe.js" hash="d15a0747cdc197a7f7081d5be4f20d01"/><file name="progressbar.js" hash="2153c666af9b91c65111124665cb57f7"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="ricento.xml" hash="c80cfd59f267e963cd3c647c8fba2992"/></dir><dir name="template"><dir name="ricento"><dir name="dashboard"><file name="account.phtml" hash="ad9d11463db769518a00fcf2d8f1bbb5"/><file name="banner.phtml" hash="9233cbde4520f4419ca87691906b48c5"/><file name="bestsellers.phtml" hash="c48282d7a83354f8054b20b751b9852e"/><file name="lifeturnover.phtml" hash="09c399dcd6aa68cb503c987a43aa3dce"/><file name="news.phtml" hash="799bab071c5a7b20b4c81f99824d3bc0"/><file name="toolbar.phtml" hash="408768e1804cc2685dd7a0bf5f95f8b5"/><dir name="turnover"><file name="graph.phtml" hash="96117aecbc0a074884357713482e5878"/></dir><file name="turnover.phtml" hash="0a85c63eef0863076504ee479c419e60"/></dir><file name="dashboard.phtml" hash="9f5db0d087823f15e6d428ae6dd773ec"/><file name="iframe.phtml" hash="e256fa4dec9eadf41f7c2b5f10ba48bd"/><dir name="js"><dir name="rules"><dir name="validate"><file name="paymentshipping.phtml" hash="8977da22325a8c1f469ce7eb4166f793"/></dir></dir><dir name="salesoptions"><dir name="validate"><file name="increment.phtml" hash="22d268c8498ad4ee3d6a18bdf42d2c26"/></dir></dir><dir name="sync"><file name="progress.phtml" hash="6e8c2dff5d024c7cb093b4df56f46ff3"/></dir></dir><file name="log.phtml" hash="1402eabd3eb946784c59c68a724738d9"/><dir name="notifications"><file name="configured.phtml" hash="f36530088576fdc4836a40012700f252"/><file name="expiration.phtml" hash="01d21a1804692ee9a83f9dd3f05d407b"/></dir><dir name="payment"><dir name="info"><file name="default.phtml" hash="771301b833f6e04b52cf9e9ef09fa188"/><dir name="pdf"><file name="default.phtml" hash="5ea160a594ac5569c0f32a46cd472e14"/></dir></dir></dir><dir name="products"><dir name="category"><file name="children.phtml" hash="bfe6d5d5ba7cb24f4a0f3344af224f0c"/><dir name="mapping"><file name="tree.phtml" hash="3dabf207a79d32b143e00b397c4a041b"/></dir><file name="mapping.phtml" hash="6a1def30027a07dc026a52e06a074dd3"/></dir><dir name="listing"><file name="confirmation.phtml" hash="4a33fc972a5ccb1088b3f631d88b053c"/><dir name="item"><dir name="edit"><file name="form.phtml" hash="15557d807e5aa6b5b34285729e04c3af"/></dir><file name="preview.phtml" hash="2d40dcc958496d49f8f2a72d96e37d91"/></dir></dir></dir><file name="stats.phtml" hash="80f99c7d36fb05d714369d291add351b"/><file name="support.phtml" hash="8dfdfcc91533594dbcbf40b6f30d469b"/><dir name="sync"><dir name="check"><file name="popup.phtml" hash="0152e8a3f85a7f9be5f24736c0f706de"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="ricento"><dir name="payment"><dir name="info"><file name="default.phtml" hash="73254e7af8ebd279f6f4156e88e8f465"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="ricento"><dir name="css"><dir name="images"><file name="ajax-loader.gif" hash="73e57937304d89f251e7e540a24b095a"/><file name="arrow_sans_right_32.gif" hash="276b86bab75976c98e3c5202916d927a"/><file name="monotone_check_yes_ok.png" hash="b7b1d4c572e0c2ed10435a802549ae64"/><file name="ricardo_16x16.png" hash="5987591334d1b58f66ae4db2683fa8fd"/><file name="ricardo_32x32.png" hash="0635c69692c26a4bd4707a91336d9b3b"/><file name="settings_icon.png" hash="4bdae9a6199655027b8b8aeee8f80ce4"/><file name="warning_msg_icon.gif" hash="4cf6ec7f59ab09f9c18b3a4301714c6d"/><file name="window_maximize.png" hash="0f9c031e141822fed135270e34b128d5"/><file name="window_minimize.png" hash="62e6795471543a0eff14a07bf271d8d7"/></dir><file name="ricento.css" hash="4a5b6dc77c04c770b82f12a8d75061c0"/></dir><dir name="images"><file name="KB.png" hash="187e953f8ebf9fe5829ec31427ff853b"/><file name="banner.png" hash="0b34711f9cdd44f07baef2b9b9536391"/><file name="contact.png" hash="85ed8d8113a897128ab1263e23b69dbb"/><file name="diglin.png" hash="cb24b7fec64fd8f906375d497b7e5e0f"/><file name="diglin@2x.png" hash="0e834d7839f61e789db16c028100b6ff"/><file name="github.png" hash="548d544d642e6afbba46dd2482f95af3"/><file name="online-support-48.png" hash="70f55fb3bc678875eaf53dfb214d7d3d"/><file name="ricardo.png" hash="21beeb511cf31d16ebc6b9d947806447"/><file name="ricardo@2x.png" hash="af83978f369def1e4e87fc06e4903c61"/><file name="settings-13-48.png" hash="3dc22c1da4f952687699e5fc23028232"/><file name="sinchronize-48.png" hash="15735cf3ca563303d9e981faba075750"/><file name="statistics-48.png" hash="38046c16959de9ee22b1679d4ddf3909"/><file name="view-details-48.png" hash="a8bbab2e728f1723e9e17dce5f939b22"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Diglin_Ricento.csv" hash="0a2a6458c816902af2baea8ec8bc9306"/><dir name="template"><dir name="email"><dir name="ricento"><file name="admin_message.html" hash="40225dc7f1b06dae985c230bc4f3d0b7"/><file name="private_message.html" hash="3b2ea2a457b176194d91aeb54a05bb47"/><file name="token_expiration.html" hash="d0214f1f7905f50328a1e13b0dd7a72d"/></dir></dir></dir></dir><dir name="fr_FR"><file name="Diglin_Ricento.csv" hash="a00c767781b5a221178ef756c4243d5a"/><dir name="template"><dir name="email"><dir name="ricento"><file name="admin_message.html" hash="40225dc7f1b06dae985c230bc4f3d0b7"/><file name="private_message.html" hash="3b2ea2a457b176194d91aeb54a05bb47"/><file name="token_expiration.html" hash="995fb9dea103f6efffc9c392efa160b7"/></dir></dir></dir></dir><dir name="de_DE"><file name="Diglin_Ricento.csv" hash="902644abcc8cc75246c46bad3a45bfd5"/><dir name="template"><dir name="email"><dir name="ricento"><file name="admin_message.html" hash="40225dc7f1b06dae985c230bc4f3d0b7"/><file name="private_message.html" hash="3b2ea2a457b176194d91aeb54a05bb47"/><file name="support.html" hash="6e381c94546829bfb963276e51cf731b"/><file name="token_expiration.html" hash="d0214f1f7905f50328a1e13b0dd7a72d"/></dir></dir></dir></dir><dir name="de_CH"><file name="Diglin_Ricento.csv" hash="902644abcc8cc75246c46bad3a45bfd5"/><dir name="template"><dir name="email"><dir name="ricento"><file name="admin_message.html" hash="40225dc7f1b06dae985c230bc4f3d0b7"/><file name="private_message.html" hash="3b2ea2a457b176194d91aeb54a05bb47"/></dir></dir></dir></dir></target></contents>
291
  <compatible/>
292
  <dependencies><required><php><min>5.3.2</min><max>8.0.0</max></php></required></dependencies>
293
  </package>