Version Notes
## 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
Release Info
Developer | diglin |
Extension | diglin_ricento |
Version | 1.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.18 to 1.1.0
- app/code/community/Diglin/Ricento/.DS_Store +0 -0
- app/code/community/Diglin/Ricento/Block/.DS_Store +0 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/.DS_Store +0 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Config/Source/Heading.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Config/Source/Hint.php +23 -3
- app/code/community/Diglin/Ricento/Block/Adminhtml/Dashboard/Account.php +2 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Dashboard/Banner.php +110 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Dashboard/Bestsellers.php +5 -5
- app/code/community/Diglin/Ricento/Block/Adminhtml/Dashboard/Lifetime.php +4 -5
- app/code/community/Diglin/Ricento/Block/Adminhtml/Dashboard/Renderer/Price.php +35 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Dashboard/Turnover.php +2 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Form/.DS_Store +0 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Form/Element/.DS_Store +0 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Form/Element/Checkboxes/Extensible.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Form/Element/Fieldset/Inline.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Form/Element/Radios/Extensible.php +7 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Log.php +2 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/{Products/Listing/Log → Log/Listing}/Grid.php +3 -3
- app/code/community/Diglin/Ricento/Block/Adminhtml/{Sync/Log → Log/Sync}/Grid.php +8 -7
- app/code/community/Diglin/Ricento/Block/Adminhtml/{Sync/Log → Log/Sync}/Grid/Renderer/Progress.php +2 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/{Sync/Log → Log/Sync}/Grid/Renderer/Title.php +2 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Log/Tabs.php +3 -3
- app/code/community/Diglin/Ricento/Block/Adminhtml/Notifications/Default.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Notifications/Expiration.php +48 -4
- app/code/community/Diglin/Ricento/Block/Adminhtml/Page/Menu.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Category/Children.php +4 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Category/Form/Renderer/Categories.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Category/Form/Renderer/Mapping.php +3 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Category/Mapping.php +19 -43
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Category/Mapping/Tree.php +70 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Category/Tree.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Category/Tree/Categories.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Category/Tree/Form.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Confirmation.php +136 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit.php +12 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Form.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/{Tabs/Products/Renderer → Renderer}/Article.php +4 -4
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/{Tabs/Products/Renderer → Renderer}/Configured.php +3 -3
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/{Tabs/Products/Renderer → Renderer}/Customoptions.php +3 -3
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Renderer/Inventory.php +67 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/{Tabs/Products/Renderer → Renderer}/Name.php +4 -4
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Renderer/Price.php +16 -0
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/{Tabs/Products/Renderer → Renderer}/Status.php +16 -5
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Tabs.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Tabs/General.php +3 -3
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Tabs/Products.php +9 -8
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Tabs/Products/Add.php +6 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Tabs/Products/Massaction.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Tabs/Products/Renderer/Inventory.php +0 -47
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Tabs/Rules.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Edit/Tabs/Selloptions.php +56 -16
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Form/Abstract.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Grid.php +3 -3
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Grid/Renderer/Status.php +7 -9
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Grid/Renderer/Total.php +2 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Item/Edit.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Item/Edit/Form.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Item/Edit/Tabs.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Item/Edit/Tabs/Rules.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Item/Edit/Tabs/Selloptions.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Item/Preview.php +2 -2
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/Log.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/New.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Products/Listing/New/Form.php +1 -1
- app/code/community/Diglin/Ricento/Block/Adminhtml/Widget/Grid/Column/Renderer/Button.php +2 -2
- app/code/community/Diglin/Ricento/Block/Payment/Info.php +1 -1
- app/code/community/Diglin/Ricento/Controller/.DS_Store +0 -0
- app/code/community/Diglin/Ricento/Controller/Adminhtml/Action.php +122 -3
- app/code/community/Diglin/Ricento/Controller/Adminhtml/Products/Listing.php +4 -5
- app/code/community/Diglin/Ricento/Exception.php +1 -1
- app/code/community/Diglin/Ricento/Helper/Api.php +86 -12
- app/code/community/Diglin/Ricento/Helper/Dashboard/Turnover.php +1 -1
- app/code/community/Diglin/Ricento/Helper/Data.php +146 -9
- app/code/community/Diglin/Ricento/Helper/Image.php +65 -0
- app/code/community/Diglin/Ricento/Helper/Price.php +110 -13
- app/code/community/Diglin/Ricento/Helper/Support.php +340 -0
- app/code/community/Diglin/Ricento/Helper/Tools.php +16 -1
- app/code/community/Diglin/Ricento/Model/.DS_Store +0 -0
- app/code/community/Diglin/Ricento/Model/Api/Services/Abstract.php +14 -20
- app/code/community/Diglin/Ricento/Model/Api/Services/Customer.php +1 -1
- app/code/community/Diglin/Ricento/Model/Api/Services/Search.php +39 -0
- app/code/community/Diglin/Ricento/Model/Api/Services/Security.php +1 -1
- app/code/community/Diglin/Ricento/Model/Api/Services/Sell.php +154 -34
- app/code/community/Diglin/Ricento/Model/Api/Services/Selleraccount.php +1 -1
- app/code/community/Diglin/Ricento/Model/Api/Services/System.php +1 -1
- app/code/community/Diglin/Ricento/Model/Api/Token.php +8 -6
- app/code/community/Diglin/Ricento/Model/Config/Source/Abstract.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Categories.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Languages.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Products/Listing/Log.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Products/Listing/Status.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Rules/Payment.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Rules/Shipping.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Rules/Shipping/Availability.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Rules/Shipping/Calculation.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Rules/Shipping/Packages.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Currency.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Days.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Order/Status.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Price/Method.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Price/Source.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Product/Condition.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Product/Condition/Source.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Promotion.php +6 -4
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Reactivation.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Template.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Type.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sales/Warranty.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Status.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Store.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sync/Progress.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sync/Status.php +1 -1
- app/code/community/Diglin/Ricento/Model/Config/Source/Sync/Type.php +3 -4
- app/code/community/Diglin/Ricento/Model/Config/Source/Website.php +1 -1
- app/code/community/Diglin/Ricento/Model/Cron.php +79 -18
- app/code/community/Diglin/Ricento/Model/Dispatcher.php +1 -1
- app/code/community/Diglin/Ricento/Model/Dispatcher/Abstract.php +48 -6
- app/code/community/Diglin/Ricento/Model/Dispatcher/Check/List.php +2 -121
- app/code/community/Diglin/Ricento/Model/Dispatcher/Closed.php +196 -0
- app/code/community/Diglin/Ricento/Model/Dispatcher/List.php +129 -95
- app/code/community/Diglin/Ricento/Model/Dispatcher/Order.php +408 -337
- app/code/community/Diglin/Ricento/Model/Dispatcher/Relist.php +0 -113
- app/code/community/Diglin/Ricento/Model/Dispatcher/Stop.php +57 -33
- app/code/community/Diglin/Ricento/Model/Dispatcher/Sync/List.php +1 -1
- app/code/community/Diglin/Ricento/Model/Entity/Attribute/Source/Conditions.php +1 -1
- app/code/community/Diglin/Ricento/Model/Filter.php +1 -1
- app/code/community/Diglin/Ricento/Model/Observer.php +15 -1
- app/code/community/Diglin/Ricento/Model/Products/Category.php +7 -6
- app/code/community/Diglin/Ricento/Model/Products/Category/Mapping.php +7 -2
- app/code/community/Diglin/Ricento/Model/Products/Listing.php +22 -67
- app/code/community/Diglin/Ricento/Model/Products/Listing/Item.php +241 -127
- app/code/community/Diglin/Ricento/Model/Products/Listing/Item/Product.php +218 -92
- app/code/community/Diglin/Ricento/Model/Products/Listing/Log.php +2 -1
- app/code/community/Diglin/Ricento/Model/Resource/Api/Token.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Api/Token/Collection.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Products/Listing.php +158 -2
- app/code/community/Diglin/Ricento/Model/Resource/Products/Listing/Collection.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Products/Listing/Item.php +15 -41
- app/code/community/Diglin/Ricento/Model/Resource/Products/Listing/Item/Collection.php +2 -46
- app/code/community/Diglin/Ricento/Model/Resource/Products/Listing/Log.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Products/Listing/Log/Collection.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Rule.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Rule/Collection.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sales/Options.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sales/Options/Collection.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sales/Transaction.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sales/Transaction/Collection.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sync/Abstract.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sync/Job.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sync/Job/Collection.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sync/Job/Listing.php +1 -1
- app/code/community/Diglin/Ricento/Model/Resource/Sync/Job/Listing/Collection.php +1 -1
- app/code/community/Diglin/Ricento/Model/Rule.php +1 -1
- app/code/community/Diglin/Ricento/Model/Sales/Method/Payment.php +7 -4
- app/code/community/Diglin/Ricento/Model/Sales/Method/Shipping.php +10 -6
- app/code/community/Diglin/Ricento/Model/Sales/Options.php +31 -1
- app/code/community/Diglin/Ricento/Model/Sales/Order/Create.php +182 -0
- app/code/community/Diglin/Ricento/Model/Sales/Order/Exception.php +15 -0
- app/code/community/Diglin/Ricento/Model/Sales/Transaction.php +1 -1
- app/code/community/Diglin/Ricento/Model/Sync/Abstract.php +1 -1
- app/code/community/Diglin/Ricento/Model/Sync/Job.php +8 -9
- app/code/community/Diglin/Ricento/Model/Sync/Job/Listing.php +2 -1
- app/code/community/Diglin/Ricento/Model/Validate/Products/Item.php +134 -35
- app/code/community/Diglin/Ricento/Model/Validate/Rules/Methods.php +1 -1
- app/code/community/Diglin/Ricento/Model/Validate/Sales/Increment.php +1 -1
- app/code/community/Diglin/Ricento/Test/Model/Rule/Validate.php +1 -1
- app/code/community/Diglin/Ricento/Test/Model/Sales/Validate/Increment.php +2 -2
- app/code/community/Diglin/Ricento/controllers/.DS_Store +0 -0
- app/code/community/Diglin/Ricento/controllers/Adminhtml/AccountController.php +2 -19
- app/code/community/Diglin/Ricento/controllers/Adminhtml/ApiController.php +1 -1
- app/code/community/Diglin/Ricento/controllers/Adminhtml/DashboardController.php +1 -1
- app/code/community/Diglin/Ricento/controllers/Adminhtml/IndexController.php +1 -1
- app/code/community/Diglin/Ricento/controllers/Adminhtml/LogController.php +2 -13
- app/code/community/Diglin/Ricento/controllers/Adminhtml/Products/CategoryController.php +81 -4
- app/code/community/Diglin/Ricento/controllers/Adminhtml/Products/Listing/ItemController.php +5 -3
- app/code/community/Diglin/Ricento/controllers/Adminhtml/Products/ListingController.php +100 -44
- app/code/community/Diglin/Ricento/controllers/Adminhtml/SupportController.php +30 -3
- app/code/community/Diglin/Ricento/controllers/Adminhtml/SyncController.php +1 -1
- app/code/community/Diglin/Ricento/data/ricento_setup/data-install-1.0.0.php +1 -1
- app/code/community/Diglin/Ricento/data/ricento_setup/data-upgrade-1.0.18-1.1.0.php +28 -0
- app/code/community/Diglin/Ricento/etc/adminhtml.xml +19 -7
- app/code/community/Diglin/Ricento/etc/config.xml +42 -3
- app/code/community/Diglin/Ricento/etc/jstranslator.xml +1 -1
- app/code/community/Diglin/Ricento/etc/system.xml +44 -28
- app/code/community/Diglin/Ricento/sql/ricento_setup/install-1.0.0.php +1 -1
- app/code/community/Diglin/Ricento/sql/ricento_setup/uninstall.php +1 -1
- app/code/community/Diglin/Ricento/sql/ricento_setup/upgrade-1.0.18-1.1.0.php +60 -0
- app/code/community/Diglin/Ricento/sql/ricento_setup/upgrade-1.0.8-1.0.9.php +1 -1
- app/design/adminhtml/default/default/layout/ricento.xml +18 -12
- app/design/adminhtml/default/default/template/ricento/dashboard.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/dashboard/account.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/dashboard/banner.phtml +19 -0
- app/design/adminhtml/default/default/template/ricento/dashboard/bestsellers.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/dashboard/lifeturnover.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/dashboard/news.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/dashboard/toolbar.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/dashboard/turnover.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/dashboard/turnover/graph.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/iframe.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/js/rules/validate/paymentshipping.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/js/salesoptions/validate/increment.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/js/sync/progress.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/log.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/notifications/configured.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/notifications/expiration.phtml +5 -3
- app/design/adminhtml/default/default/template/ricento/payment/info/default.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/payment/info/pdf/default.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/products/category/children.phtml +3 -2
- app/design/adminhtml/default/default/template/ricento/products/category/mapping.phtml +8 -9
- app/design/adminhtml/default/default/template/ricento/products/category/mapping/tree.phtml +16 -0
- app/design/adminhtml/default/default/template/ricento/products/listing/confirmation.phtml +65 -0
- app/design/adminhtml/default/default/template/ricento/products/listing/item/edit/form.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/products/listing/item/preview.phtml +1 -1
- app/design/adminhtml/default/default/template/ricento/stats.phtml +30 -0
- app/design/adminhtml/default/default/template/ricento/support.phtml +9 -6
- app/design/adminhtml/default/default/template/ricento/sync/check/popup.phtml +1 -2
- app/locale/de_CH/Diglin_Ricento.csv +178 -164
- app/locale/de_DE/Diglin_Ricento.csv +172 -158
- app/locale/de_DE/template/email/ricento/support.html +6 -0
- app/locale/de_DE/template/email/ricento/token_expiration.html +9 -0
- app/locale/en_US/Diglin_Ricento.csv +52 -33
- app/locale/en_US/template/email/ricento/token_expiration.html +9 -0
- app/locale/fr_FR/Diglin_Ricento.csv +413 -403
- js/ricento/adminhtml.js +131 -27
- lib/Diglin/Ricardo/.DS_Store +0 -0
- lib/Diglin/Ricardo/Api.php +2 -3
- lib/Diglin/Ricardo/Core/Helper.php +12 -0
- lib/Diglin/Ricardo/Enums/.DS_Store +0 -0
- lib/Diglin/Ricardo/Enums/SearchErrors.php +58 -0
- lib/Diglin/Ricardo/Exceptions/SearchException.php +30 -0
- lib/Diglin/Ricardo/Managers/.DS_Store +0 -0
- lib/Diglin/Ricardo/Managers/Search.php +41 -0
- lib/Diglin/Ricardo/Managers/Search/Parameter/GetCategoryBestMatchParameter.php +133 -0
- lib/Diglin/Ricardo/Managers/Sell.php +18 -0
- lib/Diglin/Ricardo/Managers/Sell/Parameter/BaseInsertArticleWithTrackingParameter.php +72 -0
- lib/Diglin/Ricardo/Managers/Sell/Parameter/CloseArticlesParameter.php +8 -3
- lib/Diglin/Ricardo/Managers/Sell/Parameter/ClosePlannedArticleParameter.php +37 -0
- lib/Diglin/Ricardo/Managers/Sell/Parameter/DeletePlannedArticleParameter.php +7 -0
- lib/Diglin/Ricardo/Managers/Sell/Parameter/DeletePlannedArticlesParameter.php +2 -2
- lib/Diglin/Ricardo/Managers/Sell/Parameter/GetArticleFeeParameter.php +253 -0
- lib/Diglin/Ricardo/Managers/Sell/Parameter/GetArticlesFeeParameter.php +69 -0
- lib/Diglin/Ricardo/Managers/Sell/Parameter/InsertArticlesParameter.php +30 -6
- lib/Diglin/Ricardo/Managers/SellerAccount/Parameter/SoldArticlesParameter.php +48 -0
- lib/Diglin/Ricardo/Services/Search.php +76 -0
- lib/Diglin/Ricardo/Services/Sell.php +56 -1
- lib/Diglin/Ricardo/Services/SellerAccount.php +1 -1
- package.xml +33 -6
- skin/adminhtml/default/default/ricento/css/ricento.css +60 -5
- skin/adminhtml/default/default/ricento/images/banner.png +0 -0
- skin/adminhtml/default/default/ricento/images/github.png +0 -0
Binary file
|
Binary file
|
Binary file
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -23,7 +23,7 @@ class Diglin_Ricento_Block_Adminhtml_Config_Source_Hint
|
|
23 |
{
|
24 |
$html = '<p><a href="http://www.diglin.com/?utm_source=magento&utm_medium=extension&utm_campaign=zopim">'
|
25 |
.'<img style="vertical-align:middle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAA7CAYAAADM4pCMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADOlJREFUeNrsnV2MG1cVx++MvZs0a+9OygtI0PoBiYKAuKpUCALWI6GqpaLZvESiLY2tSlRFiK6jpg/9wLsBhdKIetPSDyIhOy0tbQR0UwVV8NB1kCDQoNahEWp5Mn2AipdOILE935wzc8Z7dzqz692d/fDu/Wuvxh7Pt3/3zP+eudfLmJCQkJCQkJCQkJCQkJCQkJBQ8pJWstIDjWre7Op5o9vNGZ12wzTMZv1gVROXU2hLgP7wuWeLlmVWTABc73SYgaWLpcv0bnfW1PXyqw/8siUuq9DAgg6Q1yzTLHpgA+Ae6AA4FlOHqaEzQ9c1wzDU14+caYpLKzRwoD907tmqbRqTC6J4x4ecAGcmTHVvamg6wH6+elbALjQ4oD/4x6cKtmXNBYD7sAPgGMUJcJxCJPemumnCa1ODqfruifMCdqFNIXmpBcB3H9TbbQAcShsgb1NE133Y9a4fyXV8DbD7xVQMw6qIyyu0WZReagGwJxMmNjYDy6KTVfGi+Hw0B7iZAdHcj+gWcxy38MLfflCATWh3fP6RTRHZM3v3zkXMLl8+d07cebY96J22glZF7/oRPAy4X3zAEXbTRMgZc2wZAW8A7HNQypsE9kLEPGUTVMAiTA6G50MFVAWi62Rd9F6GZd6uBFHd8+QAercX0X3IbUtmtp5u0CZyUBD2vLjcscpRJQwXoXUDvd1p6gHcPT+OgOsAOERx3exB7iLkpsycbrrpGqkywF2jL1ERsAttbtC7nUY4kvugmxTN5+2KBZDbCLkpq9WjX69KkluEwlsEAbvQ5gQdwD4ODVKtl1npQU6e3ELIJWYbKeZ0hgDytPrEozdXZYBcZq63A3jNCHgBu9DmBP3Vwy+2AO5y4Mf9RidFcssGu+JDbgPkjpFSn37sawS50wMcpx70/nsBu9Dmy7qgXj9ypn7joXEA3KrRAyFm2Q5ALjPLkL1I7pgp9cTjapUxt+i6LnMliWEM914zCQBn9B6KxBSYzL349hH19s99P7FsTGbv3jw14sYjsiln+9zGVMTs+uVz51p9ZE7GqU0S3m8T1p9dg0xNeF8N2E+jj2uUp3XHQx9jx7wL/WxnS4KOeuPxs/Xrvn0jRvSajZDbsh/J2z7ktePjVYC66CDWPOTea4LdhzwAHkGEisHUhACvLpGp6DeLEfWgC7/0Vsy+J2kdZbH9wnK4fjlB4A/GnFMj5vrg8hMRlSMsXKayBse7ua0Lr3dOvFEHyEsOQG7pKWZdGW7aRlp97omvVMGaFNGapCRGVsW3LrLk+LaF0esFNoYVXr44nU8gsr3FNiAdB/uuUQXrJxePgL1Cx7uexzhH12eyD8ijjre27UBHvffchbrdTZesyzualp5WX3zySwQ5B7EHMlsANX4usaACOPOVgbkTq/gSEe4N+SJg3wj4SqCt0XGvl1a7ryKd6/awLrz+/evzdfStv3/3gRp6cjQjkkt2RfJtCtoW7DMWWBfHnf9M4myNb2RWrDjI8baLt9xL3Lw9dFtOAvICRciVqhJlMTaxJuGcjy/VTtlyoKN8yP2I5nWBlDy8AWDy5OTTg3l+Y9SvAAt9PBtLsDEWNBxLMeu4CV23gzHzsXJNB31nYH8TBHXYnhXgMwWW26hRWWW6TlpEBb4vJiDgeZS2jXVB/e6dw7W423YvnUjWRIrw5iEff2mFx74vqiEWB3mClkWJOfdZ2Pd+voMYNeT2x2xqI9OrzahKhpkWPIeYu02BDbCWDfprfz9cgyhcdByX7Em0pA958xDwrAf8Slv1UVHn5Dpcs/wiUZJFwDOIt/vjMY3T7eHRz1z0IefnIexoSyRJigGe0VPRwLtzPp65jduu+9Gy8+iULouMVBvUuGsNsn+N0JYb6N436LNv3V9zbLeIeXBJ9j23HAU8k2LHLUnMf1JKXl2D6UpthhITPTeqK3CLCQ0+6KfeODRpAeSyA3Aj5K6fPsQGpx/N/cIobuOfRJ/FAK/BZ+pNn/rxIAKyR2CzBUE/+YdyzjTdqgzhOyUj6H5xgHTvoQ++jwDeQ95lUbYGb4sA+WNiVI/Q5mmMmoZT0Q2XGaZfTCyWyywststsi/lTLNgf3aH+LFzpNVzdLQH5BYHNFgS9qzsFQ3eYVwB43fSnJge93YPeZQ4HveNB3gNec1w3KchbMY3UwgZdR0WgNOigd+0cwI7AM93wITe8qTMf4c35CI9T22Y96L3xow7TAHT15k8fSySSL5LhWI/cdNQ55Cm/LjSooHc6Nut0bQTeK7oOBSN7ADsB34vyFlkbD3qG0V0D66Le8pljSduVqPz7vriFAcRcQvttxMxfTZcA8buVGw667rTaADsWD/qOQ8A7fjH4SM9FeNODXYOi3nnvX/O7x8c/+MhNX04y4p6OmFeI6U+OqsTcHRrLvJtoMZUMu7ZWwxWqzwrWXOPKKbIuS4LetRspWSqm0xIzoaRTLhsawimUtMxwfioVLi6DdbS0w9R7Dr+ZT6XdmrzDZukhe+6jE19Q35/9SxLRHWGL6iKLwO3jKgL2pYnrh73Sp7LTLPrJLEZ17ACVSJsDNAfbCjqnaVDJZgSyaxTR27pz8gpG9C5GdcezMfMR3vKifM/SUJSHhqsGUV295/638jJCPoyQO0xKO4qUcuY+duCGVUd2iqzTi3j1CpXF+mEfX+G+m4vse6Vtjqg7S46Ov7KYLRNKAPSfHao3APKZy22bIfBXCHQP+K7DWZoe8BpYGHXy4Qt5ecippYYdlh5GyG0EnQHoipxy5z5+x/VJwI4Rrr7C1UurGS4G604lCTuL6SsjtE6go04++HwZYK9fblvsSgB8x4ccI/2V+SivdXVHffDoRYjkAeQ2QW4j5FDwIZOrSJI7d8238knAjt0ISsto0GkEeT2BfSPs6iosUPgusZzzEErSowd6qfJCaf9D38Q8enEYvPkQWJEhmHqvff+uDQ+56k+e+YcP+Q4HPXkvkjME3Ifc6+8iSeCtEfa79qjvPXehuUpI6uRli8zvK56PyZagb68v0Q+8sZysCN0VGpReDAZn8+vhuc0t4zwaZFUKIcul9dGAba32fLjPG1sJ9GX/a5dbDh+oQUOUYCfQh2Rtx7CsPv9yK58a4iAfCiB3mLwAcre3Z1mWteyunerbT2/dH/qMGfChbrWR9gNvXXi9duxU6XLHrv8XbMz//KK1O5b6/KlWLjXkenYl1TfkEgPIlbFsZu7WRw94kfC7p6cL3zvzw9wWgnxCYDaAET3QF+/dH0T2mddnflVWvlr4QB62FfTkcp+QZ3ZdxQByNjo6xrKKwkavvppdlcmWnvzGI/UBALhI1iL2N1AIchyNpUTYFGk7ABY8MV5q2CCOMVjLbtYrHjP652deKX327ttYWpYu7S6MF8CL+5BTo3NRyMGgZ67aycYyIwD5KMuOjbHR3VeznSMjAwE5KUdeusLlzZvkbwtLrFtn20f5uLYCBgsuKZBnazhwJr2alS/+/NVS7s5bp1Ie4I4HOQsiubyg4dmDHLvsjuzayUYhkmchkmfGFJYlyH96W6W+Rb7UpRp60xFf+iRFfhx72uR+dOifmEal94ENmsEIya2DD8WCsbcaLT9Bx8N/NgaflSnKToa2NRVkkri7lfcLY+FjW+zOxi274NfJeKhpHQT/ID39xfl7gsjOnydta4KmLWqwFyiYtPrNnsmr/WZbv/jtlJxymgHkUiiS+2Pp3HnIPxTJd/uQ76tslyhXDndKoy9+ltKV99HsCYSSexqK76domQBShd6fJdDw9bVBpeNz/cFywU910PsZxnWNIMhzwWuCPOrYeO2hZRuhZZVQF4YFr+kanKV1W1yQCJ9nUOGm2PyglwJV0L6ZkZP45v7z2p80gHyGy5MT6MF40QDyHeDJRyCSj0IkH6NInik9NTG1HSBvUKalHmODiov00+nnLhHoUqgtoEUsdy3tazK8PB1LaxnHdpr6+BQ5gBltI+mkwiXO+lWWc73kpI7g/d+cLwPkdZmDnI/kuxDyXiSHhqfi25UBhhyjYYmmjQgP2qR5GFGvx3/Tskg6scFFrWm+Icd3/6X3Obb6h0o4eKRO+6tHHHeBa0hGHluEFfPsC5dlKoQ8dwttCW1zLNxYDTdglzhPvJOV+e2sqUcP618vvVn6xJ15hLy4APKdPuRZsitZtCuZkdLT+6cHNpJTpKwntC0EJOh5OctVpCKb/9Wx4D3fuavBRU8WmteImNfi9lckyGb5Zciv14NjiTm2cLtkgipOi1u2Ttvi9zlBFeA4d47YCQ6v48nQeQdtjVzEeSi0j9Nrnl5cTNfctQcPtAKQ53btHKYUoh/JM6NjjR0jI+UTB46KMaNC66Y1zeV+8u4b8ko2UxgdzSqZbLa5ayTbfOk7J1risgsJCQkJCQkJCQkJCQkJCQkJCQkJCQ2I/i/AAIBJRUJ5hOGjAAAAAElFTkSuQmCC">'
|
26 |
-
.'</a> Diglin GmbH | Rütistrasse 14, 8952 Schlieren - Switzerland | <a href="mailto:support@diglin.com?subject=Support Diglin ricardo.ch Extension">support@diglin.com</a></p>';
|
27 |
|
28 |
$buttonSignUp = '';
|
29 |
$website = $this->getRequest()->getParam('website');
|
@@ -67,7 +67,27 @@ class Diglin_Ricento_Block_Adminhtml_Config_Source_Hint
|
|
67 |
// do nothing just don't display it as the key may be not yet configured.
|
68 |
}
|
69 |
|
|
|
|
|
|
|
|
|
|
|
70 |
|
71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
}
|
73 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
23 |
{
|
24 |
$html = '<p><a href="http://www.diglin.com/?utm_source=magento&utm_medium=extension&utm_campaign=zopim">'
|
25 |
.'<img style="vertical-align:middle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAA7CAYAAADM4pCMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADOlJREFUeNrsnV2MG1cVx++MvZs0a+9OygtI0PoBiYKAuKpUCALWI6GqpaLZvESiLY2tSlRFiK6jpg/9wLsBhdKIetPSDyIhOy0tbQR0UwVV8NB1kCDQoNahEWp5Mn2AipdOILE935wzc8Z7dzqz692d/fDu/Wuvxh7Pt3/3zP+eudfLmJCQkJCQkJCQkJCQkJCQkJBQ8pJWstIDjWre7Op5o9vNGZ12wzTMZv1gVROXU2hLgP7wuWeLlmVWTABc73SYgaWLpcv0bnfW1PXyqw/8siUuq9DAgg6Q1yzTLHpgA+Ae6AA4FlOHqaEzQ9c1wzDU14+caYpLKzRwoD907tmqbRqTC6J4x4ecAGcmTHVvamg6wH6+elbALjQ4oD/4x6cKtmXNBYD7sAPgGMUJcJxCJPemumnCa1ODqfruifMCdqFNIXmpBcB3H9TbbQAcShsgb1NE133Y9a4fyXV8DbD7xVQMw6qIyyu0WZReagGwJxMmNjYDy6KTVfGi+Hw0B7iZAdHcj+gWcxy38MLfflCATWh3fP6RTRHZM3v3zkXMLl8+d07cebY96J22glZF7/oRPAy4X3zAEXbTRMgZc2wZAW8A7HNQypsE9kLEPGUTVMAiTA6G50MFVAWi62Rd9F6GZd6uBFHd8+QAercX0X3IbUtmtp5u0CZyUBD2vLjcscpRJQwXoXUDvd1p6gHcPT+OgOsAOERx3exB7iLkpsycbrrpGqkywF2jL1ERsAttbtC7nUY4kvugmxTN5+2KBZDbCLkpq9WjX69KkluEwlsEAbvQ5gQdwD4ODVKtl1npQU6e3ELIJWYbKeZ0hgDytPrEozdXZYBcZq63A3jNCHgBu9DmBP3Vwy+2AO5y4Mf9RidFcssGu+JDbgPkjpFSn37sawS50wMcpx70/nsBu9Dmy7qgXj9ypn7joXEA3KrRAyFm2Q5ALjPLkL1I7pgp9cTjapUxt+i6LnMliWEM914zCQBn9B6KxBSYzL349hH19s99P7FsTGbv3jw14sYjsiln+9zGVMTs+uVz51p9ZE7GqU0S3m8T1p9dg0xNeF8N2E+jj2uUp3XHQx9jx7wL/WxnS4KOeuPxs/Xrvn0jRvSajZDbsh/J2z7ktePjVYC66CDWPOTea4LdhzwAHkGEisHUhACvLpGp6DeLEfWgC7/0Vsy+J2kdZbH9wnK4fjlB4A/GnFMj5vrg8hMRlSMsXKayBse7ua0Lr3dOvFEHyEsOQG7pKWZdGW7aRlp97omvVMGaFNGapCRGVsW3LrLk+LaF0esFNoYVXr44nU8gsr3FNiAdB/uuUQXrJxePgL1Cx7uexzhH12eyD8ijjre27UBHvffchbrdTZesyzualp5WX3zySwQ5B7EHMlsANX4usaACOPOVgbkTq/gSEe4N+SJg3wj4SqCt0XGvl1a7ryKd6/awLrz+/evzdfStv3/3gRp6cjQjkkt2RfJtCtoW7DMWWBfHnf9M4myNb2RWrDjI8baLt9xL3Lw9dFtOAvICRciVqhJlMTaxJuGcjy/VTtlyoKN8yP2I5nWBlDy8AWDy5OTTg3l+Y9SvAAt9PBtLsDEWNBxLMeu4CV23gzHzsXJNB31nYH8TBHXYnhXgMwWW26hRWWW6TlpEBb4vJiDgeZS2jXVB/e6dw7W423YvnUjWRIrw5iEff2mFx74vqiEWB3mClkWJOfdZ2Pd+voMYNeT2x2xqI9OrzahKhpkWPIeYu02BDbCWDfprfz9cgyhcdByX7Em0pA958xDwrAf8Slv1UVHn5Dpcs/wiUZJFwDOIt/vjMY3T7eHRz1z0IefnIexoSyRJigGe0VPRwLtzPp65jduu+9Gy8+iULouMVBvUuGsNsn+N0JYb6N436LNv3V9zbLeIeXBJ9j23HAU8k2LHLUnMf1JKXl2D6UpthhITPTeqK3CLCQ0+6KfeODRpAeSyA3Aj5K6fPsQGpx/N/cIobuOfRJ/FAK/BZ+pNn/rxIAKyR2CzBUE/+YdyzjTdqgzhOyUj6H5xgHTvoQ++jwDeQ95lUbYGb4sA+WNiVI/Q5mmMmoZT0Q2XGaZfTCyWyywststsi/lTLNgf3aH+LFzpNVzdLQH5BYHNFgS9qzsFQ3eYVwB43fSnJge93YPeZQ4HveNB3gNec1w3KchbMY3UwgZdR0WgNOigd+0cwI7AM93wITe8qTMf4c35CI9T22Y96L3xow7TAHT15k8fSySSL5LhWI/cdNQ55Cm/LjSooHc6Nut0bQTeK7oOBSN7ADsB34vyFlkbD3qG0V0D66Le8pljSduVqPz7vriFAcRcQvttxMxfTZcA8buVGw667rTaADsWD/qOQ8A7fjH4SM9FeNODXYOi3nnvX/O7x8c/+MhNX04y4p6OmFeI6U+OqsTcHRrLvJtoMZUMu7ZWwxWqzwrWXOPKKbIuS4LetRspWSqm0xIzoaRTLhsawimUtMxwfioVLi6DdbS0w9R7Dr+ZT6XdmrzDZukhe+6jE19Q35/9SxLRHWGL6iKLwO3jKgL2pYnrh73Sp7LTLPrJLEZ17ACVSJsDNAfbCjqnaVDJZgSyaxTR27pz8gpG9C5GdcezMfMR3vKifM/SUJSHhqsGUV295/638jJCPoyQO0xKO4qUcuY+duCGVUd2iqzTi3j1CpXF+mEfX+G+m4vse6Vtjqg7S46Ov7KYLRNKAPSfHao3APKZy22bIfBXCHQP+K7DWZoe8BpYGHXy4Qt5ecippYYdlh5GyG0EnQHoipxy5z5+x/VJwI4Rrr7C1UurGS4G604lCTuL6SsjtE6go04++HwZYK9fblvsSgB8x4ccI/2V+SivdXVHffDoRYjkAeQ2QW4j5FDwIZOrSJI7d8238knAjt0ISsto0GkEeT2BfSPs6iosUPgusZzzEErSowd6qfJCaf9D38Q8enEYvPkQWJEhmHqvff+uDQ+56k+e+YcP+Q4HPXkvkjME3Ifc6+8iSeCtEfa79qjvPXehuUpI6uRli8zvK56PyZagb68v0Q+8sZysCN0VGpReDAZn8+vhuc0t4zwaZFUKIcul9dGAba32fLjPG1sJ9GX/a5dbDh+oQUOUYCfQh2Rtx7CsPv9yK58a4iAfCiB3mLwAcre3Z1mWteyunerbT2/dH/qMGfChbrWR9gNvXXi9duxU6XLHrv8XbMz//KK1O5b6/KlWLjXkenYl1TfkEgPIlbFsZu7WRw94kfC7p6cL3zvzw9wWgnxCYDaAET3QF+/dH0T2mddnflVWvlr4QB62FfTkcp+QZ3ZdxQByNjo6xrKKwkavvppdlcmWnvzGI/UBALhI1iL2N1AIchyNpUTYFGk7ABY8MV5q2CCOMVjLbtYrHjP652deKX327ttYWpYu7S6MF8CL+5BTo3NRyMGgZ67aycYyIwD5KMuOjbHR3VeznSMjAwE5KUdeusLlzZvkbwtLrFtn20f5uLYCBgsuKZBnazhwJr2alS/+/NVS7s5bp1Ie4I4HOQsiubyg4dmDHLvsjuzayUYhkmchkmfGFJYlyH96W6W+Rb7UpRp60xFf+iRFfhx72uR+dOifmEal94ENmsEIya2DD8WCsbcaLT9Bx8N/NgaflSnKToa2NRVkkri7lfcLY+FjW+zOxi274NfJeKhpHQT/ID39xfl7gsjOnydta4KmLWqwFyiYtPrNnsmr/WZbv/jtlJxymgHkUiiS+2Pp3HnIPxTJd/uQ76tslyhXDndKoy9+ltKV99HsCYSSexqK76domQBShd6fJdDw9bVBpeNz/cFywU910PsZxnWNIMhzwWuCPOrYeO2hZRuhZZVQF4YFr+kanKV1W1yQCJ9nUOGm2PyglwJV0L6ZkZP45v7z2p80gHyGy5MT6MF40QDyHeDJRyCSj0IkH6NInik9NTG1HSBvUKalHmODiov00+nnLhHoUqgtoEUsdy3tazK8PB1LaxnHdpr6+BQ5gBltI+mkwiXO+lWWc73kpI7g/d+cLwPkdZmDnI/kuxDyXiSHhqfi25UBhhyjYYmmjQgP2qR5GFGvx3/Tskg6scFFrWm+Icd3/6X3Obb6h0o4eKRO+6tHHHeBa0hGHluEFfPsC5dlKoQ8dwttCW1zLNxYDTdglzhPvJOV+e2sqUcP618vvVn6xJ15hLy4APKdPuRZsitZtCuZkdLT+6cHNpJTpKwntC0EJOh5OctVpCKb/9Wx4D3fuavBRU8WmteImNfi9lckyGb5Zciv14NjiTm2cLtkgipOi1u2Ttvi9zlBFeA4d47YCQ6v48nQeQdtjVzEeSi0j9Nrnl5cTNfctQcPtAKQ53btHKYUoh/JM6NjjR0jI+UTB46KMaNC66Y1zeV+8u4b8ko2UxgdzSqZbLa5ayTbfOk7J1risgsJCQkJCQkJCQkJCQkJCQkJCQkJCQ2I/i/AAIBJRUJ5hOGjAAAAAElFTkSuQmCC">'
|
26 |
+
.'</a> <a href="http://www.diglin.com/?utm_source=magento&utm_medium=extension&utm_campaign=ricento">Diglin GmbH</a> | Rütistrasse 14, 8952 Schlieren - Switzerland | <a href="mailto:support@diglin.com?subject=Support Diglin ricardo.ch Extension">support@diglin.com</a></p>';
|
27 |
|
28 |
$buttonSignUp = '';
|
29 |
$website = $this->getRequest()->getParam('website');
|
67 |
// do nothing just don't display it as the key may be not yet configured.
|
68 |
}
|
69 |
|
70 |
+
$buttonSend = '<button type="button" onclick="if(confirm(\'' . $this->__('Do you want to send us your configuration information for support?') . '\')) {window.location.href=\''
|
71 |
+
. $this->getUrl('ricento/support/send')
|
72 |
+
. '\'}"><span><span>'
|
73 |
+
. $this->__('Send us your configuration')
|
74 |
+
. '</span></span></button>';
|
75 |
|
76 |
+
$buttonExport = '<button type="button" onclick="window.location.href=\''
|
77 |
+
. $this->getUrl('ricento/support/export')
|
78 |
+
. '\'"><span><span>'
|
79 |
+
. $this->__('Export your configuration')
|
80 |
+
. '</span></span></button>';
|
81 |
+
|
82 |
+
return $html
|
83 |
+
. '<p>'
|
84 |
+
. $buttonSignUp . ' '
|
85 |
+
. $buttonDashboard . ' '
|
86 |
+
. $buttonAuthorize
|
87 |
+
.' - <strong>Diglin_Ricento Version: '
|
88 |
+
. Mage::getConfig()->getModuleConfig('Diglin_Ricento')->version
|
89 |
+
.' </strong>'
|
90 |
+
. ' ' . $buttonSend . ' ' . $buttonExport
|
91 |
+
. '</p>';
|
92 |
}
|
93 |
}
|
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
1 |
<?php
|
2 |
+
/**
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Dashboard_Banner
|
14 |
+
*/
|
15 |
+
class Diglin_Ricento_Block_Adminhtml_Dashboard_Banner extends Mage_Core_Block_Template
|
16 |
+
{
|
17 |
+
/**
|
18 |
+
* @var bool
|
19 |
+
*/
|
20 |
+
protected $_xml = false;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* @return bool|string
|
24 |
+
*/
|
25 |
+
public function getBannerXml()
|
26 |
+
{
|
27 |
+
if (!$this->_xml) {
|
28 |
+
|
29 |
+
try {
|
30 |
+
$url = Mage::getStoreConfig(Diglin_Ricento_Helper_Data::CFG_BANNER_XML);
|
31 |
+
$xml = file_get_contents($url);
|
32 |
+
|
33 |
+
if (!$xml) {
|
34 |
+
return false;
|
35 |
+
}
|
36 |
+
|
37 |
+
$this->_xml = new SimpleXMLElement($xml);
|
38 |
+
|
39 |
+
} catch (Exception $e) {
|
40 |
+
return new SimpleXMLElement('<?xml version="1.0" encoding="utf-8" ?>');
|
41 |
+
}
|
42 |
+
}
|
43 |
+
return $this->_xml;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @return bool|string
|
48 |
+
*/
|
49 |
+
public function getBannerSrc()
|
50 |
+
{
|
51 |
+
$url = false;
|
52 |
+
$bannerXml = $this->getBannerXml();
|
53 |
+
|
54 |
+
$helper = Mage::helper('diglin_ricento');
|
55 |
+
$lang = strtolower($helper->getDefaultSupportedLang());
|
56 |
+
|
57 |
+
if ($bannerXml) {
|
58 |
+
$url = trim($bannerXml->$lang->url);
|
59 |
+
if (strpos($url, 'http') !== false) {
|
60 |
+
return $url;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
return ($url) ? $url : false;
|
65 |
+
}
|
66 |
+
|
67 |
+
public function getBannerUrl()
|
68 |
+
{
|
69 |
+
$url = false;
|
70 |
+
$bannerXml = $this->getBannerXml();
|
71 |
+
|
72 |
+
$helper = Mage::helper('diglin_ricento');
|
73 |
+
$lang = strtolower($helper->getDefaultSupportedLang());
|
74 |
+
|
75 |
+
if ($bannerXml) {
|
76 |
+
$url = trim($bannerXml->$lang->link);
|
77 |
+
if (strpos($url, 'http') !== false) {
|
78 |
+
return $url;
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
return ($url) ? $url : '#';
|
83 |
+
}
|
84 |
+
|
85 |
+
public function getBannerTitle()
|
86 |
+
{
|
87 |
+
$url = false;
|
88 |
+
$bannerXml = $this->getBannerXml();
|
89 |
+
|
90 |
+
$helper = Mage::helper('diglin_ricento');
|
91 |
+
$lang = strtolower($helper->getDefaultSupportedLang());
|
92 |
+
|
93 |
+
if ($bannerXml) {
|
94 |
+
$url = trim($bannerXml->$lang->title);
|
95 |
+
if (strpos($url, 'http') !== false) {
|
96 |
+
return $url;
|
97 |
+
}
|
98 |
+
}
|
99 |
+
|
100 |
+
return ($url) ? $url : '#';
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* @return bool
|
105 |
+
*/
|
106 |
+
public function isEnabled()
|
107 |
+
{
|
108 |
+
return Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_BANNER);
|
109 |
+
}
|
110 |
+
}
|
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -59,9 +59,9 @@ class Diglin_Ricento_Block_Adminhtml_Dashboard_Bestsellers extends Mage_Adminhtm
|
|
59 |
$this->addColumn('price', array(
|
60 |
'header' => $helper->__('Price'),
|
61 |
'sortable' => false,
|
62 |
-
'type' => '
|
63 |
-
'
|
64 |
-
'
|
65 |
));
|
66 |
|
67 |
$this->addColumn('qty', array(
|
1 |
<?php
|
2 |
+
/**
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
59 |
$this->addColumn('price', array(
|
60 |
'header' => $helper->__('Price'),
|
61 |
'sortable' => false,
|
62 |
+
'type' => 'number',
|
63 |
+
'index' => 'product_price',
|
64 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_dashboard_renderer_price')
|
65 |
));
|
66 |
|
67 |
$this->addColumn('qty', array(
|
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -23,7 +23,6 @@ class Diglin_Ricento_Block_Adminhtml_Dashboard_Lifetime extends Mage_Adminhtml_B
|
|
23 |
{
|
24 |
/** @var Diglin_Ricento_Model_Resource_Sales_Transaction $transactionResource */
|
25 |
$transactionResource = Mage::getResourceModel('diglin_ricento/sales_transaction');
|
26 |
-
|
27 |
-
return Mage::helper('core')->formatCurrency($transactionResource->getTotalSalesValue());
|
28 |
}
|
29 |
-
}
|
1 |
<?php
|
2 |
+
/**
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
23 |
{
|
24 |
/** @var Diglin_Ricento_Model_Resource_Sales_Transaction $transactionResource */
|
25 |
$transactionResource = Mage::getResourceModel('diglin_ricento/sales_transaction');
|
26 |
+
return implode(' / ', Mage::helper('diglin_ricento/price')->formatDoubleCurrency($transactionResource->getTotalSalesValue(), null, Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY));
|
|
|
27 |
}
|
28 |
+
}
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Dashboard_Renderer_Price
|
14 |
+
*/
|
15 |
+
class Diglin_Ricento_Block_Adminhtml_Dashboard_Renderer_Price extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
16 |
+
{
|
17 |
+
/**
|
18 |
+
* @param Varien_Object $row
|
19 |
+
* @return string
|
20 |
+
*/
|
21 |
+
public function render(Varien_Object $row)
|
22 |
+
{
|
23 |
+
$websiteId = $row->getWebsiteId();
|
24 |
+
|
25 |
+
if (Mage::registry('products_listing')) {
|
26 |
+
$websiteId = Mage::registry('products_listing')->getWebsiteId();
|
27 |
+
}
|
28 |
+
|
29 |
+
$value = $this->_getValue($row);
|
30 |
+
if (!empty($value)) {
|
31 |
+
return implode(' / ', Mage::helper('diglin_ricento/price')->formatDoubleCurrency($value, $websiteId));
|
32 |
+
}
|
33 |
+
return $value;
|
34 |
+
}
|
35 |
+
}
|
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
1 |
<?php
|
2 |
+
/**
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
Binary file
|
Binary file
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -41,7 +41,7 @@ class Diglin_Ricento_Block_Adminhtml_Form_Element_Radios_Extensible extends Vari
|
|
41 |
|
42 |
public function getElementHtml()
|
43 |
{
|
44 |
-
$html = '<ul
|
45 |
$html .= parent::getElementHtml();
|
46 |
$html .= '</ul>';
|
47 |
return $html;
|
@@ -53,6 +53,11 @@ class Diglin_Ricento_Block_Adminhtml_Form_Element_Radios_Extensible extends Vari
|
|
53 |
$field = $this->getField($option['field']);
|
54 |
if (strpos($option['label'], '%s') !== false) {
|
55 |
$html = parent::_optionToHtml($option, $selected);
|
|
|
|
|
|
|
|
|
|
|
56 |
return '<li>' . preg_replace_callback('#(<label [^>]*for="\w+"[^>]*>)(.*)</label>#', function ($matches) use ($field) {
|
57 |
$labelTag = $matches[1];
|
58 |
$labelText = $matches[2];
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
41 |
|
42 |
public function getElementHtml()
|
43 |
{
|
44 |
+
$html = '<ul>';
|
45 |
$html .= parent::getElementHtml();
|
46 |
$html .= '</ul>';
|
47 |
return $html;
|
53 |
$field = $this->getField($option['field']);
|
54 |
if (strpos($option['label'], '%s') !== false) {
|
55 |
$html = parent::_optionToHtml($option, $selected);
|
56 |
+
|
57 |
+
// fix small issue with white spaces btw. attributes
|
58 |
+
$html = str_replace('"value=', '" value=', $html);
|
59 |
+
$html = str_replace('"radio"', '"radio" ', $html);
|
60 |
+
|
61 |
return '<li>' . preg_replace_callback('#(<label [^>]*for="\w+"[^>]*>)(.*)</label>#', function ($matches) use ($field) {
|
62 |
$labelTag = $matches[1];
|
63 |
$labelText = $matches[2];
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -31,7 +31,7 @@ class Diglin_Ricento_Block_Adminhtml_Log extends Mage_Adminhtml_Block_Widget_Con
|
|
31 |
|
32 |
$this->addButton('show_listing', array(
|
33 |
'label' => $this->__('Show Products Listing'),
|
34 |
-
'onclick' => 'setLocation(\''.$this->getUrl('*/products_listing/index').'\')',
|
35 |
));
|
36 |
}
|
37 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
31 |
|
32 |
$this->addButton('show_listing', array(
|
33 |
'label' => $this->__('Show Products Listing'),
|
34 |
+
'onclick' => 'setLocation(\''.$this->getUrl('*/products_listing/index') .'\')',
|
35 |
));
|
36 |
}
|
37 |
|
@@ -5,10 +5,10 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
-
class
|
12 |
{
|
13 |
public function __construct()
|
14 |
{
|
@@ -121,7 +121,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Log_Grid extends Mage_Admi
|
|
121 |
/**
|
122 |
* Prepare the mass action drop down menu
|
123 |
*
|
124 |
-
* @return
|
125 |
*/
|
126 |
protected function _prepareMassaction()
|
127 |
{
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
+
class Diglin_Ricento_Block_Adminhtml_Log_Listing_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
12 |
{
|
13 |
public function __construct()
|
14 |
{
|
121 |
/**
|
122 |
* Prepare the mass action drop down menu
|
123 |
*
|
124 |
+
* @return Diglin_Ricento_Block_Adminhtml_Log_Listing_Grid
|
125 |
*/
|
126 |
protected function _prepareMassaction()
|
127 |
{
|
@@ -5,10 +5,10 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
-
class
|
12 |
{
|
13 |
public function __construct()
|
14 |
{
|
@@ -24,6 +24,7 @@ class Diglin_Ricento_Block_Adminhtml_Sync_Log_Grid extends Mage_Adminhtml_Block_
|
|
24 |
/* @var $collection Diglin_Ricento_Model_Resource_Sync_Job_Collection */
|
25 |
$collection = Mage::getResourceModel('diglin_ricento/sync_job_collection');
|
26 |
$collection
|
|
|
27 |
->join(array('sjl' => 'diglin_ricento/sync_job_listing'), 'sjl.job_id = main_table.job_id', 'products_listing_id')
|
28 |
->join(array('pl' => 'diglin_ricento/products_listing'), 'pl.entity_id = sjl.products_listing_id', 'title');
|
29 |
|
@@ -38,7 +39,7 @@ class Diglin_Ricento_Block_Adminhtml_Sync_Log_Grid extends Mage_Adminhtml_Block_
|
|
38 |
'align' => 'left',
|
39 |
'index' => 'job_id',
|
40 |
'type' => 'number',
|
41 |
-
'filter'
|
42 |
'width' => 50
|
43 |
));
|
44 |
|
@@ -48,7 +49,7 @@ class Diglin_Ricento_Block_Adminhtml_Sync_Log_Grid extends Mage_Adminhtml_Block_
|
|
48 |
'index' => 'job_type',
|
49 |
'type' => 'options',
|
50 |
'width' => 150,
|
51 |
-
'options'
|
52 |
));
|
53 |
|
54 |
$this->addColumn('title', array(
|
@@ -57,7 +58,7 @@ class Diglin_Ricento_Block_Adminhtml_Sync_Log_Grid extends Mage_Adminhtml_Block_
|
|
57 |
'index' => 'title',
|
58 |
'type' => 'text',
|
59 |
'width' => 150,
|
60 |
-
'renderer'
|
61 |
));
|
62 |
|
63 |
$this->addColumn('job_message', array(
|
@@ -75,7 +76,7 @@ class Diglin_Ricento_Block_Adminhtml_Sync_Log_Grid extends Mage_Adminhtml_Block_
|
|
75 |
'sortable' => false,
|
76 |
'filter' => false,
|
77 |
'width' => 150,
|
78 |
-
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/
|
79 |
));
|
80 |
|
81 |
$this->addColumn('job_status', array(
|
@@ -132,7 +133,7 @@ class Diglin_Ricento_Block_Adminhtml_Sync_Log_Grid extends Mage_Adminhtml_Block_
|
|
132 |
/**
|
133 |
* Prepare the mass action drop down menu
|
134 |
*
|
135 |
-
* @return
|
136 |
*/
|
137 |
protected function _prepareMassaction()
|
138 |
{
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
+
class Diglin_Ricento_Block_Adminhtml_Log_Sync_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
12 |
{
|
13 |
public function __construct()
|
14 |
{
|
24 |
/* @var $collection Diglin_Ricento_Model_Resource_Sync_Job_Collection */
|
25 |
$collection = Mage::getResourceModel('diglin_ricento/sync_job_collection');
|
26 |
$collection
|
27 |
+
->addFieldToFilter('job_type', array('nin' => array(Diglin_Ricento_Model_Sync_Job::TYPE_SYNCLIST, Diglin_Ricento_Model_Sync_Job::TYPE_CLOSED)))
|
28 |
->join(array('sjl' => 'diglin_ricento/sync_job_listing'), 'sjl.job_id = main_table.job_id', 'products_listing_id')
|
29 |
->join(array('pl' => 'diglin_ricento/products_listing'), 'pl.entity_id = sjl.products_listing_id', 'title');
|
30 |
|
39 |
'align' => 'left',
|
40 |
'index' => 'job_id',
|
41 |
'type' => 'number',
|
42 |
+
'filter' => false,
|
43 |
'width' => 50
|
44 |
));
|
45 |
|
49 |
'index' => 'job_type',
|
50 |
'type' => 'options',
|
51 |
'width' => 150,
|
52 |
+
'options' => Mage::getSingleton('diglin_ricento/config_source_sync_type')->toOptionHash()
|
53 |
));
|
54 |
|
55 |
$this->addColumn('title', array(
|
58 |
'index' => 'title',
|
59 |
'type' => 'text',
|
60 |
'width' => 150,
|
61 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_log_sync_grid_renderer_title')
|
62 |
));
|
63 |
|
64 |
$this->addColumn('job_message', array(
|
76 |
'sortable' => false,
|
77 |
'filter' => false,
|
78 |
'width' => 150,
|
79 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_log_sync_grid_renderer_progress')
|
80 |
));
|
81 |
|
82 |
$this->addColumn('job_status', array(
|
133 |
/**
|
134 |
* Prepare the mass action drop down menu
|
135 |
*
|
136 |
+
* @return Diglin_Ricento_Block_Adminhtml_Log_Sync_Grid
|
137 |
*/
|
138 |
protected function _prepareMassaction()
|
139 |
{
|
@@ -5,10 +5,10 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
-
class
|
12 |
{
|
13 |
/**
|
14 |
* @param Varien_Object $row
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
+
class Diglin_Ricento_Block_Adminhtml_Log_Sync_Grid_Renderer_Progress extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
12 |
{
|
13 |
/**
|
14 |
* @param Varien_Object $row
|
@@ -5,10 +5,10 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
-
class
|
12 |
{
|
13 |
/**
|
14 |
* @param Varien_Object $row
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
+
class Diglin_Ricento_Block_Adminhtml_Log_Sync_Grid_Renderer_Title extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
12 |
{
|
13 |
/**
|
14 |
* @param Varien_Object $row
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Log_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
|
@@ -42,7 +42,7 @@ class Diglin_Ricento_Block_Adminhtml_Log_Tabs extends Mage_Adminhtml_Block_Widge
|
|
42 |
);
|
43 |
|
44 |
if ($this->getData('active_tab') == self::TAB_LISTING) {
|
45 |
-
$tab['content'] = $this->getLayout()->createBlock('diglin_ricento/
|
46 |
} else {
|
47 |
$tab['url'] = $this->getUrl('*/log/listing');
|
48 |
}
|
@@ -59,7 +59,7 @@ class Diglin_Ricento_Block_Adminhtml_Log_Tabs extends Mage_Adminhtml_Block_Widge
|
|
59 |
);
|
60 |
|
61 |
if ($this->getData('active_tab') == self::TAB_SYNCHRONIZATION) {
|
62 |
-
$tab['content'] = $this->getLayout()->createBlock('diglin_ricento/
|
63 |
} else {
|
64 |
$tab['url'] = $this->getUrl('*/log/sync');
|
65 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Log_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
|
42 |
);
|
43 |
|
44 |
if ($this->getData('active_tab') == self::TAB_LISTING) {
|
45 |
+
$tab['content'] = $this->getLayout()->createBlock('diglin_ricento/adminhtml_log_listing_grid', 'ricento_listing_log')->toHtml();
|
46 |
} else {
|
47 |
$tab['url'] = $this->getUrl('*/log/listing');
|
48 |
}
|
59 |
);
|
60 |
|
61 |
if ($this->getData('active_tab') == self::TAB_SYNCHRONIZATION) {
|
62 |
+
$tab['content'] = $this->getLayout()->createBlock('diglin_ricento/adminhtml_log_sync_grid', 'ricento_sync_log')->toHtml();
|
63 |
} else {
|
64 |
$tab['url'] = $this->getUrl('*/log/sync');
|
65 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -33,7 +33,7 @@ class Diglin_Ricento_Block_Adminhtml_Notifications_Expiration extends Diglin_Ric
|
|
33 |
*/
|
34 |
public function isApiGoExpire($website = 0)
|
35 |
{
|
36 |
-
return (bool)
|
37 |
}
|
38 |
|
39 |
/**
|
@@ -42,7 +42,7 @@ class Diglin_Ricento_Block_Adminhtml_Notifications_Expiration extends Diglin_Ric
|
|
42 |
*/
|
43 |
public function isApiCredentialTokenExist($website = 0)
|
44 |
{
|
45 |
-
return (bool)
|
46 |
}
|
47 |
|
48 |
/**
|
@@ -51,9 +51,27 @@ class Diglin_Ricento_Block_Adminhtml_Notifications_Expiration extends Diglin_Ric
|
|
51 |
*/
|
52 |
public function getExpirationNotificationDelay($storeId = 0)
|
53 |
{
|
54 |
-
return (int)
|
55 |
}
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
/**
|
58 |
* @return array
|
59 |
*/
|
@@ -103,4 +121,30 @@ class Diglin_Ricento_Block_Adminhtml_Notifications_Expiration extends Diglin_Ric
|
|
103 |
{
|
104 |
return (bool) $this->_apiReady;
|
105 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
33 |
*/
|
34 |
public function isApiGoExpire($website = 0)
|
35 |
{
|
36 |
+
return (bool) $this->getApiHelper()->apiTokenCredentialGoingToExpire($website);
|
37 |
}
|
38 |
|
39 |
/**
|
42 |
*/
|
43 |
public function isApiCredentialTokenExist($website = 0)
|
44 |
{
|
45 |
+
return (bool) $this->getApiHelper()->apiTokenCredentialExists($website);
|
46 |
}
|
47 |
|
48 |
/**
|
51 |
*/
|
52 |
public function getExpirationNotificationDelay($storeId = 0)
|
53 |
{
|
54 |
+
return (int) $this->getRicentoHelper()->getExpirationNotificationDelay($storeId);
|
55 |
}
|
56 |
|
57 |
+
/**
|
58 |
+
* @param int $website
|
59 |
+
* @return int
|
60 |
+
*/
|
61 |
+
public function canApiAuthorizationBeTriggered($website = 0)
|
62 |
+
{
|
63 |
+
return (int) $this->getApiHelper()->apiTokenCredentialValidation($website);
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* @param int $storeId
|
68 |
+
* @return int
|
69 |
+
*/
|
70 |
+
public function getExpirationNotificationValidationDelay($storeId = 0)
|
71 |
+
{
|
72 |
+
return (int) $this->getRicentoHelper()->getExpirationNotificationValidationDelay($storeId);
|
73 |
+
}
|
74 |
+
|
75 |
/**
|
76 |
* @return array
|
77 |
*/
|
121 |
{
|
122 |
return (bool) $this->_apiReady;
|
123 |
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* @return Diglin_Ricento_Helper_Api
|
127 |
+
*/
|
128 |
+
public function getApiHelper()
|
129 |
+
{
|
130 |
+
return Mage::helper('diglin_ricento/api');
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* @return Diglin_Ricento_Helper_Data
|
135 |
+
*/
|
136 |
+
public function getRicentoHelper()
|
137 |
+
{
|
138 |
+
return Mage::helper('diglin_ricento');
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* @param int $website
|
143 |
+
* @return float
|
144 |
+
*/
|
145 |
+
public function getDelayExpirationDays($website = 0)
|
146 |
+
{
|
147 |
+
$expirationDate = Mage::getSingleton('core/date')->timestamp($this->getApiHelper()->getExpirationDate($website));
|
148 |
+
return round(($expirationDate - time()) / (24 * 3600), 0, PHP_ROUND_HALF_UP) + 0;
|
149 |
+
}
|
150 |
}
|
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* @category Diglin
|
6 |
* @package Diglin_Ricento
|
7 |
-
* @copyright Copyright (c)
|
8 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
9 |
*/
|
10 |
class Diglin_Ricento_Block_Adminhtml_Page_Menu extends Mage_Adminhtml_Block_Page_Menu
|
4 |
*
|
5 |
* @category Diglin
|
6 |
* @package Diglin_Ricento
|
7 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
8 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
9 |
*/
|
10 |
class Diglin_Ricento_Block_Adminhtml_Page_Menu extends Mage_Adminhtml_Block_Page_Menu
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -16,9 +16,12 @@
|
|
16 |
* @method int getLevel() getLevel()
|
17 |
* @method int getCategoryId() getCategoryId()
|
18 |
* @method int getSelectedCategoryId() getSelectedCategoryId()
|
|
|
|
|
19 |
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setLevel() setLevel(int $level)
|
20 |
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setCategoryId() setCategoryId(int $categoryId)
|
21 |
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setSelectedCategoryId() setSelectedCategoryId(int $categoryId)
|
|
|
22 |
*/
|
23 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Children extends Mage_Adminhtml_Block_Template
|
24 |
{
|
@@ -33,7 +36,6 @@ class Diglin_Ricento_Block_Adminhtml_Products_Category_Children extends Mage_Adm
|
|
33 |
{
|
34 |
/* @var $mapping Diglin_Ricento_Model_Products_Category_Mapping */
|
35 |
$mapping = Mage::getModel('diglin_ricento/products_category_mapping');
|
36 |
-
|
37 |
return $mapping->getCategories($this->getCategoryId());
|
38 |
}
|
39 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
16 |
* @method int getLevel() getLevel()
|
17 |
* @method int getCategoryId() getCategoryId()
|
18 |
* @method int getSelectedCategoryId() getSelectedCategoryId()
|
19 |
+
* @method array getSuggestedCategoriesId()
|
20 |
+
*
|
21 |
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setLevel() setLevel(int $level)
|
22 |
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setCategoryId() setCategoryId(int $categoryId)
|
23 |
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setSelectedCategoryId() setSelectedCategoryId(int $categoryId)
|
24 |
+
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping_Tree setSuggestedCategoriesId(array $suggestedCategoriesId)
|
25 |
*/
|
26 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Children extends Mage_Adminhtml_Block_Template
|
27 |
{
|
36 |
{
|
37 |
/* @var $mapping Diglin_Ricento_Model_Products_Category_Mapping */
|
38 |
$mapping = Mage::getModel('diglin_ricento/products_category_mapping');
|
|
|
39 |
return $mapping->getCategories($this->getCategoryId());
|
40 |
}
|
41 |
|
@@ -6,7 +6,7 @@
|
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
-
* @copyright Copyright (c)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Form_Renderer_Mapping
|
@@ -27,8 +27,9 @@ class Diglin_Ricento_Block_Adminhtml_Products_Category_Form_Renderer_Mapping
|
|
27 |
}
|
28 |
|
29 |
$this->addClass('button');
|
|
|
30 |
$html = '<span id="'.$this->getHtmlId().'_title" class="ricardo_categories_title">' . $text . '</span>';
|
31 |
-
$html .= '<button type="button"' . $this->serialize($this->getHtmlAttributes())
|
32 |
. ' onclick="Ricento.categoryMappingPopup(\''
|
33 |
. Mage::helper('adminhtml')->getUrl('ricento/products_category/mapping', array('id' => '#ID#'))
|
34 |
. '\', $(\''. $this->getHtmlId() .'\'), $(\''. $this->getHtmlId() .'_title\'))"'
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Form_Renderer_Mapping
|
27 |
}
|
28 |
|
29 |
$this->addClass('button');
|
30 |
+
|
31 |
$html = '<span id="'.$this->getHtmlId().'_title" class="ricardo_categories_title">' . $text . '</span>';
|
32 |
+
$html .= '<button type="button" ' . $this->serialize($this->getHtmlAttributes())
|
33 |
. ' onclick="Ricento.categoryMappingPopup(\''
|
34 |
. Mage::helper('adminhtml')->getUrl('ricento/products_category/mapping', array('id' => '#ID#'))
|
35 |
. '\', $(\''. $this->getHtmlId() .'\'), $(\''. $this->getHtmlId() .'_title\'))"'
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -13,53 +13,16 @@
|
|
13 |
* Class Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping
|
14 |
* Mapping from the Ricardo categories
|
15 |
*
|
16 |
-
* @method int getCategoryId() getCategoryId()
|
17 |
* @method int getLevels() getLevels()
|
18 |
-
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setCategoryId() setCategoryId(int $categoryId)
|
19 |
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setLevels() setLevels(int $levels)
|
20 |
*
|
21 |
*/
|
22 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping extends Mage_Adminhtml_Block_Template
|
23 |
{
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
->createBlock('diglin_ricento/adminhtml_products_category_children')
|
29 |
-
->setTemplate('ricento/products/category/children.phtml')
|
30 |
-
->setLevel(1)
|
31 |
-
->setCategoryId(1)
|
32 |
-
);
|
33 |
-
|
34 |
-
$this->setChild('sublevel',
|
35 |
-
$this->getLayout()->createBlock('core/text_list')
|
36 |
-
);
|
37 |
-
|
38 |
-
if ($this->getCategoryId() != Diglin_Ricento_Model_Products_Category_Mapping::ROOT_CATEGORY_ID) {
|
39 |
-
|
40 |
-
/* @var $mapping Diglin_Ricento_Model_Products_Category_Mapping */
|
41 |
-
$mapping = Mage::getModel('diglin_ricento/products_category_mapping');
|
42 |
-
$category = $mapping->getCategory($this->getCategoryId());
|
43 |
-
$this->setLevels($category ? $category->getLevel() : 1);
|
44 |
-
|
45 |
-
while ($category && $category->getParentId() != Diglin_Ricento_Model_Products_Category_Mapping::ROOT_CATEGORY_ID) {
|
46 |
-
$this->getChild('sublevel')->insert(
|
47 |
-
$this->getLayout()
|
48 |
-
->createBlock('diglin_ricento/adminhtml_products_category_children')
|
49 |
-
->setLevel($category->getLevel())
|
50 |
-
->setCategoryId($category->getParentId())
|
51 |
-
->setSelectedCategoryId($category->getId()),
|
52 |
-
'', false, 'sublevel-' . $category->getLevel()
|
53 |
-
);
|
54 |
-
$category = $mapping->getCategory($category->getParentId()); //TODO reference parent from child
|
55 |
-
}
|
56 |
-
|
57 |
-
if ($category) {
|
58 |
-
$this->getChild('toplevel')->setSelectedCategoryId($category->getId());
|
59 |
-
}
|
60 |
-
}
|
61 |
-
return parent::_beforeToHtml();
|
62 |
-
}
|
63 |
|
64 |
/**
|
65 |
* Determine if the columns have to be resized
|
@@ -68,7 +31,20 @@ class Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping extends Mage_Admi
|
|
68 |
*/
|
69 |
public function shouldResize()
|
70 |
{
|
71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
}
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
13 |
* Class Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping
|
14 |
* Mapping from the Ricardo categories
|
15 |
*
|
|
|
16 |
* @method int getLevels() getLevels()
|
|
|
17 |
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Children setLevels() setLevels(int $levels)
|
18 |
*
|
19 |
*/
|
20 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping extends Mage_Adminhtml_Block_Template
|
21 |
{
|
22 |
+
/**
|
23 |
+
* @var string
|
24 |
+
*/
|
25 |
+
protected $_template = 'ricento/products/category/mapping.phtml';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
|
27 |
/**
|
28 |
* Determine if the columns have to be resized
|
31 |
*/
|
32 |
public function shouldResize()
|
33 |
{
|
34 |
+
/* @var $mapping Diglin_Ricento_Model_Products_Category_Mapping */
|
35 |
+
$mapping = Mage::getModel('diglin_ricento/products_category_mapping');
|
36 |
+
$category = $mapping->getCategory($this->getCategoryId());
|
37 |
+
|
38 |
+
$this->setLevels(($category ? $category->getLevel() : 1));
|
39 |
+
|
40 |
+
return ($this->getLevels() >= 5);
|
41 |
}
|
42 |
|
43 |
+
/**
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
public function getSuggestUrl()
|
47 |
+
{
|
48 |
+
return $this->getUrl('*/products_category/suggest');
|
49 |
+
}
|
50 |
}
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping_Tree
|
14 |
+
*
|
15 |
+
*
|
16 |
+
* @method int getCategoryId()
|
17 |
+
* @method array getSuggestedCategoriesId()
|
18 |
+
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping_Tree setSuggestedCategoriesId(array $suggestedCategoriesId)
|
19 |
+
* @method Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping_Tree setCategoryId(int $categoryId)
|
20 |
+
*/
|
21 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping_Tree extends Mage_Core_Block_Template
|
22 |
+
{
|
23 |
+
protected $_template = 'ricento/products/category/mapping/tree.phtml';
|
24 |
+
|
25 |
+
protected function _beforeToHtml()
|
26 |
+
{
|
27 |
+
$this->setChild('toplevel',
|
28 |
+
$this->getLayout()
|
29 |
+
->createBlock('diglin_ricento/adminhtml_products_category_children')
|
30 |
+
->setLevel(1)
|
31 |
+
->setCategoryId(1)
|
32 |
+
->setSuggestedCategoriesId($this->getSuggestedCategoriesId())
|
33 |
+
);
|
34 |
+
|
35 |
+
$this->setChild('sublevel',
|
36 |
+
$this->getLayout()->createBlock('core/text_list')
|
37 |
+
);
|
38 |
+
|
39 |
+
if ($this->getCategoryId() != Diglin_Ricento_Model_Products_Category_Mapping::ROOT_CATEGORY_ID) {
|
40 |
+
|
41 |
+
/* @var $mapping Diglin_Ricento_Model_Products_Category_Mapping */
|
42 |
+
$mapping = Mage::getModel('diglin_ricento/products_category_mapping');
|
43 |
+
$category = $mapping->getCategory($this->getCategoryId());
|
44 |
+
|
45 |
+
if ($this->getParentBlock()) {
|
46 |
+
$this->getParentBlock()->setLevels(($category ? $category->getLevel() : 1));
|
47 |
+
}
|
48 |
+
|
49 |
+
$this->setLevels(($category ? $category->getLevel() : 1));
|
50 |
+
|
51 |
+
while ($category && $category->getParentId() != Diglin_Ricento_Model_Products_Category_Mapping::ROOT_CATEGORY_ID) {
|
52 |
+
$this->getChild('sublevel')->insert(
|
53 |
+
$this->getLayout()
|
54 |
+
->createBlock('diglin_ricento/adminhtml_products_category_children')
|
55 |
+
->setLevel($category->getLevel())
|
56 |
+
->setCategoryId($category->getParentId())
|
57 |
+
->setSelectedCategoryId($category->getId())
|
58 |
+
->setSuggestedCategoriesId($this->getSuggestedCategoriesId()),
|
59 |
+
'', false, 'sublevel-' . $category->getLevel()
|
60 |
+
);
|
61 |
+
$category = $mapping->getCategory($category->getParentId()); //TODO reference parent from child
|
62 |
+
}
|
63 |
+
|
64 |
+
if ($category) {
|
65 |
+
$this->getChild('toplevel')->setSelectedCategoryId($category->getId());
|
66 |
+
}
|
67 |
+
}
|
68 |
+
return parent::_beforeToHtml();
|
69 |
+
}
|
70 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Tree extends Mage_Adminhtml_Block_Widget_Form_Container
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Tree extends Mage_Adminhtml_Block_Widget_Form_Container
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Tree_Categories extends Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Categories
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Tree_Categories extends Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Categories
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Tree_Form extends Diglin_Ricento_Block_Adminhtml_Products_Listing_Form_Abstract
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Category_Tree_Form extends Diglin_Ricento_Block_Adminhtml_Products_Listing_Form_Abstract
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Diglin GmbH - Switzerland
|
5 |
+
*
|
6 |
+
* @author Sylvain Rayé <sylvain.raye at diglin.com>
|
7 |
+
* @category Ricento
|
8 |
+
* @package Ricento
|
9 |
+
* @copyright Copyright (c) 2011-2014 Diglin (http://www.diglin.com)
|
10 |
+
*/
|
11 |
+
|
12 |
+
use Diglin\Ricardo\Enums\Article\PromotionCode;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Confirmation
|
16 |
+
*/
|
17 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Confirmation extends Mage_Adminhtml_Block_Template
|
18 |
+
{
|
19 |
+
/**
|
20 |
+
* @var string
|
21 |
+
*/
|
22 |
+
protected $_template = 'ricento/products/listing/confirmation.phtml';
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @var int
|
26 |
+
*/
|
27 |
+
protected $_totalFee = 0;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @var array
|
31 |
+
*/
|
32 |
+
protected $_listingFees = array('total_price' => 0, 'qty' => 0);
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @return array
|
36 |
+
*/
|
37 |
+
public function getArticleFees()
|
38 |
+
{
|
39 |
+
$preparedArticleFees = array();
|
40 |
+
$articleFees = $this->getData('article_fees');
|
41 |
+
if (count($articleFees)) {
|
42 |
+
foreach ($articleFees as $fee) {
|
43 |
+
$this->_listingFees['total_price'] += $fee['ListingFee'];
|
44 |
+
$this->_listingFees['qty'] += 1;
|
45 |
+
$this->_totalFee += $fee['TotalFee'];
|
46 |
+
|
47 |
+
foreach ($fee['PromotionFees'] as $promotionFees) {
|
48 |
+
if ($promotionFees['PromotionFee'] > 0) {
|
49 |
+
$preparedArticleFees[$promotionFees['PromotionId']]['label'] = $this->__(PromotionCode::getLabel($promotionFees['PromotionId']));
|
50 |
+
@$preparedArticleFees[$promotionFees['PromotionId']]['total_price'] += $promotionFees['PromotionFee'];
|
51 |
+
@$preparedArticleFees[$promotionFees['PromotionId']]['qty'] += 1;
|
52 |
+
$preparedArticleFees[$promotionFees['PromotionId']]['unit_price'] = $this->getUnitPrice($preparedArticleFees[$promotionFees['PromotionId']]['total_price'], $preparedArticleFees[$promotionFees['PromotionId']]['qty']);
|
53 |
+
}
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
$this->_listingFees['unit_price'] = $this->getUnitPrice($this->_listingFees['total_price'], $this->_listingFees['qty']);
|
58 |
+
}
|
59 |
+
|
60 |
+
return $preparedArticleFees;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* @param $price
|
65 |
+
* @param $qty
|
66 |
+
* @return float
|
67 |
+
*/
|
68 |
+
public function getUnitPrice($price, $qty)
|
69 |
+
{
|
70 |
+
return round($price / $qty, 2, PHP_ROUND_HALF_UP);
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* @return string
|
75 |
+
*/
|
76 |
+
public function getFeesRulesUrl()
|
77 |
+
{
|
78 |
+
return Mage::helper('diglin_ricento')->getFeesRulesUrl();
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @return string
|
83 |
+
*/
|
84 |
+
public function getTermsUrl()
|
85 |
+
{
|
86 |
+
return Mage::helper('diglin_ricento')->getTermsUrl();
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @return string
|
91 |
+
*/
|
92 |
+
public function getPrivacyUrl()
|
93 |
+
{
|
94 |
+
return Mage::helper('diglin_ricento')->getPrivacyUrl();
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* @return int
|
99 |
+
*/
|
100 |
+
public function getProductsListingId()
|
101 |
+
{
|
102 |
+
return Mage::registry('products_listing')->getId();
|
103 |
+
}
|
104 |
+
|
105 |
+
public function getFormUrl()
|
106 |
+
{
|
107 |
+
return $this->getUrl('*/*/checkandlist');
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* @return array
|
112 |
+
*/
|
113 |
+
public function getListingFees()
|
114 |
+
{
|
115 |
+
return $this->_listingFees;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* @return int
|
120 |
+
*/
|
121 |
+
public function getTotalFee()
|
122 |
+
{
|
123 |
+
return $this->formatPrice($this->_totalFee);
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* @param $price
|
128 |
+
* @return float
|
129 |
+
* @throws Exception
|
130 |
+
*/
|
131 |
+
public function formatPrice($price)
|
132 |
+
{
|
133 |
+
$helperPrice = Mage::helper('diglin_ricento/price');
|
134 |
+
return implode(' / ', $helperPrice->formatDoubleCurrency($price, Mage::registry('products_listing')->getWebsiteId(), Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY));
|
135 |
+
}
|
136 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -45,7 +45,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit extends Mage_Adminhtm
|
|
45 |
$this->_addButton('check_and_list', array(
|
46 |
'label' => $this->__('Check & List'),
|
47 |
'title' => $this->__('Check & list only pending & error items'),
|
48 |
-
'onclick' =>
|
49 |
'class' => 'list success'
|
50 |
), -1, 3);
|
51 |
|
@@ -121,6 +121,16 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit extends Mage_Adminhtm
|
|
121 |
return $this->getUrl('ricento/products_listing/checkAndList', array('id' => $this->getListingId()));
|
122 |
}
|
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
/**
|
125 |
* Returns URL for "save and list" form action
|
126 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
45 |
$this->_addButton('check_and_list', array(
|
46 |
'label' => $this->__('Check & List'),
|
47 |
'title' => $this->__('Check & list only pending & error items'),
|
48 |
+
'onclick' => "Ricento.confirmationPopup('{$this->getConfirmationUrl()}')",
|
49 |
'class' => 'list success'
|
50 |
), -1, 3);
|
51 |
|
121 |
return $this->getUrl('ricento/products_listing/checkAndList', array('id' => $this->getListingId()));
|
122 |
}
|
123 |
|
124 |
+
/**
|
125 |
+
* Get confirmation Url
|
126 |
+
*
|
127 |
+
* @return string
|
128 |
+
*/
|
129 |
+
public function getConfirmationUrl()
|
130 |
+
{
|
131 |
+
return $this->getUrl('ricento/products_listing/confirmation', array('id' => $this->getListingId()));
|
132 |
+
}
|
133 |
+
|
134 |
/**
|
135 |
* Returns URL for "save and list" form action
|
136 |
*
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,16 +5,16 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
-
* Class
|
14 |
*
|
15 |
* Renderer for column ricardo article id for configurable product
|
16 |
*/
|
17 |
-
class
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
@@ -24,7 +24,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Rendere
|
|
24 |
public function render(Varien_Object $row)
|
25 |
{
|
26 |
$value = $this->_getValue($row);
|
27 |
-
if ($row->getTypeId() ==
|
28 |
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
29 |
$itemCollection->addFieldToFilter('parent_item_id', $row->getItemId());
|
30 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Article
|
14 |
*
|
15 |
* Renderer for column ricardo article id for configurable product
|
16 |
*/
|
17 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Article
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
24 |
public function render(Varien_Object $row)
|
25 |
{
|
26 |
$value = $this->_getValue($row);
|
27 |
+
if ($row->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
|
28 |
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
29 |
$itemCollection->addFieldToFilter('parent_item_id', $row->getItemId());
|
30 |
|
@@ -5,16 +5,16 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
-
* Class
|
14 |
*
|
15 |
* Renderer for column with configured rules or sales
|
16 |
*/
|
17 |
-
class
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Configured
|
14 |
*
|
15 |
* Renderer for column with configured rules or sales
|
16 |
*/
|
17 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Configured
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
@@ -5,16 +5,16 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
-
* Class
|
14 |
*
|
15 |
* Renderer for column with warning about custom options
|
16 |
*/
|
17 |
-
class
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Customoptions
|
14 |
*
|
15 |
* Renderer for column with warning about custom options
|
16 |
*/
|
17 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Customoptions
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Inventory
|
14 |
+
*
|
15 |
+
* Renderer for column name for configurable product
|
16 |
+
*/
|
17 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Inventory
|
18 |
+
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
+
{
|
20 |
+
/**
|
21 |
+
* @todo display a color depending if the planned inventory is really in stock or not
|
22 |
+
* - green: in stock
|
23 |
+
* - orange: lower than the wished quantity to be listed
|
24 |
+
* - red: not in stock
|
25 |
+
*
|
26 |
+
* @param Varien_Object $row
|
27 |
+
* @return string
|
28 |
+
*/
|
29 |
+
public function render(Varien_Object $row)
|
30 |
+
{
|
31 |
+
// $value = $this->_getValue($row);
|
32 |
+
if ($row->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
|
33 |
+
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
34 |
+
$itemCollection->addFieldToFilter('parent_item_id', $row->getItemId());
|
35 |
+
|
36 |
+
$value = '';
|
37 |
+
$inventory = array();
|
38 |
+
foreach ($itemCollection->getItems() as $item) {
|
39 |
+
$item->setLoadFallbackOptions(true);
|
40 |
+
if ($item->getStatus() != Diglin_Ricento_Helper_Data::STATUS_LISTED) {
|
41 |
+
$qtyInventory = $item->getProductQty();
|
42 |
+
} else {
|
43 |
+
$qtyInventory = $item->getQtyInventory();
|
44 |
+
}
|
45 |
+
if (isset($qtyInventory)) {
|
46 |
+
$inventory[] = '<li>' . round($qtyInventory) . '</li>';
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
if (count($inventory)) {
|
51 |
+
$value = '<ul><li> </li>' . implode($inventory) . '</ul>';
|
52 |
+
}
|
53 |
+
} else {
|
54 |
+
$item = Mage::getModel('diglin_ricento/products_listing_item')->load($row->getItemId());
|
55 |
+
$item->setLoadFallbackOptions(true);
|
56 |
+
if ($item->getStatus() != Diglin_Ricento_Helper_Data::STATUS_LISTED) {
|
57 |
+
$value = $item->getProductQty();
|
58 |
+
} else {
|
59 |
+
$value = $item->getQtyInventory();
|
60 |
+
}
|
61 |
+
$value = round($value, 0);
|
62 |
+
}
|
63 |
+
|
64 |
+
return $value;
|
65 |
+
}
|
66 |
+
|
67 |
+
}
|
@@ -5,16 +5,16 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
-
* Class
|
14 |
*
|
15 |
* Renderer for column name for configurable product
|
16 |
*/
|
17 |
-
class
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
@@ -24,7 +24,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Rendere
|
|
24 |
public function render(Varien_Object $row)
|
25 |
{
|
26 |
$value = $this->_getValue($row);
|
27 |
-
if ($row->getTypeId() ==
|
28 |
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
29 |
$itemCollection->addFieldToFilter('parent_item_id', $row->getItemId());
|
30 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Name
|
14 |
*
|
15 |
* Renderer for column name for configurable product
|
16 |
*/
|
17 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Name
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
24 |
public function render(Varien_Object $row)
|
25 |
{
|
26 |
$value = $this->_getValue($row);
|
27 |
+
if ($row->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
|
28 |
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
29 |
$itemCollection->addFieldToFilter('parent_item_id', $row->getItemId());
|
30 |
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Price
|
14 |
+
*/
|
15 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Price
|
16 |
+
extends Diglin_Ricento_Block_Adminhtml_Dashboard_Renderer_Price {}
|
@@ -5,16 +5,16 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
-
* Class
|
14 |
*
|
15 |
* Renderer for column name for configurable product
|
16 |
*/
|
17 |
-
class
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
@@ -24,7 +24,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Rendere
|
|
24 |
public function render(Varien_Object $row)
|
25 |
{
|
26 |
$value = $this->_getValue($row);
|
27 |
-
if ($row->getTypeId() ==
|
28 |
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
29 |
$itemCollection->addFieldToFilter('parent_item_id', $row->getItemId());
|
30 |
$helper = Mage::helper('diglin_ricento');
|
@@ -33,8 +33,11 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Rendere
|
|
33 |
foreach ($itemCollection->getItems() as $item) {
|
34 |
$output = '';
|
35 |
switch ($item->getStatus()) {
|
|
|
|
|
|
|
36 |
case 'error':
|
37 |
-
$output .= '<span class="message_errors">' . $helper->__('
|
38 |
break;
|
39 |
case 'listed':
|
40 |
$output .= '<span class="message_success">' . $helper->__('Listed') . '</span>';
|
@@ -58,12 +61,20 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Rendere
|
|
58 |
return $value;
|
59 |
}
|
60 |
|
|
|
|
|
|
|
|
|
|
|
61 |
protected function _decorate($value, Varien_Object $row)
|
62 |
{
|
63 |
$output = '';
|
64 |
$helper = Mage::helper('diglin_ricento');
|
65 |
$value = htmlspecialchars_decode($value);
|
66 |
switch ($row->getStatus()) {
|
|
|
|
|
|
|
67 |
case 'error':
|
68 |
$output .= '<div id="message-errors-' . $row->getId() . '" class="message_errors">' . $helper->__('Error') . '</div>';
|
69 |
break;
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
+
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Status
|
14 |
*
|
15 |
* Renderer for column name for configurable product
|
16 |
*/
|
17 |
+
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Renderer_Status
|
18 |
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
{
|
20 |
/**
|
24 |
public function render(Varien_Object $row)
|
25 |
{
|
26 |
$value = $this->_getValue($row);
|
27 |
+
if ($row->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
|
28 |
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
29 |
$itemCollection->addFieldToFilter('parent_item_id', $row->getItemId());
|
30 |
$helper = Mage::helper('diglin_ricento');
|
33 |
foreach ($itemCollection->getItems() as $item) {
|
34 |
$output = '';
|
35 |
switch ($item->getStatus()) {
|
36 |
+
case 'stopped':
|
37 |
+
$output .= '<span class="message_warnings">' . $helper->__('Stopped') . '</span>';
|
38 |
+
break;
|
39 |
case 'error':
|
40 |
+
$output .= '<span class="message_errors">' . $helper->__('Error') . '</span>';
|
41 |
break;
|
42 |
case 'listed':
|
43 |
$output .= '<span class="message_success">' . $helper->__('Listed') . '</span>';
|
61 |
return $value;
|
62 |
}
|
63 |
|
64 |
+
/**
|
65 |
+
* @param $value
|
66 |
+
* @param Varien_Object $row
|
67 |
+
* @return string
|
68 |
+
*/
|
69 |
protected function _decorate($value, Varien_Object $row)
|
70 |
{
|
71 |
$output = '';
|
72 |
$helper = Mage::helper('diglin_ricento');
|
73 |
$value = htmlspecialchars_decode($value);
|
74 |
switch ($row->getStatus()) {
|
75 |
+
case 'stopped':
|
76 |
+
$output .= '<div id="message-warnings-' . $row->getId() . '" class="message_warnings">' . $helper->__('Stopped') . '</div>';
|
77 |
+
break;
|
78 |
case 'error':
|
79 |
$output .= '<div id="message-errors-' . $row->getId() . '" class="message_errors">' . $helper->__('Error') . '</div>';
|
80 |
break;
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -65,7 +65,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_General
|
|
65 |
foreach ($languages as $lang) {
|
66 |
$title = Mage::helper('catalog')->__('Store View for %s', ucwords(Mage::app()->getLocale()->getTranslation($lang, 'language')));
|
67 |
$fieldsetLang->addField('lang_store_id_'. $lang, 'select', array(
|
68 |
-
'name' => 'product_listing[lang_store_id_
|
69 |
'label' => $title,
|
70 |
'title' => $title,
|
71 |
'class' => 'lang_store_id',
|
@@ -158,4 +158,4 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_General
|
|
158 |
{
|
159 |
return Mage::registry('products_listing');
|
160 |
}
|
161 |
-
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
65 |
foreach ($languages as $lang) {
|
66 |
$title = Mage::helper('catalog')->__('Store View for %s', ucwords(Mage::app()->getLocale()->getTranslation($lang, 'language')));
|
67 |
$fieldsetLang->addField('lang_store_id_'. $lang, 'select', array(
|
68 |
+
'name' => 'product_listing[lang_store_id_' . $lang . ']',
|
69 |
'label' => $title,
|
70 |
'title' => $title,
|
71 |
'class' => 'lang_store_id',
|
158 |
{
|
159 |
return Mage::registry('products_listing');
|
160 |
}
|
161 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -139,17 +139,18 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products
|
|
139 |
'header' => Mage::helper('catalog')->__('Name'),
|
140 |
'index' => 'name',
|
141 |
'width' => '300',
|
142 |
-
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/
|
143 |
));
|
144 |
|
145 |
$store = Mage::app()->getWebsite($this->getListing()->getWebsiteId())->getDefaultStore();
|
146 |
$this->addColumn('price', array(
|
147 |
'header' => Mage::helper('diglin_ricento')->__('Price Catalog'),
|
148 |
'type' => 'price',
|
149 |
-
'currency_code' => $store->getBaseCurrency()->getCode(),
|
150 |
'index' => 'price',
|
151 |
'sortable' => false,
|
152 |
'filter' => false,
|
|
|
153 |
));
|
154 |
$this->addColumn('type', array(
|
155 |
'header' => Mage::helper('catalog')->__('Type'),
|
@@ -169,7 +170,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products
|
|
169 |
'width' => '120',
|
170 |
'index' => 'ricardo_article_id',
|
171 |
'type' => 'number',
|
172 |
-
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/
|
173 |
));
|
174 |
|
175 |
$this->addColumn('qty', array(
|
@@ -179,7 +180,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products
|
|
179 |
'index' => 'stock_qty',
|
180 |
'sortable' => false,
|
181 |
'filter' => false,
|
182 |
-
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/
|
183 |
));
|
184 |
$this->addColumn('status', array(
|
185 |
'header' => Mage::helper('catalog')->__('Status'),
|
@@ -188,7 +189,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products
|
|
188 |
'type' => 'options',
|
189 |
'sortable' => true,
|
190 |
'options' => Mage::getSingleton('diglin_ricento/config_source_status')->toOptionHash(),
|
191 |
-
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/
|
192 |
));
|
193 |
$this->addColumn('has_custom_options', array(
|
194 |
'header' => '',
|
@@ -196,7 +197,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products
|
|
196 |
'index' => 'has_custom_options',
|
197 |
'sortable' => false,
|
198 |
'filter' => false,
|
199 |
-
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/
|
200 |
));
|
201 |
$this->addColumn('is_configured', array(
|
202 |
'header' => '',
|
@@ -204,7 +205,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products
|
|
204 |
'index' => 'is_configured',
|
205 |
'sortable' => false,
|
206 |
'filter' => false,
|
207 |
-
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/
|
208 |
));
|
209 |
$this->addColumn('action',
|
210 |
array(
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
139 |
'header' => Mage::helper('catalog')->__('Name'),
|
140 |
'index' => 'name',
|
141 |
'width' => '300',
|
142 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_products_listing_edit_renderer_name')
|
143 |
));
|
144 |
|
145 |
$store = Mage::app()->getWebsite($this->getListing()->getWebsiteId())->getDefaultStore();
|
146 |
$this->addColumn('price', array(
|
147 |
'header' => Mage::helper('diglin_ricento')->__('Price Catalog'),
|
148 |
'type' => 'price',
|
149 |
+
// 'currency_code' => $store->getBaseCurrency()->getCode(),
|
150 |
'index' => 'price',
|
151 |
'sortable' => false,
|
152 |
'filter' => false,
|
153 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_products_listing_edit_renderer_price')
|
154 |
));
|
155 |
$this->addColumn('type', array(
|
156 |
'header' => Mage::helper('catalog')->__('Type'),
|
170 |
'width' => '120',
|
171 |
'index' => 'ricardo_article_id',
|
172 |
'type' => 'number',
|
173 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_products_listing_edit_renderer_article')
|
174 |
));
|
175 |
|
176 |
$this->addColumn('qty', array(
|
180 |
'index' => 'stock_qty',
|
181 |
'sortable' => false,
|
182 |
'filter' => false,
|
183 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_products_listing_edit_renderer_inventory')
|
184 |
));
|
185 |
$this->addColumn('status', array(
|
186 |
'header' => Mage::helper('catalog')->__('Status'),
|
189 |
'type' => 'options',
|
190 |
'sortable' => true,
|
191 |
'options' => Mage::getSingleton('diglin_ricento/config_source_status')->toOptionHash(),
|
192 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_products_listing_edit_renderer_status')
|
193 |
));
|
194 |
$this->addColumn('has_custom_options', array(
|
195 |
'header' => '',
|
197 |
'index' => 'has_custom_options',
|
198 |
'sortable' => false,
|
199 |
'filter' => false,
|
200 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_products_listing_edit_renderer_customoptions')
|
201 |
));
|
202 |
$this->addColumn('is_configured', array(
|
203 |
'header' => '',
|
205 |
'index' => 'is_configured',
|
206 |
'sortable' => false,
|
207 |
'filter' => false,
|
208 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_products_listing_edit_renderer_configured')
|
209 |
));
|
210 |
$this->addColumn('action',
|
211 |
array(
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -51,12 +51,16 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Add
|
|
51 |
if ($this->getListing()->getId()) {
|
52 |
$this->setDefaultFilter(array('in_category'=>1));
|
53 |
}
|
|
|
|
|
|
|
54 |
/* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
|
55 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
56 |
->addAttributeToSelect('name')
|
57 |
->addAttributeToSelect('sku')
|
58 |
->addAttributeToSelect('type_id')
|
59 |
->addWebsiteFilter($this->getListing()->getWebsiteId())
|
|
|
60 |
->addAttributeToFilter('type_id', array('in' => $this->_helper->getAllowedProductTypes()))
|
61 |
->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
|
62 |
//->addFieldToFilter('visibility', array('neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE ))
|
@@ -118,7 +122,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Add
|
|
118 |
'index' => 'has_custom_options',
|
119 |
'sortable' => false,
|
120 |
'filter' => false,
|
121 |
-
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/
|
122 |
));
|
123 |
$this->addColumn('sku', array(
|
124 |
'header' => Mage::helper('catalog')->__('SKU'),
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
51 |
if ($this->getListing()->getId()) {
|
52 |
$this->setDefaultFilter(array('in_category'=>1));
|
53 |
}
|
54 |
+
|
55 |
+
$store = Mage::app()->getWebsite($this->getListing()->getWebsiteId())->getDefaultStore();
|
56 |
+
|
57 |
/* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
|
58 |
$collection = Mage::getResourceModel('catalog/product_collection')
|
59 |
->addAttributeToSelect('name')
|
60 |
->addAttributeToSelect('sku')
|
61 |
->addAttributeToSelect('type_id')
|
62 |
->addWebsiteFilter($this->getListing()->getWebsiteId())
|
63 |
+
->setStoreId($store->getId())
|
64 |
->addAttributeToFilter('type_id', array('in' => $this->_helper->getAllowedProductTypes()))
|
65 |
->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
|
66 |
//->addFieldToFilter('visibility', array('neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE ))
|
122 |
'index' => 'has_custom_options',
|
123 |
'sortable' => false,
|
124 |
'filter' => false,
|
125 |
+
'renderer' => Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_products_listing_edit_renderer_customoptions')
|
126 |
));
|
127 |
$this->addColumn('sku', array(
|
128 |
'header' => Mage::helper('catalog')->__('SKU'),
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
*/
|
10 |
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Massaction extends Mage_Adminhtml_Block_Widget_Grid_Massaction_Abstract
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
*/
|
10 |
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Massaction extends Mage_Adminhtml_Block_Widget_Grid_Massaction_Abstract
|
@@ -1,47 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* ricardo.ch AG - Switzerland
|
4 |
-
*
|
5 |
-
* @author Sylvain Rayé <support at diglin.com>
|
6 |
-
* @category Diglin
|
7 |
-
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c) 2014 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Renderer_Inventory
|
14 |
-
*
|
15 |
-
* Renderer for column name for configurable product
|
16 |
-
*/
|
17 |
-
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Products_Renderer_Inventory
|
18 |
-
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
|
19 |
-
{
|
20 |
-
/**
|
21 |
-
* @param Varien_Object $row
|
22 |
-
* @return string
|
23 |
-
*/
|
24 |
-
public function render(Varien_Object $row)
|
25 |
-
{
|
26 |
-
$value = $this->_getValue($row);
|
27 |
-
if ($row->getTypeId() == Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE) {
|
28 |
-
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
29 |
-
$itemCollection->addFieldToFilter('parent_item_id', $row->getItemId());
|
30 |
-
|
31 |
-
$inventory = array();
|
32 |
-
foreach ($itemCollection->getItems() as $item) {
|
33 |
-
$qtyInventory = $item->getQtyInventory();
|
34 |
-
if (isset($qtyInventory)) {
|
35 |
-
$inventory[] = '<li>' . $qtyInventory . '</li>';
|
36 |
-
}
|
37 |
-
}
|
38 |
-
|
39 |
-
if (count($inventory)) {
|
40 |
-
$value = '<ul><li> </li>' . implode($inventory) . '</ul>';
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
return $value;
|
45 |
-
}
|
46 |
-
|
47 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -30,12 +30,23 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
30 |
'name' => 'sales_options[entity_id]',
|
31 |
));
|
32 |
|
33 |
-
$storeCurrency = Mage::
|
34 |
$currencyWarning = '';
|
35 |
if ($storeCurrency !== Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
36 |
-
$currencyWarning = '<ul class="messages"
|
37 |
-
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
}
|
40 |
|
41 |
/**
|
@@ -88,7 +99,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
88 |
$fieldsetTypeAuction->addField('sales_auction_increment', 'text', array(
|
89 |
'name' => 'sales_options[sales_auction_increment]',
|
90 |
'label' => $this->__('Increment'),
|
91 |
-
'class' => 'validate-number required-if-visible validate-startprice-increment'
|
92 |
));
|
93 |
$fieldsetTypeAuction->addField('auction_currency', 'label', array(
|
94 |
'name' => 'sales_options[auction_currency]',
|
@@ -125,7 +136,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
125 |
'after_element_html' => ' ',
|
126 |
'no_span' => true,
|
127 |
'values' => Mage::getSingleton('diglin_ricento/config_source_sales_price_method')->getAllOptions(),
|
128 |
-
'class' => 'required-if-visible',
|
129 |
));
|
130 |
$fieldsetPriceChange->addField('price_change', 'text', array(
|
131 |
'name' => 'sales_options[price_change]',
|
@@ -154,9 +165,9 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
154 |
|
155 |
$fieldsetSchedule = $form->addFieldset('fieldset_schedule', array('legend' => $this->__('Schedule')));
|
156 |
$fieldsetSchedule->addType('radios_extensible', Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_form_element_radios_extensible'));
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
$fieldsetSchedule->addField('schedule_date_start_immediately', 'radios_extensible', array(
|
161 |
'name' => 'sales_options[schedule_date_start_immediately]',
|
162 |
'label' => $this->__('Start'),
|
@@ -168,7 +179,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
168 |
'time' => true,
|
169 |
'name' => 'sales_options[schedule_date_start]',
|
170 |
'image' => $this->getSkinUrl('images/grid-cal.gif'),
|
171 |
-
'format' => $dateFormatIso
|
172 |
//'class' => 'validate-date validate-date-range date-range-end_date-from' // Prototype's date validation does not work with localized dates, so we don't use it
|
173 |
)
|
174 |
))
|
@@ -269,7 +280,8 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
269 |
|
270 |
$fieldsetStock = $form->addFieldset('fieldset_stock', array('legend' => $this->__('Stock Management')));
|
271 |
$fieldsetStock->addType('radios_extensible', Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_form_element_radios_extensible'));
|
272 |
-
|
|
|
273 |
'name' => 'sales_options[stock_management_use_inventory]',
|
274 |
'label' => $this->__('Stock Management'),
|
275 |
'note' => $this->__('Range 1...999. If you use the product inventory option, the amount of items will be taken from the field "Qty" defined in the product inventory and limited to 999 if you have a quantity above this value.'),
|
@@ -284,6 +296,18 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
284 |
)
|
285 |
));
|
286 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
/**
|
288 |
* Template fieldset
|
289 |
*/
|
@@ -305,14 +329,14 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
305 |
$fieldsetPromotion->addField('promotion_space', 'radios_extensible', array(
|
306 |
'name' => 'sales_options[promotion_space]',
|
307 |
'label' => $this->__('Privilege Space'),
|
308 |
-
'note' => $this->__("Privilege space on main category page and search results. More information about this feature <a onclick=\"window.open('%s');\">here</a>",
|
309 |
'values' => Mage::getSingleton('diglin_ricento/config_source_sales_promotion')->getAllOptions()
|
310 |
));
|
311 |
|
312 |
$fieldsetPromotion->addField('promotion_start_page', 'checkbox', array(
|
313 |
'name' => 'sales_options[promotion_start_page]',
|
314 |
'label' => $this->__('Home Privilege Space'),
|
315 |
-
'note' => $this->__("Privilege space on the homepage. More information about this feature <a onclick=\"window.open('%s');\">here</a>",
|
316 |
'after_element_html' => $this->__('Home Space') . ' - ' . $this->_getPromotionHomeFee()
|
317 |
));
|
318 |
|
@@ -383,18 +407,27 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
383 |
$derivedValues['stock_management_use_inventory'] = 1;
|
384 |
}
|
385 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
386 |
/**
|
387 |
* Set the default values of the radio button for the "Starting Date"
|
388 |
*/
|
389 |
if ($this->getSalesOptions()->getScheduleDateStart() == null) {
|
390 |
$derivedValues['schedule_date_start_immediately'] = 1;
|
|
|
|
|
391 |
}
|
392 |
|
393 |
/**
|
394 |
* Set the default values for the ending date
|
395 |
*/
|
396 |
if (!in_array($this->getSalesOptions()->getSchedulePeriodDays(), $this->_getDaysOptions()->toOptionHash())) {
|
397 |
-
$derivedValues['schedule_period_use_end_date'] =
|
398 |
$derivedValues['schedule_period_end_date'] = date_add(
|
399 |
new DateTime($this->getSalesOptions()->getScheduleDateStart()),
|
400 |
DateInterval::createFromDateString($this->getSalesOptions()->getSchedulePeriodDays() . ' day')
|
@@ -422,6 +455,13 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
422 |
$this->getForm()->getElement('promotion_start_page')->setChecked(true);
|
423 |
}
|
424 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
|
426 |
$this->getForm()->addValues($derivedValues);
|
427 |
return parent::_initFormValues();
|
@@ -526,6 +566,6 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Edit_Tabs_Selloptions
|
|
526 |
}
|
527 |
}
|
528 |
|
529 |
-
return $priceHelper->
|
530 |
}
|
531 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
30 |
'name' => 'sales_options[entity_id]',
|
31 |
));
|
32 |
|
33 |
+
$storeCurrency = Mage::app()->getWebsite($this->_getListing()->getWebsiteId())->getDefaultStore()->getBaseCurrencyCode();
|
34 |
$currencyWarning = '';
|
35 |
if ($storeCurrency !== Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
36 |
+
$currencyWarning = '<ul class="messages">';
|
37 |
+
|
38 |
+
$rate = Mage::helper('diglin_ricento/price')->getCurrency($storeCurrency)->getRate(Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY);
|
39 |
+
if (empty($rate)) {
|
40 |
+
$currencyWarning .= '<li class="error-msg">' . $this->__('Currency Rate not configured') . '</li>';
|
41 |
+
}
|
42 |
+
|
43 |
+
$currencyWarning .= '<li class="warning-msg">'
|
44 |
+
. $this->__('The store\'s base currency is %2$s. Only %1$s is allowed as currency on ricardo.ch. Be aware that your product will be converted into %1$s. Check the documentation for more explanation.',
|
45 |
+
Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY,
|
46 |
+
$storeCurrency)
|
47 |
+
. '</li>';
|
48 |
+
|
49 |
+
$currencyWarning .= '</ul>';
|
50 |
}
|
51 |
|
52 |
/**
|
99 |
$fieldsetTypeAuction->addField('sales_auction_increment', 'text', array(
|
100 |
'name' => 'sales_options[sales_auction_increment]',
|
101 |
'label' => $this->__('Increment'),
|
102 |
+
'class' => 'validate-number required-if-visible validate-startprice-increment'
|
103 |
));
|
104 |
$fieldsetTypeAuction->addField('auction_currency', 'label', array(
|
105 |
'name' => 'sales_options[auction_currency]',
|
136 |
'after_element_html' => ' ',
|
137 |
'no_span' => true,
|
138 |
'values' => Mage::getSingleton('diglin_ricento/config_source_sales_price_method')->getAllOptions(),
|
139 |
+
'class' => 'required-if-visible product-listing-select',
|
140 |
));
|
141 |
$fieldsetPriceChange->addField('price_change', 'text', array(
|
142 |
'name' => 'sales_options[price_change]',
|
165 |
|
166 |
$fieldsetSchedule = $form->addFieldset('fieldset_schedule', array('legend' => $this->__('Schedule')));
|
167 |
$fieldsetSchedule->addType('radios_extensible', Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_form_element_radios_extensible'));
|
168 |
+
|
169 |
+
$dateFormatIso = Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
|
170 |
+
|
171 |
$fieldsetSchedule->addField('schedule_date_start_immediately', 'radios_extensible', array(
|
172 |
'name' => 'sales_options[schedule_date_start_immediately]',
|
173 |
'label' => $this->__('Start'),
|
179 |
'time' => true,
|
180 |
'name' => 'sales_options[schedule_date_start]',
|
181 |
'image' => $this->getSkinUrl('images/grid-cal.gif'),
|
182 |
+
'format' => $dateFormatIso
|
183 |
//'class' => 'validate-date validate-date-range date-range-end_date-from' // Prototype's date validation does not work with localized dates, so we don't use it
|
184 |
)
|
185 |
))
|
280 |
|
281 |
$fieldsetStock = $form->addFieldset('fieldset_stock', array('legend' => $this->__('Stock Management')));
|
282 |
$fieldsetStock->addType('radios_extensible', Mage::getConfig()->getBlockClassName('diglin_ricento/adminhtml_form_element_radios_extensible'));
|
283 |
+
|
284 |
+
$stockManagementUseInventory = $fieldsetStock->addField('stock_management_use_inventory', 'radios_extensible', array(
|
285 |
'name' => 'sales_options[stock_management_use_inventory]',
|
286 |
'label' => $this->__('Stock Management'),
|
287 |
'note' => $this->__('Range 1...999. If you use the product inventory option, the amount of items will be taken from the field "Qty" defined in the product inventory and limited to 999 if you have a quantity above this value.'),
|
296 |
)
|
297 |
));
|
298 |
|
299 |
+
$stockManagement = $stockManagementUseInventory->getElements()->searchById('stock_management');
|
300 |
+
$stockManagement->addField('stock_management_qty_type', 'select', array(
|
301 |
+
'name' => 'sales_options[stock_management_qty_type]',
|
302 |
+
'after_element_html' => ' ',
|
303 |
+
'no_span' => true,
|
304 |
+
'class' => 'product-listing-select',
|
305 |
+
'values' => array(
|
306 |
+
array('label' => $this->__('Fix'), 'value' => Diglin_Ricento_Helper_Data::INVENTORY_QTY_TYPE_FIX),
|
307 |
+
array('label' => $this->__('Percent'), 'value' => Diglin_Ricento_Helper_Data::INVENTORY_QTY_TYPE_PERCENT)
|
308 |
+
),
|
309 |
+
));
|
310 |
+
|
311 |
/**
|
312 |
* Template fieldset
|
313 |
*/
|
329 |
$fieldsetPromotion->addField('promotion_space', 'radios_extensible', array(
|
330 |
'name' => 'sales_options[promotion_space]',
|
331 |
'label' => $this->__('Privilege Space'),
|
332 |
+
'note' => $this->__("Privilege space on main category page and search results. More information about this feature <a onclick=\"window.open('%s');\">here</a>", Mage::helper('diglin_ricento')->getHelpPromotion()),
|
333 |
'values' => Mage::getSingleton('diglin_ricento/config_source_sales_promotion')->getAllOptions()
|
334 |
));
|
335 |
|
336 |
$fieldsetPromotion->addField('promotion_start_page', 'checkbox', array(
|
337 |
'name' => 'sales_options[promotion_start_page]',
|
338 |
'label' => $this->__('Home Privilege Space'),
|
339 |
+
'note' => $this->__("Privilege space on the homepage. More information about this feature <a onclick=\"window.open('%s');\">here</a>", Mage::helper('diglin_ricento')->getHelpPromotion()),
|
340 |
'after_element_html' => $this->__('Home Space') . ' - ' . $this->_getPromotionHomeFee()
|
341 |
));
|
342 |
|
407 |
$derivedValues['stock_management_use_inventory'] = 1;
|
408 |
}
|
409 |
|
410 |
+
/**
|
411 |
+
* Set the default values of the radio button for the "stock management quantity type"
|
412 |
+
*/
|
413 |
+
if ($this->getSalesOptions()->getStockManagementQtyType()) {
|
414 |
+
$derivedValues['stock_management_qty_type'] = $this->getSalesOptions()->getStockManagementQtyType();
|
415 |
+
}
|
416 |
+
|
417 |
/**
|
418 |
* Set the default values of the radio button for the "Starting Date"
|
419 |
*/
|
420 |
if ($this->getSalesOptions()->getScheduleDateStart() == null) {
|
421 |
$derivedValues['schedule_date_start_immediately'] = 1;
|
422 |
+
} else {
|
423 |
+
$derivedValues['schedule_date_start'] = Mage::app()->getLocale()->date($this->getSalesOptions()->getScheduleDateStart());
|
424 |
}
|
425 |
|
426 |
/**
|
427 |
* Set the default values for the ending date
|
428 |
*/
|
429 |
if (!in_array($this->getSalesOptions()->getSchedulePeriodDays(), $this->_getDaysOptions()->toOptionHash())) {
|
430 |
+
$derivedValues['schedule_period_use_end_date'] = 0;
|
431 |
$derivedValues['schedule_period_end_date'] = date_add(
|
432 |
new DateTime($this->getSalesOptions()->getScheduleDateStart()),
|
433 |
DateInterval::createFromDateString($this->getSalesOptions()->getSchedulePeriodDays() . ' day')
|
455 |
$this->getForm()->getElement('promotion_start_page')->setChecked(true);
|
456 |
}
|
457 |
|
458 |
+
/* @var $stockManagement Varien_Data_Form_Element_Select */
|
459 |
+
$stockManagement = $this->getForm()->getElement('stock_management');
|
460 |
+
$stockManagement->setAfterElementHtml($stockManagement->getElements()->searchById('stock_management_qty_type')->getElementHtml());
|
461 |
+
|
462 |
+
if ($this->getSalesOptions()->getSalesAuctionIncrement() <= 0) {
|
463 |
+
$derivedValues['sales_auction_increment'] = 1;
|
464 |
+
}
|
465 |
|
466 |
$this->getForm()->addValues($derivedValues);
|
467 |
return parent::_initFormValues();
|
566 |
}
|
567 |
}
|
568 |
|
569 |
+
return implode(' / ', $priceHelper->formatDoubleCurrency($price, $this->_getListing()->getWebsiteId(), Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY));
|
570 |
}
|
571 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -90,7 +90,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Grid extends Mage_Adminhtm
|
|
90 |
$this->addColumn('status', array(
|
91 |
'header' => $this->__('Status') ,
|
92 |
'align' => 'left',
|
93 |
-
'width' => '
|
94 |
'index' => 'status',
|
95 |
'type' => 'options',
|
96 |
'options' => Mage::getSingleton('diglin_ricento/config_source_status')->toOptionHash(),
|
@@ -186,7 +186,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Grid extends Mage_Adminhtm
|
|
186 |
$this->getMassactionBlock()->addItem('delete', array(
|
187 |
'label'=> $this->__('Delete'),
|
188 |
'url' => $this->getUrl('*/*/massDelete', array('_current'=>true)),
|
189 |
-
'confirm' => $this->__('Are you sure that you want to delete this/these products listing(s)? Be aware it\'s
|
190 |
));
|
191 |
|
192 |
return $this;
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
90 |
$this->addColumn('status', array(
|
91 |
'header' => $this->__('Status') ,
|
92 |
'align' => 'left',
|
93 |
+
'width' => '200px',
|
94 |
'index' => 'status',
|
95 |
'type' => 'options',
|
96 |
'options' => Mage::getSingleton('diglin_ricento/config_source_status')->toOptionHash(),
|
186 |
$this->getMassactionBlock()->addItem('delete', array(
|
187 |
'label'=> $this->__('Delete'),
|
188 |
'url' => $this->getUrl('*/*/massDelete', array('_current'=>true)),
|
189 |
+
'confirm' => $this->__('Are you sure that you want to delete this/these products listing(s)? Be aware it\'s not possible when the listing is "Listed"')
|
190 |
));
|
191 |
|
192 |
return $this;
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -29,25 +29,23 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Grid_Renderer_Status
|
|
29 |
$sqlListed = $readAdapter->select()
|
30 |
->from($resourceModel->getTable('diglin_ricento/products_listing_item'), new Zend_Db_Expr('COUNT(*)'))
|
31 |
->where('products_listing_id = ?', $row->getId())
|
32 |
-
->where('status = ?', Diglin_Ricento_Helper_Data::STATUS_LISTED)
|
33 |
-
->where('parent_item_id IS NULL');
|
34 |
|
35 |
$sqlNotListed = $readAdapter->select()
|
36 |
->from($resourceModel->getTable('diglin_ricento/products_listing_item'), new Zend_Db_Expr('COUNT(*)'))
|
37 |
->where('products_listing_id = ?', $row->getId())
|
38 |
-
->where('status
|
39 |
-
->where('
|
40 |
-
|
41 |
|
42 |
$totalListed = $readAdapter->fetchOne($sqlListed);
|
43 |
$totalUnlisted = $readAdapter->fetchOne($sqlNotListed);
|
44 |
|
45 |
$html = '';
|
46 |
-
$html .= '<strong>' . $this->_getValue($row) . '</strong>';
|
47 |
$html .= '<dl class="diglin_ricento_status_info">';
|
48 |
-
$html .= '<dt>' . $this->__('Listed products:') . '
|
49 |
$html .= '<dd>' . (int) $totalListed . '</dd>';
|
50 |
-
$html .= '<dt>' . $this->__('Not listed products:') . '
|
51 |
$html .= '<dd>' . (int) $totalUnlisted . '</dd>';
|
52 |
$html .= '</dl>';
|
53 |
return $html;
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
29 |
$sqlListed = $readAdapter->select()
|
30 |
->from($resourceModel->getTable('diglin_ricento/products_listing_item'), new Zend_Db_Expr('COUNT(*)'))
|
31 |
->where('products_listing_id = ?', $row->getId())
|
32 |
+
->where('status = ?', Diglin_Ricento_Helper_Data::STATUS_LISTED);
|
|
|
33 |
|
34 |
$sqlNotListed = $readAdapter->select()
|
35 |
->from($resourceModel->getTable('diglin_ricento/products_listing_item'), new Zend_Db_Expr('COUNT(*)'))
|
36 |
->where('products_listing_id = ?', $row->getId())
|
37 |
+
->where('status <> ? ', Diglin_Ricento_Helper_Data::STATUS_LISTED)
|
38 |
+
->where('type <> ?', Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE);
|
|
|
39 |
|
40 |
$totalListed = $readAdapter->fetchOne($sqlListed);
|
41 |
$totalUnlisted = $readAdapter->fetchOne($sqlNotListed);
|
42 |
|
43 |
$html = '';
|
44 |
+
$html .= '<strong>' . $this->__(ucwords($this->_getValue($row))) . '</strong>';
|
45 |
$html .= '<dl class="diglin_ricento_status_info">';
|
46 |
+
$html .= '<dt>' . $this->__('Listed products:') . ' </dt>';
|
47 |
$html .= '<dd>' . (int) $totalListed . '</dd>';
|
48 |
+
$html .= '<dt>' . $this->__('Not listed products:') . ' </dt>';
|
49 |
$html .= '<dd>' . (int) $totalUnlisted . '</dd>';
|
50 |
$html .= '</dl>';
|
51 |
return $html;
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -29,7 +29,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Grid_Renderer_Total
|
|
29 |
$total = $readAdapter->select()
|
30 |
->from($resourceModel->getTable('diglin_ricento/products_listing_item'), new Zend_Db_Expr('COUNT(*)'))
|
31 |
->where('products_listing_id = ?', $row->getId())
|
32 |
-
->where('
|
33 |
|
34 |
return $readAdapter->fetchOne($total);
|
35 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
29 |
$total = $readAdapter->select()
|
30 |
->from($resourceModel->getTable('diglin_ricento/products_listing_item'), new Zend_Db_Expr('COUNT(*)'))
|
31 |
->where('products_listing_id = ?', $row->getId())
|
32 |
+
->where('type <> ?', Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE);
|
33 |
|
34 |
return $readAdapter->fetchOne($total);
|
35 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -6,7 +6,7 @@
|
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
-
* @copyright Copyright (c)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Item_Preview extends Mage_Adminhtml_Block_Template
|
@@ -298,7 +298,7 @@ class Diglin_Ricento_Block_Adminhtml_Products_Listing_Item_Preview extends Mage_
|
|
298 |
*/
|
299 |
public function getProductPrice()
|
300 |
{
|
301 |
-
return $this->_getPrice($this->getProductItem()->getProductPrice());
|
302 |
}
|
303 |
|
304 |
/**
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Item_Preview extends Mage_Adminhtml_Block_Template
|
298 |
*/
|
299 |
public function getProductPrice()
|
300 |
{
|
301 |
+
return $this->_getPrice($this->getProductItem()->getProductPrice(false));
|
302 |
}
|
303 |
|
304 |
/**
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Log extends Mage_Adminhtml_Block_Widget_Grid_Container
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Block_Adminhtml_Products_Listing_Log extends Mage_Adminhtml_Block_Widget_Grid_Container
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
1 |
<?php
|
2 |
+
/**
|
3 |
* ricardo.ch AG - Switzerland
|
4 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
Binary file
|
@@ -6,7 +6,7 @@
|
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
-
* @copyright Copyright (c)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
abstract class Diglin_Ricento_Controller_Adminhtml_Action extends Mage_Adminhtml_Controller_Action
|
@@ -51,13 +51,13 @@ abstract class Diglin_Ricento_Controller_Adminhtml_Action extends Mage_Adminhtml
|
|
51 |
return Mage::registry('products_listing');
|
52 |
}
|
53 |
|
54 |
-
protected function
|
55 |
{
|
56 |
$helper = Mage::helper('diglin_ricento');
|
57 |
$helperApi = Mage::helper('diglin_ricento/api');
|
58 |
$websiteId = $this->_initListing()->getWebsiteId();
|
59 |
|
60 |
-
return $helper->isEnabled($websiteId) && $helper->isConfigured($websiteId) && !$helperApi->
|
61 |
}
|
62 |
|
63 |
/**
|
@@ -67,4 +67,123 @@ abstract class Diglin_Ricento_Controller_Adminhtml_Action extends Mage_Adminhtml
|
|
67 |
{
|
68 |
return true;
|
69 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
}
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
abstract class Diglin_Ricento_Controller_Adminhtml_Action extends Mage_Adminhtml_Controller_Action
|
51 |
return Mage::registry('products_listing');
|
52 |
}
|
53 |
|
54 |
+
protected function _isApiReady()
|
55 |
{
|
56 |
$helper = Mage::helper('diglin_ricento');
|
57 |
$helperApi = Mage::helper('diglin_ricento/api');
|
58 |
$websiteId = $this->_initListing()->getWebsiteId();
|
59 |
|
60 |
+
return $helper->isEnabled($websiteId) && $helper->isConfigured($websiteId) && !$helperApi->apiTokenCredentialGoingToExpire($websiteId);
|
61 |
}
|
62 |
|
63 |
/**
|
67 |
{
|
68 |
return true;
|
69 |
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Create products listing items children for configurable product
|
73 |
+
*
|
74 |
+
* @return $this
|
75 |
+
*/
|
76 |
+
protected function _prepareConfigurableProduct()
|
77 |
+
{
|
78 |
+
$productListingId = $this->_initListing()->getId();
|
79 |
+
$statuses = array(Diglin_Ricento_Helper_Data::STATUS_LISTED, Diglin_Ricento_Helper_Data::STATUS_SOLD);
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Delete not listed children products of configurable product
|
83 |
+
*/
|
84 |
+
$collectionListingItemChildren = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
85 |
+
$collectionListingItemChildren
|
86 |
+
->addFieldToFilter('parent_product_id', array('notnull' => 1))
|
87 |
+
->addFieldToFilter('status', array('nin' => $statuses))
|
88 |
+
->addFieldToFilter('products_listing_id', $productListingId);
|
89 |
+
|
90 |
+
$collectionListingItemChildren->walk('delete');
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Get listed children products of configurable product
|
94 |
+
*/
|
95 |
+
$collectionListingItemChildren = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
96 |
+
$collectionListingItemChildren
|
97 |
+
->addFieldToFilter('parent_product_id', array('notnull' => 1))
|
98 |
+
->addFieldToFilter('status', array('in' => $statuses))
|
99 |
+
->addFieldToFilter('products_listing_id', $productListingId);
|
100 |
+
|
101 |
+
$listedChildrenIds = $collectionListingItemChildren->getColumnValues('product_id');
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Get the list of configurable products
|
105 |
+
*/
|
106 |
+
$collectionListingItem = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
107 |
+
$collectionListingItem
|
108 |
+
->addFieldToFilter('type', Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE)
|
109 |
+
->addFieldToFilter('status', array('nin' => $statuses))
|
110 |
+
->addFieldToFilter('products_listing_id', $productListingId);
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Get all products of configurable products for a list
|
114 |
+
*
|
115 |
+
* @var $item Diglin_Ricento_Model_Products_Listing_Item
|
116 |
+
*/
|
117 |
+
foreach ($collectionListingItem->getItems() as $item) {
|
118 |
+
/**
|
119 |
+
* Get all children products
|
120 |
+
*/
|
121 |
+
$collection = Mage::getResourceModel('catalog/product_collection')
|
122 |
+
->addAttributeToSelect('sku')
|
123 |
+
->addFilterByRequiredOptions()
|
124 |
+
->addFieldToFilter('entity_id', array('in' => $item->getProduct()->getUsedProductIds(), 'nin' => array('nin' => $listedChildrenIds)));
|
125 |
+
|
126 |
+
$attributes = $item->getProduct()->getConfigurableAttributes();
|
127 |
+
|
128 |
+
foreach ($attributes as $attribute) {
|
129 |
+
$collection->addAttributeToSelect($attribute->getProductAttribute()->getAttributeCode());
|
130 |
+
$collection->addAttributeToFilter($attribute->getProductAttribute()->getAttributeCode(), array('notnull' => 1));
|
131 |
+
}
|
132 |
+
|
133 |
+
foreach ($collection->getItems() as $childProduct) {
|
134 |
+
|
135 |
+
$configurableChild = array();
|
136 |
+
|
137 |
+
foreach ($attributes as $attribute) {
|
138 |
+
|
139 |
+
$productAttribute = $attribute->getProductAttribute();
|
140 |
+
$attributeValueId = $childProduct->getData($productAttribute->getAttributeCode());
|
141 |
+
if ($attributeValueId) {
|
142 |
+
|
143 |
+
$priceVariation = array();
|
144 |
+
$subtitle = $productAttribute->getFrontendLabel() . ': ';
|
145 |
+
|
146 |
+
/**
|
147 |
+
* Get price variation
|
148 |
+
*/
|
149 |
+
$prices = $attribute->getData('prices');
|
150 |
+
foreach ($prices as $price) {
|
151 |
+
if ($price['pricing_value'] != 0 && $price['value_index'] == $attributeValueId) {
|
152 |
+
$priceVariation = array('pricing_value' => $price['pricing_value'], 'is_percent' => $price['is_percent']);
|
153 |
+
break;
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Get attribute label to be used as subtitle
|
159 |
+
*/
|
160 |
+
foreach ($productAttribute->getSource()->getAllOptions() as $option) {
|
161 |
+
if ($attributeValueId == $option['value']) {
|
162 |
+
$subtitle .= $option['label'];
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
$configurableChild['options'][$attributeValueId] = array_merge(array('subtitle' => $subtitle), $priceVariation);
|
167 |
+
}
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* Save as new products listing item
|
172 |
+
*/
|
173 |
+
$itemChild = clone $item;
|
174 |
+
$itemChild
|
175 |
+
->setId(null)
|
176 |
+
->setCreatedAt(Mage::getSingleton('core/date')->gmtDate())
|
177 |
+
->setUpdatedAt(null)
|
178 |
+
->setProductId($childProduct->getId())
|
179 |
+
->setAdditionalData(Mage::helper('core')->jsonEncode($configurableChild))
|
180 |
+
->setParentItemId($item->getId())
|
181 |
+
->setParentProductId($item->getProductId())
|
182 |
+
->setType(Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
|
183 |
+
->save();
|
184 |
+
}
|
185 |
+
}
|
186 |
+
|
187 |
+
return $this;
|
188 |
+
}
|
189 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -70,14 +70,13 @@ abstract class Diglin_Ricento_Controller_Adminhtml_Products_Listing extends Digl
|
|
70 |
if (!empty($data['sales_options']['sales_auction_direct_buy'])
|
71 |
&& $data['sales_options']['sales_type'] == Diglin_Ricento_Model_Config_Source_Sales_Type::AUCTION) {
|
72 |
$data['sales_options']['stock_management'] = 1;
|
|
|
73 |
$this->_getSession()->addNotice($this->__('Stock quantity set to 1 because auction sales type with direct buy option does not allow more than one article to be sold'));
|
74 |
}
|
75 |
if (!empty($data['sales_options']['schedule_date_start_immediately'])) {
|
76 |
$data['sales_options']['schedule_date_start'] = null;
|
77 |
-
|
78 |
-
|
79 |
-
$derivedValues['schedule_date_start'] = $dateStart->format(Varien_Date::DATETIME_PHP_FORMAT);
|
80 |
-
}
|
81 |
}
|
82 |
if (!empty($data['sales_options']['schedule_period_use_end_date'])) {
|
83 |
try {
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
70 |
if (!empty($data['sales_options']['sales_auction_direct_buy'])
|
71 |
&& $data['sales_options']['sales_type'] == Diglin_Ricento_Model_Config_Source_Sales_Type::AUCTION) {
|
72 |
$data['sales_options']['stock_management'] = 1;
|
73 |
+
$data['sales_options']['stock_management_qty_type'] = Diglin_Ricento_Helper_Data::INVENTORY_QTY_TYPE_FIX;
|
74 |
$this->_getSession()->addNotice($this->__('Stock quantity set to 1 because auction sales type with direct buy option does not allow more than one article to be sold'));
|
75 |
}
|
76 |
if (!empty($data['sales_options']['schedule_date_start_immediately'])) {
|
77 |
$data['sales_options']['schedule_date_start'] = null;
|
78 |
+
} else {
|
79 |
+
$data['sales_options']['schedule_date_start'] = Mage::app()->getLocale()->utcDate(null, $data['sales_options']['schedule_date_start'], true)->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
|
|
|
|
|
80 |
}
|
81 |
if (!empty($data['sales_options']['schedule_period_use_end_date'])) {
|
82 |
try {
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -37,30 +37,76 @@ class Diglin_Ricento_Helper_Api extends Mage_Core_Helper_Abstract
|
|
37 |
* @param int|string|Mage_Core_Model_Website $website
|
38 |
* @return bool
|
39 |
*/
|
40 |
-
public function
|
41 |
{
|
42 |
-
$token = Mage::getModel('diglin_ricento/api_token')
|
43 |
-
->loadByWebsiteAndTokenType(Security::TOKEN_TYPE_IDENTIFIED, Mage::app()->getWebsite($website)->getId());
|
44 |
-
|
45 |
-
$expirationDate = $token->getExpirationDate();
|
46 |
$dayDelay = Mage::helper('diglin_ricento')->getExpirationNotificationDelay();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
if (empty($expirationDate) ||
|
49 |
-
isset($expirationDate) && time() >= (Mage::getSingleton('core/date')->timestamp($expirationDate)
|
50 |
-
{
|
51 |
return true;
|
52 |
}
|
53 |
|
54 |
return false;
|
55 |
}
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
/**
|
58 |
* Get if the token credential exists
|
59 |
*
|
60 |
* @param int|string|Mage_Core_Model_Website $website
|
61 |
* @return bool
|
62 |
*/
|
63 |
-
public function
|
64 |
{
|
65 |
$token = Mage::getModel('diglin_ricento/api_token')
|
66 |
->loadByWebsiteAndTokenType(Security::TOKEN_TYPE_IDENTIFIED, Mage::app()->getWebsite($website)->getId());
|
@@ -75,7 +121,6 @@ class Diglin_Ricento_Helper_Api extends Mage_Core_Helper_Abstract
|
|
75 |
public function calculateSessionExpirationDate($sessionDuration, $time = null)
|
76 |
{
|
77 |
$sessionDuration *= 60;
|
78 |
-
|
79 |
if (is_null($time)) {
|
80 |
return time() + $sessionDuration;
|
81 |
}
|
@@ -102,8 +147,37 @@ class Diglin_Ricento_Helper_Api extends Mage_Core_Helper_Abstract
|
|
102 |
public function getValidationUrl($websiteId = 0)
|
103 |
{
|
104 |
return Mage::getSingleton('diglin_ricento/api_services_security')
|
105 |
-
//@fixme there is issue with getting credential token in multi shop so for real website support start to fix here - not planned at the moment
|
106 |
-
// ->setCurrentWebsite($websiteId)
|
107 |
->getValidationUrl();
|
108 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
37 |
* @param int|string|Mage_Core_Model_Website $website
|
38 |
* @return bool
|
39 |
*/
|
40 |
+
public function apiTokenCredentialGoingToExpire($website = 0)
|
41 |
{
|
|
|
|
|
|
|
|
|
42 |
$dayDelay = Mage::helper('diglin_ricento')->getExpirationNotificationDelay();
|
43 |
+
$expirationDate = $this->getExpirationDate($website);
|
44 |
+
|
45 |
+
if (empty($expirationDate) ||
|
46 |
+
isset($expirationDate) && time() >= (Mage::getSingleton('core/date')->timestamp($expirationDate) - ($dayDelay * 24 * 3600))
|
47 |
+
) {
|
48 |
+
return true;
|
49 |
+
}
|
50 |
+
|
51 |
+
return false;
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* The API token can be validated X days before expiration
|
56 |
+
*
|
57 |
+
* @param int $website
|
58 |
+
* @return bool
|
59 |
+
*/
|
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 |
+
) {
|
68 |
+
return true;
|
69 |
+
}
|
70 |
+
|
71 |
+
return false;
|
72 |
+
}
|
73 |
|
74 |
+
/**
|
75 |
+
* @param int $website
|
76 |
+
* @return bool
|
77 |
+
*/
|
78 |
+
public function apiExpired($website = 0)
|
79 |
+
{
|
80 |
+
$expirationDate = $this->getExpirationDate($website);
|
81 |
if (empty($expirationDate) ||
|
82 |
+
isset($expirationDate) && time() >= (Mage::getSingleton('core/date')->timestamp($expirationDate))
|
83 |
+
) {
|
84 |
return true;
|
85 |
}
|
86 |
|
87 |
return false;
|
88 |
}
|
89 |
|
90 |
+
/**
|
91 |
+
* @param int $website
|
92 |
+
* @return mixed
|
93 |
+
* @throws Mage_Core_Exception
|
94 |
+
*/
|
95 |
+
public function getExpirationDate($website = 0)
|
96 |
+
{
|
97 |
+
$token = Mage::getModel('diglin_ricento/api_token')
|
98 |
+
->loadByWebsiteAndTokenType(Security::TOKEN_TYPE_IDENTIFIED, Mage::app()->getWebsite($website)->getId());
|
99 |
+
|
100 |
+
return $token->getExpirationDate();
|
101 |
+
}
|
102 |
+
|
103 |
/**
|
104 |
* Get if the token credential exists
|
105 |
*
|
106 |
* @param int|string|Mage_Core_Model_Website $website
|
107 |
* @return bool
|
108 |
*/
|
109 |
+
public function apiTokenCredentialExists($website = 0)
|
110 |
{
|
111 |
$token = Mage::getModel('diglin_ricento/api_token')
|
112 |
->loadByWebsiteAndTokenType(Security::TOKEN_TYPE_IDENTIFIED, Mage::app()->getWebsite($website)->getId());
|
121 |
public function calculateSessionExpirationDate($sessionDuration, $time = null)
|
122 |
{
|
123 |
$sessionDuration *= 60;
|
|
|
124 |
if (is_null($time)) {
|
125 |
return time() + $sessionDuration;
|
126 |
}
|
147 |
public function getValidationUrl($websiteId = 0)
|
148 |
{
|
149 |
return Mage::getSingleton('diglin_ricento/api_services_security')
|
150 |
+
//@fixme there is issue with getting credential token in multi shop so for real website support start to fix here - not planned at the moment
|
151 |
+
// ->setCurrentWebsite($websiteId)
|
152 |
->getValidationUrl();
|
153 |
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
* @param int $website
|
157 |
+
* @return bool
|
158 |
+
* @throws Mage_Core_Exception
|
159 |
+
*/
|
160 |
+
public function isMerchantNotifiedApiAuthorization($website = 0)
|
161 |
+
{
|
162 |
+
$token = Mage::getModel('diglin_ricento/api_token')
|
163 |
+
->loadByWebsiteAndTokenType(Security::TOKEN_TYPE_IDENTIFIED, Mage::app()->getWebsite($website)->getId());
|
164 |
+
|
165 |
+
if ($token->getId() && $token->getMerchantNotified()) {
|
166 |
+
return true;
|
167 |
+
}
|
168 |
+
|
169 |
+
return false;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* @param int $website
|
174 |
+
* @return string
|
175 |
+
*/
|
176 |
+
public function getAntiforgeryToken($website = 0)
|
177 |
+
{
|
178 |
+
return Mage::getSingleton('diglin_ricento/api_services_security')
|
179 |
+
->setCurrentWebsite($website)
|
180 |
+
->getServiceModel()
|
181 |
+
->getAntiforgeryToken();
|
182 |
+
}
|
183 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -34,7 +34,8 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
34 |
const CFG_RICARDO_PARTNERKEY = 'ricento/api_config/partner_key_';
|
35 |
const CFG_RICARDO_PARTNERPASS = 'ricento/api_config/partner_pass_';
|
36 |
const CFG_EXPIRATION_NOTIFICATION_DELAY = 'ricento/api_config/expiration_notification_delay'; // in day
|
37 |
-
const
|
|
|
38 |
|
39 |
const CFG_SUPPORTED_LANG = 'ricento/api_config/lang';
|
40 |
const DEFAULT_SUPPORTED_LANG = 'de';
|
@@ -50,6 +51,18 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
50 |
const CFG_ORDER_CREATION_EMAIL = 'ricento/global/email_order_creation';
|
51 |
const CFG_MERGE_ORDER = 'ricento/global/merge_order';
|
52 |
const CFG_DECREASE_INVENTORY = 'ricento/global/decrease_inventory';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
/**
|
55 |
* Cleanup Job config
|
@@ -69,8 +82,15 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
69 |
|
70 |
const LOG_FILE = 'ricento.log';
|
71 |
|
72 |
-
const RICARDO_URL
|
73 |
-
const
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
|
75 |
const NODE_DISPATCHER_TYPES = 'global/ricento/dispatcher/types';
|
76 |
const NODE_PRODUCT_TYPES = 'global/ricento/allow_product_types';
|
@@ -78,7 +98,6 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
78 |
/**
|
79 |
* Payment Config
|
80 |
*/
|
81 |
-
const PAYMENT_CURRENCY = 'payment/ricento/currency';
|
82 |
const PAYMENT_BANK_INFO = 'payment/ricento/bank_transfer_instructions';
|
83 |
|
84 |
/**
|
@@ -87,6 +106,12 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
87 |
const ORDER_STATUS_PENDING = 'pending_ricento';
|
88 |
const ORDER_STATUS_CANCEL = 'canceled_ricento';
|
89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
/**
|
91 |
* @var Mage_Directory_Model_Currency
|
92 |
*/
|
@@ -364,6 +389,7 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
364 |
|
365 |
/**
|
366 |
* Get the default supported lang depending if the partner key is set or not
|
|
|
367 |
* @return string
|
368 |
*/
|
369 |
public function getDefaultSupportedLang()
|
@@ -415,6 +441,17 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
415 |
return Mage::getStoreConfig(self::CFG_EXPIRATION_NOTIFICATION_DELAY, $store);
|
416 |
}
|
417 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
418 |
/**
|
419 |
* Disable all elements in a form recursively
|
420 |
*
|
@@ -492,7 +529,6 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
492 |
foreach ($supportedLang as $lang) {
|
493 |
|
494 |
// Prevent to have the default language twice
|
495 |
-
|
496 |
if (strtolower($lang) == strtolower($defaultLang)) {
|
497 |
continue;
|
498 |
}
|
@@ -654,13 +690,13 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
654 |
}
|
655 |
|
656 |
/**
|
657 |
-
* @return
|
658 |
*/
|
659 |
public function getMemoryLimit()
|
660 |
{
|
661 |
$memoryLimit = trim(strtoupper(ini_get('memory_limit')));
|
662 |
|
663 |
-
if (!
|
664 |
$memoryLimit = "128M";
|
665 |
}
|
666 |
|
@@ -673,7 +709,7 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
673 |
if (substr($memoryLimit, -1) == 'G') {
|
674 |
return substr($memoryLimit, 0, -1) * 1024 * 1024 * 1024;
|
675 |
}
|
676 |
-
return $memoryLimit;
|
677 |
}
|
678 |
|
679 |
/**
|
@@ -712,4 +748,105 @@ class Diglin_Ricento_Helper_Data extends Mage_Core_Helper_Abstract
|
|
712 |
}
|
713 |
return round(($imageInfo[0] * $imageInfo[1] * $imageInfo['bits'] * $imageInfo['channels'] / 8 + Pow(2, 16)) * 1.65);
|
714 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
715 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
34 |
const CFG_RICARDO_PARTNERKEY = 'ricento/api_config/partner_key_';
|
35 |
const CFG_RICARDO_PARTNERPASS = 'ricento/api_config/partner_pass_';
|
36 |
const CFG_EXPIRATION_NOTIFICATION_DELAY = 'ricento/api_config/expiration_notification_delay'; // in day
|
37 |
+
const CFG_EXPIRATION_NOTIFICATION_VALIDATION_DELAY = 'ricento/api_config/expiration_notification_validation_delay'; // in day
|
38 |
+
const CFG_EMAIL_NOTIFICATION = 'ricento/api_config/email_notification';
|
39 |
|
40 |
const CFG_SUPPORTED_LANG = 'ricento/api_config/lang';
|
41 |
const DEFAULT_SUPPORTED_LANG = 'de';
|
51 |
const CFG_ORDER_CREATION_EMAIL = 'ricento/global/email_order_creation';
|
52 |
const CFG_MERGE_ORDER = 'ricento/global/merge_order';
|
53 |
const CFG_DECREASE_INVENTORY = 'ricento/global/decrease_inventory';
|
54 |
+
const CFG_BANNER = 'ricento/global/banner/enabled';
|
55 |
+
const CFG_BANNER_XML = 'ricento/global/banner/xml';
|
56 |
+
const CFG_STATS = 'ricento/global/stats';
|
57 |
+
const CFG_STATS_TEST_MODE = 'ricento/global/stats_test_mode';
|
58 |
+
const CFG_STATS_APPID = 'ricento/global/stats_app_id';
|
59 |
+
const CFG_STATS_APPID_TEST = 'ricento/global/stats_app_id_test';
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Listing config
|
63 |
+
*/
|
64 |
+
const CFG_MERGE_DESCRIPTIONS = 'ricento/listing/merge_descriptions';
|
65 |
+
const CFG_NL2BR = 'ricento/listing/nl2br';
|
66 |
|
67 |
/**
|
68 |
* Cleanup Job config
|
82 |
|
83 |
const LOG_FILE = 'ricento.log';
|
84 |
|
85 |
+
const RICARDO_URL = 'http://www.ricardo.ch';
|
86 |
+
const RICARDO_URL_HELP_PROMOTION_DE = 'http://www.ricardo.ch/ueber-uns/gebühren/einstelloptionen';
|
87 |
+
const RICARDO_URL_HELP_PROMOTION_FR = 'http://www.fr.ricardo.ch/ueber-uns/fr-fr/frais/optionsdepublication';
|
88 |
+
const RICARDO_URL_TERMS_DE = 'http://www.ricardo.ch/ueber-uns/de-ch/reglemente.aspx';
|
89 |
+
const RICARDO_URL_TERMS_FR = 'http://www.fr.ricardo.ch/ueber-uns/fr-fr/règlements';
|
90 |
+
const RICARDO_URL_PRIVACY_DE = self::RICARDO_URL_TERMS_DE;
|
91 |
+
const RICARDO_URL_PRIVACY_FR = self::RICARDO_URL_TERMS_FR;
|
92 |
+
const RICARDO_URL_FEES_DE = self::RICARDO_URL_TERMS_DE;
|
93 |
+
const RICARDO_URL_FEES_FR = self::RICARDO_URL_TERMS_FR;
|
94 |
|
95 |
const NODE_DISPATCHER_TYPES = 'global/ricento/dispatcher/types';
|
96 |
const NODE_PRODUCT_TYPES = 'global/ricento/allow_product_types';
|
98 |
/**
|
99 |
* Payment Config
|
100 |
*/
|
|
|
101 |
const PAYMENT_BANK_INFO = 'payment/ricento/bank_transfer_instructions';
|
102 |
|
103 |
/**
|
106 |
const ORDER_STATUS_PENDING = 'pending_ricento';
|
107 |
const ORDER_STATUS_CANCEL = 'canceled_ricento';
|
108 |
|
109 |
+
/**
|
110 |
+
* Stock Management
|
111 |
+
*/
|
112 |
+
const INVENTORY_QTY_TYPE_FIX = 'fix';
|
113 |
+
const INVENTORY_QTY_TYPE_PERCENT = 'percent';
|
114 |
+
|
115 |
/**
|
116 |
* @var Mage_Directory_Model_Currency
|
117 |
*/
|
389 |
|
390 |
/**
|
391 |
* Get the default supported lang depending if the partner key is set or not
|
392 |
+
*
|
393 |
* @return string
|
394 |
*/
|
395 |
public function getDefaultSupportedLang()
|
441 |
return Mage::getStoreConfig(self::CFG_EXPIRATION_NOTIFICATION_DELAY, $store);
|
442 |
}
|
443 |
|
444 |
+
/**
|
445 |
+
* Get the delay in days to notify the owner that the API authorisation must be triggered
|
446 |
+
*
|
447 |
+
* @param int $store
|
448 |
+
* @return mixed
|
449 |
+
*/
|
450 |
+
public function getExpirationNotificationValidationDelay($store = 0)
|
451 |
+
{
|
452 |
+
return Mage::getStoreConfig(self::CFG_EXPIRATION_NOTIFICATION_VALIDATION_DELAY, $store);
|
453 |
+
}
|
454 |
+
|
455 |
/**
|
456 |
* Disable all elements in a form recursively
|
457 |
*
|
529 |
foreach ($supportedLang as $lang) {
|
530 |
|
531 |
// Prevent to have the default language twice
|
|
|
532 |
if (strtolower($lang) == strtolower($defaultLang)) {
|
533 |
continue;
|
534 |
}
|
690 |
}
|
691 |
|
692 |
/**
|
693 |
+
* @return int
|
694 |
*/
|
695 |
public function getMemoryLimit()
|
696 |
{
|
697 |
$memoryLimit = trim(strtoupper(ini_get('memory_limit')));
|
698 |
|
699 |
+
if (!isset($memoryLimit[0])){
|
700 |
$memoryLimit = "128M";
|
701 |
}
|
702 |
|
709 |
if (substr($memoryLimit, -1) == 'G') {
|
710 |
return substr($memoryLimit, 0, -1) * 1024 * 1024 * 1024;
|
711 |
}
|
712 |
+
return (int) $memoryLimit;
|
713 |
}
|
714 |
|
715 |
/**
|
748 |
}
|
749 |
return round(($imageInfo[0] * $imageInfo[1] * $imageInfo['bits'] * $imageInfo['channels'] / 8 + Pow(2, 16)) * 1.65);
|
750 |
}
|
751 |
+
|
752 |
+
/**
|
753 |
+
* @param int $storeId
|
754 |
+
* @return mixed
|
755 |
+
*/
|
756 |
+
public function canMergeDescriptions($storeId = 0)
|
757 |
+
{
|
758 |
+
return Mage::getStoreConfigFlag(self::CFG_MERGE_DESCRIPTIONS, $storeId);
|
759 |
+
}
|
760 |
+
|
761 |
+
/**
|
762 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
763 |
+
* @return int|string
|
764 |
+
*/
|
765 |
+
public function getStartingDate(Diglin_Ricento_Model_Products_Listing_Item $item)
|
766 |
+
{
|
767 |
+
if ($item->getSalesOptions()->getScheduleOverwriteProductDateStart()) {
|
768 |
+
$startDate = $item->getProductsListing()->getSalesOptions()->getScheduleDateStart();
|
769 |
+
} else {
|
770 |
+
$startDate = $item->getSalesOptions()->getScheduleDateStart();
|
771 |
+
}
|
772 |
+
|
773 |
+
if (!is_null($startDate) || $item->getSalesOptions()->getSalesType() == Diglin_Ricento_Model_Config_Source_Sales_Type::AUCTION) {
|
774 |
+
$startDate = strtotime($startDate);
|
775 |
+
}
|
776 |
+
|
777 |
+
// ricardo.ch constrains, starting date must be in 1 hour in future
|
778 |
+
if (is_null($startDate) || $startDate < (time() + 3600)) {
|
779 |
+
$startDate = time() + 3600;
|
780 |
+
}
|
781 |
+
|
782 |
+
return $startDate;
|
783 |
+
}
|
784 |
+
|
785 |
+
/**
|
786 |
+
* @return string
|
787 |
+
*/
|
788 |
+
public function getFeesRulesUrl()
|
789 |
+
{
|
790 |
+
if ($this->_getLocaleCodeForApiConfig() == 'fr') {
|
791 |
+
return self::RICARDO_URL_FEES_FR;
|
792 |
+
} else {
|
793 |
+
return self::RICARDO_URL_FEES_DE;
|
794 |
+
}
|
795 |
+
}
|
796 |
+
|
797 |
+
/**
|
798 |
+
* @return string
|
799 |
+
*/
|
800 |
+
public function getTermsUrl()
|
801 |
+
{
|
802 |
+
if ($this->_getLocaleCodeForApiConfig() == 'fr') {
|
803 |
+
return self::RICARDO_URL_TERMS_FR;
|
804 |
+
} else {
|
805 |
+
return self::RICARDO_URL_TERMS_DE;
|
806 |
+
}
|
807 |
+
}
|
808 |
+
|
809 |
+
/**
|
810 |
+
* @return string
|
811 |
+
*/
|
812 |
+
public function getPrivacyUrl()
|
813 |
+
{
|
814 |
+
if ($this->_getLocaleCodeForApiConfig() == 'fr') {
|
815 |
+
return self::RICARDO_URL_PRIVACY_FR;
|
816 |
+
} else {
|
817 |
+
return self::RICARDO_URL_PRIVACY_DE;
|
818 |
+
}
|
819 |
+
}
|
820 |
+
|
821 |
+
/**
|
822 |
+
* @return string
|
823 |
+
*/
|
824 |
+
public function getHelpPromotion()
|
825 |
+
{
|
826 |
+
if ($this->_getLocaleCodeForApiConfig() == 'fr') {
|
827 |
+
return self::RICARDO_URL_HELP_PROMOTION_FR;
|
828 |
+
} else {
|
829 |
+
return self::RICARDO_URL_HELP_PROMOTION_DE;
|
830 |
+
}
|
831 |
+
}
|
832 |
+
|
833 |
+
/**
|
834 |
+
* @return Varien_Object
|
835 |
+
*/
|
836 |
+
public function getRicardoShippingRegistry()
|
837 |
+
{
|
838 |
+
if(!Mage::registry('ricardo_shipping')) {
|
839 |
+
Mage::register('ricardo_shipping', new Varien_Object());
|
840 |
+
};
|
841 |
+
|
842 |
+
return Mage::registry('ricardo_shipping');
|
843 |
+
}
|
844 |
+
|
845 |
+
/**
|
846 |
+
* @return bool
|
847 |
+
*/
|
848 |
+
public function canSendEmailNotification()
|
849 |
+
{
|
850 |
+
return Mage::getStoreConfigFlag(self::CFG_EMAIL_NOTIFICATION);
|
851 |
+
}
|
852 |
}
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Ricento
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Helper_Image
|
14 |
+
*/
|
15 |
+
class Diglin_Ricento_Helper_Image extends Mage_Catalog_Helper_Image
|
16 |
+
{
|
17 |
+
/**
|
18 |
+
* @return int
|
19 |
+
*/
|
20 |
+
protected function getWatermarkImageOpacity()
|
21 |
+
{
|
22 |
+
if ($this->_watermarkImageOpacity) {
|
23 |
+
return (int) $this->_watermarkImageOpacity;
|
24 |
+
}
|
25 |
+
|
26 |
+
return (int) $this->_getModel()->getWatermarkImageOpacity();
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @return string
|
31 |
+
*/
|
32 |
+
public function __toString()
|
33 |
+
{
|
34 |
+
try {
|
35 |
+
$model = $this->_getModel();
|
36 |
+
|
37 |
+
if ($this->getImageFile()) {
|
38 |
+
$model->setBaseFile($this->getImageFile());
|
39 |
+
} else {
|
40 |
+
$model->setBaseFile($this->getProduct()->getData($model->getDestinationSubdir()));
|
41 |
+
}
|
42 |
+
|
43 |
+
if ($model->isCached()) {
|
44 |
+
return $model->getNewFile();
|
45 |
+
} else {
|
46 |
+
if ($this->_scheduleRotate) {
|
47 |
+
$model->rotate($this->getAngle());
|
48 |
+
}
|
49 |
+
|
50 |
+
if ($this->_scheduleResize) {
|
51 |
+
$model->resize();
|
52 |
+
}
|
53 |
+
|
54 |
+
if ($this->getWatermark()) {
|
55 |
+
$model->setWatermark($this->getWatermark());
|
56 |
+
}
|
57 |
+
|
58 |
+
$file = $model->saveFile()->getNewFile();
|
59 |
+
}
|
60 |
+
} catch (Exception $e) {
|
61 |
+
$file = Mage::getDesign()->getSkinUrl($this->getPlaceholder());
|
62 |
+
}
|
63 |
+
return $file;
|
64 |
+
}
|
65 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Helper_Price extends Mage_Core_Helper_Abstract
|
@@ -13,7 +13,12 @@ class Diglin_Ricento_Helper_Price extends Mage_Core_Helper_Abstract
|
|
13 |
/**
|
14 |
* @var string
|
15 |
*/
|
16 |
-
protected $_oldCurrency =
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
/**
|
19 |
* Format the price with the ricardo supported currencies
|
@@ -41,19 +46,22 @@ class Diglin_Ricento_Helper_Price extends Mage_Core_Helper_Abstract
|
|
41 |
*/
|
42 |
public function startCurrencyEmulation($websiteId = null)
|
43 |
{
|
44 |
-
$partnerConfiguration = Mage::getSingleton('diglin_ricento/api_services_system')
|
45 |
-
->setCurrentWebsite($websiteId)
|
46 |
-
->getPartnerConfigurations();
|
47 |
-
|
48 |
-
if (isset($partnerConfiguration['CurrencyPrefix'])) {
|
49 |
-
$ricardoCurrency = $partnerConfiguration['CurrencyPrefix'];
|
50 |
-
} else {
|
51 |
-
$ricardoCurrency = Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY;
|
52 |
-
}
|
53 |
|
54 |
$store = Mage::app()->getWebsite($websiteId)->getDefaultStore();
|
55 |
-
|
56 |
-
$store->
|
|
|
|
|
|
|
57 |
|
58 |
return $this;
|
59 |
}
|
@@ -67,6 +75,7 @@ class Diglin_Ricento_Helper_Price extends Mage_Core_Helper_Abstract
|
|
67 |
public function stopCurrencyEmulation($websiteId = null)
|
68 |
{
|
69 |
Mage::app()->getWebsite($websiteId)->getDefaultStore()->setCurrentCurrency($this->_oldCurrency);
|
|
|
70 |
|
71 |
return $this;
|
72 |
}
|
@@ -119,4 +128,92 @@ class Diglin_Ricento_Helper_Price extends Mage_Core_Helper_Abstract
|
|
119 |
}
|
120 |
return $price;
|
121 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Helper_Price extends Mage_Core_Helper_Abstract
|
13 |
/**
|
14 |
* @var string
|
15 |
*/
|
16 |
+
protected $_oldCurrency = null;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @var array
|
20 |
+
*/
|
21 |
+
protected $_currencyCache = array();
|
22 |
|
23 |
/**
|
24 |
* Format the price with the ricardo supported currencies
|
46 |
*/
|
47 |
public function startCurrencyEmulation($websiteId = null)
|
48 |
{
|
49 |
+
// $partnerConfiguration = Mage::getSingleton('diglin_ricento/api_services_system')
|
50 |
+
// ->setCurrentWebsite($websiteId)
|
51 |
+
// ->getPartnerConfigurations();
|
52 |
+
//
|
53 |
+
// if (isset($partnerConfiguration['CurrencyPrefix'])) {
|
54 |
+
// $ricardoCurrency = $partnerConfiguration['CurrencyPrefix'];
|
55 |
+
// } else {
|
56 |
+
// $ricardoCurrency = Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY;
|
57 |
+
// }
|
58 |
|
59 |
$store = Mage::app()->getWebsite($websiteId)->getDefaultStore();
|
60 |
+
|
61 |
+
if ($store->getCurrentCurrency()->getCode() != Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
62 |
+
$this->_oldCurrency = $store->getCurrentCurrency();
|
63 |
+
$store->setCurrentCurrency(Mage::getModel('directory/currency')->load(Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY));
|
64 |
+
}
|
65 |
|
66 |
return $this;
|
67 |
}
|
75 |
public function stopCurrencyEmulation($websiteId = null)
|
76 |
{
|
77 |
Mage::app()->getWebsite($websiteId)->getDefaultStore()->setCurrentCurrency($this->_oldCurrency);
|
78 |
+
$this->_oldCurrency = null;
|
79 |
|
80 |
return $this;
|
81 |
}
|
128 |
}
|
129 |
return $price;
|
130 |
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* @param float $price
|
134 |
+
* @param null|int $websiteId
|
135 |
+
* @param null|string $defaultCurrency
|
136 |
+
* @return array
|
137 |
+
* @throws Exception
|
138 |
+
* @throws Mage_Core_Exception
|
139 |
+
*/
|
140 |
+
public function formatDoubleCurrency($price, $websiteId = null, $defaultCurrency = null)
|
141 |
+
{
|
142 |
+
$priceCurrentCurrency = null;
|
143 |
+
$formattedPrice = array();
|
144 |
+
$store = Mage::app()->getWebsite($websiteId)->getDefaultStore();
|
145 |
+
|
146 |
+
if ($defaultCurrency == Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
147 |
+
// CHF Currency
|
148 |
+
$formattedPrice['left_currency'] = $this->formatPrice($price, $websiteId);
|
149 |
+
|
150 |
+
// Base Currency
|
151 |
+
if ($store->getBaseCurrencyCode() != Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
152 |
+
$priceCurrency = $this->convert($price, Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY, $store->getBaseCurrencyCode(), $websiteId);
|
153 |
+
$formattedPrice['right_currency'] = $store->formatPrice($priceCurrency);
|
154 |
+
}
|
155 |
+
} else {
|
156 |
+
// Base Currency
|
157 |
+
$formattedPrice['left_currency'] = $store->formatPrice($price);
|
158 |
+
|
159 |
+
// CHF Currency
|
160 |
+
if ($store->getBaseCurrencyCode() != Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
161 |
+
$priceCurrency = $this->convert($price, $store->getBaseCurrencyCode(), Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY, $websiteId);
|
162 |
+
$formattedPrice['right_currency'] = $this->formatPrice($priceCurrency, $websiteId);
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
return $formattedPrice;
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* @param float $price
|
171 |
+
* @param string $from
|
172 |
+
* @param null|string $to
|
173 |
+
* @return float|null
|
174 |
+
* @throws Exception
|
175 |
+
* @throws Mage_Core_Exception
|
176 |
+
*/
|
177 |
+
public function convert($price, $from, $to = null, $websiteId = null)
|
178 |
+
{
|
179 |
+
$priceCurrency = null;
|
180 |
+
$store = Mage::app()->getWebsite($websiteId)->getDefaultStore();
|
181 |
+
|
182 |
+
try {
|
183 |
+
if ($from == Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY && $to == $store->getBaseCurrencyCode()) {
|
184 |
+
/**
|
185 |
+
* Magento cannot convert from CHF to Base Currency Code
|
186 |
+
*/
|
187 |
+
$rate = $this->getCurrency($store->getBaseCurrencyCode())->getRate($from);
|
188 |
+
if ($rate) {
|
189 |
+
$priceCurrency = $price / $rate;
|
190 |
+
} else {
|
191 |
+
throw new Exception(Mage::helper('directory')->__('Undefined rate from "%s-%s".',
|
192 |
+
Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY,
|
193 |
+
$store->getBaseCurrencyCode())
|
194 |
+
);
|
195 |
+
}
|
196 |
+
} else {
|
197 |
+
$priceCurrency = $this->getCurrency($from)->convert($price, $this->getCurrency($to));
|
198 |
+
}
|
199 |
+
} catch (Exception $e) {
|
200 |
+
$priceCurrency = $this->__('NaN');
|
201 |
+
Mage::log($e->__toString(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
202 |
+
}
|
203 |
+
|
204 |
+
return $priceCurrency;
|
205 |
+
}
|
206 |
+
|
207 |
+
/**
|
208 |
+
* @param string $currencyCode
|
209 |
+
* @return Mage_Directory_Model_Currency
|
210 |
+
*/
|
211 |
+
public function getCurrency($currencyCode)
|
212 |
+
{
|
213 |
+
if (empty($this->_currencyCache[$currencyCode])) {
|
214 |
+
$this->_currencyCache[$currencyCode] = Mage::getModel('directory/currency')->load($currencyCode);
|
215 |
+
}
|
216 |
+
|
217 |
+
return $this->_currencyCache[$currencyCode];
|
218 |
+
}
|
219 |
}
|
@@ -0,0 +1,340 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Helper_Support
|
14 |
+
*/
|
15 |
+
class Diglin_Ricento_Helper_Support extends Mage_Core_Helper_Abstract
|
16 |
+
{
|
17 |
+
/**
|
18 |
+
* @return string
|
19 |
+
*/
|
20 |
+
public function exportAll()
|
21 |
+
{
|
22 |
+
$folder = Mage::getBaseDir('tmp') . DS . 'export' . DS . 'ricento';
|
23 |
+
$io = new Varien_Io_File();
|
24 |
+
$io->mkdir($folder);
|
25 |
+
|
26 |
+
$this->getPhpInfo($folder);
|
27 |
+
$this->getPhpExtensions($folder);
|
28 |
+
$this->getRicentoConfig($folder);
|
29 |
+
$this->getDeveloperConfig($folder);
|
30 |
+
$this->getRicentoTables($folder);
|
31 |
+
$this->getMagentoModules($folder);
|
32 |
+
$this->getMagentoConfig($folder);
|
33 |
+
|
34 |
+
$exceptionFile = Mage::getStoreConfig(Mage_Core_Model_Session_Abstract::XML_PATH_LOG_EXCEPTION_FILE);
|
35 |
+
// $systemFile = Mage::getStoreConfig('dev/log/file');
|
36 |
+
|
37 |
+
$io->cp(Mage::getBaseDir('var') . DS . 'log' . DS . Diglin_Ricento_Helper_Data::LOG_FILE, $folder . DS . Diglin_Ricento_Helper_Data::LOG_FILE);
|
38 |
+
$io->cp(Mage::getBaseDir('var') . DS . 'log' . DS . $exceptionFile, $folder . DS . $exceptionFile);
|
39 |
+
|
40 |
+
$destination = $folder . 'tar';
|
41 |
+
$tar = new Mage_Archive_Tar();
|
42 |
+
$tar->pack($folder, $destination);
|
43 |
+
|
44 |
+
$gzDestination = $destination . '.gz';
|
45 |
+
$tar = new Mage_Archive_Gz();
|
46 |
+
$tar->pack($destination, $gzDestination);
|
47 |
+
|
48 |
+
$io->rmdir($folder, true);
|
49 |
+
|
50 |
+
return $gzDestination;
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @param $destination
|
55 |
+
* @return mixed
|
56 |
+
*/
|
57 |
+
public function getPhpInfo($destination)
|
58 |
+
{
|
59 |
+
$phpinfo = new Varien_Object(Mage::helper('diglin_ricento/support')->getPhpInfoArray());
|
60 |
+
return $this->writeFile($destination, 'phpinfo.txt', $phpinfo->toJson());
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* @param $destination
|
65 |
+
* @return mixed
|
66 |
+
*/
|
67 |
+
public function getRicentoConfig($destination)
|
68 |
+
{
|
69 |
+
$xml = Mage::getConfig()->getNode('default/ricento')->asNiceXml();
|
70 |
+
return $this->writeFile($destination, 'ricento_config.xml', $xml);
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* @param $destination
|
75 |
+
* @return mixed
|
76 |
+
*/
|
77 |
+
public function getDeveloperConfig($destination)
|
78 |
+
{
|
79 |
+
$xml = Mage::getConfig()->getNode('default/dev')->asNiceXml();
|
80 |
+
return $this->writeFile($destination, 'config_dev.xml', $xml);
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* @param $destination
|
85 |
+
* @return array
|
86 |
+
*/
|
87 |
+
public function getRicentoTables($destination)
|
88 |
+
{
|
89 |
+
$resource = Mage::getSingleton('core/resource');
|
90 |
+
$read = $resource->getConnection('core_read');
|
91 |
+
|
92 |
+
$tables = array(
|
93 |
+
'entity_id_001' => $resource->getTableName('diglin_ricento/api_token'),
|
94 |
+
'entity_id_002' => $resource->getTableName('diglin_ricento/products_listing'),
|
95 |
+
'item_id_003' => $resource->getTableName('diglin_ricento/products_listing_item'),
|
96 |
+
'log_id_004' => $resource->getTableName('diglin_ricento/listing_log'),
|
97 |
+
'entity_id_005' => $resource->getTableName('diglin_ricento/sales_options'),
|
98 |
+
'transaction_id_006' => $resource->getTableName('diglin_ricento/sales_transaction'),
|
99 |
+
'rule_id_007' => $resource->getTableName('diglin_ricento/shipping_payment_rule'),
|
100 |
+
'job_id_008' => $resource->getTableName('diglin_ricento/sync_job'),
|
101 |
+
'job_listing_id_009' => $resource->getTableName('diglin_ricento/sync_job_listing'),
|
102 |
+
'entity_id_010' => $resource->getTableName('sales/quote'),
|
103 |
+
'item_id_011' => $resource->getTableName('sales/quote_item'),
|
104 |
+
'entity_id_012' => $resource->getTableName('sales/order'),
|
105 |
+
'item_id_013' => $resource->getTableName('sales/order_item'),
|
106 |
+
'entity_id_014' => $resource->getTableName('sales/order_payment')
|
107 |
+
);
|
108 |
+
|
109 |
+
$files = array();
|
110 |
+
foreach ($tables as $key => $table) {
|
111 |
+
|
112 |
+
// Anonymize
|
113 |
+
$cols = array('*');
|
114 |
+
if (in_array($key, array('entity_id_010', 'entity_id_010'))) {
|
115 |
+
$cols = $read->fetchCol('describe ' . $table);
|
116 |
+
$found = array_search('customer_email', $cols);
|
117 |
+
if ($found !== false) {
|
118 |
+
unset($cols[$found]);
|
119 |
+
}
|
120 |
+
$found = array_search('customer_firstname', $cols);
|
121 |
+
if ($found !== false) {
|
122 |
+
unset($cols[$found]);
|
123 |
+
}
|
124 |
+
$found = array_search('customer_lastname', $cols);
|
125 |
+
if ($found !== false) {
|
126 |
+
unset($cols[$found]);
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
$select = $read
|
131 |
+
->select()
|
132 |
+
->from($table, $cols)
|
133 |
+
->limit(500)
|
134 |
+
->order(array( substr($key, 0, -4) . ' DESC'));
|
135 |
+
|
136 |
+
|
137 |
+
|
138 |
+
$object = new Varien_Object($read->fetchAll($select));
|
139 |
+
$files[] = $this->writeFile($destination, $table . '.csv', $object->toArray(), true);
|
140 |
+
}
|
141 |
+
|
142 |
+
return $files;
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* @param $destination
|
147 |
+
* @return mixed
|
148 |
+
*/
|
149 |
+
public function getPhpExtensions($destination)
|
150 |
+
{
|
151 |
+
$content = implode("\n", get_loaded_extensions());
|
152 |
+
return $this->writeFile($destination, 'php_extensions.txt', $content);
|
153 |
+
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
* @param $destination
|
157 |
+
* @return mixed
|
158 |
+
*/
|
159 |
+
public function getMagentoConfig($destination)
|
160 |
+
{
|
161 |
+
$countSimpleProduct = Mage::getResourceModel('catalog/product_collection')
|
162 |
+
->setStoreId(0)
|
163 |
+
->addFieldToFilter('type_id', Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
|
164 |
+
->getSize();
|
165 |
+
|
166 |
+
$countConfigurableProduct = Mage::getResourceModel('catalog/product_collection')
|
167 |
+
->setStoreId(0)
|
168 |
+
->addFieldToFilter('type_id', Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE)
|
169 |
+
->getSize();
|
170 |
+
|
171 |
+
$countGroupedProduct = Mage::getResourceModel('catalog/product_collection')
|
172 |
+
->setStoreId(0)
|
173 |
+
->addFieldToFilter('type_id', Mage_Catalog_Model_Product_Type::TYPE_GROUPED)
|
174 |
+
->getSize();
|
175 |
+
|
176 |
+
$user = Mage::getSingleton('admin/session')->getUser();
|
177 |
+
$content = 'Current Backend User: ' . $user->getUsername() . ' - Email: ' . $user->getEmail() . "\n";
|
178 |
+
$content .= 'Magento Version: ' . Mage::getVersion() . ' ' . Mage::getEdition() . ' Edition' . "\n";
|
179 |
+
$content .= "Qty of: Simple Products #$countSimpleProduct - Configurable Products: #$countConfigurableProduct - Grouped Product: #$countGroupedProduct";
|
180 |
+
|
181 |
+
return $this->writeFile($destination, 'magento_info.txt', $content);
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* @param $destination
|
186 |
+
* @return mixed
|
187 |
+
*/
|
188 |
+
public function getMagentoModules($destination)
|
189 |
+
{
|
190 |
+
$modules = (array) Mage::getConfig()->getModuleConfig();
|
191 |
+
|
192 |
+
$list = array();
|
193 |
+
foreach ($modules as $key => $module) {
|
194 |
+
$list[$key] = array('version' => $module->version, 'code_pool' => $module->codePool);
|
195 |
+
}
|
196 |
+
|
197 |
+
$content = new Varien_Object($list);
|
198 |
+
|
199 |
+
return $this->writeFile($destination, 'magento_modules.json', $content->toJson());
|
200 |
+
}
|
201 |
+
|
202 |
+
/**
|
203 |
+
* @param $destination
|
204 |
+
* @param $content
|
205 |
+
* @return mixed
|
206 |
+
* @throws Exception
|
207 |
+
*/
|
208 |
+
public function writeFile($destination, $filename, $content, $csv = false)
|
209 |
+
{
|
210 |
+
$file = $destination . DS . $filename;
|
211 |
+
$ioFile = new Varien_Io_File();
|
212 |
+
$ioFile->cd($destination);
|
213 |
+
$ioFile->streamOpen($file);
|
214 |
+
if ($csv) {
|
215 |
+
foreach ($content as $row) {
|
216 |
+
$ioFile->streamWriteCsv($row);
|
217 |
+
}
|
218 |
+
} else {
|
219 |
+
$ioFile->streamWrite($content);
|
220 |
+
}
|
221 |
+
$ioFile->streamClose();
|
222 |
+
|
223 |
+
return $file;
|
224 |
+
}
|
225 |
+
|
226 |
+
/**
|
227 |
+
* @return array|mixed
|
228 |
+
*/
|
229 |
+
public function getPhpInfoArray()
|
230 |
+
{
|
231 |
+
try {
|
232 |
+
|
233 |
+
ob_start();
|
234 |
+
phpinfo(INFO_ALL);
|
235 |
+
|
236 |
+
$pi = preg_replace(
|
237 |
+
array(
|
238 |
+
'#^.*<body>(.*)</body>.*$#m', '#<h2>PHP License</h2>.*$#ms',
|
239 |
+
'#<h1>Configuration</h1>#', "#\r?\n#", "#</(h1|h2|h3|tr)>#", '# +<#',
|
240 |
+
"#[ \t]+#", '# #', '# +#', '# class=".*?"#', '%'%',
|
241 |
+
'#<tr>(?:.*?)" src="(?:.*?)=(.*?)" alt="PHP Logo" /></a><h1>PHP Version (.*?)</h1>(?:\n+?)</td></tr>#',
|
242 |
+
'#<h1><a href="(?:.*?)\?=(.*?)">PHP Credits</a></h1>#',
|
243 |
+
'#<tr>(?:.*?)" src="(?:.*?)=(.*?)"(?:.*?)Zend Engine (.*?),(?:.*?)</tr>#',
|
244 |
+
"# +#", '#<tr>#', '#</tr>#'),
|
245 |
+
array(
|
246 |
+
'$1', '', '', '', '</$1>' . "\n", '<', ' ', ' ', ' ', '', ' ',
|
247 |
+
'<h2>PHP Configuration</h2>'."\n".'<tr><td>PHP Version</td><td>$2</td></tr>'.
|
248 |
+
"\n".'<tr><td>PHP Egg</td><td>$1</td></tr>',
|
249 |
+
'<tr><td>PHP Credits Egg</td><td>$1</td></tr>',
|
250 |
+
'<tr><td>Zend Engine</td><td>$2</td></tr>' . "\n" .
|
251 |
+
'<tr><td>Zend Egg</td><td>$1</td></tr>', ' ', '%S%', '%E%'
|
252 |
+
), ob_get_clean()
|
253 |
+
);
|
254 |
+
|
255 |
+
$sections = explode('<h2>', strip_tags($pi, '<h2><th><td>'));
|
256 |
+
unset($sections[0]);
|
257 |
+
|
258 |
+
$pi = array();
|
259 |
+
foreach ($sections as $section) {
|
260 |
+
$n = substr($section, 0, strpos($section, '</h2>'));
|
261 |
+
preg_match_all(
|
262 |
+
'#%S%(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?%E%#',
|
263 |
+
$section,
|
264 |
+
$askapache,
|
265 |
+
PREG_SET_ORDER
|
266 |
+
);
|
267 |
+
foreach ($askapache as $m) {
|
268 |
+
if (!isset($m[0]) || !isset($m[1]) || !isset($m[2])) {
|
269 |
+
continue;
|
270 |
+
}
|
271 |
+
$pi[$n][$m[1]]=(!isset($m[3])||$m[2]==$m[3])?$m[2]:array_slice($m,2);
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
} catch (Exception $exception) {
|
276 |
+
return array();
|
277 |
+
}
|
278 |
+
|
279 |
+
return $pi;
|
280 |
+
}
|
281 |
+
|
282 |
+
public function sendConfigurationFile($content, $filename = 'ricardo_support.tar.gz', $replyTo = '', $message = '')
|
283 |
+
{
|
284 |
+
$template = 'ricento_support';
|
285 |
+
|
286 |
+
try {
|
287 |
+
if (! Mage::getConfig()->getNode(Mage_Core_Model_Email_Template::XML_PATH_TEMPLATE_EMAIL . '/' . $template)) {
|
288 |
+
Mage::throwException(Mage::helper('diglin_ricento')->__('Wrong transactional support email template.'));
|
289 |
+
}
|
290 |
+
|
291 |
+
$recipient = array(
|
292 |
+
'name' => 'Support Diglin',
|
293 |
+
'email' => $this->getSupportEmail()
|
294 |
+
);
|
295 |
+
|
296 |
+
$translate = Mage::getSingleton('core/translate');
|
297 |
+
$translate->setTranslateInline(false);
|
298 |
+
|
299 |
+
/* @var $emailTemplate Mage_Core_Model_Email_Template */
|
300 |
+
$emailTemplate = Mage::getModel('core/email_template')
|
301 |
+
->setDesignConfig(array('area' => 'adminhtml', 'store' => 0));
|
302 |
+
|
303 |
+
if (!empty($replyTo)) {
|
304 |
+
$emailTemplate
|
305 |
+
->setReplyTo($replyTo)
|
306 |
+
->setReturnPath($replyTo);
|
307 |
+
}
|
308 |
+
|
309 |
+
$variables = array(
|
310 |
+
'shopname' => Mage::getBaseUrl(),
|
311 |
+
'message' => $message
|
312 |
+
);
|
313 |
+
|
314 |
+
$attachment = $emailTemplate->getMail()->createAttachment($content);
|
315 |
+
$attachment->type = 'application/octet-stream';
|
316 |
+
$attachment->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
|
317 |
+
$attachment->encoding = Zend_Mime::ENCODING_BASE64;
|
318 |
+
$attachment->filename = $filename;
|
319 |
+
|
320 |
+
$emailTemplate->sendTransactional($template, // xml path email template
|
321 |
+
Mage::getStoreConfig('contacts/email/sender_email_identity'),//sender - normally general contact
|
322 |
+
$recipient['email'],
|
323 |
+
$recipient['name'],
|
324 |
+
$variables,
|
325 |
+
0);
|
326 |
+
|
327 |
+
$translate->setTranslateInline(true);
|
328 |
+
|
329 |
+
} catch (Exception $e) {
|
330 |
+
Mage::logException($e);
|
331 |
+
}
|
332 |
+
|
333 |
+
return;
|
334 |
+
}
|
335 |
+
|
336 |
+
public function getSupportEmail()
|
337 |
+
{
|
338 |
+
return str_replace('[/at/]', '@', Mage::getStoreConfig('support/email'));
|
339 |
+
}
|
340 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -15,6 +15,7 @@
|
|
15 |
class Diglin_Ricento_Helper_Tools extends Mage_Core_Helper_Abstract
|
16 |
{
|
17 |
const XML_PATH_EMAIL_NOTIFICATION_TEMPLATE = 'system/messages/notification_email_template';
|
|
|
18 |
const XML_PATH_PM_EMAIL_TEMPLATE = 'system/messages/pm_email_template';
|
19 |
|
20 |
/**
|
@@ -59,6 +60,20 @@ class Diglin_Ricento_Helper_Tools extends Mage_Core_Helper_Abstract
|
|
59 |
);
|
60 |
}
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
/**
|
63 |
* Send a notification email to the customer or the shop managers
|
64 |
*
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
15 |
class Diglin_Ricento_Helper_Tools extends Mage_Core_Helper_Abstract
|
16 |
{
|
17 |
const XML_PATH_EMAIL_NOTIFICATION_TEMPLATE = 'system/messages/notification_email_template';
|
18 |
+
const XML_PATH_TOKEN_EXPIRATION_TEMPLATE = 'system/messages/token_expiration_email_template';
|
19 |
const XML_PATH_PM_EMAIL_TEMPLATE = 'system/messages/pm_email_template';
|
20 |
|
21 |
/**
|
60 |
);
|
61 |
}
|
62 |
|
63 |
+
/**
|
64 |
+
* @param array $variables
|
65 |
+
*/
|
66 |
+
public static function sendMerchantAuthorizationNotification(array $variables)
|
67 |
+
{
|
68 |
+
self::sendNotification(
|
69 |
+
Mage::getStoreConfig('contacts/email/sender_email_identity'), // e.g. 'general'
|
70 |
+
'support',
|
71 |
+
Mage::getStoreConfig(self::XML_PATH_TOKEN_EXPIRATION_TEMPLATE),
|
72 |
+
$variables,
|
73 |
+
Mage::app()->getStore()->getId()
|
74 |
+
);
|
75 |
+
}
|
76 |
+
|
77 |
/**
|
78 |
* Send a notification email to the customer or the shop managers
|
79 |
*
|
Binary file
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -165,15 +165,15 @@ abstract class Diglin_Ricento_Model_Api_Services_Abstract extends Varien_Object
|
|
165 |
{
|
166 |
$data = array();
|
167 |
$helper = Mage::helper('diglin_ricento');
|
168 |
-
$key = $this->_underscore(substr($method,3));
|
169 |
$cacheKey = $key . Mage::registry('ricardo_api_lang');
|
170 |
$profilerName = $this->_profilerPrefix . strtoupper($key);
|
171 |
$serviceModel = $this->getServiceModel();
|
172 |
|
173 |
try {
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
|
178 |
Varien_Profiler::start($profilerName);
|
179 |
|
@@ -198,11 +198,8 @@ abstract class Diglin_Ricento_Model_Api_Services_Abstract extends Varien_Object
|
|
198 |
Varien_Profiler::stop($profilerName);
|
199 |
|
200 |
return $data;
|
201 |
-
|
202 |
-
|
203 |
-
case 'set':
|
204 |
-
if (method_exists($serviceModel, $method) && is_callable(array($serviceModel, $method), true)) {
|
205 |
-
|
206 |
Varien_Profiler::start($profilerName);
|
207 |
|
208 |
$this->_prepareCredentialToken();
|
@@ -214,11 +211,8 @@ abstract class Diglin_Ricento_Model_Api_Services_Abstract extends Varien_Object
|
|
214 |
Varien_Profiler::stop($profilerName);
|
215 |
|
216 |
return $this;
|
217 |
-
|
218 |
-
|
219 |
-
default:
|
220 |
-
if (method_exists($serviceModel, $method) && is_callable(array($serviceModel, $method), true)) {
|
221 |
-
|
222 |
Varien_Profiler::start($profilerName);
|
223 |
|
224 |
$this->_prepareCredentialToken();
|
@@ -230,8 +224,8 @@ abstract class Diglin_Ricento_Model_Api_Services_Abstract extends Varien_Object
|
|
230 |
Varien_Profiler::stop($profilerName);
|
231 |
|
232 |
return $data;
|
233 |
-
|
234 |
-
|
235 |
}
|
236 |
} catch (\Diglin\Ricardo\Exceptions\CurlException $e) {
|
237 |
Mage::logException($e);
|
@@ -252,7 +246,7 @@ abstract class Diglin_Ricento_Model_Api_Services_Abstract extends Varien_Object
|
|
252 |
*/
|
253 |
public function setCanUseCache($canUseCache)
|
254 |
{
|
255 |
-
$this->_canUseCache = (bool)
|
256 |
return $this;
|
257 |
}
|
258 |
|
@@ -372,8 +366,8 @@ abstract class Diglin_Ricento_Model_Api_Services_Abstract extends Varien_Object
|
|
372 |
->setWebsiteId($this->getCurrentWebsite()->getId())
|
373 |
->setTokenType(ServiceAbstract::TOKEN_TYPE_TEMPORARY)
|
374 |
->setExpirationDate(
|
375 |
-
|
376 |
-
|
377 |
->save();
|
378 |
|
379 |
return $this;
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
165 |
{
|
166 |
$data = array();
|
167 |
$helper = Mage::helper('diglin_ricento');
|
168 |
+
$key = $this->_underscore(substr($method, 3));
|
169 |
$cacheKey = $key . Mage::registry('ricardo_api_lang');
|
170 |
$profilerName = $this->_profilerPrefix . strtoupper($key);
|
171 |
$serviceModel = $this->getServiceModel();
|
172 |
|
173 |
try {
|
174 |
+
if (method_exists($serviceModel, $method) && is_callable(array($serviceModel, $method), true)) {
|
175 |
+
switch (substr($method, 0, 3)) {
|
176 |
+
case 'get' :
|
177 |
|
178 |
Varien_Profiler::start($profilerName);
|
179 |
|
198 |
Varien_Profiler::stop($profilerName);
|
199 |
|
200 |
return $data;
|
201 |
+
break;
|
202 |
+
case 'set':
|
|
|
|
|
|
|
203 |
Varien_Profiler::start($profilerName);
|
204 |
|
205 |
$this->_prepareCredentialToken();
|
211 |
Varien_Profiler::stop($profilerName);
|
212 |
|
213 |
return $this;
|
214 |
+
break;
|
215 |
+
default:
|
|
|
|
|
|
|
216 |
Varien_Profiler::start($profilerName);
|
217 |
|
218 |
$this->_prepareCredentialToken();
|
224 |
Varien_Profiler::stop($profilerName);
|
225 |
|
226 |
return $data;
|
227 |
+
break;
|
228 |
+
}
|
229 |
}
|
230 |
} catch (\Diglin\Ricardo\Exceptions\CurlException $e) {
|
231 |
Mage::logException($e);
|
246 |
*/
|
247 |
public function setCanUseCache($canUseCache)
|
248 |
{
|
249 |
+
$this->_canUseCache = (bool)$canUseCache;
|
250 |
return $this;
|
251 |
}
|
252 |
|
366 |
->setWebsiteId($this->getCurrentWebsite()->getId())
|
367 |
->setTokenType(ServiceAbstract::TOKEN_TYPE_TEMPORARY)
|
368 |
->setExpirationDate(
|
369 |
+
Mage::helper('diglin_ricento/api')->calculateSessionExpirationDate($security->getCredentialTokenSessionDuration(), $security->getCredentialTokenSessionStart())
|
370 |
+
)
|
371 |
->save();
|
372 |
|
373 |
return $this;
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Model_Api_Services_Search
|
14 |
+
*/
|
15 |
+
class Diglin_Ricento_Model_Api_Services_Search extends Diglin_Ricento_Model_Api_Services_Abstract
|
16 |
+
{
|
17 |
+
/**
|
18 |
+
* @var string
|
19 |
+
*/
|
20 |
+
protected $_serviceName = 'search';
|
21 |
+
|
22 |
+
/**
|
23 |
+
* @var string
|
24 |
+
*/
|
25 |
+
protected $_model = '\Diglin\Ricardo\Managers\Search';
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Overwritten just to get the class/method auto completion
|
29 |
+
* Be aware that using directly this method to use the methods of the object instead of using
|
30 |
+
* the magic methods of the abstract (__call, __get, __set) will prevent to use the cache of Magento
|
31 |
+
* but also some logic related to the secure token
|
32 |
+
*
|
33 |
+
* @return \Diglin\Ricardo\Managers\Search
|
34 |
+
*/
|
35 |
+
public function getServiceModel()
|
36 |
+
{
|
37 |
+
return parent::getServiceModel();
|
38 |
+
}
|
39 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,10 +5,20 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
/**
|
13 |
* Class Diglin_Ricento_Model_Api_Services_Sell
|
14 |
*/
|
@@ -54,6 +64,7 @@ class Diglin_Ricento_Model_Api_Services_Sell extends Diglin_Ricento_Model_Api_Se
|
|
54 |
public function insertArticle(Diglin_Ricento_Model_Products_Listing_Item $item)
|
55 |
{
|
56 |
$articleResult = array();
|
|
|
57 |
|
58 |
try {
|
59 |
$start = microtime(true);
|
@@ -64,15 +75,13 @@ class Diglin_Ricento_Model_Api_Services_Sell extends Diglin_Ricento_Model_Api_Se
|
|
64 |
if (Mage::helper('diglin_ricento')->isDebugEnabled()) {
|
65 |
Mage::log('Time to insert article ' . (microtime(true) - $start) . ' sec', Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE);
|
66 |
}
|
67 |
-
} catch (
|
68 |
-
|
69 |
-
Mage::logException($e);
|
70 |
-
|
71 |
-
if (Mage::helper('diglin_ricento')->isDebugEnabled()) {
|
72 |
$insertArticle->setPictures(null, true); // remove picture otherwise log is extremely long
|
73 |
-
Mage::log($insertArticle->getDataProperties(), Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE);
|
74 |
}
|
75 |
-
|
|
|
76 |
$this->_handleSecurityException($e);
|
77 |
}
|
78 |
|
@@ -81,36 +90,35 @@ class Diglin_Ricento_Model_Api_Services_Sell extends Diglin_Ricento_Model_Api_Se
|
|
81 |
return $articleResult;
|
82 |
}
|
83 |
|
84 |
-
public function updateArticle(Diglin_Ricento_Model_Products_Listing_Item $item)
|
85 |
-
{
|
86 |
-
// @todo when needed
|
87 |
-
return $this;
|
88 |
-
}
|
89 |
-
|
90 |
/**
|
91 |
-
*
|
92 |
-
*
|
93 |
-
* @
|
94 |
-
* @
|
95 |
*/
|
96 |
-
public function
|
97 |
{
|
98 |
-
$
|
99 |
-
|
100 |
-
if (!$item->getRicardoArticleId() || $item->getIsPlanned()) {
|
101 |
-
return false;
|
102 |
-
}
|
103 |
|
104 |
try {
|
105 |
-
$
|
106 |
|
107 |
-
|
108 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
Mage::logException($e);
|
|
|
110 |
$this->_handleSecurityException($e);
|
111 |
}
|
112 |
|
113 |
-
|
|
|
|
|
114 |
}
|
115 |
|
116 |
/**
|
@@ -141,22 +149,22 @@ class Diglin_Ricento_Model_Api_Services_Sell extends Diglin_Ricento_Model_Api_Se
|
|
141 |
|
142 |
/**
|
143 |
* Ricardo API is special here - if article is closed, returned values may be empty !!!
|
144 |
-
* If it's closed/deleted or an error occurred, an exception is triggered
|
145 |
*/
|
146 |
if (isset($result['IsClosed'])) {
|
147 |
unset($parameter);
|
148 |
return true;
|
149 |
}
|
150 |
-
} catch (
|
151 |
-
$this->_updateCredentialToken();
|
152 |
Mage::logException($e);
|
|
|
153 |
|
154 |
try {
|
155 |
$this->_handleSecurityException($e);
|
156 |
-
} catch (
|
157 |
switch ($e->getCode()) {
|
158 |
-
case
|
159 |
-
case
|
160 |
return false;
|
161 |
default:
|
162 |
break;
|
@@ -167,4 +175,116 @@ class Diglin_Ricento_Model_Api_Services_Sell extends Diglin_Ricento_Model_Api_Se
|
|
167 |
|
168 |
return false;
|
169 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\GetArticlesFeeParameter;
|
13 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticlesParameter;
|
14 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticlesParameter;
|
15 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\ClosePlannedArticleParameter;
|
16 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticlesParameter;
|
17 |
+
|
18 |
+
use Diglin\Ricardo\Exceptions\ExceptionAbstract;
|
19 |
+
use Diglin\Ricardo\Exceptions\GeneralException;
|
20 |
+
use Diglin\Ricardo\Enums\GeneralErrors;
|
21 |
+
|
22 |
/**
|
23 |
* Class Diglin_Ricento_Model_Api_Services_Sell
|
24 |
*/
|
64 |
public function insertArticle(Diglin_Ricento_Model_Products_Listing_Item $item)
|
65 |
{
|
66 |
$articleResult = array();
|
67 |
+
$insertArticle = null;
|
68 |
|
69 |
try {
|
70 |
$start = microtime(true);
|
75 |
if (Mage::helper('diglin_ricento')->isDebugEnabled()) {
|
76 |
Mage::log('Time to insert article ' . (microtime(true) - $start) . ' sec', Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE);
|
77 |
}
|
78 |
+
} catch (ExceptionAbstract $e) {
|
79 |
+
if (Mage::helper('diglin_ricento')->isDebugEnabled() && $insertArticle instanceof InsertArticlesParameter) {
|
|
|
|
|
|
|
80 |
$insertArticle->setPictures(null, true); // remove picture otherwise log is extremely long
|
81 |
+
Mage::log($insertArticle->getDataProperties(), Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
82 |
}
|
83 |
+
Mage::logException($e);
|
84 |
+
$this->_updateCredentialToken();
|
85 |
$this->_handleSecurityException($e);
|
86 |
}
|
87 |
|
90 |
return $articleResult;
|
91 |
}
|
92 |
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
/**
|
94 |
+
* @param InsertArticlesParameter $insertArticlesParameter
|
95 |
+
* @return array
|
96 |
+
* @throws Diglin_Ricento_Exception
|
97 |
+
* @throws Exception
|
98 |
*/
|
99 |
+
public function insertArticles(InsertArticlesParameter $insertArticlesParameter)
|
100 |
{
|
101 |
+
$articlesResult = array();
|
|
|
|
|
|
|
|
|
102 |
|
103 |
try {
|
104 |
+
$start = microtime(true);
|
105 |
|
106 |
+
$insertArticlesParameter->setAntiforgeryToken($this->getServiceManager()->getSecurityManager()->getAntiforgeryToken());
|
107 |
+
$articlesResult = parent::insertArticles($insertArticlesParameter);
|
108 |
+
|
109 |
+
if (Mage::helper('diglin_ricento')->isDebugEnabled()) {
|
110 |
+
Mage::log('Time to insert the articles ' . (microtime(true) - $start) . ' sec', Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
111 |
+
Mage::log('Max Memory Usage ' . Mage::helper('diglin_ricento')->getMemoryUsage() . ' bytes', Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
112 |
+
}
|
113 |
+
} catch (ExceptionAbstract $e) {
|
114 |
Mage::logException($e);
|
115 |
+
$this->_updateCredentialToken();
|
116 |
$this->_handleSecurityException($e);
|
117 |
}
|
118 |
|
119 |
+
unset($insertArticlesParameter);
|
120 |
+
|
121 |
+
return $articlesResult;
|
122 |
}
|
123 |
|
124 |
/**
|
149 |
|
150 |
/**
|
151 |
* Ricardo API is special here - if article is closed, returned values may be empty !!!
|
152 |
+
* If it's not closed/deleted or an error occurred, an exception is triggered
|
153 |
*/
|
154 |
if (isset($result['IsClosed'])) {
|
155 |
unset($parameter);
|
156 |
return true;
|
157 |
}
|
158 |
+
} catch (ExceptionAbstract $e) {
|
|
|
159 |
Mage::logException($e);
|
160 |
+
$this->_updateCredentialToken();
|
161 |
|
162 |
try {
|
163 |
$this->_handleSecurityException($e);
|
164 |
+
} catch (GeneralException $e) {
|
165 |
switch ($e->getCode()) {
|
166 |
+
case GeneralErrors::DELETEPLANNEDFAILED:
|
167 |
+
case GeneralErrors::CLOSEAUCTIONFAILED:
|
168 |
return false;
|
169 |
default:
|
170 |
break;
|
175 |
|
176 |
return false;
|
177 |
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* @param array $articles
|
181 |
+
* @param int $websiteId
|
182 |
+
* @return array|bool
|
183 |
+
* @throws Diglin_Ricento_Exception
|
184 |
+
* @throws Exception
|
185 |
+
* @throws \Diglin\Ricardo\Exceptions\GeneralException
|
186 |
+
*/
|
187 |
+
public function stopArticles(array $articles, $websiteId = 0)
|
188 |
+
{
|
189 |
+
$helperApi = Mage::helper('diglin_ricento/api');
|
190 |
+
$results = array();
|
191 |
+
|
192 |
+
if (isset($articles['planned']) && count($articles['planned'])) {
|
193 |
+
$deletePlannedArticlesParameter = new DeletePlannedArticlesParameter();
|
194 |
+
$deletePlannedArticlesParameter
|
195 |
+
->setAntiforgeryToken($helperApi->getAntiforgeryToken($websiteId));
|
196 |
+
|
197 |
+
foreach ($articles['planned'] as $article) {
|
198 |
+
$closePlanned = new ClosePlannedArticleParameter();
|
199 |
+
$closePlanned->setPlannedArticleId($article);
|
200 |
+
$deletePlannedArticlesParameter->setArticles($closePlanned);
|
201 |
+
}
|
202 |
+
|
203 |
+
try {
|
204 |
+
$results = parent::deletePlannedArticles($deletePlannedArticlesParameter);
|
205 |
+
} catch (ExceptionAbstract $e) {
|
206 |
+
Mage::logException($e);
|
207 |
+
$this->_updateCredentialToken();
|
208 |
+
|
209 |
+
try {
|
210 |
+
$this->_handleSecurityException($e);
|
211 |
+
} catch (GeneralException $e) {
|
212 |
+
switch ($e->getCode()) {
|
213 |
+
case GeneralErrors::DELETEPLANNEDFAILED:
|
214 |
+
case GeneralErrors::CLOSEAUCTIONFAILED:
|
215 |
+
return false;
|
216 |
+
default:
|
217 |
+
break;
|
218 |
+
}
|
219 |
+
throw $e;
|
220 |
+
}
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
if (isset($articles['live']) && count($articles['live'])) {
|
225 |
+
$closesParameter = new CloseArticlesParameter();
|
226 |
+
$closesParameter
|
227 |
+
->setAntiforgeryToken($helperApi->getAntiforgeryToken($websiteId));
|
228 |
+
|
229 |
+
foreach ($articles['live'] as $article) {
|
230 |
+
$closesParameter->setArticleIds($article);
|
231 |
+
}
|
232 |
+
|
233 |
+
try {
|
234 |
+
$results = array_merge($results, parent::closeArticles($closesParameter));
|
235 |
+
} catch (\Diglin\Ricardo\Exceptions\ExceptionAbstract $e) {
|
236 |
+
Mage::logException($e);
|
237 |
+
$this->_updateCredentialToken();
|
238 |
+
|
239 |
+
try {
|
240 |
+
$this->_handleSecurityException($e);
|
241 |
+
} catch (GeneralException $e) {
|
242 |
+
switch ($e->getCode()) {
|
243 |
+
case GeneralErrors::DELETEPLANNEDFAILED:
|
244 |
+
case GeneralErrors::CLOSEAUCTIONFAILED:
|
245 |
+
return false;
|
246 |
+
default:
|
247 |
+
break;
|
248 |
+
}
|
249 |
+
throw $e;
|
250 |
+
}
|
251 |
+
}
|
252 |
+
}
|
253 |
+
|
254 |
+
return $results;
|
255 |
+
}
|
256 |
+
|
257 |
+
/**
|
258 |
+
* @param array $articlesDetails of Diglin\Ricardo\Managers\Sell\Parameter\GetArticleFeeParameter
|
259 |
+
* @return bool | array
|
260 |
+
* @throws Diglin_Ricento_Exception
|
261 |
+
* @throws Exception
|
262 |
+
*/
|
263 |
+
public function getArticlesFee(array $articlesDetails)
|
264 |
+
{
|
265 |
+
try {
|
266 |
+
if (empty($articlesDetails)) {
|
267 |
+
return false;
|
268 |
+
}
|
269 |
+
|
270 |
+
$articlesFeeParameter = new GetArticlesFeeParameter();
|
271 |
+
|
272 |
+
/* @var $articlesDetail Diglin\Ricardo\Managers\Sell\Parameter\GetArticleFeeParameter */
|
273 |
+
foreach ($articlesDetails as $articlesDetail) {
|
274 |
+
$articlesFeeParameter->setArticlesDetails($articlesDetail);
|
275 |
+
}
|
276 |
+
|
277 |
+
$this->setCanUseCache(false);
|
278 |
+
$fees = parent::getArticlesFee($articlesFeeParameter);
|
279 |
+
$this->setCanUseCache(true);
|
280 |
+
|
281 |
+
return $fees;
|
282 |
+
} catch (ExceptionAbstract $e) {
|
283 |
+
Mage::logException($e);
|
284 |
+
$this->_updateCredentialToken();
|
285 |
+
$this->_handleSecurityException($e);
|
286 |
+
}
|
287 |
+
|
288 |
+
return false;
|
289 |
+
}
|
290 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -15,17 +15,19 @@
|
|
15 |
* @method string getToken()
|
16 |
* @method string getTokenType()
|
17 |
* @method int getWebsiteId()
|
18 |
-
* @method string
|
19 |
* @method int getSessionDuration()
|
20 |
-
* @method string
|
21 |
-
* @method
|
22 |
-
* @method string
|
|
|
23 |
* @method Diglin_Ricento_Model_Api_Token setToken(string $token)
|
24 |
* @method Diglin_Ricento_Model_Api_Token setTokenType(string $tokenType)
|
25 |
* @method Diglin_Ricento_Model_Api_Token setWebsiteId(int $websiteId)
|
26 |
* @method Diglin_Ricento_Model_Api_Token setSessionDuration(int $sessionDuration)
|
27 |
* @method Diglin_Ricento_Model_Api_Token setExpirationDate(string $expirationDate)
|
28 |
* @method Diglin_Ricento_Model_Api_Token setSessionExpirationDate(string $expirationDate)
|
|
|
29 |
* @method Diglin_Ricento_Model_Api_Token setCreatedAt(string $createdAt)
|
30 |
* @method Diglin_Ricento_Model_Api_Token setUpdatedAt(string $updateAt)
|
31 |
*/
|
@@ -66,7 +68,7 @@ class Diglin_Ricento_Model_Api_Token extends Mage_Core_Model_Abstract
|
|
66 |
/**
|
67 |
* @param string $tokenType
|
68 |
* @param int $websiteId
|
69 |
-
* @return
|
70 |
*/
|
71 |
public function loadByWebsiteAndTokenType($tokenType = Security::TOKEN_TYPE_IDENTIFIED, $websiteId = 0)
|
72 |
{
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
15 |
* @method string getToken()
|
16 |
* @method string getTokenType()
|
17 |
* @method int getWebsiteId()
|
18 |
+
* @method string getExpirationDate()
|
19 |
* @method int getSessionDuration()
|
20 |
+
* @method string getSessionExpirationDate()
|
21 |
+
* @method int getMerchantNotified()
|
22 |
+
* @method string getCreatedAt()
|
23 |
+
* @method string getUpdatedAt()
|
24 |
* @method Diglin_Ricento_Model_Api_Token setToken(string $token)
|
25 |
* @method Diglin_Ricento_Model_Api_Token setTokenType(string $tokenType)
|
26 |
* @method Diglin_Ricento_Model_Api_Token setWebsiteId(int $websiteId)
|
27 |
* @method Diglin_Ricento_Model_Api_Token setSessionDuration(int $sessionDuration)
|
28 |
* @method Diglin_Ricento_Model_Api_Token setExpirationDate(string $expirationDate)
|
29 |
* @method Diglin_Ricento_Model_Api_Token setSessionExpirationDate(string $expirationDate)
|
30 |
+
* @method Diglin_Ricento_Model_Api_Token setMerchantNotified(int $merchantNotified)
|
31 |
* @method Diglin_Ricento_Model_Api_Token setCreatedAt(string $createdAt)
|
32 |
* @method Diglin_Ricento_Model_Api_Token setUpdatedAt(string $updateAt)
|
33 |
*/
|
68 |
/**
|
69 |
* @param string $tokenType
|
70 |
* @param int $websiteId
|
71 |
+
* @return Diglin_Ricento_Model_Api_Token
|
72 |
*/
|
73 |
public function loadByWebsiteAndTokenType($tokenType = Security::TOKEN_TYPE_IDENTIFIED, $websiteId = 0)
|
74 |
{
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -24,7 +24,7 @@ class Diglin_Ricento_Model_Config_Source_Sales_Promotion extends Diglin_Ricento_
|
|
24 |
public function toOptionHash()
|
25 |
{
|
26 |
if (empty($this->_promotions) && Mage::helper('diglin_ricento')->isConfigured()) {
|
27 |
-
$promotions = (array)
|
28 |
Mage::helper('diglin_ricento')->getJsonDate(), \Diglin\Ricardo\Enums\System\CategoryArticleType::ALL, 1, 1
|
29 |
);
|
30 |
|
@@ -34,7 +34,7 @@ class Diglin_Ricento_Model_Config_Source_Sales_Promotion extends Diglin_Ricento_
|
|
34 |
|
35 |
$websiteId = 0;
|
36 |
// Listing exists in a context of products listing edition
|
37 |
-
$listing =
|
38 |
if ($listing->getWebsiteId()) {
|
39 |
$websiteId = $listing->getWebsiteId();
|
40 |
}
|
@@ -45,7 +45,9 @@ class Diglin_Ricento_Model_Config_Source_Sales_Promotion extends Diglin_Ricento_
|
|
45 |
|
46 |
foreach ($promotions as $promotion) {
|
47 |
if ($promotion['GroupId'] == \Diglin\Ricardo\Enums\Article\PromotionCode::PREMIUMCATEGORY) {
|
48 |
-
$this->_promotions[$promotion['PromotionId']] = $helper->__($promotion['PromotionLabel'])
|
|
|
|
|
49 |
}
|
50 |
}
|
51 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
24 |
public function toOptionHash()
|
25 |
{
|
26 |
if (empty($this->_promotions) && Mage::helper('diglin_ricento')->isConfigured()) {
|
27 |
+
$promotions = (array)Mage::getSingleton('diglin_ricento/api_services_system')->getPromotions(
|
28 |
Mage::helper('diglin_ricento')->getJsonDate(), \Diglin\Ricardo\Enums\System\CategoryArticleType::ALL, 1, 1
|
29 |
);
|
30 |
|
34 |
|
35 |
$websiteId = 0;
|
36 |
// Listing exists in a context of products listing edition
|
37 |
+
$listing = Mage::registry('products_listing');
|
38 |
if ($listing->getWebsiteId()) {
|
39 |
$websiteId = $listing->getWebsiteId();
|
40 |
}
|
45 |
|
46 |
foreach ($promotions as $promotion) {
|
47 |
if ($promotion['GroupId'] == \Diglin\Ricardo\Enums\Article\PromotionCode::PREMIUMCATEGORY) {
|
48 |
+
$this->_promotions[$promotion['PromotionId']] = $helper->__($promotion['PromotionLabel'])
|
49 |
+
. ' - '
|
50 |
+
. implode(' / ', $helper->formatDoubleCurrency($promotion['PromotionFee'], $websiteId, Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY));
|
51 |
}
|
52 |
}
|
53 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Model_Config_Source_Sales_Reactivation extends Diglin_Ricento_Model_Config_Source_Abstract
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Model_Config_Source_Sales_Reactivation extends Diglin_Ricento_Model_Config_Source_Abstract
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -26,9 +26,8 @@ class Diglin_Ricento_Model_Config_Source_Sync_Type extends Diglin_Ricento_Model_
|
|
26 |
Diglin_Ricento_Model_Sync_Job::TYPE_LIST => $helper->__('List Job'),
|
27 |
Diglin_Ricento_Model_Sync_Job::TYPE_STOP => $helper->__('Stop List Job'),
|
28 |
Diglin_Ricento_Model_Sync_Job::TYPE_ORDER => $helper->__('Sync Order Job'),
|
29 |
-
|
30 |
-
|
31 |
-
Diglin_Ricento_Model_Sync_Job::TYPE_SYNCLIST => $helper->__('Sync List Job'),
|
32 |
);
|
33 |
}
|
34 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
26 |
Diglin_Ricento_Model_Sync_Job::TYPE_LIST => $helper->__('List Job'),
|
27 |
Diglin_Ricento_Model_Sync_Job::TYPE_STOP => $helper->__('Stop List Job'),
|
28 |
Diglin_Ricento_Model_Sync_Job::TYPE_ORDER => $helper->__('Sync Order Job'),
|
29 |
+
// Diglin_Ricento_Model_Sync_Job::TYPE_SYNCLIST => $helper->__('Sync List Job'), // Hide to user
|
30 |
+
// Diglin_Ricento_Model_Sync_Job::TYPE_CLOSED => $helper->__('Closed items'), // Hide to user
|
|
|
31 |
);
|
32 |
}
|
33 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -15,15 +15,14 @@
|
|
15 |
class Diglin_Ricento_Model_Cron
|
16 |
{
|
17 |
protected $_syncProcess = array(
|
18 |
-
//Diglin_Ricento_Model_Sync_Job::TYPE_CHECK_LIST, //** Check list before to sync to ricardo.ch - @deprecated move to Diglin_Ricento_Adminhtml_Products_ListingController to start quickly the check
|
19 |
Diglin_Ricento_Model_Sync_Job::TYPE_LIST, //** List to ricardo.ch
|
20 |
Diglin_Ricento_Model_Sync_Job::TYPE_STOP, //** Stop the list on ricardo.ch if needed
|
21 |
-
//Diglin_Ricento_Model_Sync_Job::TYPE_RELIST //** Relist to ricardo.ch
|
22 |
);
|
23 |
|
24 |
protected $_asyncProcess = array(
|
25 |
Diglin_Ricento_Model_Sync_Job::TYPE_SYNCLIST, //** Sync List before getting orders
|
26 |
-
Diglin_Ricento_Model_Sync_Job::TYPE_ORDER //** Get new orders
|
|
|
27 |
);
|
28 |
|
29 |
/**
|
@@ -31,19 +30,20 @@ class Diglin_Ricento_Model_Cron
|
|
31 |
*/
|
32 |
public function process()
|
33 |
{
|
34 |
-
|
|
|
35 |
return;
|
36 |
}
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
|
42 |
-
|
43 |
|
44 |
try {
|
45 |
foreach ($this->_syncProcess as $jobType) {
|
46 |
-
$this->
|
47 |
}
|
48 |
} catch (Exception $e) {
|
49 |
Mage::logException($e);
|
@@ -55,22 +55,25 @@ class Diglin_Ricento_Model_Cron
|
|
55 |
*/
|
56 |
public function async()
|
57 |
{
|
58 |
-
|
|
|
59 |
return;
|
60 |
}
|
61 |
|
62 |
-
|
|
|
|
|
|
|
|
|
63 |
|
64 |
try {
|
65 |
foreach ($this->_asyncProcess as $jobType) {
|
66 |
-
$this->
|
67 |
}
|
68 |
} catch (Exception $e) {
|
69 |
Mage::logException($e);
|
70 |
}
|
71 |
|
72 |
-
//** Cleanup
|
73 |
-
|
74 |
$this->_processCleanupJobs();
|
75 |
}
|
76 |
|
@@ -104,7 +107,7 @@ class Diglin_Ricento_Model_Cron
|
|
104 |
/**
|
105 |
* @return Diglin_Ricento_Model_Dispatcher
|
106 |
*/
|
107 |
-
|
108 |
{
|
109 |
return Mage::getSingleton('diglin_ricento/dispatcher');
|
110 |
}
|
@@ -113,8 +116,66 @@ class Diglin_Ricento_Model_Cron
|
|
113 |
* @param int $type
|
114 |
* @return $this
|
115 |
*/
|
116 |
-
|
117 |
{
|
118 |
return $this->_getDisptacher()->dispatch($type)->proceed();
|
119 |
}
|
120 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
15 |
class Diglin_Ricento_Model_Cron
|
16 |
{
|
17 |
protected $_syncProcess = array(
|
|
|
18 |
Diglin_Ricento_Model_Sync_Job::TYPE_LIST, //** List to ricardo.ch
|
19 |
Diglin_Ricento_Model_Sync_Job::TYPE_STOP, //** Stop the list on ricardo.ch if needed
|
|
|
20 |
);
|
21 |
|
22 |
protected $_asyncProcess = array(
|
23 |
Diglin_Ricento_Model_Sync_Job::TYPE_SYNCLIST, //** Sync List before getting orders
|
24 |
+
Diglin_Ricento_Model_Sync_Job::TYPE_ORDER, //** Get new orders
|
25 |
+
Diglin_Ricento_Model_Sync_Job::TYPE_CLOSED //** Close articles which are not anymore open
|
26 |
);
|
27 |
|
28 |
/**
|
30 |
*/
|
31 |
public function process()
|
32 |
{
|
33 |
+
$helper = Mage::helper('diglin_ricento');
|
34 |
+
if (!$helper->isEnabled() || $this->_isTokenExpired()) {
|
35 |
return;
|
36 |
}
|
37 |
|
38 |
+
if ($helper->getMemoryLimit() > 0 && $helper->getMemoryLimit() < 512) {
|
39 |
+
ini_set('memory_limit', '512M');
|
40 |
+
}
|
41 |
|
42 |
+
register_shutdown_function(array($this, 'handleError'));
|
43 |
|
44 |
try {
|
45 |
foreach ($this->_syncProcess as $jobType) {
|
46 |
+
$this->_dispatch($jobType);
|
47 |
}
|
48 |
} catch (Exception $e) {
|
49 |
Mage::logException($e);
|
55 |
*/
|
56 |
public function async()
|
57 |
{
|
58 |
+
$helper = Mage::helper('diglin_ricento');
|
59 |
+
if (!$helper->isEnabled() || $this->_isTokenExpired()) {
|
60 |
return;
|
61 |
}
|
62 |
|
63 |
+
if ($helper->getMemoryLimit() > 0 && $helper->getMemoryLimit() < 512) {
|
64 |
+
ini_set('memory_limit', '512M');
|
65 |
+
}
|
66 |
+
|
67 |
+
register_shutdown_function(array($this, 'handleError'));
|
68 |
|
69 |
try {
|
70 |
foreach ($this->_asyncProcess as $jobType) {
|
71 |
+
$this->_dispatch($jobType);
|
72 |
}
|
73 |
} catch (Exception $e) {
|
74 |
Mage::logException($e);
|
75 |
}
|
76 |
|
|
|
|
|
77 |
$this->_processCleanupJobs();
|
78 |
}
|
79 |
|
107 |
/**
|
108 |
* @return Diglin_Ricento_Model_Dispatcher
|
109 |
*/
|
110 |
+
private function _getDisptacher()
|
111 |
{
|
112 |
return Mage::getSingleton('diglin_ricento/dispatcher');
|
113 |
}
|
116 |
* @param int $type
|
117 |
* @return $this
|
118 |
*/
|
119 |
+
private function _dispatch($type)
|
120 |
{
|
121 |
return $this->_getDisptacher()->dispatch($type)->proceed();
|
122 |
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* @return bool
|
126 |
+
*/
|
127 |
+
private function _isTokenExpired()
|
128 |
+
{
|
129 |
+
$helper = Mage::helper('diglin_ricento/api');
|
130 |
+
|
131 |
+
// @todo in case of real multi website support, add website parameter
|
132 |
+
|
133 |
+
if ($helper->apiTokenCredentialValidation() && !$helper->isMerchantNotifiedApiAuthorization()) {
|
134 |
+
$helperTools = Mage::helper('diglin_ricento/tools');
|
135 |
+
$helperTools->sendMerchantAuthorizationNotification(array(
|
136 |
+
'shop_url' => Mage::helper('adminhtml')->getUrl('adminhtml')
|
137 |
+
));
|
138 |
+
|
139 |
+
/* @var $token Diglin_Ricento_Model_Api_Token */
|
140 |
+
$token = Mage::getModel('diglin_ricento/api_token')
|
141 |
+
->loadByWebsiteAndTokenType(Diglin\Ricardo\Services\Security::TOKEN_TYPE_IDENTIFIED, Mage::app()->getWebsite()->getId());
|
142 |
+
|
143 |
+
if ($token->getId()) {
|
144 |
+
$token
|
145 |
+
->setMerchantNotified(1)
|
146 |
+
->save();
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
if ($helper->apiExpired()) {
|
151 |
+
return true;
|
152 |
+
}
|
153 |
+
|
154 |
+
return false;
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Handle Error in case of "ghosts" PHP error
|
159 |
+
*
|
160 |
+
* @return $this
|
161 |
+
*/
|
162 |
+
public function handleError()
|
163 |
+
{
|
164 |
+
$error = error_get_last();
|
165 |
+
|
166 |
+
if( $error !== NULL) {
|
167 |
+
if (function_exists('mageDebugBacktrace')) {
|
168 |
+
$error = array_merge($error, (array) mageDebugBacktrace(false, false));
|
169 |
+
}
|
170 |
+
|
171 |
+
// $errno = $error["type"];
|
172 |
+
// $errfile = $error["file"];
|
173 |
+
// $errline = $error["line"];
|
174 |
+
// $errstr = $error["message"];
|
175 |
+
|
176 |
+
Mage::log(print_r($error, true), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
177 |
+
}
|
178 |
+
|
179 |
+
return $this;
|
180 |
+
}
|
181 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -96,6 +96,11 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
96 |
*/
|
97 |
protected $_totalError = 0;
|
98 |
|
|
|
|
|
|
|
|
|
|
|
99 |
/**
|
100 |
* @return $this
|
101 |
*/
|
@@ -160,7 +165,8 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
160 |
$itemCollection
|
161 |
->addFieldToFilter('status', array('in' => $statuses))
|
162 |
->addFieldToFilter('products_listing_id', array('eq' => $this->_productsListingId))
|
163 |
-
->addFieldToFilter('item_id', array('gt' => (int) $lastItemId))
|
|
|
164 |
|
165 |
if ($this->_limit) {
|
166 |
$itemCollection->setPageSize($this->_limit);
|
@@ -192,6 +198,8 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
192 |
$this->_currentJobListing = Mage::getModel('diglin_ricento/sync_job_listing')->load($this->_currentJob->getId(), 'job_id');
|
193 |
$this->_productsListingId = (int) $this->_currentJobListing->getProductsListingId();
|
194 |
$this->_totalProceed = (int) $this->_currentJobListing->getTotalProceed();
|
|
|
|
|
195 |
|
196 |
if (!$this->_productsListingId) {
|
197 |
return $this;
|
@@ -219,7 +227,7 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
219 |
$end = microtime(true);
|
220 |
|
221 |
if ($helper->isDebugEnabled()) {
|
222 |
-
Mage::log('Time to run the job id ' . $this->_currentJob->getId() . ' in ' . ($end - $start) . ' sec', Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE);
|
223 |
}
|
224 |
|
225 |
if ($this->_jobHasError || $this->_currentJob->getJobStatus() == Diglin_Ricento_Model_Sync_Job::STATUS_ERROR) {
|
@@ -244,6 +252,8 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
244 |
|
245 |
$this->_currentJobListing
|
246 |
->setLastItemId(null)
|
|
|
|
|
247 |
->setTotalProceed($this->_totalProceed)
|
248 |
->save();
|
249 |
|
@@ -286,7 +296,7 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
286 |
$this->_jobHasWarning = false;
|
287 |
}
|
288 |
} catch (Exception $e) {
|
289 |
-
Mage::log("\n" . $e->__toString(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE);
|
290 |
$this->_currentJob = (isset($this->_currentJob)) ? $this->_currentJob : null;
|
291 |
$this->_setJobError($e);
|
292 |
}
|
@@ -400,10 +410,10 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
400 |
*/
|
401 |
protected function _handleException(Exception $e, $lastService = null)
|
402 |
{
|
403 |
-
Mage::log("\n" . $e->__toString(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE);
|
404 |
|
405 |
if ($lastService instanceof Diglin_Ricento_Model_Api_Services_Abstract) {
|
406 |
-
Mage::log($lastService->getLastApiDebug(), Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE);
|
407 |
}
|
408 |
|
409 |
$message = $this->_getHelper()->__($e->getMessage());
|
@@ -420,6 +430,26 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
420 |
return $this;
|
421 |
}
|
422 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
423 |
/**
|
424 |
* @param int $productsListingId
|
425 |
* @return $this
|
@@ -476,4 +506,16 @@ abstract class Diglin_Ricento_Model_Dispatcher_Abstract
|
|
476 |
->setCanUseCache(false)
|
477 |
->setCurrentWebsite($this->_getListing()->getWebsiteId());
|
478 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
479 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
96 |
*/
|
97 |
protected $_totalError = 0;
|
98 |
|
99 |
+
/**
|
100 |
+
* @var null | Mage_Directory_Model_Currency
|
101 |
+
*/
|
102 |
+
protected $_currency = null;
|
103 |
+
|
104 |
/**
|
105 |
* @return $this
|
106 |
*/
|
165 |
$itemCollection
|
166 |
->addFieldToFilter('status', array('in' => $statuses))
|
167 |
->addFieldToFilter('products_listing_id', array('eq' => $this->_productsListingId))
|
168 |
+
->addFieldToFilter('item_id', array('gt' => (int) $lastItemId))
|
169 |
+
->addFieldToFilter('type', array('nin' => Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE));
|
170 |
|
171 |
if ($this->_limit) {
|
172 |
$itemCollection->setPageSize($this->_limit);
|
198 |
$this->_currentJobListing = Mage::getModel('diglin_ricento/sync_job_listing')->load($this->_currentJob->getId(), 'job_id');
|
199 |
$this->_productsListingId = (int) $this->_currentJobListing->getProductsListingId();
|
200 |
$this->_totalProceed = (int) $this->_currentJobListing->getTotalProceed();
|
201 |
+
$this->_totalSuccess = (int) $this->_currentJobListing->getTotalSuccess();
|
202 |
+
$this->_totalError = (int) $this->_currentJobListing->getTotalError();
|
203 |
|
204 |
if (!$this->_productsListingId) {
|
205 |
return $this;
|
227 |
$end = microtime(true);
|
228 |
|
229 |
if ($helper->isDebugEnabled()) {
|
230 |
+
Mage::log('Time to run the job id ' . $this->_currentJob->getId() . ' in ' . ($end - $start) . ' sec', Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
231 |
}
|
232 |
|
233 |
if ($this->_jobHasError || $this->_currentJob->getJobStatus() == Diglin_Ricento_Model_Sync_Job::STATUS_ERROR) {
|
252 |
|
253 |
$this->_currentJobListing
|
254 |
->setLastItemId(null)
|
255 |
+
->setTotalError($this->_totalError)
|
256 |
+
->setTotalSuccess($this->_totalSuccess)
|
257 |
->setTotalProceed($this->_totalProceed)
|
258 |
->save();
|
259 |
|
296 |
$this->_jobHasWarning = false;
|
297 |
}
|
298 |
} catch (Exception $e) {
|
299 |
+
Mage::log("\n" . $e->__toString(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
300 |
$this->_currentJob = (isset($this->_currentJob)) ? $this->_currentJob : null;
|
301 |
$this->_setJobError($e);
|
302 |
}
|
410 |
*/
|
411 |
protected function _handleException(Exception $e, $lastService = null)
|
412 |
{
|
413 |
+
Mage::log("\n" . $e->__toString(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
414 |
|
415 |
if ($lastService instanceof Diglin_Ricento_Model_Api_Services_Abstract) {
|
416 |
+
Mage::log($lastService->getLastApiDebug(), Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
417 |
}
|
418 |
|
419 |
$message = $this->_getHelper()->__($e->getMessage());
|
430 |
return $this;
|
431 |
}
|
432 |
|
433 |
+
/**
|
434 |
+
* @param $errorType
|
435 |
+
* @param array $errorCodes
|
436 |
+
* @return array
|
437 |
+
*/
|
438 |
+
protected function _handleErrorCodes($errorType, array $errorCodes)
|
439 |
+
{
|
440 |
+
$labels = array();
|
441 |
+
|
442 |
+
/* @var $classname Diglin\Ricardo\Enums\AbstractEnums */
|
443 |
+
$classname = '\Diglin\Ricardo\Enums\\' . $errorType;
|
444 |
+
if (class_exists($classname)) {
|
445 |
+
foreach ($errorCodes as $errorCode) {
|
446 |
+
$labels[] = $classname::getLabel($errorCode);
|
447 |
+
}
|
448 |
+
}
|
449 |
+
|
450 |
+
return $labels;
|
451 |
+
}
|
452 |
+
|
453 |
/**
|
454 |
* @param int $productsListingId
|
455 |
* @return $this
|
506 |
->setCanUseCache(false)
|
507 |
->setCurrentWebsite($this->_getListing()->getWebsiteId());
|
508 |
}
|
509 |
+
|
510 |
+
/**
|
511 |
+
* @return Mage_Directory_Model_Currency
|
512 |
+
*/
|
513 |
+
protected function _getCurrency()
|
514 |
+
{
|
515 |
+
if (!$this->_currency) {
|
516 |
+
$this->_currency = Mage::getModel('directory/currency')->load(Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY);
|
517 |
+
}
|
518 |
+
|
519 |
+
return $this->_currency;
|
520 |
+
}
|
521 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -161,13 +161,7 @@ class Diglin_Ricento_Model_Dispatcher_Check_List extends Diglin_Ricento_Model_Di
|
|
161 |
*/
|
162 |
protected function _proceedAfter()
|
163 |
{
|
164 |
-
//
|
165 |
-
|
166 |
-
/**
|
167 |
-
* Prepare products listing item for configurable products
|
168 |
-
*/
|
169 |
-
$this->_prepareConfigurableProduct();
|
170 |
-
|
171 |
if ($this->_jobHasSuccess && $this->_progressStatus == Diglin_Ricento_Model_Sync_Job::PROGRESS_COMPLETED) {
|
172 |
|
173 |
$countReadyItems = Mage::getResourceModel('diglin_ricento/products_listing_item')->coundReadyTolist($this->_productsListingId);
|
@@ -194,119 +188,6 @@ class Diglin_Ricento_Model_Dispatcher_Check_List extends Diglin_Ricento_Model_Di
|
|
194 |
return $this;
|
195 |
}
|
196 |
|
197 |
-
/**
|
198 |
-
* Create products listing items for configurable product
|
199 |
-
*
|
200 |
-
* @return $this
|
201 |
-
*/
|
202 |
-
protected function _prepareConfigurableProduct()
|
203 |
-
{
|
204 |
-
/**
|
205 |
-
* Get children products of configurable product
|
206 |
-
*/
|
207 |
-
$collectionListingItemBis = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
208 |
-
$collectionListingItemBis
|
209 |
-
->addFieldToFilter('parent_product_id', array('notnull' => 1))
|
210 |
-
->addFieldToFilter('status', Diglin_Ricento_Helper_Data::STATUS_READY)
|
211 |
-
->addFieldToFilter('products_listing_id', $this->_productsListingId)
|
212 |
-
->getSelect()
|
213 |
-
->group('parent_product_id');
|
214 |
-
|
215 |
-
$parentProductIds = $collectionListingItemBis->getColumnValues('parent_product_id');
|
216 |
-
|
217 |
-
/**
|
218 |
-
* Get the list of configurable products
|
219 |
-
*/
|
220 |
-
$collectionListingItem = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
221 |
-
$collectionListingItem
|
222 |
-
->addFieldToFilter('products_listing_id', $this->_productsListingId)
|
223 |
-
->addFieldToFilter('status', Diglin_Ricento_Helper_Data::STATUS_READY)
|
224 |
-
->getConfigurableProducts();
|
225 |
-
|
226 |
-
if (count($parentProductIds)) {
|
227 |
-
$collectionListingItem->addFieldToFilter('product_id', array('nin' => $parentProductIds));
|
228 |
-
}
|
229 |
-
|
230 |
-
/**
|
231 |
-
* Get all products of configurable products for a list
|
232 |
-
*
|
233 |
-
* @var $item Diglin_Ricento_Model_Products_Listing_Item
|
234 |
-
*/
|
235 |
-
foreach ($collectionListingItem->getItems() as $item)
|
236 |
-
{
|
237 |
-
/**
|
238 |
-
* Get all children products
|
239 |
-
*/
|
240 |
-
$collection = Mage::getResourceModel('catalog/product_collection')
|
241 |
-
->addAttributeToSelect('sku')
|
242 |
-
->addFilterByRequiredOptions()
|
243 |
-
->addFieldToFilter('entity_id', array('in' => $item->getProduct()->getUsedProductIds()));
|
244 |
-
|
245 |
-
$attributes = $item->getProduct()->getConfigurableAttributes();
|
246 |
-
|
247 |
-
foreach ($attributes as $attribute) {
|
248 |
-
$collection->addAttributeToSelect($attribute->getProductAttribute()->getAttributeCode());
|
249 |
-
$collection->addAttributeToFilter($attribute->getProductAttribute()->getAttributeCode(), array('notnull' => 1));
|
250 |
-
}
|
251 |
-
|
252 |
-
foreach ($collection->getItems() as $childProduct) {
|
253 |
-
|
254 |
-
$configurableChild = array();
|
255 |
-
|
256 |
-
foreach ($attributes as $attribute) {
|
257 |
-
|
258 |
-
$productAttribute = $attribute->getProductAttribute();
|
259 |
-
$attributeValueId = $childProduct->getData($productAttribute->getAttributeCode());
|
260 |
-
if ($attributeValueId) {
|
261 |
-
|
262 |
-
$priceVariation = array();
|
263 |
-
$subtitle = $productAttribute->getFrontendLabel() . ': ';
|
264 |
-
|
265 |
-
/**
|
266 |
-
* Get price variation
|
267 |
-
*/
|
268 |
-
$prices = $attribute->getData('prices');
|
269 |
-
foreach ($prices as $price) {
|
270 |
-
if ($price['pricing_value'] != 0 && $price['value_index'] == $attributeValueId) {
|
271 |
-
$priceVariation = array('pricing_value' => $price['pricing_value'], 'is_percent' => $price['is_percent']);
|
272 |
-
break;
|
273 |
-
}
|
274 |
-
}
|
275 |
-
|
276 |
-
/**
|
277 |
-
* Get attribute label to be used as subtitle
|
278 |
-
*/
|
279 |
-
foreach ($productAttribute->getSource()->getAllOptions() as $option) {
|
280 |
-
if ($attributeValueId == $option['value']) {
|
281 |
-
$subtitle .= $option['label'];
|
282 |
-
}
|
283 |
-
}
|
284 |
-
|
285 |
-
$configurableChild['options'][$attributeValueId] = array_merge(array('subtitle' => $subtitle), $priceVariation);
|
286 |
-
}
|
287 |
-
}
|
288 |
-
|
289 |
-
$configurableChild['stock_qty'] = Mage::getModel('cataloginventory/stock_item')->loadByProduct($childProduct->getId())->getQty();
|
290 |
-
|
291 |
-
/**
|
292 |
-
* Save as new products listing item
|
293 |
-
*/
|
294 |
-
$itemChild = clone $item;
|
295 |
-
$itemChild
|
296 |
-
->setId(null)
|
297 |
-
->setCreatedAt(Mage::getSingleton('core/date')->gmtDate())
|
298 |
-
->setUpdatedAt(null)
|
299 |
-
->setProductId($childProduct->getId())
|
300 |
-
->setAdditionalData(Mage::helper('core')->jsonEncode($configurableChild))
|
301 |
-
->setParentItemId($item->getId())
|
302 |
-
->setParentProductId($item->getProductId())
|
303 |
-
->save();
|
304 |
-
}
|
305 |
-
}
|
306 |
-
|
307 |
-
return $this;
|
308 |
-
}
|
309 |
-
|
310 |
/**
|
311 |
* @param string $jobStatus
|
312 |
* @return string
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
161 |
*/
|
162 |
protected function _proceedAfter()
|
163 |
{
|
164 |
+
// List the product automatically which are ready for that
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
if ($this->_jobHasSuccess && $this->_progressStatus == Diglin_Ricento_Model_Sync_Job::PROGRESS_COMPLETED) {
|
166 |
|
167 |
$countReadyItems = Mage::getResourceModel('diglin_ricento/products_listing_item')->coundReadyTolist($this->_productsListingId);
|
188 |
return $this;
|
189 |
}
|
190 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
/**
|
192 |
* @param string $jobStatus
|
193 |
* @return string
|
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <sylvain.raye at diglin.com>
|
6 |
+
* @category Ricento
|
7 |
+
* @package Ricento
|
8 |
+
* @copyright Copyright (c) 2011-2014 Diglin (http://www.diglin.com)
|
9 |
+
*/
|
10 |
+
|
11 |
+
use \Diglin\Ricardo\Managers\SellerAccount\Parameter\OpenArticlesParameter;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Class Diglin_Ricento_Model_Dispatcher_Closed
|
15 |
+
*/
|
16 |
+
class Diglin_Ricento_Model_Dispatcher_Closed extends Diglin_Ricento_Model_Dispatcher_Abstract
|
17 |
+
{
|
18 |
+
/**
|
19 |
+
* @var int
|
20 |
+
*/
|
21 |
+
protected $_logType = Diglin_Ricento_Model_Products_Listing_Log::LOG_TYPE_CLOSED;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $_jobType = Diglin_Ricento_Model_Sync_Job::TYPE_CLOSED;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @var array
|
30 |
+
*/
|
31 |
+
protected $_stoppedRicardoArticleIds = array();
|
32 |
+
|
33 |
+
public function proceed()
|
34 |
+
{
|
35 |
+
$plResource = Mage::getResourceModel('diglin_ricento/products_listing');
|
36 |
+
$readConnection = $plResource->getReadConnection();
|
37 |
+
$select = $readConnection
|
38 |
+
->select()
|
39 |
+
->from($plResource->getTable('diglin_ricento/products_listing'), 'entity_id');
|
40 |
+
|
41 |
+
$listingIds = $readConnection->fetchCol($select);
|
42 |
+
|
43 |
+
foreach ($listingIds as $listingId) {
|
44 |
+
$select = $readConnection
|
45 |
+
->select()
|
46 |
+
->from(array('pli' => $plResource->getTable('diglin_ricento/products_listing_item')), 'item_id')
|
47 |
+
->where('type <> ?', Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE)
|
48 |
+
->where('products_listing_id = :id AND status = :status AND is_planned = 0');
|
49 |
+
|
50 |
+
$binds = array('id' => $listingId, 'status' => Diglin_Ricento_Helper_Data::STATUS_LISTED);
|
51 |
+
$countListedItems = count($readConnection->fetchAll($select, $binds));
|
52 |
+
|
53 |
+
if ($countListedItems == 0) {
|
54 |
+
continue;
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Check that there is not already running job instead of creating a new one
|
59 |
+
*/
|
60 |
+
Mage::getResourceModel('diglin_ricento/sync_job')->cleanupPendingJob($this->_jobType, $listingId);
|
61 |
+
|
62 |
+
// pending progress doesn't make sense here as we cleanup before but keep it to be sure everything ok
|
63 |
+
$job = Mage::getModel('diglin_ricento/sync_job');
|
64 |
+
$job->loadByTypeListingIdProgress($this->_jobType, $listingId, array(
|
65 |
+
Diglin_Ricento_Model_Sync_Job::PROGRESS_PENDING,
|
66 |
+
Diglin_Ricento_Model_Sync_Job::PROGRESS_CHUNK_RUNNING
|
67 |
+
));
|
68 |
+
|
69 |
+
if ($job->getId()) {
|
70 |
+
continue;
|
71 |
+
}
|
72 |
+
|
73 |
+
$job
|
74 |
+
->setJobType($this->_jobType)
|
75 |
+
->setProgress(Diglin_Ricento_Model_Sync_Job::PROGRESS_PENDING)
|
76 |
+
->setJobMessage(array($job->getJobMessage(true)))
|
77 |
+
->save();
|
78 |
+
|
79 |
+
$jobListing = Mage::getModel('diglin_ricento/sync_job_listing');
|
80 |
+
$jobListing
|
81 |
+
->setProductsListingId($listingId)
|
82 |
+
->setTotalCount($countListedItems)
|
83 |
+
->setTotalProceed(0)
|
84 |
+
->setJobId($job->getId())
|
85 |
+
->save();
|
86 |
+
}
|
87 |
+
|
88 |
+
unset($listingIds);
|
89 |
+
unset($readConnection);
|
90 |
+
unset($job);
|
91 |
+
unset($jobListing);
|
92 |
+
|
93 |
+
return parent::proceed();
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* @return mixed
|
98 |
+
*/
|
99 |
+
protected function _proceed()
|
100 |
+
{
|
101 |
+
/**
|
102 |
+
* Status of the collection must be the same as Diglin_Ricento_Model_Resource_Products_Listing_Item::countReadyTolist
|
103 |
+
*/
|
104 |
+
$itemCollection = $this->_getItemCollection(array(Diglin_Ricento_Helper_Data::STATUS_LISTED), $this->_currentJobListing->getLastItemId());
|
105 |
+
$itemCollection->addFieldToFilter('is_planned', 0);
|
106 |
+
$totalItems = $itemCollection->getSize();
|
107 |
+
$ricardoArticleIds = $itemCollection->getColumnValues('ricardo_article_id');
|
108 |
+
$lastItem = $itemCollection->getLastItem();
|
109 |
+
$soldArticlesResult = $stoppedArticles = array();
|
110 |
+
|
111 |
+
if (!$totalItems) {
|
112 |
+
$this->_currentJob->setJobMessage(array($this->_getNoItemMessage()));
|
113 |
+
$this->_progressStatus = Diglin_Ricento_Model_Sync_Job::PROGRESS_COMPLETED;
|
114 |
+
return $this;
|
115 |
+
}
|
116 |
+
|
117 |
+
$openArticlesParameter = new OpenArticlesParameter();
|
118 |
+
$openArticlesParameter
|
119 |
+
->setPageSize($this->_limit) // if not defined, default is 10
|
120 |
+
->setArticleIdsFilter($ricardoArticleIds);
|
121 |
+
|
122 |
+
$sellerAccountService = Mage::getSingleton('diglin_ricento/api_services_selleraccount')->setCanUseCache(false);
|
123 |
+
$sellerAccountService->setCurrentWebsite($this->_getListing()->getWebsiteId());
|
124 |
+
|
125 |
+
try {
|
126 |
+
$soldArticlesResult = $sellerAccountService->getOpenArticles($openArticlesParameter);
|
127 |
+
} catch (Exception $e) {
|
128 |
+
$this->_handleException($e);
|
129 |
+
$e = null;
|
130 |
+
// keep going for the next item - no break
|
131 |
+
}
|
132 |
+
|
133 |
+
if (isset($soldArticlesResult['OpenArticles'])) {
|
134 |
+
$this->_stoppedRicardoArticleIds = $soldArticlesResult['OpenArticles'];
|
135 |
+
$stoppedArticles = array_filter($ricardoArticleIds, array($this, 'pullArticleToClose'));
|
136 |
+
if (count($stoppedArticles)) {
|
137 |
+
$itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
138 |
+
$itemCollection->addFieldToFilter('ricardo_article_id', array('in' => $stoppedArticles));
|
139 |
+
|
140 |
+
foreach ($itemCollection->getItems() as $item) {
|
141 |
+
|
142 |
+
$item
|
143 |
+
->setStatus(Diglin_Ricento_Helper_Data::STATUS_STOPPED)
|
144 |
+
->save();
|
145 |
+
|
146 |
+
$this->_getListingLog()->saveLog(array(
|
147 |
+
'job_id' => $this->_currentJob->getId(),
|
148 |
+
'product_id' => $item->getProductId(),
|
149 |
+
'product_title' => $item->getProductTitle(),
|
150 |
+
'products_listing_id' => $this->_productsListingId,
|
151 |
+
'message' => $this->_jsonEncode(array('success' => $this->_getHelper()->__('The product has been stopped'))),
|
152 |
+
'log_status' => Diglin_Ricento_Model_Products_Listing_Log::STATUS_SUCCESS,
|
153 |
+
'log_type' => $this->_logType,
|
154 |
+
'created_at' => Mage::getSingleton('core/date')->gmtDate()
|
155 |
+
));
|
156 |
+
}
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Save the current information of the process to allow live display via ajax call
|
162 |
+
*/
|
163 |
+
$this->_totalProceed = $totalItems;
|
164 |
+
$this->_currentJobListing->saveCurrentJob(array(
|
165 |
+
'total_proceed' => $this->_totalProceed,
|
166 |
+
'last_item_id' => $lastItem->getId()
|
167 |
+
));
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Stop the list if all products listing items are stopped
|
171 |
+
*/
|
172 |
+
if ($this->_productsListingId) {
|
173 |
+
$listResource = Mage::getResourceModel('diglin_ricento/products_listing');
|
174 |
+
$listResource->setStatusStop($this->_productsListingId);
|
175 |
+
}
|
176 |
+
|
177 |
+
unset($itemCollection);
|
178 |
+
|
179 |
+
return $this;
|
180 |
+
}
|
181 |
+
|
182 |
+
/**
|
183 |
+
* @param $var
|
184 |
+
* @return bool
|
185 |
+
*/
|
186 |
+
public function pullArticleToClose($var)
|
187 |
+
{
|
188 |
+
$return = true;
|
189 |
+
foreach ($this->_stoppedRicardoArticleIds as $articleId) {
|
190 |
+
if ($var == $articleId['ArticleId']) {
|
191 |
+
return false;
|
192 |
+
}
|
193 |
+
}
|
194 |
+
return $return;
|
195 |
+
}
|
196 |
+
}
|
@@ -5,10 +5,12 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
|
|
|
|
12 |
/**
|
13 |
* Class Diglin_Ricento_Model_Dispatcher_List
|
14 |
*/
|
@@ -30,20 +32,23 @@ class Diglin_Ricento_Model_Dispatcher_List extends Diglin_Ricento_Model_Dispatch
|
|
30 |
protected function _proceed()
|
31 |
{
|
32 |
$job = $this->_currentJob;
|
33 |
-
$jobListing = $this->_currentJobListing;
|
34 |
|
35 |
$sell = Mage::getSingleton('diglin_ricento/api_services_sell');
|
36 |
$sell->setCurrentWebsite($this->_getListing()->getWebsiteId());
|
37 |
|
38 |
-
$
|
39 |
-
$
|
|
|
|
|
|
|
40 |
|
41 |
/**
|
42 |
-
* Status of the collection must be the same as Diglin_Ricento_Model_Resource_Products_Listing_Item::
|
43 |
*/
|
44 |
-
$itemCollection = $this->_getItemCollection(array(Diglin_Ricento_Helper_Data::STATUS_READY), $
|
|
|
45 |
|
46 |
-
if (
|
47 |
$job->setJobMessage(array($this->_getNoItemMessage()));
|
48 |
$this->_progressStatus = Diglin_Ricento_Model_Sync_Job::PROGRESS_COMPLETED;
|
49 |
return $this;
|
@@ -52,60 +57,122 @@ class Diglin_Ricento_Model_Dispatcher_List extends Diglin_Ricento_Model_Dispatch
|
|
52 |
/* @var $item Diglin_Ricento_Model_Products_Listing_Item */
|
53 |
foreach ($itemCollection->getItems() as $item) {
|
54 |
|
55 |
-
|
56 |
-
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
'total_proceed' => ++$this->_totalProceed,
|
63 |
-
'last_item_id' => $item->getId()
|
64 |
-
));
|
65 |
-
continue;
|
66 |
-
}
|
67 |
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
}
|
71 |
|
72 |
-
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
$isPlanned = true;
|
75 |
-
} else if (!empty($
|
76 |
-
$articleId = $
|
77 |
$isPlanned = false;
|
78 |
}
|
|
|
79 |
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
));
|
88 |
-
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_SUCCESS;
|
89 |
-
$this->_itemMessage = array('inserted_article' => $insertedArticle);
|
90 |
-
$hasSuccess = true;
|
91 |
-
$this->_jobHasSuccess = true;
|
92 |
-
++$this->_totalSuccess;
|
93 |
-
} else if ($item->getRicardoArticleId()) {
|
94 |
-
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_NOTICE;
|
95 |
-
$this->_itemMessage = array('notice' => $this->_getHelper()->__('This item is already listed or has already a ricardo article Id. No insert done to ricardo.ch'));
|
96 |
-
$this->_jobHasSuccess = true;
|
97 |
-
++$this->_totalSuccess;
|
98 |
-
// no change needed for the item status
|
99 |
-
} else {
|
100 |
-
++$this->_totalError;
|
101 |
-
$this->_jobHasError = true;
|
102 |
-
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_ERROR;
|
103 |
-
$item->getResource()->saveCurrentItem($item->getId(), array('status' => Diglin_Ricento_Helper_Data::STATUS_ERROR));
|
104 |
}
|
105 |
-
|
106 |
-
$
|
107 |
-
$e = null;
|
108 |
-
// keep going for the next item - no break
|
109 |
}
|
110 |
|
111 |
/**
|
@@ -113,9 +180,9 @@ class Diglin_Ricento_Model_Dispatcher_List extends Diglin_Ricento_Model_Dispatch
|
|
113 |
*/
|
114 |
$this->_getListingLog()->saveLog(array(
|
115 |
'job_id' => $job->getId(),
|
116 |
-
'product_title' => $
|
117 |
'products_listing_id' => $this->_productsListingId,
|
118 |
-
'product_id' => $
|
119 |
'message' => (is_array($this->_itemMessage)) ? $this->_jsonEncode($this->_itemMessage) : $this->_itemMessage,
|
120 |
'log_status' => $this->_itemStatus,
|
121 |
'log_type' => $this->_logType,
|
@@ -125,11 +192,11 @@ class Diglin_Ricento_Model_Dispatcher_List extends Diglin_Ricento_Model_Dispatch
|
|
125 |
/**
|
126 |
* Save the current information of the process to allow live display via ajax call
|
127 |
*/
|
128 |
-
$
|
129 |
'total_proceed' => ++$this->_totalProceed,
|
130 |
-
'total_success' => $this->_totalSuccess,
|
131 |
-
'total_error' => $this->_totalError
|
132 |
-
'last_item_id' => $
|
133 |
));
|
134 |
|
135 |
$this->_itemMessage = null;
|
@@ -138,13 +205,13 @@ class Diglin_Ricento_Model_Dispatcher_List extends Diglin_Ricento_Model_Dispatch
|
|
138 |
|
139 |
if ($hasSuccess) {
|
140 |
$listing = Mage::getModel('diglin_ricento/products_listing')->load($this->_productsListingId);
|
141 |
-
$listing
|
142 |
-
|
143 |
-
|
|
|
|
|
144 |
}
|
145 |
|
146 |
-
unset($itemCollection);
|
147 |
-
|
148 |
return $this;
|
149 |
}
|
150 |
|
@@ -156,37 +223,4 @@ class Diglin_Ricento_Model_Dispatcher_List extends Diglin_Ricento_Model_Dispatch
|
|
156 |
{
|
157 |
return Mage::helper('diglin_ricento')->__('Report: %d success, %d error(s)', $this->_totalSuccess, $this->_totalError);
|
158 |
}
|
159 |
-
|
160 |
-
/**
|
161 |
-
* @return $this
|
162 |
-
*/
|
163 |
-
// protected function _proceedAfter()
|
164 |
-
// {
|
165 |
-
// /**
|
166 |
-
// * Get the children of product listing item to set the correct status of the parent
|
167 |
-
// */
|
168 |
-
// $itemCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
169 |
-
// $itemCollection
|
170 |
-
// ->addFieldToFilter('status', array('in' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
171 |
-
// ->addFieldToFilter('parent_item_id', array('notnull' => 1))
|
172 |
-
// ->addFieldToFilter('products_listing_id', array('eq' => $this->_productsListingId))
|
173 |
-
// ->getSelect()->group('parent_item_id');
|
174 |
-
//
|
175 |
-
// $hash = array();
|
176 |
-
// foreach ($itemCollection->getItems() as $item) {
|
177 |
-
// if (empty($hash[$item->getParentItemId()])) {
|
178 |
-
// Mage::getModel('diglin_ricento/products_listing_item')
|
179 |
-
// ->load($item->getParentItemId())
|
180 |
-
// ->setStatus(Diglin_Ricento_Helper_Data::STATUS_LISTED)
|
181 |
-
// ->save();
|
182 |
-
//
|
183 |
-
// $hash[$item->getParentItemId()] = true;
|
184 |
-
// }
|
185 |
-
// }
|
186 |
-
//
|
187 |
-
// unset($itemCollection);
|
188 |
-
// unset($hash);
|
189 |
-
//
|
190 |
-
// return parent::_proceedAfter();
|
191 |
-
// }
|
192 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
+
use \Diglin\Ricardo\Managers\Sell\Parameter\InsertArticlesParameter;
|
13 |
+
|
14 |
/**
|
15 |
* Class Diglin_Ricento_Model_Dispatcher_List
|
16 |
*/
|
32 |
protected function _proceed()
|
33 |
{
|
34 |
$job = $this->_currentJob;
|
|
|
35 |
|
36 |
$sell = Mage::getSingleton('diglin_ricento/api_services_sell');
|
37 |
$sell->setCurrentWebsite($this->_getListing()->getWebsiteId());
|
38 |
|
39 |
+
$i = 1;
|
40 |
+
$flush = false;
|
41 |
+
$totalBulkToInsert = 5; // to limit memory usage
|
42 |
+
$correlationItems = array();
|
43 |
+
$insertArticles = new InsertArticlesParameter();
|
44 |
|
45 |
/**
|
46 |
+
* Status of the collection must be the same as Diglin_Ricento_Model_Resource_Products_Listing_Item::countReadyTolist
|
47 |
*/
|
48 |
+
$itemCollection = $this->_getItemCollection(array(Diglin_Ricento_Helper_Data::STATUS_READY), $this->_currentJobListing->getLastItemId());
|
49 |
+
$totalItems = $itemCollection->getSize();
|
50 |
|
51 |
+
if (!$totalItems) {
|
52 |
$job->setJobMessage(array($this->_getNoItemMessage()));
|
53 |
$this->_progressStatus = Diglin_Ricento_Model_Sync_Job::PROGRESS_COMPLETED;
|
54 |
return $this;
|
57 |
/* @var $item Diglin_Ricento_Model_Products_Listing_Item */
|
58 |
foreach ($itemCollection->getItems() as $item) {
|
59 |
|
60 |
+
$baseInsert = $item->getBaseInsertArticleWithTracking();
|
61 |
+
$correlationItems[$baseInsert->getCorrelationKey()] = array(
|
62 |
+
'item_id' => $item->getId(),
|
63 |
+
'product_title' => $item->getProductTitle(),
|
64 |
+
'product_id' => $item->getProductId(),
|
65 |
+
'product_qty' => $item->getProductQty(),
|
66 |
+
'skipped' => (bool) ($item->getRicardoArticleId())
|
67 |
+
);
|
68 |
|
69 |
+
if (!$item->getRicardoArticleId()) {
|
70 |
+
$insertArticles->setArticles($baseInsert, $flush);
|
71 |
+
}
|
|
|
|
|
|
|
|
|
|
|
72 |
|
73 |
+
$flush = false;
|
74 |
+
$totalItems--;
|
75 |
+
|
76 |
+
if ($i == $totalBulkToInsert || !$totalItems) {
|
77 |
+
try {
|
78 |
+
$insertedArticleResult = $sell->insertArticles($insertArticles);
|
79 |
+
$flush = true;
|
80 |
+
$i = 1;
|
81 |
+
|
82 |
+
foreach ($insertedArticleResult as $insertedArticle) {
|
83 |
+
if (isset($insertedArticle['CorrelationKey'])) {
|
84 |
+
$correlationItems[$insertedArticle['CorrelationKey']] += $insertedArticle;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
} catch (Exception $e) {
|
88 |
+
Mage::log("\n" . $e->__toString(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
89 |
+
Mage::log($sell->getLastApiDebug(), Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
90 |
+
|
91 |
+
$message = $this->_getHelper()->__($e->getMessage());
|
92 |
+
$message = function_exists('mb_strcut') ? mb_strcut($message, 0, 1024 * 1024) : substr($message, 0, 1024 * 1024);
|
93 |
+
|
94 |
+
foreach ($correlationItems as $key => $correlationItem) {
|
95 |
+
$correlationItems[$key]['ErrorCodes'] = $e->getCode();
|
96 |
+
$correlationItems[$key]['ErrorMessage'] = $message;
|
97 |
+
}
|
98 |
+
|
99 |
+
$e = null;
|
100 |
+
// keep going for the next items - no break
|
101 |
}
|
102 |
|
103 |
+
$this->_saveCurrentStatus($correlationItems);
|
104 |
+
$correlationItems = array();
|
105 |
+
}
|
106 |
+
$i++;
|
107 |
+
}
|
108 |
+
|
109 |
+
if (Mage::helper('diglin_ricento')->isDebugEnabled()) {
|
110 |
+
Mage::log('Max Memory Usage After Total Insert ' . $this->_getHelper()->getMemoryUsage() . ' bytes', Zend_Log::DEBUG, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
111 |
+
}
|
112 |
+
|
113 |
+
unset($insertArticles);
|
114 |
+
unset($itemCollection);
|
115 |
+
|
116 |
+
return $this;
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* @param array $correlationItems
|
121 |
+
* @return $this
|
122 |
+
* @throws Exception
|
123 |
+
*/
|
124 |
+
protected function _saveCurrentStatus(array $correlationItems)
|
125 |
+
{
|
126 |
+
$hasSuccess = false;
|
127 |
+
$job = $this->_currentJob;
|
128 |
+
$itemResource = Mage::getResourceModel('diglin_ricento/products_listing_item');
|
129 |
+
|
130 |
+
foreach ($correlationItems as $correlationItem) {
|
131 |
+
$articleId = null;
|
132 |
+
$isPlanned = false;
|
133 |
+
|
134 |
+
if (!$correlationItem['skipped']) {
|
135 |
+
if (!empty($correlationItem['PlannedArticleId'])) {
|
136 |
+
$articleId = $correlationItem['PlannedArticleId'];
|
137 |
$isPlanned = true;
|
138 |
+
} else if (!empty($correlationItem['ArticleId'])) {
|
139 |
+
$articleId = $correlationItem['ArticleId'];
|
140 |
$isPlanned = false;
|
141 |
}
|
142 |
+
}
|
143 |
|
144 |
+
if (!empty($articleId)) {
|
145 |
+
// Must be set at first in case of error
|
146 |
+
$itemResource->saveCurrentItem($correlationItem['item_id'], array(
|
147 |
+
'ricardo_article_id' => $articleId,
|
148 |
+
'status' => Diglin_Ricento_Helper_Data::STATUS_LISTED,
|
149 |
+
'is_planned' => (int) $isPlanned,
|
150 |
+
'qty_inventory' => $correlationItem['product_qty']
|
151 |
+
));
|
152 |
+
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_SUCCESS;
|
153 |
+
$this->_itemMessage = array('inserted_article' => $correlationItem);
|
154 |
+
$hasSuccess = true;
|
155 |
+
$this->_jobHasSuccess = true;
|
156 |
+
++$this->_totalSuccess;
|
157 |
+
} else if ($correlationItem['skipped']) {
|
158 |
+
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_NOTICE;
|
159 |
+
$this->_itemMessage = array('notice' => $this->_getHelper()->__('This item is already listed or has already a ricardo article Id. No insert done to ricardo.ch'));
|
160 |
+
$this->_jobHasSuccess = true;
|
161 |
+
++$this->_totalSuccess;
|
162 |
+
// no change needed for the item status
|
163 |
+
} else {
|
164 |
+
++$this->_totalError;
|
165 |
+
$this->_jobHasError = true;
|
166 |
+
if (isset($correlationItem['ErrorMessage']) || $correlationItem['ErrorCodes']) {
|
167 |
+
$this->_itemMessage = array('errors' => array(
|
168 |
+
$this->_getHelper()->__('Error Code: %d', (isset($correlationItem['ErrorCodes'])) ? implode(',', $correlationItem['ErrorCodes']) : ''),
|
169 |
+
(isset($correlationItem['ErrorMessage']))
|
170 |
+
? $this->_getHelper()->__($correlationItem['ErrorMessage'])
|
171 |
+
: implode(' - ', $this->_handleErrorCodes($correlationItem['ErrorCodesType'], $correlationItem['ErrorCodes']))
|
172 |
));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
}
|
174 |
+
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_ERROR;
|
175 |
+
$itemResource->saveCurrentItem($correlationItem['item_id'], array('status' => Diglin_Ricento_Helper_Data::STATUS_ERROR));
|
|
|
|
|
176 |
}
|
177 |
|
178 |
/**
|
180 |
*/
|
181 |
$this->_getListingLog()->saveLog(array(
|
182 |
'job_id' => $job->getId(),
|
183 |
+
'product_title' => $correlationItem['product_title'],
|
184 |
'products_listing_id' => $this->_productsListingId,
|
185 |
+
'product_id' => $correlationItem['product_id'],
|
186 |
'message' => (is_array($this->_itemMessage)) ? $this->_jsonEncode($this->_itemMessage) : $this->_itemMessage,
|
187 |
'log_status' => $this->_itemStatus,
|
188 |
'log_type' => $this->_logType,
|
192 |
/**
|
193 |
* Save the current information of the process to allow live display via ajax call
|
194 |
*/
|
195 |
+
$this->_currentJobListing->saveCurrentJob(array(
|
196 |
'total_proceed' => ++$this->_totalProceed,
|
197 |
+
'total_success' => $this->_totalSuccess,
|
198 |
+
'total_error' => $this->_totalError,
|
199 |
+
'last_item_id' => $correlationItem['item_id']
|
200 |
));
|
201 |
|
202 |
$this->_itemMessage = null;
|
205 |
|
206 |
if ($hasSuccess) {
|
207 |
$listing = Mage::getModel('diglin_ricento/products_listing')->load($this->_productsListingId);
|
208 |
+
if ($listing->getId()) {
|
209 |
+
$listing
|
210 |
+
->setStatus(Diglin_Ricento_Helper_Data::STATUS_LISTED)
|
211 |
+
->save();
|
212 |
+
}
|
213 |
}
|
214 |
|
|
|
|
|
215 |
return $this;
|
216 |
}
|
217 |
|
223 |
{
|
224 |
return Mage::helper('diglin_ricento')->__('Report: %d success, %d error(s)', $this->_totalSuccess, $this->_totalError);
|
225 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -27,26 +27,25 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
27 |
protected $_jobType = Diglin_Ricento_Model_Sync_Job::TYPE_ORDER;
|
28 |
|
29 |
/**
|
|
|
|
|
30 |
* @return $this
|
31 |
*/
|
32 |
public function proceed()
|
33 |
{
|
34 |
-
$
|
35 |
-
|
36 |
-
$
|
37 |
-
$select = $readListingConnection
|
38 |
->select()
|
39 |
-
->from($
|
40 |
|
41 |
-
$listingIds = $
|
42 |
|
43 |
foreach ($listingIds as $listingId) {
|
44 |
-
$itemResource = Mage::getResourceModel('diglin_ricento/products_listing_item');
|
45 |
-
|
46 |
-
$readConnection = $itemResource->getReadConnection();
|
47 |
$select = $readConnection
|
48 |
->select()
|
49 |
-
->from($
|
|
|
50 |
->where('products_listing_id = :id AND status = :status AND is_planned = 0');
|
51 |
|
52 |
$binds = array('id' => $listingId, 'status' => Diglin_Ricento_Helper_Data::STATUS_LISTED);
|
@@ -63,7 +62,10 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
63 |
|
64 |
// pending progress doesn't make sense here as we cleanup before but keep it to be sure everything ok
|
65 |
$job = Mage::getModel('diglin_ricento/sync_job');
|
66 |
-
$job->loadByTypeListingIdProgress($this->_jobType, $listingId, array(
|
|
|
|
|
|
|
67 |
|
68 |
if ($job->getId()) {
|
69 |
continue;
|
@@ -85,7 +87,7 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
85 |
}
|
86 |
|
87 |
unset($listingIds);
|
88 |
-
unset($
|
89 |
unset($job);
|
90 |
unset($jobListing);
|
91 |
|
@@ -98,65 +100,50 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
98 |
protected function _proceed()
|
99 |
{
|
100 |
$article = null;
|
101 |
-
$
|
102 |
-
$jobListing = $this->_currentJobListing;
|
103 |
|
104 |
-
$itemCollection = $this->_getItemCollection(array(Diglin_Ricento_Helper_Data::STATUS_LISTED), $
|
105 |
$itemCollection->addFieldToFilter('is_planned', 0);
|
106 |
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
try {
|
111 |
-
$sold = $this->getSoldArticles(array($item->getRicardoArticleId()), $item);
|
112 |
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
} catch (Exception $e) {
|
121 |
-
$this->_handleException($e, Mage::getSingleton('diglin_ricento/api_services_selleraccount'));
|
122 |
-
$e = null;
|
123 |
-
// keep going for the next item - no break
|
124 |
-
}
|
125 |
-
|
126 |
-
if ($article && $article->getArticleId() && $isUnsold) {
|
127 |
-
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_SUCCESS;
|
128 |
-
$this->_itemMessage = array('success' => $this->_getHelper()->__('Sorry, the product has not been sold'));
|
129 |
-
$item->getResource()->saveCurrentItem($item->getId(), array('status' => Diglin_Ricento_Helper_Data::STATUS_STOPPED, 'is_planned' => 0, 'ricardo_article_id' => $article->getArticleId()));
|
130 |
-
}
|
131 |
|
|
|
|
|
132 |
/**
|
133 |
* Save item information and eventual error messages
|
134 |
*/
|
135 |
-
if (
|
136 |
$this->_getListingLog()->saveLog(array(
|
137 |
'job_id' => $this->_currentJob->getId(),
|
138 |
-
'product_title' => $
|
|
|
139 |
'products_listing_id' => $this->_productsListingId,
|
140 |
-
'
|
141 |
-
'
|
142 |
-
'log_status' => $this->_itemStatus,
|
143 |
'log_type' => $this->_logType,
|
144 |
'created_at' => Mage::getSingleton('core/date')->gmtDate()
|
145 |
));
|
146 |
}
|
147 |
-
|
148 |
-
/**
|
149 |
-
* Save the current information of the process to allow live display via ajax call
|
150 |
-
*/
|
151 |
-
$jobListing->saveCurrentJob(array(
|
152 |
-
'total_proceed' => ++$this->_totalProceed,
|
153 |
-
'last_item_id' => $item->getId()
|
154 |
-
));
|
155 |
-
|
156 |
-
$this->_itemMessage = null;
|
157 |
-
$this->_itemStatus = null;
|
158 |
}
|
159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
unset($itemCollection);
|
161 |
|
162 |
return $this;
|
@@ -164,13 +151,18 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
164 |
|
165 |
/**
|
166 |
* @param array $articleIds
|
167 |
-
* @
|
168 |
-
* @return bool
|
169 |
-
* @throws Exception
|
170 |
*/
|
171 |
-
|
172 |
{
|
173 |
$soldArticlesParameter = new SoldArticlesParameter();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
|
175 |
/**
|
176 |
* Set minimum end date to filter e.g. last day. Do not use a higher value as the minimum sales duration is 1 day,
|
@@ -179,33 +171,41 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
179 |
$soldArticlesParameter
|
180 |
->setPageSize($this->_limit) // if not defined, default is 10
|
181 |
->setArticleIdsFilter($articleIds)
|
182 |
-
->
|
|
|
183 |
|
184 |
$sellerAccountService = Mage::getSingleton('diglin_ricento/api_services_selleraccount')->setCanUseCache(false);
|
185 |
$sellerAccountService->setCurrentWebsite($this->_getListing()->getWebsiteId());
|
186 |
|
187 |
-
$
|
188 |
-
$soldArticles = array_reverse($soldArticles);
|
189 |
|
190 |
-
$
|
|
|
191 |
|
192 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
|
194 |
$rawData = $soldArticle;
|
195 |
$soldArticle = $this->_getHelper()->extractData($soldArticle);
|
196 |
$transaction = $soldArticle->getTransaction();
|
197 |
|
198 |
-
$listing = $this->_getListing();
|
199 |
-
|
200 |
if ($transaction && count($transaction) > 0) {
|
201 |
|
202 |
/**
|
203 |
* 1. Check that the transaction doesn't already exists
|
204 |
*/
|
205 |
-
|
206 |
-
->
|
207 |
-
|
208 |
-
if ($salesTransaction->getId()) {
|
209 |
continue;
|
210 |
}
|
211 |
|
@@ -216,14 +216,15 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
216 |
if (!isset($references[0]['InternalReferenceValue'])) {
|
217 |
continue;
|
218 |
}
|
219 |
-
$extractedInternReference = Mage::helper('diglin_ricento')->extractInternalReference($references[0]['InternalReferenceValue']);
|
220 |
|
|
|
221 |
if (!($extractedInternReference instanceof Varien_Object)) {
|
222 |
continue;
|
223 |
}
|
224 |
|
225 |
if (is_null($productItem) || $productItem->getId() != $extractedInternReference->getItemId()) {
|
226 |
$productItem = Mage::getModel('diglin_ricento/products_listing_item')->load($extractedInternReference->getItemId());
|
|
|
227 |
}
|
228 |
|
229 |
if (!$productItem->getId() || $productItem->getStatus() != Diglin_Ricento_Helper_Data::STATUS_LISTED) {
|
@@ -233,111 +234,37 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
233 |
/**
|
234 |
* 3. Create customer if not exist and set his default billing address
|
235 |
*/
|
236 |
-
$customer = $this->
|
237 |
-
$buyerAddress = $transaction->getBuyer()->getAddresses();
|
238 |
|
239 |
if ($customer) {
|
240 |
-
|
241 |
-
$address = $customer->getDefaultBillingAddress();
|
242 |
-
|
243 |
-
$street = $buyerAddress->getAddress1() . ' ' . $buyerAddress->getStreetNumber()
|
244 |
-
. (($buyerAddress->getAddress2()) ? "\n" . $buyerAddress->getAddress2() : '')
|
245 |
-
. (($buyerAddress->getPostalBox()) ? "\n" . $buyerAddress->getPostalBox() : '');
|
246 |
-
|
247 |
-
$postCode = $buyerAddress->getZipCode();
|
248 |
-
$city = $buyerAddress->getCity();
|
249 |
-
|
250 |
-
if (!$address || ($address->getCity() != $city && $address->getPostcode() != $postCode && $address->getStreet() != $street)) {
|
251 |
-
|
252 |
-
/**
|
253 |
-
* Ricardo API doesn't provide the region and Magento 1.6 doesn't allow to make region optional
|
254 |
-
* We use the first region found for the current country but it's far to be good
|
255 |
-
* @todo add a "other" region into each country having required region
|
256 |
-
*/
|
257 |
-
$countryId = $this->_getCountryId($buyerAddress->getCountry());
|
258 |
-
$regionId = null;
|
259 |
-
if (Mage::helper('directory')->isRegionRequired($countryId)) {
|
260 |
-
$regionId = Mage::getModel('directory/region')->getCollection()
|
261 |
-
->addFieldToFilter('country_id', $countryId)
|
262 |
-
->getFirstItem()
|
263 |
-
->getId();
|
264 |
-
}
|
265 |
-
|
266 |
-
$phone = ($transaction->getBuyer()->getPhone()) ? $transaction->getBuyer()->getPhone() : $transaction->getBuyer()->getMobile();
|
267 |
-
|
268 |
-
$address = Mage::getModel('customer/address');
|
269 |
-
$address
|
270 |
-
->setCustomerId($customer->getId())
|
271 |
-
->setCompany($transaction->getBuyer()->getCompanyName())
|
272 |
-
->setLastname($customer->getLastname())
|
273 |
-
->setFirstname($customer->getFirstname())
|
274 |
-
->setStreet($street)
|
275 |
-
->setPostcode($postCode)
|
276 |
-
->setCity($city)
|
277 |
-
->setRegionId($regionId)
|
278 |
-
->setCountryId($countryId)
|
279 |
-
->setTelephone($phone)
|
280 |
-
->setIsDefaultBilling(true)
|
281 |
-
->setIsDefaultShipping(true)
|
282 |
-
->setSaveInAddressBook(1)
|
283 |
-
->save();
|
284 |
-
|
285 |
-
$customer->addAddress($address);
|
286 |
-
}
|
287 |
} else {
|
288 |
-
Mage::log($transaction->getBuyer(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE);
|
289 |
throw new Exception($this->_getHelper()->__('Customer creation failed! ricardo.ch transaction cannot be added.'));
|
290 |
}
|
291 |
|
292 |
/**
|
293 |
-
* 4.
|
294 |
-
*/
|
295 |
-
$lang = $this->_getHelper()->getLocalCodeFromRicardoLanguageId($soldArticle->getMainLanguageId());
|
296 |
-
$shippingDescription = $productItem->getShippingPaymentRule()->getShippingDescription($lang);
|
297 |
-
$paymentDescription = $productItem->getShippingPaymentRule()->getPaymentDescription($lang);
|
298 |
-
|
299 |
-
/**
|
300 |
-
* 5. Insert transaction into DB for future use
|
301 |
*/
|
302 |
-
$salesTransaction =
|
303 |
-
$salesTransaction
|
304 |
-
->setBidId($transaction->getBidId())
|
305 |
-
->setWebsiteId($listing->getWebsiteId())
|
306 |
-
->setCustomerId($customer->getId())
|
307 |
-
->setAddressId($address->getId())
|
308 |
-
->setRicardoCustomerId($customer->getRicardoId())
|
309 |
-
->setRicardoArticleId($soldArticle->getArticleId())
|
310 |
-
->setQty($transaction->getBuyerQuantity())
|
311 |
-
->setViewCount($soldArticle->getViewCount())
|
312 |
-
->setShippingFee($soldArticle->getDeliveryCost())
|
313 |
-
->setShippingText($soldArticle->getDeliveryText()) // @fixme - if bought in FR and the API use the DE key, text will in DE. I have no efficient solution now
|
314 |
-
->setShippingMethod($soldArticle->getDeliveryId())
|
315 |
-
->setShippingCumulativeFee((int)$soldArticle->getIsCumulativeShipping())
|
316 |
-
->setLanguageId($soldArticle->getMainLanguageId())
|
317 |
-
->setShippingDescription($shippingDescription)
|
318 |
-
->setPaymentMethods(implode(',', $soldArticle->getPaymentMethodIds()->getData()))
|
319 |
-
->setPaymentDescription($paymentDescription)
|
320 |
-
->setTotalBidPrice($soldArticle->getWinningBidPrice())
|
321 |
-
->setProductId($extractedInternReference->getProductId())
|
322 |
-
->setRawData(Mage::helper('core')->jsonEncode($rawData))
|
323 |
-
->setSoldAt($this->_getHelper()->getJsonTimestamp($soldArticle->getEndDate()))
|
324 |
-
->save();
|
325 |
|
326 |
/**
|
327 |
-
*
|
328 |
*/
|
329 |
$productItem
|
330 |
-
->setQtyInventory($productItem->getQtyInventory() - $salesTransaction->getQty())
|
|
|
|
|
331 |
|
332 |
-
if ($productItem->
|
333 |
-
$productItem->
|
334 |
-
|
|
|
|
|
|
|
|
|
|
|
335 |
}
|
336 |
-
|
337 |
-
$productItem->save();
|
338 |
-
|
339 |
-
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_SUCCESS;
|
340 |
-
$this->_itemMessage = array('success' => $this->_getHelper()->__('The product has been sold'));
|
341 |
}
|
342 |
}
|
343 |
|
@@ -348,11 +275,7 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
348 |
unset($productItem);
|
349 |
unset($customer);
|
350 |
|
351 |
-
|
352 |
-
return true;
|
353 |
-
}
|
354 |
-
|
355 |
-
return false;
|
356 |
}
|
357 |
|
358 |
/**
|
@@ -362,13 +285,13 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
362 |
* @param int $websiteId
|
363 |
* @return bool|Mage_Customer_Model_Customer
|
364 |
*/
|
365 |
-
|
366 |
{
|
367 |
if (!$buyer->getBuyerId()) {
|
368 |
return false;
|
369 |
}
|
370 |
|
371 |
-
$
|
372 |
|
373 |
/* @var $customer Mage_Customer_Model_Customer */
|
374 |
$customer = Mage::getModel('customer/customer')
|
@@ -381,7 +304,7 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
381 |
->setLastname($buyer->getLastName())
|
382 |
->setEmail($buyer->getEmail())
|
383 |
->setPassword($customer->generatePassword())
|
384 |
-
->setStoreId($
|
385 |
->setWebsiteId($websiteId)
|
386 |
->setConfirmation(null);
|
387 |
}
|
@@ -392,19 +315,17 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
392 |
->setRicardoUsername($buyer->getNickName());
|
393 |
}
|
394 |
|
395 |
-
|
396 |
-
$customer->save();
|
397 |
-
}
|
398 |
|
399 |
-
Mage::app()->getLocale()->emulate($
|
400 |
|
401 |
-
if ($customer->isObjectNew() && Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_ACCOUNT_CREATION_EMAIL, $
|
402 |
if ($customer->isConfirmationRequired()) {
|
403 |
$typeEmail = 'confirmation';
|
404 |
} else {
|
405 |
$typeEmail = 'registered';
|
406 |
}
|
407 |
-
$customer->sendNewAccountEmail($typeEmail, '', $
|
408 |
}
|
409 |
|
410 |
Mage::app()->getLocale()->revert();
|
@@ -413,7 +334,116 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
413 |
}
|
414 |
|
415 |
/**
|
416 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
417 |
*
|
418 |
* @return $this
|
419 |
*/
|
@@ -422,7 +452,7 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
422 |
$customerTransactions = array();
|
423 |
$mergeOrder = Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_MERGE_ORDER);
|
424 |
|
425 |
-
$delay = ($mergeOrder) ? 30 :
|
426 |
|
427 |
/**
|
428 |
* Get transaction older than 30 or 1 minutes and when no order was created
|
@@ -432,7 +462,7 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
432 |
$transactionCollection
|
433 |
->getSelect()
|
434 |
->where('order_id IS NULL')
|
435 |
-
->where('UNIX_TIMESTAMP(sold_at) + ( ? * 60) < UNIX_TIMESTAMP(now())', (int) $delay); // 30 or
|
436 |
|
437 |
$inc = 0;
|
438 |
foreach ($transactionCollection->getItems() as $transactionItem) {
|
@@ -455,18 +485,11 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
455 |
}
|
456 |
}
|
457 |
|
|
|
|
|
|
|
458 |
if ($this->_productsListingId) {
|
459 |
-
|
460 |
-
* Set the status to stop of products having parent and when all other children are stopped
|
461 |
-
*/
|
462 |
-
$itemResource = Mage::getResourceModel('diglin_ricento/products_listing_item');
|
463 |
-
$itemResource->setParentStatusStop($this->_productsListingId);
|
464 |
-
|
465 |
-
/**
|
466 |
-
* Stop the list if all products listing items are stopped
|
467 |
-
*/
|
468 |
-
$listResource = Mage::getResourceModel('diglin_ricento/products_listing');
|
469 |
-
$listResource->setStatusStop($this->_productsListingId);
|
470 |
}
|
471 |
|
472 |
unset($transactionCollection);
|
@@ -476,148 +499,60 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
476 |
}
|
477 |
|
478 |
/**
|
|
|
|
|
|
|
479 |
* @param array $transactions
|
480 |
*/
|
481 |
public function createNewOrder($transactions)
|
482 |
{
|
483 |
-
$quote = null;
|
484 |
$dispatchedTransactions = array();
|
485 |
-
$
|
486 |
$shippingText = $shippingDescription = '';
|
487 |
-
$paymentMethod = $shippingMethod = Diglin_Ricento_Model_Sales_Method_Payment::PAYMENT_CODE;
|
488 |
|
489 |
try {
|
490 |
-
/**
|
491 |
-
* If a customer ordered several articles of the same seller in a short period of time
|
492 |
-
* the order will merge all articles.
|
493 |
-
*/
|
494 |
-
|
495 |
/* @var $transaction Diglin_Ricento_Model_Sales_Transaction */
|
496 |
foreach ($transactions as $transaction) {
|
497 |
|
498 |
-
$
|
499 |
|
500 |
-
Mage::app()->
|
|
|
501 |
|
502 |
-
/**
|
503 |
-
* 1. Init Quote and define customer and his address
|
504 |
-
*/
|
505 |
if (is_null($quote)) {
|
506 |
-
$quote =
|
507 |
-
$quote->setStoreId($storeId);
|
508 |
-
|
509 |
-
$customerId = $transaction->getCustomerId();
|
510 |
-
$customer = Mage::getModel('customer/customer')->load($customerId);
|
511 |
-
|
512 |
-
$address = Mage::getModel('customer/address')->load($transaction->getAddressId());
|
513 |
-
$address->setCustomer($customer);
|
514 |
-
|
515 |
-
$quoteAddress = Mage::getModel('sales/quote_address');
|
516 |
-
$quoteAddress->importCustomerAddress($address);
|
517 |
-
|
518 |
-
$quote->assignCustomerWithAddressChange($customer, $quoteAddress, $quoteAddress);
|
519 |
-
$quote->getBillingAddress()->setPaymentMethod($paymentMethod);
|
520 |
}
|
521 |
|
522 |
-
|
523 |
-
* 2. Add product and its information to the quote
|
524 |
-
*/
|
525 |
-
$infoBuyRequest = new Varien_Object();
|
526 |
-
$infoBuyRequest
|
527 |
-
->setQty($transaction->getQty())
|
528 |
-
->setIsRicardo(true)
|
529 |
-
->setRicardoTransactionId($transaction->getId())
|
530 |
-
->setShippingCumulativeFee($transaction->getShippingCumulativeFee())
|
531 |
-
->setShippingFee($transaction->getShippingFee());
|
532 |
-
|
533 |
-
$product = Mage::getModel('catalog/product')
|
534 |
-
->setStoreId($storeId)
|
535 |
-
->load($transaction->getProductId())
|
536 |
-
->setSkipCheckRequiredOption(true);
|
537 |
-
|
538 |
-
if (!$product->getId()) {
|
539 |
continue;
|
540 |
}
|
541 |
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
if (is_string($quoteItem)) {
|
546 |
-
Mage::throwException($quoteItem);
|
547 |
-
}
|
548 |
|
549 |
-
$quoteItem
|
550 |
-
// Set unit custom price
|
551 |
-
->setCustomPrice($transaction->getTotalBidPrice())
|
552 |
-
->setOriginalCustomPrice($transaction->getTotalBidPrice());
|
553 |
-
|
554 |
-
/**
|
555 |
-
* 3. Set shipping information, price, etc
|
556 |
-
*/
|
557 |
-
$shippingText = $transaction->getShippingText(); // @todo provide correct language
|
558 |
-
$shippingDescription = $transaction->getShippingDescription(); // @todo get shipping description in correct language
|
559 |
-
|
560 |
-
/**
|
561 |
-
* 4. Keep the complete transactions list for later use
|
562 |
-
*/
|
563 |
$dispatchedTransactions[$transaction->getBidId()] = $transaction->getId();
|
564 |
}
|
565 |
|
566 |
-
if ($quote) {
|
567 |
-
/**
|
568 |
-
* Define payment method and related information
|
569 |
-
*/
|
570 |
-
$quote
|
571 |
-
->setIsRicardo(1)
|
572 |
-
->setQuoteCurrencyCode(Mage::getStoreConfig(Diglin_Ricento_Helper_Data::PAYMENT_CURRENCY));
|
573 |
-
|
574 |
-
$payment = $quote->getPayment();
|
575 |
-
$payment->importData(array(
|
576 |
-
'method' => $paymentMethod,
|
577 |
-
'additional_data' => Mage::helper('core')->jsonEncode(array(
|
578 |
-
'is_ricardo' => true,
|
579 |
-
'ricardo_payment_methods' => $transaction->getPaymentMethods(),
|
580 |
-
'ricardo_transaction_ids' => implode(',', $dispatchedTransactions),
|
581 |
-
'ricardo_bid_ids' => implode(',', array_keys($dispatchedTransactions)),
|
582 |
-
)
|
583 |
-
)));
|
584 |
|
585 |
-
|
586 |
-
|
587 |
-
* @see Diglin_Ricento_Model_Sales_Method_Shipping::collectRates
|
588 |
-
*/
|
589 |
-
Mage::getSingleton('core/session')
|
590 |
->setRicardoShippingDescription($shippingText . "\n" . $shippingDescription)
|
591 |
->setRicardoShippingMethod($shippingTransactionMethod);
|
592 |
|
593 |
-
$
|
594 |
-
$shipping->setShippingMethod($shippingMethod . '_' . $shippingTransactionMethod);
|
595 |
-
|
596 |
-
$quote->addData(array(
|
597 |
-
'customer_note_notify' => false,
|
598 |
-
'customer_note' => $this->_getHelper()->__('Order automatically generated by the ricardo.ch Extension.'))
|
599 |
-
);
|
600 |
-
|
601 |
-
$quote->collectTotals()->save();
|
602 |
|
603 |
if ($quote->getId()) {
|
604 |
-
|
605 |
-
$
|
606 |
-
->
|
607 |
-
->
|
608 |
-
->setCustomer($quote->getCustomer())
|
609 |
-
->setCustomerId($quote->getCustomer()->getId());
|
610 |
-
|
611 |
-
/* @var $order Mage_Adminhtml_Model_Sales_Order_Create */
|
612 |
-
$order = $this->_getOrderCreateModel()
|
613 |
->initRuleData()
|
614 |
-
->
|
615 |
-
->setSendConfirmation(Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_ORDER_CREATION_EMAIL, $storeId))
|
616 |
-
->createOrder();
|
617 |
|
618 |
-
|
619 |
-
* Define order status
|
620 |
-
*/
|
621 |
$order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Diglin_Ricento_Helper_Data::ORDER_STATUS_PENDING, $this->_getHelper()->__('Payment is pending'), false);
|
622 |
|
623 |
// @fixme getIsTransactionCompleted or getIsTransactionCancelled has no value from ricardo.ch side at the moment, wait API update
|
@@ -630,9 +565,8 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
630 |
// $order->setState(Mage_Sales_Model_Order::STATE_CANCELED, Diglin_Ricento_Helper_Data::ORDER_STATUS_CANCEL, $this->_getHelper()->__('Order canceled on ricardo.ch side'), false);
|
631 |
// }
|
632 |
|
633 |
-
$quote
|
634 |
-
|
635 |
-
->save();
|
636 |
|
637 |
/**
|
638 |
* Save the new order id to the ricardo transaction
|
@@ -645,53 +579,190 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
645 |
}
|
646 |
}
|
647 |
}
|
648 |
-
|
649 |
-
Mage::app()->getLocale()->revert();
|
650 |
}
|
|
|
|
|
|
|
651 |
} catch (Exception $e) {
|
652 |
|
653 |
if (!isset($transaction) || !($transaction instanceof Diglin_Ricento_Model_Sales_Transaction)) {
|
654 |
$transaction = new Varien_Object();
|
655 |
}
|
656 |
-
if (!isset($product) || !($product instanceof Mage_Catalog_Model_Product)) {
|
657 |
-
$product = new Varien_Object();
|
658 |
-
}
|
659 |
-
|
660 |
-
// We store and send the exception but don't block the rest of the process
|
661 |
-
Mage::log("\n" . $e->__toString(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE);
|
662 |
-
Mage::helper('diglin_ricento/tools')->sendAdminNotification('Error with ricardo Transaction ID: ' . $transaction->getBidId() . ' - Product ID:' . $product->getId() . "\n" . $e->__toString());
|
663 |
|
664 |
-
|
665 |
|
666 |
-
|
667 |
-
$
|
668 |
-
if ($
|
669 |
-
Mage::
|
670 |
}
|
671 |
|
672 |
// Deactivate the last quote if a problem occur to prevent cart display in frontend to the customer
|
673 |
-
$quote
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
if (Mage::app()->getStore()->isAdmin()) {
|
679 |
-
Mage::app()->getLocale()->revert();
|
680 |
}
|
|
|
|
|
681 |
}
|
682 |
|
683 |
// force to cleanup model, session and rule_data for the next orders to generate otherwise conflicts will occur
|
684 |
-
Mage::unregister('_singleton/
|
685 |
-
Mage::unregister('_singleton/adminhtml/session_quote');
|
686 |
Mage::unregister('rule_data');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
687 |
}
|
688 |
|
689 |
/**
|
690 |
* Retrieve session object
|
691 |
*
|
|
|
692 |
* @return Mage_Adminhtml_Model_Session_Quote
|
693 |
*/
|
694 |
-
|
695 |
{
|
696 |
return Mage::getSingleton('adminhtml/session_quote');
|
697 |
}
|
@@ -699,11 +770,11 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
699 |
/**
|
700 |
* Retrieve order create model
|
701 |
*
|
702 |
-
* @return
|
703 |
*/
|
704 |
-
|
705 |
{
|
706 |
-
return Mage::getSingleton('
|
707 |
}
|
708 |
|
709 |
/**
|
@@ -711,7 +782,7 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
711 |
* @return string
|
712 |
* @throws Exception
|
713 |
*/
|
714 |
-
|
715 |
{
|
716 |
$countryName = '';
|
717 |
$countries = Mage::getSingleton('diglin_ricento/api_services_system')
|
@@ -725,7 +796,7 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
725 |
}
|
726 |
}
|
727 |
|
728 |
-
$code = $this->
|
729 |
if (!$code) {
|
730 |
throw new Exception(Mage::helper('diglin_ricento')->__('Country Code is not available. Please contact the author of this extension or support.'));
|
731 |
}
|
@@ -740,7 +811,7 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
740 |
* @param $countryName
|
741 |
* @return string
|
742 |
*/
|
743 |
-
|
744 |
{
|
745 |
$countryCode = array(
|
746 |
'Schweiz' => 'CH',
|
@@ -761,10 +832,10 @@ class Diglin_Ricento_Model_Dispatcher_Order extends Diglin_Ricento_Model_Dispatc
|
|
761 |
|
762 |
/**
|
763 |
* @param int $websiteId
|
764 |
-
* @return
|
765 |
*/
|
766 |
-
|
767 |
{
|
768 |
-
return Mage::app()->getWebsite($websiteId)->getDefaultStore()
|
769 |
}
|
770 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
27 |
protected $_jobType = Diglin_Ricento_Model_Sync_Job::TYPE_ORDER;
|
28 |
|
29 |
/**
|
30 |
+
* Create Order Jobs for all products listing with the listed status
|
31 |
+
*
|
32 |
* @return $this
|
33 |
*/
|
34 |
public function proceed()
|
35 |
{
|
36 |
+
$plResource = Mage::getResourceModel('diglin_ricento/products_listing');
|
37 |
+
$readConnection = $plResource->getReadConnection();
|
38 |
+
$select = $readConnection
|
|
|
39 |
->select()
|
40 |
+
->from($plResource->getTable('diglin_ricento/products_listing'), 'entity_id');
|
41 |
|
42 |
+
$listingIds = $readConnection->fetchCol($select);
|
43 |
|
44 |
foreach ($listingIds as $listingId) {
|
|
|
|
|
|
|
45 |
$select = $readConnection
|
46 |
->select()
|
47 |
+
->from(array('pli' => $plResource->getTable('diglin_ricento/products_listing_item')), 'item_id')
|
48 |
+
->where('type <> ?', Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE)
|
49 |
->where('products_listing_id = :id AND status = :status AND is_planned = 0');
|
50 |
|
51 |
$binds = array('id' => $listingId, 'status' => Diglin_Ricento_Helper_Data::STATUS_LISTED);
|
62 |
|
63 |
// pending progress doesn't make sense here as we cleanup before but keep it to be sure everything ok
|
64 |
$job = Mage::getModel('diglin_ricento/sync_job');
|
65 |
+
$job->loadByTypeListingIdProgress($this->_jobType, $listingId, array(
|
66 |
+
Diglin_Ricento_Model_Sync_Job::PROGRESS_PENDING,
|
67 |
+
Diglin_Ricento_Model_Sync_Job::PROGRESS_CHUNK_RUNNING
|
68 |
+
));
|
69 |
|
70 |
if ($job->getId()) {
|
71 |
continue;
|
87 |
}
|
88 |
|
89 |
unset($listingIds);
|
90 |
+
unset($readConnection);
|
91 |
unset($job);
|
92 |
unset($jobListing);
|
93 |
|
100 |
protected function _proceed()
|
101 |
{
|
102 |
$article = null;
|
103 |
+
$soldArticles = array();
|
|
|
104 |
|
105 |
+
$itemCollection = $this->_getItemCollection(array(Diglin_Ricento_Helper_Data::STATUS_LISTED), $this->_currentJobListing->getLastItemId());
|
106 |
$itemCollection->addFieldToFilter('is_planned', 0);
|
107 |
|
108 |
+
$ricardoArticleIds = $itemCollection->getColumnValues('ricardo_article_id');
|
109 |
+
$lastItem = $itemCollection->getLastItem();
|
|
|
|
|
|
|
110 |
|
111 |
+
try {
|
112 |
+
$soldArticles = $this->getSoldArticles($ricardoArticleIds);
|
113 |
+
} catch (Exception $e) {
|
114 |
+
$this->_handleException($e, Mage::getSingleton('diglin_ricento/api_services_selleraccount'));
|
115 |
+
$e = null;
|
116 |
+
// keep going - no break
|
117 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
|
119 |
+
/* @var $item Diglin_Ricento_Model_Products_Listing_Item */
|
120 |
+
foreach ($soldArticles as $soldArticle) {
|
121 |
/**
|
122 |
* Save item information and eventual error messages
|
123 |
*/
|
124 |
+
if (isset($soldArticle['item_message'])) {
|
125 |
$this->_getListingLog()->saveLog(array(
|
126 |
'job_id' => $this->_currentJob->getId(),
|
127 |
+
'product_title' => $soldArticle['product_title'],
|
128 |
+
'product_id' => $soldArticle['product_id'],
|
129 |
'products_listing_id' => $this->_productsListingId,
|
130 |
+
'message' => (is_array($soldArticle['item_message'])) ? $this->_jsonEncode($soldArticle['item_message']) : $soldArticle['item_message'],
|
131 |
+
'log_status' => $soldArticle['item_status'],
|
|
|
132 |
'log_type' => $this->_logType,
|
133 |
'created_at' => Mage::getSingleton('core/date')->gmtDate()
|
134 |
));
|
135 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
}
|
137 |
|
138 |
+
/**
|
139 |
+
* Save the current information of the process to allow live display via ajax call
|
140 |
+
*/
|
141 |
+
$this->_totalProceed += count($ricardoArticleIds);
|
142 |
+
$this->_currentJobListing->saveCurrentJob(array(
|
143 |
+
'total_proceed' => $this->_totalProceed,
|
144 |
+
'last_item_id' => $lastItem->getId()
|
145 |
+
));
|
146 |
+
|
147 |
unset($itemCollection);
|
148 |
|
149 |
return $this;
|
151 |
|
152 |
/**
|
153 |
* @param array $articleIds
|
154 |
+
* @return array
|
|
|
|
|
155 |
*/
|
156 |
+
private function _getSoldArticlesList(array $articleIds)
|
157 |
{
|
158 |
$soldArticlesParameter = new SoldArticlesParameter();
|
159 |
+
$delay = (3 * 24 * 60 * 60); // 3 days
|
160 |
+
|
161 |
+
$transactionCollection = Mage::getResourceModel('diglin_ricento/sales_transaction_collection');
|
162 |
+
$transactionCollection
|
163 |
+
->addFieldToFilter('order_id', new Zend_Db_Expr('NULL'))
|
164 |
+
->getSelect()
|
165 |
+
->where('UNIX_TIMESTAMP(created_at) + (?) < UNIX_TIMESTAMP(now())', $delay);
|
166 |
|
167 |
/**
|
168 |
* Set minimum end date to filter e.g. last day. Do not use a higher value as the minimum sales duration is 1 day,
|
171 |
$soldArticlesParameter
|
172 |
->setPageSize($this->_limit) // if not defined, default is 10
|
173 |
->setArticleIdsFilter($articleIds)
|
174 |
+
->setExcludedTransactionIdsFilter($transactionCollection->getColumnValues('transaction_id'))
|
175 |
+
->setMinimumEndDate($this->_getHelper()->getJsonDate(time() - $delay));
|
176 |
|
177 |
$sellerAccountService = Mage::getSingleton('diglin_ricento/api_services_selleraccount')->setCanUseCache(false);
|
178 |
$sellerAccountService->setCurrentWebsite($this->_getListing()->getWebsiteId());
|
179 |
|
180 |
+
$soldArticlesResult = $sellerAccountService->getSoldArticles($soldArticlesParameter);
|
|
|
181 |
|
182 |
+
return array_reverse($soldArticlesResult['SoldArticles']);
|
183 |
+
}
|
184 |
|
185 |
+
/**
|
186 |
+
* @param array $articleIds
|
187 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $productItem
|
188 |
+
* @return bool
|
189 |
+
* @throws Exception
|
190 |
+
*/
|
191 |
+
public function getSoldArticles($articleIds = array(), Diglin_Ricento_Model_Products_Listing_Item $productItem = null)
|
192 |
+
{
|
193 |
+
$soldArticlesReturn = array();
|
194 |
+
|
195 |
+
foreach ($this->_getSoldArticlesList($articleIds) as $soldArticle) {
|
196 |
|
197 |
$rawData = $soldArticle;
|
198 |
$soldArticle = $this->_getHelper()->extractData($soldArticle);
|
199 |
$transaction = $soldArticle->getTransaction();
|
200 |
|
|
|
|
|
201 |
if ($transaction && count($transaction) > 0) {
|
202 |
|
203 |
/**
|
204 |
* 1. Check that the transaction doesn't already exists
|
205 |
*/
|
206 |
+
if (Mage::getResourceModel('diglin_ricento/sales_transaction_collection')
|
207 |
+
->addFieldToFilter('bid_id', $transaction->getBidId())->getSize()
|
208 |
+
) {
|
|
|
209 |
continue;
|
210 |
}
|
211 |
|
216 |
if (!isset($references[0]['InternalReferenceValue'])) {
|
217 |
continue;
|
218 |
}
|
|
|
219 |
|
220 |
+
$extractedInternReference = $this->_getHelper()->extractInternalReference($references[0]['InternalReferenceValue']);
|
221 |
if (!($extractedInternReference instanceof Varien_Object)) {
|
222 |
continue;
|
223 |
}
|
224 |
|
225 |
if (is_null($productItem) || $productItem->getId() != $extractedInternReference->getItemId()) {
|
226 |
$productItem = Mage::getModel('diglin_ricento/products_listing_item')->load($extractedInternReference->getItemId());
|
227 |
+
$productItem->setLoadFallbackOptions(true);
|
228 |
}
|
229 |
|
230 |
if (!$productItem->getId() || $productItem->getStatus() != Diglin_Ricento_Helper_Data::STATUS_LISTED) {
|
234 |
/**
|
235 |
* 3. Create customer if not exist and set his default billing address
|
236 |
*/
|
237 |
+
$customer = $this->getCustomerFromTransaction($transaction->getBuyer(), $this->_getListing()->getWebsiteId());
|
|
|
238 |
|
239 |
if ($customer) {
|
240 |
+
$address = $this->getBillingAddress($customer, $transaction);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
} else {
|
242 |
+
Mage::log($transaction->getBuyer(), Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
243 |
throw new Exception($this->_getHelper()->__('Customer creation failed! ricardo.ch transaction cannot be added.'));
|
244 |
}
|
245 |
|
246 |
/**
|
247 |
+
* 4. Insert transaction into DB for future use
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
*/
|
249 |
+
$salesTransaction = $this->saveTransaction($transaction, $customer, $address, $soldArticle, $productItem, $rawData);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
|
251 |
/**
|
252 |
+
* 5. Decrease the quantity at products listing item level and stop it if needed
|
253 |
*/
|
254 |
$productItem
|
255 |
+
->setQtyInventory($productItem->getQtyInventory() - $salesTransaction->getQty())
|
256 |
+
->setStatus(Diglin_Ricento_Helper_Data::STATUS_SOLD)
|
257 |
+
->save();
|
258 |
|
259 |
+
if (!isset($soldArticlesReturn[$productItem->getId()])) {
|
260 |
+
$soldArticlesReturn[$productItem->getId()] = array(
|
261 |
+
'item_id' => $productItem->getId(),
|
262 |
+
'product_title' => $productItem->getProductTitle(),
|
263 |
+
'product_id' => $productItem->getProductId(),
|
264 |
+
'item_message' => array('success' => $this->_getHelper()->__('The product has been sold')),
|
265 |
+
'item_status' => Diglin_Ricento_Model_Products_Listing_Log::STATUS_SUCCESS
|
266 |
+
);
|
267 |
}
|
|
|
|
|
|
|
|
|
|
|
268 |
}
|
269 |
}
|
270 |
|
275 |
unset($productItem);
|
276 |
unset($customer);
|
277 |
|
278 |
+
return $soldArticlesReturn;
|
|
|
|
|
|
|
|
|
279 |
}
|
280 |
|
281 |
/**
|
285 |
* @param int $websiteId
|
286 |
* @return bool|Mage_Customer_Model_Customer
|
287 |
*/
|
288 |
+
public function getCustomerFromTransaction(Varien_Object $buyer, $websiteId = Mage_Core_Model_App::ADMIN_STORE_ID)
|
289 |
{
|
290 |
if (!$buyer->getBuyerId()) {
|
291 |
return false;
|
292 |
}
|
293 |
|
294 |
+
$store = $this->getStoreFromWebsite($websiteId);
|
295 |
|
296 |
/* @var $customer Mage_Customer_Model_Customer */
|
297 |
$customer = Mage::getModel('customer/customer')
|
304 |
->setLastname($buyer->getLastName())
|
305 |
->setEmail($buyer->getEmail())
|
306 |
->setPassword($customer->generatePassword())
|
307 |
+
->setStoreId($store->getId())
|
308 |
->setWebsiteId($websiteId)
|
309 |
->setConfirmation(null);
|
310 |
}
|
315 |
->setRicardoUsername($buyer->getNickName());
|
316 |
}
|
317 |
|
318 |
+
$customer->save();
|
|
|
|
|
319 |
|
320 |
+
Mage::app()->getLocale()->emulate($store->getId());
|
321 |
|
322 |
+
if ($customer->isObjectNew() && Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_ACCOUNT_CREATION_EMAIL, $store->getId())) {
|
323 |
if ($customer->isConfirmationRequired()) {
|
324 |
$typeEmail = 'confirmation';
|
325 |
} else {
|
326 |
$typeEmail = 'registered';
|
327 |
}
|
328 |
+
$customer->sendNewAccountEmail($typeEmail, '', $store->getId());
|
329 |
}
|
330 |
|
331 |
Mage::app()->getLocale()->revert();
|
334 |
}
|
335 |
|
336 |
/**
|
337 |
+
* @param Mage_Customer_Model_Customer $customer
|
338 |
+
* @param $transaction
|
339 |
+
* @return Mage_Customer_Model_Address
|
340 |
+
* @throws Exception
|
341 |
+
*/
|
342 |
+
public function getBillingAddress(Mage_Customer_Model_Customer $customer, $transaction)
|
343 |
+
{
|
344 |
+
$buyerAddress = $transaction->getBuyer()->getAddresses();
|
345 |
+
|
346 |
+
$address = $customer->getDefaultBillingAddress();
|
347 |
+
|
348 |
+
$street = $buyerAddress->getAddress1() . ' ' . $buyerAddress->getStreetNumber()
|
349 |
+
. (($buyerAddress->getAddress2()) ? "\n" . $buyerAddress->getAddress2() : '')
|
350 |
+
. (($buyerAddress->getPostalBox()) ? "\n" . $buyerAddress->getPostalBox() : '');
|
351 |
+
|
352 |
+
$postCode = $buyerAddress->getZipCode();
|
353 |
+
$city = $buyerAddress->getCity();
|
354 |
+
|
355 |
+
if (!$address || ($address->getCity() != $city && $address->getPostcode() != $postCode && $address->getStreet() != $street)) {
|
356 |
+
|
357 |
+
/**
|
358 |
+
* Ricardo API doesn't provide the region and Magento 1.6 doesn't allow to make region optional
|
359 |
+
* We use the first region found for the current country but it's far to be good
|
360 |
+
* @todo add a "other" region into each country having required region
|
361 |
+
*/
|
362 |
+
$countryId = $this->getCountryId($buyerAddress->getCountry());
|
363 |
+
$regionId = null;
|
364 |
+
if (Mage::helper('directory')->isRegionRequired($countryId)) {
|
365 |
+
$regionId = Mage::getModel('directory/region')->getCollection()
|
366 |
+
->addFieldToFilter('country_id', $countryId)
|
367 |
+
->getFirstItem()
|
368 |
+
->getId();
|
369 |
+
}
|
370 |
+
|
371 |
+
$phone = ($transaction->getBuyer()->getPhone()) ? $transaction->getBuyer()->getPhone() : $transaction->getBuyer()->getMobile();
|
372 |
+
|
373 |
+
$address = Mage::getModel('customer/address');
|
374 |
+
$address
|
375 |
+
->setCustomerId($customer->getId())
|
376 |
+
->setCompany($transaction->getBuyer()->getCompanyName())
|
377 |
+
->setLastname($customer->getLastname())
|
378 |
+
->setFirstname($customer->getFirstname())
|
379 |
+
->setStreet($street)
|
380 |
+
->setPostcode($postCode)
|
381 |
+
->setCity($city)
|
382 |
+
->setRegionId($regionId)
|
383 |
+
->setCountryId($countryId)
|
384 |
+
->setTelephone($phone)
|
385 |
+
->setIsDefaultBilling(true)
|
386 |
+
->setIsDefaultShipping(true)
|
387 |
+
->setSaveInAddressBook(1)
|
388 |
+
->save();
|
389 |
+
|
390 |
+
$customer->addAddress($address);
|
391 |
+
}
|
392 |
+
|
393 |
+
return $address;
|
394 |
+
}
|
395 |
+
|
396 |
+
/**
|
397 |
+
* @param $transaction
|
398 |
+
* @param Mage_Customer_Model_Customer $customer
|
399 |
+
* @param $address
|
400 |
+
* @param $soldArticle
|
401 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $productItem
|
402 |
+
* @param $rawData
|
403 |
+
* @return Diglin_Ricento_Model_Sales_Transaction
|
404 |
+
* @throws Exception
|
405 |
+
*/
|
406 |
+
public function saveTransaction(
|
407 |
+
$transaction,
|
408 |
+
Mage_Customer_Model_Customer $customer,
|
409 |
+
Mage_Customer_Model_Address $address,
|
410 |
+
$soldArticle,
|
411 |
+
Diglin_Ricento_Model_Products_Listing_Item $productItem,
|
412 |
+
$rawData
|
413 |
+
) {
|
414 |
+
$lang = $this->_getHelper()->getLocalCodeFromRicardoLanguageId($soldArticle->getMainLanguageId());
|
415 |
+
$transactionData = array(
|
416 |
+
'bid_id' => $transaction->getBidId(),
|
417 |
+
'website_id' => $this->_getListing()->getWebsiteId(),
|
418 |
+
'customer_id' => $customer->getId(),
|
419 |
+
'address_id' => $address->getId(),
|
420 |
+
'ricardo_customer_id' => $customer->getRicardoId(),
|
421 |
+
'ricardo_article_id' => $soldArticle->getArticleId(),
|
422 |
+
'qty' => $transaction->getBuyerQuantity(),
|
423 |
+
'view_count' => $soldArticle->getViewCount(),
|
424 |
+
'shipping_fee' => $soldArticle->getDeliveryCost(),
|
425 |
+
'shipping_text' => $soldArticle->getDeliveryText(), // @fixme - if bought in FR and the API use the DE key, text will in DE. I have no solution now
|
426 |
+
'shipping_method' => $soldArticle->getDeliveryId(),
|
427 |
+
'shipping_cumulative_fee' => (int)$soldArticle->getIsCumulativeShipping(),
|
428 |
+
'language_id' => $soldArticle->getMainLanguageId(),
|
429 |
+
'payment_methods' => implode(',', $soldArticle->getPaymentMethodIds()->getData()),
|
430 |
+
'shipping_description' => $productItem->getShippingPaymentRule()->getShippingDescription($lang),
|
431 |
+
'payment_description' => $productItem->getShippingPaymentRule()->getPaymentDescription($lang),
|
432 |
+
'total_bid_price' => $soldArticle->getWinningBidPrice(),
|
433 |
+
'product_id' => $productItem->getProductId(),
|
434 |
+
'raw_data' => Mage::helper('core')->jsonEncode($rawData),
|
435 |
+
'sold_at' => $this->_getHelper()->getJsonTimestamp($soldArticle->getEndDate())
|
436 |
+
);
|
437 |
+
|
438 |
+
$salesTransaction = Mage::getModel('diglin_ricento/sales_transaction')
|
439 |
+
->addData($transactionData)
|
440 |
+
->save();
|
441 |
+
|
442 |
+
return $salesTransaction;
|
443 |
+
}
|
444 |
+
|
445 |
+
/**
|
446 |
+
* Create new orders for transactions done more than 30 min in past (depends on the extension configuration)
|
447 |
*
|
448 |
* @return $this
|
449 |
*/
|
452 |
$customerTransactions = array();
|
453 |
$mergeOrder = Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_MERGE_ORDER);
|
454 |
|
455 |
+
$delay = ($mergeOrder) ? 30 : 0;
|
456 |
|
457 |
/**
|
458 |
* Get transaction older than 30 or 1 minutes and when no order was created
|
462 |
$transactionCollection
|
463 |
->getSelect()
|
464 |
->where('order_id IS NULL')
|
465 |
+
->where('UNIX_TIMESTAMP(sold_at) + ( ? * 60) < UNIX_TIMESTAMP(now())', (int) $delay); // 30 or 0 min past
|
466 |
|
467 |
$inc = 0;
|
468 |
foreach ($transactionCollection->getItems() as $transactionItem) {
|
485 |
}
|
486 |
}
|
487 |
|
488 |
+
/**
|
489 |
+
* Stop the list if all products listing items are stopped
|
490 |
+
*/
|
491 |
if ($this->_productsListingId) {
|
492 |
+
Mage::getResourceModel('diglin_ricento/products_listing')->setStatusStop($this->_productsListingId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
493 |
}
|
494 |
|
495 |
unset($transactionCollection);
|
499 |
}
|
500 |
|
501 |
/**
|
502 |
+
* If a customer ordered several articles of the same seller in a short period of time
|
503 |
+
* the order will merge all articles.
|
504 |
+
*
|
505 |
* @param array $transactions
|
506 |
*/
|
507 |
public function createNewOrder($transactions)
|
508 |
{
|
509 |
+
$store = $quote = null;
|
510 |
$dispatchedTransactions = array();
|
511 |
+
$shippingTransactionMethod = $shippingMethodFee = $highestShippingFee = 0;
|
512 |
$shippingText = $shippingDescription = '';
|
|
|
513 |
|
514 |
try {
|
|
|
|
|
|
|
|
|
|
|
515 |
/* @var $transaction Diglin_Ricento_Model_Sales_Transaction */
|
516 |
foreach ($transactions as $transaction) {
|
517 |
|
518 |
+
$store = $this->getStoreFromWebsite($transaction->getWebsiteId());
|
519 |
|
520 |
+
Mage::app()->getStore($store->getId())->setCurrentCurrency($this->_getCurrency());
|
521 |
+
Mage::app()->getLocale()->emulate($store->getId());
|
522 |
|
|
|
|
|
|
|
523 |
if (is_null($quote)) {
|
524 |
+
$quote = $this->createQuote($transaction, $store);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
525 |
}
|
526 |
|
527 |
+
if (!$this->addProductToQuote($transaction, $store, $quote)) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
528 |
continue;
|
529 |
}
|
530 |
|
531 |
+
// @todo provide correct language
|
532 |
+
$shippingText = $transaction->getShippingText();
|
533 |
+
$shippingDescription = $transaction->getShippingDescription();
|
|
|
|
|
|
|
534 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
535 |
$dispatchedTransactions[$transaction->getBidId()] = $transaction->getId();
|
536 |
}
|
537 |
|
538 |
+
if ($quote && $store) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
539 |
|
540 |
+
// @see Diglin_Ricento_Model_Sales_Method_Shipping::collectRates
|
541 |
+
$this->_getHelper()->getRicardoShippingRegistry()
|
|
|
|
|
|
|
542 |
->setRicardoShippingDescription($shippingText . "\n" . $shippingDescription)
|
543 |
->setRicardoShippingMethod($shippingTransactionMethod);
|
544 |
|
545 |
+
$this->prepareQuote($quote, $dispatchedTransactions, $transaction->getPaymentMethods());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
|
547 |
if ($quote->getId()) {
|
548 |
+
$orderCreateModel = $this->getOrderCreateModel();
|
549 |
+
$orderCreateModel
|
550 |
+
->setQuote($quote)
|
551 |
+
->setStore($store)
|
|
|
|
|
|
|
|
|
|
|
552 |
->initRuleData()
|
553 |
+
->setSendConfirmation(Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_ORDER_CREATION_EMAIL, $store->getId()));
|
|
|
|
|
554 |
|
555 |
+
$order = $orderCreateModel->createOrder();
|
|
|
|
|
556 |
$order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Diglin_Ricento_Helper_Data::ORDER_STATUS_PENDING, $this->_getHelper()->__('Payment is pending'), false);
|
557 |
|
558 |
// @fixme getIsTransactionCompleted or getIsTransactionCancelled has no value from ricardo.ch side at the moment, wait API update
|
565 |
// $order->setState(Mage_Sales_Model_Order::STATE_CANCELED, Diglin_Ricento_Helper_Data::ORDER_STATUS_CANCEL, $this->_getHelper()->__('Order canceled on ricardo.ch side'), false);
|
566 |
// }
|
567 |
|
568 |
+
// $quote->setIsActive(false);
|
569 |
+
// $quote->save();
|
|
|
570 |
|
571 |
/**
|
572 |
* Save the new order id to the ricardo transaction
|
579 |
}
|
580 |
}
|
581 |
}
|
|
|
|
|
582 |
}
|
583 |
+
|
584 |
+
Mage::app()->getLocale()->revert();
|
585 |
+
|
586 |
} catch (Exception $e) {
|
587 |
|
588 |
if (!isset($transaction) || !($transaction instanceof Diglin_Ricento_Model_Sales_Transaction)) {
|
589 |
$transaction = new Varien_Object();
|
590 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
591 |
|
592 |
+
$message = 'Error with ricardo Transaction ID: ' . $transaction->getBidId() . ' - Product ID:' . $transaction->getProductId() . "\n" . $e->__toString();
|
593 |
|
594 |
+
// We store and send the exception but don't block the rest of the process
|
595 |
+
Mage::log($message, Zend_Log::ERR, Diglin_Ricento_Helper_Data::LOG_FILE, true);
|
596 |
+
if ($this->_getHelper()->canSendEmailNotification()) {
|
597 |
+
Mage::helper('diglin_ricento/tools')->sendAdminNotification($message);
|
598 |
}
|
599 |
|
600 |
// Deactivate the last quote if a problem occur to prevent cart display in frontend to the customer
|
601 |
+
if ($quote && $quote->getId()) {
|
602 |
+
$quote->setIsActive(false)
|
603 |
+
->setReservedOrderId(null)
|
604 |
+
->save();
|
|
|
|
|
|
|
605 |
}
|
606 |
+
|
607 |
+
Mage::app()->getLocale()->revert();
|
608 |
}
|
609 |
|
610 |
// force to cleanup model, session and rule_data for the next orders to generate otherwise conflicts will occur
|
611 |
+
Mage::unregister('_singleton/diglin_ricento/sales_order_create');
|
|
|
612 |
Mage::unregister('rule_data');
|
613 |
+
Mage::unregister('ricardo_shipping');
|
614 |
+
}
|
615 |
+
|
616 |
+
/**
|
617 |
+
* Init Quote and define customer and his address
|
618 |
+
*
|
619 |
+
* @param Diglin_Ricento_Model_Sales_Transaction $transaction
|
620 |
+
* @param Mage_Core_Model_Store $store
|
621 |
+
* @return Mage_Sales_Model_Quote
|
622 |
+
*/
|
623 |
+
public function createQuote(Diglin_Ricento_Model_Sales_Transaction $transaction, Mage_Core_Model_Store $store)
|
624 |
+
{
|
625 |
+
$customer = Mage::getModel('customer/customer')->load($transaction->getCustomerId());
|
626 |
+
$address = Mage::getModel('customer/address')->load($transaction->getAddressId());
|
627 |
+
$address->setCustomer($customer);
|
628 |
+
|
629 |
+
$quoteAddress = Mage::getModel('sales/quote_address');
|
630 |
+
$quoteAddress->importCustomerAddress($address);
|
631 |
+
$quoteAddress->setLimitCarrier(Diglin_Ricento_Model_Sales_Method_Shipping::SHIPPING_CODE);
|
632 |
+
|
633 |
+
$quote = Mage::getModel('sales/quote');
|
634 |
+
$quote
|
635 |
+
->setStoreId($store->getId())
|
636 |
+
->assignCustomerWithAddressChange($customer, $quoteAddress, $quoteAddress);
|
637 |
+
|
638 |
+
$quote->getBillingAddress()->setPaymentMethod(Diglin_Ricento_Model_Sales_Method_Payment::PAYMENT_CODE);
|
639 |
+
$quote->save();
|
640 |
+
|
641 |
+
return $quote;
|
642 |
+
}
|
643 |
+
|
644 |
+
/**
|
645 |
+
* Add product and its information to the quote
|
646 |
+
*
|
647 |
+
* @param Diglin_Ricento_Model_Sales_Transaction $transaction
|
648 |
+
* @param Mage_Core_Model_Store $store
|
649 |
+
* @param Mage_Sales_Model_Quote $quote
|
650 |
+
* @throws Mage_Core_Exception
|
651 |
+
* @return bool
|
652 |
+
*/
|
653 |
+
public function addProductToQuote(Diglin_Ricento_Model_Sales_Transaction $transaction, Mage_Core_Model_Store $store, Mage_Sales_Model_Quote $quote)
|
654 |
+
{
|
655 |
+
$infoBuyRequest = new Varien_Object();
|
656 |
+
$infoBuyRequest
|
657 |
+
->setQty($transaction->getQty())
|
658 |
+
->setIsRicardo(true)
|
659 |
+
->setRicardoTransactionId($transaction->getId())
|
660 |
+
->setShippingCumulativeFee($transaction->getShippingCumulativeFee())
|
661 |
+
->setShippingFee($this->getShippingFee($transaction, $store->getId()));
|
662 |
+
|
663 |
+
$product = Mage::getModel('catalog/product')
|
664 |
+
->setStoreId($store->getId())
|
665 |
+
->load($transaction->getProductId())
|
666 |
+
->setSkipCheckRequiredOption(true);
|
667 |
+
|
668 |
+
if (!$product->getId()) {
|
669 |
+
return false;
|
670 |
+
}
|
671 |
+
|
672 |
+
$quoteItem = $quote->addProduct($product, $infoBuyRequest);
|
673 |
+
|
674 |
+
// Error with a product which is missing or have required options
|
675 |
+
if (is_string($quoteItem)) {
|
676 |
+
Mage::throwException($quoteItem);
|
677 |
+
}
|
678 |
+
|
679 |
+
$quoteItem
|
680 |
+
// Set unit custom price
|
681 |
+
->setCustomPrice($transaction->getTotalBidPrice())
|
682 |
+
->setOriginalCustomPrice($transaction->getTotalBidPrice());
|
683 |
+
|
684 |
+
return true;
|
685 |
+
}
|
686 |
+
|
687 |
+
/**
|
688 |
+
* @param Diglin_Ricento_Model_Sales_Transaction $transaction
|
689 |
+
* @param int|Mage_Core_Model_Store $storeId
|
690 |
+
* @return float|int|null
|
691 |
+
*/
|
692 |
+
public function getShippingFee(Diglin_Ricento_Model_Sales_Transaction $transaction, $storeId = null)
|
693 |
+
{
|
694 |
+
$currency = $this->_getCurrency();
|
695 |
+
$shippingFee = $transaction->getShippingFee();
|
696 |
+
$baseCurrencyCode = Mage::app()->getStore($storeId)->getBaseCurrencyCode();
|
697 |
+
|
698 |
+
if ($baseCurrencyCode != $currency->getCode()) {
|
699 |
+
$shippingFee = Mage::helper('diglin_ricento/price')->convert($shippingFee, $currency->getCode(), $baseCurrencyCode);
|
700 |
+
}
|
701 |
+
|
702 |
+
return $shippingFee;
|
703 |
+
}
|
704 |
+
|
705 |
+
/**
|
706 |
+
* @param Mage_Sales_Model_Quote $quote
|
707 |
+
* @param array $dispatchedTransactions
|
708 |
+
* @param $paymentMethods
|
709 |
+
* @return Mage_Sales_Model_Quote
|
710 |
+
*/
|
711 |
+
public function prepareQuote(Mage_Sales_Model_Quote $quote, array $dispatchedTransactions, $paymentMethods)
|
712 |
+
{
|
713 |
+
$shippingTransactionMethod = $this->_getHelper()
|
714 |
+
->getRicardoShippingRegistry()
|
715 |
+
->getRicardoShippingMethod();
|
716 |
+
|
717 |
+
/**
|
718 |
+
* Define payment method and related information
|
719 |
+
*/
|
720 |
+
$quote
|
721 |
+
->setIsRicardo(1)
|
722 |
+
->setForcedCurrency($this->_getCurrency());
|
723 |
+
|
724 |
+
// Must be before getPayment()->ImportData() cause of calls of collectTotals() method
|
725 |
+
$shippingAddress = $quote->getShippingAddress();
|
726 |
+
$shippingAddress
|
727 |
+
->setCollectShippingRates(true)
|
728 |
+
->setShippingMethod(Diglin_Ricento_Model_Sales_Method_Shipping::SHIPPING_CODE . '_' . $shippingTransactionMethod)
|
729 |
+
->collectShippingRates();
|
730 |
+
|
731 |
+
$quote
|
732 |
+
->getPayment()
|
733 |
+
->importData(
|
734 |
+
array(
|
735 |
+
'method' => Diglin_Ricento_Model_Sales_Method_Payment::PAYMENT_CODE,
|
736 |
+
'additional_data' => Mage::helper('core')->jsonEncode(array(
|
737 |
+
'is_ricardo' => true,
|
738 |
+
'ricardo_payment_methods' => $paymentMethods,
|
739 |
+
'ricardo_transaction_ids' => implode(',', $dispatchedTransactions),
|
740 |
+
'ricardo_bid_ids' => implode(',', array_keys($dispatchedTransactions)),
|
741 |
+
)
|
742 |
+
)
|
743 |
+
)
|
744 |
+
);
|
745 |
+
|
746 |
+
$quote
|
747 |
+
->addData(
|
748 |
+
array(
|
749 |
+
'customer_note_notify' => false,
|
750 |
+
'customer_note' => $this->_getHelper()->__('Order automatically generated by the ricardo.ch Extension.')
|
751 |
+
)
|
752 |
+
);
|
753 |
+
|
754 |
+
$quote->save();
|
755 |
+
|
756 |
+
return $quote;
|
757 |
}
|
758 |
|
759 |
/**
|
760 |
* Retrieve session object
|
761 |
*
|
762 |
+
* @deprecated
|
763 |
* @return Mage_Adminhtml_Model_Session_Quote
|
764 |
*/
|
765 |
+
public function getSession()
|
766 |
{
|
767 |
return Mage::getSingleton('adminhtml/session_quote');
|
768 |
}
|
770 |
/**
|
771 |
* Retrieve order create model
|
772 |
*
|
773 |
+
* @return Diglin_Ricento_Model_Sales_Order_Create
|
774 |
*/
|
775 |
+
public function getOrderCreateModel()
|
776 |
{
|
777 |
+
return Mage::getSingleton('diglin_ricento/sales_order_create');
|
778 |
}
|
779 |
|
780 |
/**
|
782 |
* @return string
|
783 |
* @throws Exception
|
784 |
*/
|
785 |
+
public function getCountryId($countryRicardoId)
|
786 |
{
|
787 |
$countryName = '';
|
788 |
$countries = Mage::getSingleton('diglin_ricento/api_services_system')
|
796 |
}
|
797 |
}
|
798 |
|
799 |
+
$code = $this->translateCountryNameToCode($countryName);
|
800 |
if (!$code) {
|
801 |
throw new Exception(Mage::helper('diglin_ricento')->__('Country Code is not available. Please contact the author of this extension or support.'));
|
802 |
}
|
811 |
* @param $countryName
|
812 |
* @return string
|
813 |
*/
|
814 |
+
public function translateCountryNameToCode($countryName)
|
815 |
{
|
816 |
$countryCode = array(
|
817 |
'Schweiz' => 'CH',
|
832 |
|
833 |
/**
|
834 |
* @param int $websiteId
|
835 |
+
* @return Mage_Core_Model_Store
|
836 |
*/
|
837 |
+
public function getStoreFromWebsite($websiteId)
|
838 |
{
|
839 |
+
return Mage::app()->getWebsite($websiteId)->getDefaultStore();
|
840 |
}
|
841 |
}
|
@@ -1,113 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* ricardo.ch AG - Switzerland
|
4 |
-
*
|
5 |
-
* @author Sylvain Rayé <support at diglin.com>
|
6 |
-
* @category Diglin
|
7 |
-
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c) 2014 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class Diglin_Ricento_Model_Dispatcher_Relist
|
14 |
-
*/
|
15 |
-
class Diglin_Ricento_Model_Dispatcher_Relist extends Diglin_Ricento_Model_Dispatcher_Abstract
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* @var int
|
19 |
-
*/
|
20 |
-
protected $_logType = Diglin_Ricento_Model_Products_Listing_Log::LOG_TYPE_RELIST;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* @var string
|
24 |
-
*/
|
25 |
-
protected $_jobType = Diglin_Ricento_Model_Sync_Job::TYPE_RELIST;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* @return $this
|
29 |
-
* @deprecated since 1.0
|
30 |
-
* @todo Relist is not used as we list again instead of relist, keep it at the moment
|
31 |
-
*/
|
32 |
-
protected function _proceed()
|
33 |
-
{
|
34 |
-
$job = $this->_currentJob;
|
35 |
-
$jobListing = $this->_currentJobListing;
|
36 |
-
|
37 |
-
$sell = Mage::getSingleton('diglin_ricento/api_services_sell');
|
38 |
-
$sell->setCurrentWebsite($this->_getListing()->getWebsiteId());
|
39 |
-
|
40 |
-
$relistedArticle = null;
|
41 |
-
$articleId = null;
|
42 |
-
$hasSuccess = false;
|
43 |
-
|
44 |
-
$itemCollection = $this->_getItemCollection(array(Diglin_Ricento_Helper_Data::STATUS_SOLD), $jobListing->getLastItemId());
|
45 |
-
|
46 |
-
if ($itemCollection->count() == 0) {
|
47 |
-
$job->setJobMessage(array($this->_getNoItemMessage()));
|
48 |
-
$this->_progressStatus = Diglin_Ricento_Model_Sync_Job::PROGRESS_COMPLETED;
|
49 |
-
return $this;
|
50 |
-
}
|
51 |
-
|
52 |
-
/* @var $item Diglin_Ricento_Model_Products_Listing_Item */
|
53 |
-
foreach ($itemCollection->getItems() as $item) {
|
54 |
-
|
55 |
-
try {
|
56 |
-
$relistedArticle = $sell->relistArticle($item);
|
57 |
-
|
58 |
-
$articleId = $item->getRicardoArticleId();
|
59 |
-
if (!empty($articleId)) {
|
60 |
-
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_SUCCESS;
|
61 |
-
$this->_itemMessage = array('relisted_article' => print_r($relistedArticle, true));
|
62 |
-
$hasSuccess = true;
|
63 |
-
$item->getResource()->saveCurrentItem($item->getId(), array('status' => Diglin_Ricento_Helper_Data::STATUS_LISTED));
|
64 |
-
} else {
|
65 |
-
$this->_jobHasError = true;
|
66 |
-
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_ERROR;
|
67 |
-
$item->getResource()->saveCurrentItem($item->getId(), array('status' => Diglin_Ricento_Helper_Data::STATUS_ERROR));
|
68 |
-
}
|
69 |
-
|
70 |
-
} catch (Exception $e) {
|
71 |
-
$this->_handleException($e);
|
72 |
-
$e = null;
|
73 |
-
// keep going for the next item - no break
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* Save item information and eventual error messages
|
78 |
-
*/
|
79 |
-
$this->_getListingLog()->saveLog(array(
|
80 |
-
'job_id' => $job->getId(),
|
81 |
-
'product_title' => $item->getProductTitle(),
|
82 |
-
'products_listing_id' => $this->_productsListingId,
|
83 |
-
'product_id' => $item->getProductId(),
|
84 |
-
'message' => (is_array($this->_itemMessage)) ? $this->_jsonEncode($this->_itemMessage) : $this->_itemMessage,
|
85 |
-
'log_status' => $this->_itemStatus,
|
86 |
-
'log_type' => $this->_logType,
|
87 |
-
'created_at' => Mage::getSingleton('core/date')->gmtDate()
|
88 |
-
));
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Save the current information of the process to allow live display via ajax call
|
92 |
-
*/
|
93 |
-
$jobListing->saveCurrentJob(array(
|
94 |
-
'total_proceed' => ++$this->_totalProceed,
|
95 |
-
'total_success' => ($jobListing->getTotalSuccess() + $this->_totalSuccess),
|
96 |
-
'total_error' => ($jobListing->getTotalError() + $this->_totalError),
|
97 |
-
'last_item_id' => $item->getId()
|
98 |
-
));
|
99 |
-
|
100 |
-
$this->_itemMessage = null;
|
101 |
-
$this->_itemStatus = null;
|
102 |
-
}
|
103 |
-
|
104 |
-
if ($hasSuccess) {
|
105 |
-
$listing = Mage::getModel('diglin_ricento/products_listing')->load($this->_productsListingId);
|
106 |
-
$listing
|
107 |
-
->setStatus(Diglin_Ricento_Helper_Data::STATUS_LISTED)
|
108 |
-
->save();
|
109 |
-
}
|
110 |
-
|
111 |
-
return $this;
|
112 |
-
}
|
113 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -34,7 +34,7 @@ class Diglin_Ricento_Model_Dispatcher_Stop extends Diglin_Ricento_Model_Dispatch
|
|
34 |
|
35 |
$stoppedArticle = null;
|
36 |
$articleId = null;
|
37 |
-
$
|
38 |
|
39 |
/**
|
40 |
* Status of the collection must be the same as Diglin_Ricento_Model_Resource_Products_Listing_Item::countListedItems
|
@@ -52,43 +52,67 @@ class Diglin_Ricento_Model_Dispatcher_Stop extends Diglin_Ricento_Model_Dispatch
|
|
52 |
|
53 |
/* @var $item Diglin_Ricento_Model_Products_Listing_Item */
|
54 |
foreach ($itemCollection->getItems() as $item) {
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
$item->getResource()->saveCurrentItem($item->getId(), array('ricardo_article_id' => null, 'is_planned' => null, 'qty_inventory' => null, 'status' => Diglin_Ricento_Helper_Data::STATUS_STOPPED));
|
74 |
-
} else {
|
75 |
-
++$this->_totalError;
|
76 |
-
$this->_jobHasError = true;
|
77 |
-
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_ERROR;
|
78 |
-
$this->_itemMessage = array('errors' => $this->_getHelper()->__('The product has not been removed from ricardo.ch. Probably because someone bid the product or bought it.'));
|
79 |
-
// do not change the status of the item itself, the problem can be that the auction is still running and the article cannot be stopped
|
80 |
}
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
}
|
86 |
|
87 |
/**
|
88 |
* Save item information and eventual error messages
|
89 |
*/
|
90 |
$this->_getListingLog()->saveLog(array(
|
91 |
-
'job_id' => $
|
92 |
'product_title' => $item->getProductTitle(),
|
93 |
'products_listing_id' => $this->_productsListingId,
|
94 |
'product_id' => $item->getProductId(),
|
@@ -101,10 +125,10 @@ class Diglin_Ricento_Model_Dispatcher_Stop extends Diglin_Ricento_Model_Dispatch
|
|
101 |
/**
|
102 |
* Save the current information of the process to allow live display via ajax call
|
103 |
*/
|
104 |
-
$
|
105 |
'total_proceed' => ++$this->_totalProceed,
|
106 |
-
'total_success' => ($
|
107 |
-
'total_error' => ($
|
108 |
'last_item_id' => $item->getId()
|
109 |
));
|
110 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
34 |
|
35 |
$stoppedArticle = null;
|
36 |
$articleId = null;
|
37 |
+
$plannedArticles = $insertedArticles = $closedArticles = array();
|
38 |
|
39 |
/**
|
40 |
* Status of the collection must be the same as Diglin_Ricento_Model_Resource_Products_Listing_Item::countListedItems
|
52 |
|
53 |
/* @var $item Diglin_Ricento_Model_Products_Listing_Item */
|
54 |
foreach ($itemCollection->getItems() as $item) {
|
55 |
+
if ($item->getIsPlanned()) {
|
56 |
+
$plannedArticles[] = $item->getRicardoArticleId();
|
57 |
+
} else {
|
58 |
+
$insertedArticles[] = $item->getRicardoArticleId();
|
59 |
+
}
|
60 |
+
}
|
61 |
|
62 |
+
try {
|
63 |
+
$closedArticles = $sell->stopArticles(array('planned' => $plannedArticles, 'live' => $insertedArticles));
|
64 |
+
} catch (Exception $e) {
|
65 |
+
$this->_handleException($e);
|
66 |
+
$e = null;
|
67 |
+
// keep going for the next item - no break
|
68 |
+
}
|
69 |
+
|
70 |
+
$this->_saveCurrentStatus($itemCollection, $closedArticles);
|
71 |
+
|
72 |
+
return $this;
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* @param Diglin_Ricento_Model_Resource_Products_Listing_Item_Collection $itemCollection
|
77 |
+
* @param $stoppedArticles
|
78 |
+
* @return $this
|
79 |
+
* @throws Exception
|
80 |
+
*/
|
81 |
+
protected function _saveCurrentStatus(Diglin_Ricento_Model_Resource_Products_Listing_Item_Collection $itemCollection, $stoppedArticles)
|
82 |
+
{
|
83 |
+
$hasSuccess = false;
|
84 |
+
$itemResource = Mage::getResourceModel('diglin_ricento/products_listing_item');
|
85 |
|
86 |
+
/* @var $item Diglin_Ricento_Model_Products_Listing_Item */
|
87 |
+
foreach ($itemCollection->getItems() as $item) {
|
88 |
+
|
89 |
+
$stoppedArticle = false;
|
90 |
+
foreach ($stoppedArticles as $stoppedArticle) {
|
91 |
+
if (isset($stoppedArticle['PlannedArticleId']) || isset($stoppedArticle['ArticleNr'])) {
|
92 |
+
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
}
|
94 |
+
$stoppedArticle = false;
|
95 |
+
}
|
96 |
+
|
97 |
+
if ($stoppedArticle) {
|
98 |
+
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_SUCCESS;
|
99 |
+
$this->_itemMessage = array('success' => $this->_getHelper()->__('The product has been removed from ricardo.ch'));
|
100 |
+
$hasSuccess = true;
|
101 |
+
++$this->_totalSuccess;
|
102 |
+
$itemResource->saveCurrentItem($item->getId(), array('ricardo_article_id' => null, 'is_planned' => null, 'qty_inventory' => null, 'status' => Diglin_Ricento_Helper_Data::STATUS_STOPPED));
|
103 |
+
} else {
|
104 |
+
++$this->_totalError;
|
105 |
+
$this->_jobHasError = true;
|
106 |
+
$this->_itemStatus = Diglin_Ricento_Model_Products_Listing_Log::STATUS_ERROR;
|
107 |
+
$this->_itemMessage = array('errors' => $this->_getHelper()->__('The product has not been removed from ricardo.ch. Probably because someone bid the product or bought it.'));
|
108 |
+
// do not change the status of the item itself, the problem can be that the auction is still running and the article cannot be stopped
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
* Save item information and eventual error messages
|
113 |
*/
|
114 |
$this->_getListingLog()->saveLog(array(
|
115 |
+
'job_id' => $this->_currentJob->getId(),
|
116 |
'product_title' => $item->getProductTitle(),
|
117 |
'products_listing_id' => $this->_productsListingId,
|
118 |
'product_id' => $item->getProductId(),
|
125 |
/**
|
126 |
* Save the current information of the process to allow live display via ajax call
|
127 |
*/
|
128 |
+
$this->_currentJobListing->saveCurrentJob(array(
|
129 |
'total_proceed' => ++$this->_totalProceed,
|
130 |
+
'total_success' => ($this->_totalSuccess),
|
131 |
+
'total_error' => ($this->_totalError),
|
132 |
'last_item_id' => $item->getId()
|
133 |
));
|
134 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -207,4 +207,18 @@ class Diglin_Ricento_Model_Observer
|
|
207 |
}
|
208 |
return $this;
|
209 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
207 |
}
|
208 |
return $this;
|
209 |
}
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Event
|
213 |
+
* - controller_action_layout_load_before
|
214 |
+
*
|
215 |
+
* @param Varien_Event_Observer $observer
|
216 |
+
*/
|
217 |
+
public function addLayoutHandle(Varien_Event_Observer $observer)
|
218 |
+
{
|
219 |
+
$event = $observer->getEvent();
|
220 |
+
if (strpos($event->getAction()->getFullActionName(), 'ricento') !== false) {
|
221 |
+
$event->getLayout()->getUpdate()->addHandle('ricento');
|
222 |
+
}
|
223 |
+
}
|
224 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -14,11 +14,12 @@
|
|
14 |
*
|
15 |
* Represents a Ricardo category
|
16 |
*
|
17 |
-
* @method string getCategoryId()
|
18 |
-
* @method string getCategoryName()
|
19 |
-
* @method string getIsFinal()
|
20 |
-
* @method string getLevel()
|
21 |
-
* @method string getParentId()
|
|
|
22 |
*/
|
23 |
class Diglin_Ricento_Model_Products_Category extends Varien_Object
|
24 |
{
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
14 |
*
|
15 |
* Represents a Ricardo category
|
16 |
*
|
17 |
+
* @method string getCategoryId()
|
18 |
+
* @method string getCategoryName()
|
19 |
+
* @method string getIsFinal()
|
20 |
+
* @method string getLevel()
|
21 |
+
* @method string getParentId()
|
22 |
+
* @method string getPath()
|
23 |
*/
|
24 |
class Diglin_Ricento_Model_Products_Category extends Varien_Object
|
25 |
{
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -127,13 +127,18 @@ class Diglin_Ricento_Model_Products_Category_Mapping extends Varien_Object
|
|
127 |
* Add category to index and tree
|
128 |
*
|
129 |
* @param Diglin_Ricento_Model_Products_Category $category
|
|
|
130 |
*/
|
131 |
protected function _addCategoryToIndex(Diglin_Ricento_Model_Products_Category $category)
|
132 |
{
|
133 |
$this->_categoryIndex[$category->getId()] = $category;
|
134 |
if ((int) $category->getLevel() > 0) {
|
135 |
-
$this->_categoryIndex[$category->getParentId()]
|
|
|
|
|
|
|
136 |
}
|
|
|
137 |
}
|
138 |
|
139 |
/**
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
127 |
* Add category to index and tree
|
128 |
*
|
129 |
* @param Diglin_Ricento_Model_Products_Category $category
|
130 |
+
* @return $this
|
131 |
*/
|
132 |
protected function _addCategoryToIndex(Diglin_Ricento_Model_Products_Category $category)
|
133 |
{
|
134 |
$this->_categoryIndex[$category->getId()] = $category;
|
135 |
if ((int) $category->getLevel() > 0) {
|
136 |
+
$parentCategory = $this->_categoryIndex[$category->getParentId()];
|
137 |
+
$path = ($parentCategory->getPath()) ? $parentCategory->getPath() . '/' . $parentCategory->getCategoryId() : $parentCategory->getCategoryId();
|
138 |
+
$category->setPath($path . '/' . $category->getCategoryId());
|
139 |
+
$parentCategory->addChild($category);
|
140 |
}
|
141 |
+
return $this;
|
142 |
}
|
143 |
|
144 |
/**
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -84,13 +84,6 @@ class Diglin_Ricento_Model_Products_Listing extends Mage_Core_Model_Abstract
|
|
84 |
|
85 |
// Be aware doing that doesn't trigger Magento events but it's faster
|
86 |
$this->getProductsListingItemCollection()->updateStatusToAll(Diglin_Ricento_Helper_Data::STATUS_PENDING);
|
87 |
-
|
88 |
-
// Delete configurable product children, will be recreated when the check list process is done
|
89 |
-
Mage::getResourceModel('diglin_ricento/products_listing_item_collection')
|
90 |
-
->addFieldToFilter('products_listing_id', $this->getId())
|
91 |
-
->addFieldToFilter('parent_item_id', array('notnull' => 1))
|
92 |
-
->addFieldToFilter('ricardo_article_id', array('null' => 1))
|
93 |
-
->walk('delete');
|
94 |
}
|
95 |
|
96 |
$this->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate());
|
@@ -109,7 +102,7 @@ class Diglin_Ricento_Model_Products_Listing extends Mage_Core_Model_Abstract
|
|
109 |
{
|
110 |
parent::_beforeDelete();
|
111 |
|
112 |
-
// We must not use the FK constrains cause of
|
113 |
$this->getProductsListingItemCollection()->walk('delete');
|
114 |
return $this;
|
115 |
}
|
@@ -163,81 +156,43 @@ class Diglin_Ricento_Model_Products_Listing extends Mage_Core_Model_Abstract
|
|
163 |
*/
|
164 |
public function addProduct($productId)
|
165 |
{
|
166 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
/** @var $productListingItem Diglin_Ricento_Model_Products_Listing_Item */
|
168 |
$productListingItem = Mage::getModel('diglin_ricento/products_listing_item');
|
169 |
-
$productListingItem
|
|
|
|
|
|
|
|
|
170 |
return true;
|
171 |
}
|
172 |
return false;
|
173 |
}
|
174 |
|
175 |
/**
|
176 |
-
* Removes items by product id
|
177 |
-
*
|
178 |
* @param array $productIds
|
179 |
-
* @return int[]
|
180 |
*/
|
181 |
public function removeProductsByProductIds(array $productIds)
|
182 |
{
|
183 |
-
|
184 |
-
$items = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
185 |
-
|
186 |
-
/** @var $itemResource Diglin_Ricento_Model_Resource_Products_Listing_Item */
|
187 |
-
$itemResource = Mage::getResourceModel('diglin_ricento/products_listing_item');
|
188 |
-
$itemResource->beginTransaction();
|
189 |
-
|
190 |
-
$numberOfListedItems = $items->addFieldToFilter('products_listing_id', $this->getId())
|
191 |
-
->addFieldToFilter('product_id', array('in' => $productIds))
|
192 |
-
->addFieldToFilter('status', Diglin_Ricento_Helper_Data::STATUS_LISTED)
|
193 |
-
->getSize();
|
194 |
-
|
195 |
-
$items = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
196 |
-
$numberOfItemsToDelete = $items->addFieldToFilter('products_listing_id', $this->getId())
|
197 |
-
->addFieldToFilter('product_id', array('in' => $productIds))
|
198 |
-
->addFieldToFilter('status', array('neq' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
199 |
-
->count();
|
200 |
-
|
201 |
-
if ($numberOfItemsToDelete) {
|
202 |
-
$items->walk('delete');
|
203 |
-
}
|
204 |
-
|
205 |
-
$itemResource->commit();
|
206 |
-
return array($numberOfItemsToDelete, $numberOfListedItems);
|
207 |
}
|
208 |
|
209 |
/**
|
210 |
-
*
|
211 |
-
*
|
212 |
-
* @param array $itemIds
|
213 |
-
* @return int[] Returns two values: [number of removed products, number of not removed listed products]
|
214 |
*/
|
215 |
-
public function removeProductsByItemIds(array $
|
216 |
{
|
217 |
-
|
218 |
-
$items = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
219 |
-
|
220 |
-
/** @var $itemResource Diglin_Ricento_Model_Resource_Products_Listing_Item */
|
221 |
-
$itemResource = Mage::getResourceModel('diglin_ricento/products_listing_item');
|
222 |
-
$itemResource->beginTransaction();
|
223 |
-
|
224 |
-
$numberOfListedItems = $items->addFieldToFilter('products_listing_id', $this->getId())
|
225 |
-
->addFieldToFilter('item_id', array('in' => $itemIds))
|
226 |
-
->addFieldToFilter('status', Diglin_Ricento_Helper_Data::STATUS_LISTED)
|
227 |
-
->getSize();
|
228 |
-
|
229 |
-
$items = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
230 |
-
$numberOfItemsToDelete = $items->addFieldToFilter('products_listing_id', $this->getId())
|
231 |
-
->addFieldToFilter('item_id', array('in' => $itemIds))
|
232 |
-
->addFieldToFilter('status', array('neq' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
233 |
-
->count();
|
234 |
-
|
235 |
-
if ($numberOfItemsToDelete) {
|
236 |
-
$items->walk('delete');
|
237 |
-
}
|
238 |
-
|
239 |
-
$itemResource->commit();
|
240 |
-
return array($numberOfItemsToDelete, $numberOfListedItems);
|
241 |
}
|
242 |
|
243 |
/**
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
84 |
|
85 |
// Be aware doing that doesn't trigger Magento events but it's faster
|
86 |
$this->getProductsListingItemCollection()->updateStatusToAll(Diglin_Ricento_Helper_Data::STATUS_PENDING);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
}
|
88 |
|
89 |
$this->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate());
|
102 |
{
|
103 |
parent::_beforeDelete();
|
104 |
|
105 |
+
// We must not use the FK constrains cause of the need to delete other values at item level
|
106 |
$this->getProductsListingItemCollection()->walk('delete');
|
107 |
return $this;
|
108 |
}
|
156 |
*/
|
157 |
public function addProduct($productId)
|
158 |
{
|
159 |
+
$readConnection = $this->getResource()->getReadConnection();
|
160 |
+
$select = $readConnection
|
161 |
+
->select()
|
162 |
+
->from($this->getResource()->getTable('catalog/product'), array('entity_id', 'type_id'))
|
163 |
+
->where('entity_id = ?', $productId);
|
164 |
+
|
165 |
+
$productTable = $readConnection->fetchRow($select);
|
166 |
+
|
167 |
+
if (count($productTable)) {
|
168 |
/** @var $productListingItem Diglin_Ricento_Model_Products_Listing_Item */
|
169 |
$productListingItem = Mage::getModel('diglin_ricento/products_listing_item');
|
170 |
+
$productListingItem
|
171 |
+
->setProductsListingId($this->getId())
|
172 |
+
->setProductId($productId)
|
173 |
+
->setType($productTable['type_id'])
|
174 |
+
->save();
|
175 |
return true;
|
176 |
}
|
177 |
return false;
|
178 |
}
|
179 |
|
180 |
/**
|
|
|
|
|
181 |
* @param array $productIds
|
182 |
+
* @return int[]
|
183 |
*/
|
184 |
public function removeProductsByProductIds(array $productIds)
|
185 |
{
|
186 |
+
return $this->getResource()->removeProductsByProductIds($productIds, $this->getId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
|
189 |
/**
|
190 |
+
* @param array $productIds
|
191 |
+
* @return int[]
|
|
|
|
|
192 |
*/
|
193 |
+
public function removeProductsByItemIds(array $productIds)
|
194 |
{
|
195 |
+
return $this->getResource()->removeProductsByItemIds($productIds, $this->getId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
}
|
197 |
|
198 |
/**
|
@@ -5,13 +5,12 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
use Diglin\Ricardo\Core\Helper;
|
13 |
use Diglin\Ricardo\Enums\Article\InternalReferenceType;
|
14 |
-
use Diglin\Ricardo\Enums\Article\PromotionCode;
|
15 |
use Diglin\Ricardo\Enums\PictureExtension;
|
16 |
use Diglin\Ricardo\Enums\System\CategoryBrandingFilter;
|
17 |
use Diglin\Ricardo\Managers\Sell\Parameter\ArticleDeliveryParameter;
|
@@ -22,11 +21,14 @@ use Diglin\Ricardo\Managers\Sell\Parameter\ArticlePictureParameter;
|
|
22 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticleParameter;
|
23 |
use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticleParameter;
|
24 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
|
|
|
|
25 |
|
26 |
/**
|
27 |
* Products_Listing_Item Model
|
28 |
*
|
29 |
* @method int getProductId()
|
|
|
30 |
* @method int getParentItemId()
|
31 |
* @method int getParentProductId()
|
32 |
* @method int getRicardoArticleId()
|
@@ -40,9 +42,9 @@ use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
|
40 |
* @method DateTime getUpdatedAt()
|
41 |
* @method bool getReload()
|
42 |
* @method int getStoreId()
|
43 |
-
* @method int getDefaultStoreId()
|
44 |
* @method bool getLoadFallbackOptions()
|
45 |
* @method Diglin_Ricento_Model_Products_Listing_Item setProductId(int $productId)
|
|
|
46 |
* @method Diglin_Ricento_Model_Products_Listing_Item setParentItemId(int $parentItemId)
|
47 |
* @method Diglin_Ricento_Model_Products_Listing_Item setParentProductId(int $parentProductId)
|
48 |
* @method Diglin_Ricento_Model_Products_Listing_Item setRicardoArticleId(int $ricardoArticleId)
|
@@ -57,7 +59,7 @@ use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
|
57 |
* @method Diglin_Ricento_Model_Products_Listing_Item setUpdatedAt(DateTime $updatedAt)
|
58 |
* @method Diglin_Ricento_Model_Products_Listing_Item setReload(bool $reload)
|
59 |
* @method Diglin_Ricento_Model_Products_Listing_Item setStoreId(int $storeId)
|
60 |
-
* @method Diglin_Ricento_Model_Products_Listing_Item setDefaultStoreId(int $
|
61 |
* @method Diglin_Ricento_Model_Products_Listing_Item setLoadFallbackOptions(bool $loadFallbackOptions)
|
62 |
*/
|
63 |
class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstract
|
@@ -95,6 +97,11 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
95 |
*/
|
96 |
protected $_itemProduct;
|
97 |
|
|
|
|
|
|
|
|
|
|
|
98 |
/**
|
99 |
* Products_Listing_Item Constructor
|
100 |
* @return void
|
@@ -112,30 +119,50 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
112 |
{
|
113 |
parent::_beforeSave();
|
114 |
|
115 |
-
if ($this->hasDataChanges() &&
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
if ($this->getId()) {
|
120 |
-
// Delete configurable product children, will be recreated when the check list process is done
|
121 |
-
$this->getCollection()
|
122 |
-
->addFieldToFilter('products_listing_id', $this->getProductsListingId())
|
123 |
-
->addFieldToFilter('parent_item_id', $this->getId())
|
124 |
-
->addFieldToFilter('ricardo_article_id', array('null' => 1))
|
125 |
-
->walk('delete');
|
126 |
-
}
|
127 |
-
}
|
128 |
}
|
129 |
|
130 |
-
$this->
|
|
|
|
|
|
|
|
|
|
|
131 |
|
132 |
if ($this->isObjectNew()) {
|
133 |
-
$this->setCreatedAt(
|
134 |
}
|
135 |
|
136 |
return $this;
|
137 |
}
|
138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
/**
|
140 |
* @return $this|Mage_Core_Model_Abstract
|
141 |
*/
|
@@ -153,6 +180,15 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
153 |
return $this;
|
154 |
}
|
155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
/**
|
157 |
* @return Diglin_Ricento_Model_Products_Listing_Item_Product
|
158 |
*/
|
@@ -241,7 +277,7 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
241 |
}
|
242 |
}
|
243 |
|
244 |
-
return (int)
|
245 |
}
|
246 |
|
247 |
/**
|
@@ -299,30 +335,33 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
299 |
public function getProductDescription($sub = true)
|
300 |
{
|
301 |
$description = $this->getProduct()->getDescription($this->getBaseProductId(), $this->getStoreId(), $sub);
|
|
|
302 |
|
303 |
-
return strip_tags(
|
304 |
}
|
305 |
|
306 |
/**
|
|
|
|
|
307 |
* @return float
|
308 |
*/
|
309 |
-
public function getProductPrice()
|
310 |
{
|
311 |
-
|
312 |
-
$productPrice = $this->getProduct()
|
313 |
-
->setProductId($this->getBaseProductId())
|
314 |
-
->setStoreId($this->getDefaultStoreId())
|
315 |
-
->getPrice();
|
316 |
-
|
317 |
-
// if child of configurable add the product variation depending on the options (options are ordered by position normally)
|
318 |
if ($this->getParentProductId()) {
|
319 |
foreach ($this->getAdditionalData()->getOptions() as $option) {
|
320 |
if (isset($option['pricing_value'])) {
|
321 |
-
$
|
322 |
}
|
323 |
}
|
324 |
}
|
325 |
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
return $productPrice;
|
327 |
}
|
328 |
|
@@ -331,13 +370,24 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
331 |
*/
|
332 |
public function getProductQty()
|
333 |
{
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
338 |
}
|
339 |
|
340 |
-
|
|
|
|
|
341 |
} else {
|
342 |
return $this->getSalesOptions()->getStockManagement();
|
343 |
}
|
@@ -356,9 +406,7 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
356 |
*/
|
357 |
public function getProductCondition()
|
358 |
{
|
359 |
-
$
|
360 |
-
$sourceCondition = $salesOptions->getProductConditionSourceAttributeCode();
|
361 |
-
|
362 |
if (!empty($sourceCondition)) {
|
363 |
$condition = $this->getProduct()->getCondition($this->getBaseProductId());
|
364 |
if (!empty($condition)) {
|
@@ -366,7 +414,7 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
366 |
}
|
367 |
}
|
368 |
|
369 |
-
return $
|
370 |
}
|
371 |
|
372 |
/**
|
@@ -379,38 +427,52 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
379 |
|
380 |
/**
|
381 |
* Define a list of store IDs for each supported and expected language
|
382 |
-
* Define a default one in case of accept all languages
|
383 |
*
|
384 |
* @return array
|
385 |
*/
|
386 |
protected function _prepareStoresLanguage()
|
387 |
{
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
$this->setDefaultStoreId($storesLang[$language]);
|
401 |
}
|
|
|
|
|
|
|
402 |
}
|
403 |
-
} else {
|
404 |
-
$method = 'getLangStoreId' . ucwords($publishLanguages);
|
405 |
-
$storesLang[$publishLanguages] = $this->$method();
|
406 |
}
|
407 |
|
408 |
-
return $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
}
|
410 |
|
411 |
/**
|
412 |
* Prepare the InsertArticle Parameter
|
413 |
*
|
|
|
414 |
* @return InsertArticleParameter
|
415 |
*/
|
416 |
public function getInsertArticleParameter()
|
@@ -431,31 +493,87 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
431 |
|
432 |
//** Article Images
|
433 |
|
434 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
435 |
$images = (array) $this->getProduct()->getImages($this->getBaseProductId());
|
436 |
$i = 0;
|
437 |
$hash = array();
|
438 |
|
439 |
foreach ($images as $image) {
|
440 |
|
441 |
-
if ($i >=
|
|
|
|
|
442 |
|
443 |
$hashImage = md5($image['filepath']);
|
444 |
-
if (isset($image['filepath']) &&
|
445 |
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
|
|
|
|
|
|
450 |
|
451 |
// Prepare picture to set the content as byte array for the webservice
|
452 |
-
$imageExtension = Helper::getPictureExtension($
|
453 |
-
|
454 |
if ($imageExtension) {
|
455 |
$picture = new ArticlePictureParameter();
|
456 |
$picture
|
457 |
// we encode in Json to minimize memory consumption
|
458 |
-
->setPictureBytes(json_encode(array_values(unpack('C*', file_get_contents($
|
459 |
->setPictureExtension($imageExtension)
|
460 |
->setPictureIndex(++$i);
|
461 |
|
@@ -467,12 +585,7 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
467 |
}
|
468 |
}
|
469 |
|
470 |
-
$
|
471 |
-
->setAntiforgeryToken($this->_getAntiforgeryToken())
|
472 |
-
->setArticleInformation($this->_getArticleInformationParameter())
|
473 |
-
->setIsUpdateArticle(false);
|
474 |
-
|
475 |
-
return $insertArticleParameter;
|
476 |
}
|
477 |
|
478 |
/**
|
@@ -525,38 +638,30 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
525 |
*/
|
526 |
protected function _getArticleInformationParameter()
|
527 |
{
|
528 |
-
$
|
529 |
$paymentConditions = array();
|
530 |
-
|
531 |
-
$
|
532 |
-
$salesType = $this->_salesOptions->getSalesType();
|
533 |
|
534 |
foreach ($paymentMethods as $paymentMethod) {
|
535 |
$paymentConditions[] = $this->_getPaymentConditionId($paymentMethod);
|
536 |
}
|
537 |
|
538 |
-
|
539 |
-
|
540 |
-
} else {
|
541 |
-
$startDate = $this->_salesOptions->getScheduleDateStart();
|
542 |
-
}
|
543 |
-
|
544 |
-
$untilSoldOut = ((int) $this->_salesOptions->getScheduleReactivation() === Diglin_Ricento_Model_Config_Source_Sales_Reactivation::SOLDOUT);
|
545 |
-
|
546 |
-
$customTemplate = ($this->_salesOptions->getCustomizationTemplate() >= 0) ? $this->_salesOptions->getCustomizationTemplate() : null;
|
547 |
|
548 |
$articleInformation = new ArticleInformationParameter();
|
549 |
$articleInformation
|
550 |
// required
|
551 |
->setArticleConditionId($this->getProductCondition())
|
552 |
-
->setArticleDuration(($this->
|
553 |
->setAvailabilityId($this->_shippingPaymentRule->getShippingAvailability())
|
554 |
->setCategoryId($this->getCategory())
|
555 |
->setInitialQuantity($this->getProductQty())
|
556 |
->setIsCustomerTemplate(((!is_null($customTemplate)) ? true : false))
|
557 |
->setMainPictureId(1)
|
558 |
-
->setMaxRelistCount((!$untilSoldOut) ? $this->
|
559 |
-
->setWarrantyId($this->
|
560 |
->setDeliveries($this->_getArticleDeliveryParameter())
|
561 |
// optional
|
562 |
->setInternalReferences($this->_getInternalReferencesParameter())
|
@@ -567,28 +672,17 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
567 |
/**
|
568 |
* Start Date is mandatory for auction but optional for buy now sales type
|
569 |
*/
|
570 |
-
|
571 |
-
$startDate = strtotime($startDate);
|
572 |
-
|
573 |
-
// ricardo.ch constrains, starting date must be in 1 hour after now
|
574 |
-
if ($startDate < (time() + 60*60)) {
|
575 |
-
$startDate = time() + 60*60;
|
576 |
-
}
|
577 |
-
|
578 |
-
$articleInformation->setStartDate(Mage::helper('diglin_ricento')->getJsonDate($startDate));
|
579 |
-
}
|
580 |
|
581 |
if ($salesType == Diglin_Ricento_Model_Config_Source_Sales_Type::AUCTION) {
|
582 |
$articleInformation
|
583 |
-
->setIncrement($this->
|
584 |
-
->setStartPrice($this->
|
585 |
-
|
586 |
-
if ($this->_salesOptions->getSalesAuctionDirectBuy()) {
|
587 |
-
$promotionIds[] = PromotionCode::BUYNOW;
|
588 |
-
}
|
589 |
}
|
590 |
|
591 |
-
if ($salesType == Diglin_Ricento_Model_Config_Source_Sales_Type::BUYNOW
|
|
|
|
|
592 |
$articleInformation->setBuyNowPrice($this->getProductPrice());
|
593 |
}
|
594 |
|
@@ -596,24 +690,14 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
596 |
$articleInformation->setIsRelistSoldOut($untilSoldOut);
|
597 |
}
|
598 |
|
599 |
-
//** Promotions
|
600 |
-
|
601 |
-
$space = $this->_salesOptions->getPromotionSpace();
|
602 |
-
if ($space) {
|
603 |
-
$promotionIds[] = (int) $space;
|
604 |
-
}
|
605 |
-
|
606 |
-
$startSpace = $this->_salesOptions->getPromotionStartPage();
|
607 |
-
if ($startSpace) {
|
608 |
-
$promotionIds[] = (int) $startSpace;
|
609 |
-
}
|
610 |
-
|
611 |
// required
|
612 |
-
$articleInformation->setPromotionIds($
|
613 |
|
614 |
return $articleInformation;
|
615 |
}
|
616 |
|
|
|
|
|
617 |
/**
|
618 |
* Prepare Article Description Parameter
|
619 |
*
|
@@ -644,14 +728,14 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
644 |
*/
|
645 |
protected function _getPaymentConditionId($paymentMethod)
|
646 |
{
|
647 |
-
$
|
648 |
-
|
649 |
|
650 |
foreach ($conditions as $condition) {
|
651 |
if (isset($condition['PaymentMethods']) && !empty($condition['PaymentMethods'])) {
|
652 |
foreach ($condition['PaymentMethods'] as $method) {
|
653 |
-
if (isset($method['PaymentMethodId']) && $method['PaymentMethodId'] == (int)
|
654 |
-
return (int)
|
655 |
}
|
656 |
}
|
657 |
}
|
@@ -699,10 +783,7 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
699 |
*/
|
700 |
protected function _getAntiforgeryToken()
|
701 |
{
|
702 |
-
return Mage::
|
703 |
-
->setCurrentWebsite($this->getProductsListing()->getWebsiteId())
|
704 |
-
->getServiceModel()
|
705 |
-
->getAntiforgeryToken();
|
706 |
}
|
707 |
|
708 |
/**
|
@@ -718,4 +799,37 @@ class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstrac
|
|
718 |
}
|
719 |
return array();
|
720 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
721 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
use Diglin\Ricardo\Core\Helper;
|
13 |
use Diglin\Ricardo\Enums\Article\InternalReferenceType;
|
|
|
14 |
use Diglin\Ricardo\Enums\PictureExtension;
|
15 |
use Diglin\Ricardo\Enums\System\CategoryBrandingFilter;
|
16 |
use Diglin\Ricardo\Managers\Sell\Parameter\ArticleDeliveryParameter;
|
21 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticleParameter;
|
22 |
use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticleParameter;
|
23 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
24 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\GetArticleFeeParameter;
|
25 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\BaseInsertArticleWithTrackingParameter;
|
26 |
|
27 |
/**
|
28 |
* Products_Listing_Item Model
|
29 |
*
|
30 |
* @method int getProductId()
|
31 |
+
* @method string getType()
|
32 |
* @method int getParentItemId()
|
33 |
* @method int getParentProductId()
|
34 |
* @method int getRicardoArticleId()
|
42 |
* @method DateTime getUpdatedAt()
|
43 |
* @method bool getReload()
|
44 |
* @method int getStoreId()
|
|
|
45 |
* @method bool getLoadFallbackOptions()
|
46 |
* @method Diglin_Ricento_Model_Products_Listing_Item setProductId(int $productId)
|
47 |
+
* @method Diglin_Ricento_Model_Products_Listing_Item setType(string $type)
|
48 |
* @method Diglin_Ricento_Model_Products_Listing_Item setParentItemId(int $parentItemId)
|
49 |
* @method Diglin_Ricento_Model_Products_Listing_Item setParentProductId(int $parentProductId)
|
50 |
* @method Diglin_Ricento_Model_Products_Listing_Item setRicardoArticleId(int $ricardoArticleId)
|
59 |
* @method Diglin_Ricento_Model_Products_Listing_Item setUpdatedAt(DateTime $updatedAt)
|
60 |
* @method Diglin_Ricento_Model_Products_Listing_Item setReload(bool $reload)
|
61 |
* @method Diglin_Ricento_Model_Products_Listing_Item setStoreId(int $storeId)
|
62 |
+
* @method Diglin_Ricento_Model_Products_Listing_Item setDefaultStoreId(int $defaultStoreId)
|
63 |
* @method Diglin_Ricento_Model_Products_Listing_Item setLoadFallbackOptions(bool $loadFallbackOptions)
|
64 |
*/
|
65 |
class Diglin_Ricento_Model_Products_Listing_Item extends Mage_Core_Model_Abstract
|
97 |
*/
|
98 |
protected $_itemProduct;
|
99 |
|
100 |
+
/**
|
101 |
+
* @var array
|
102 |
+
*/
|
103 |
+
protected $_storesLang = array();
|
104 |
+
|
105 |
/**
|
106 |
* Products_Listing_Item Constructor
|
107 |
* @return void
|
119 |
{
|
120 |
parent::_beforeSave();
|
121 |
|
122 |
+
if ($this->hasDataChanges() && !$this->dataHasChangedFor('status')
|
123 |
+
&& $this->getStatus() != Diglin_Ricento_Helper_Data::STATUS_LISTED
|
124 |
+
) {
|
125 |
+
$this->setStatus(Diglin_Ricento_Helper_Data::STATUS_PENDING);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
}
|
127 |
|
128 |
+
if ($this->getType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
|
129 |
+
$this->setStatus('');
|
130 |
+
}
|
131 |
+
|
132 |
+
$gmtDate = Mage::getSingleton('core/date')->gmtDate();
|
133 |
+
$this->setUpdatedAt($gmtDate);
|
134 |
|
135 |
if ($this->isObjectNew()) {
|
136 |
+
$this->setCreatedAt($gmtDate);
|
137 |
}
|
138 |
|
139 |
return $this;
|
140 |
}
|
141 |
|
142 |
+
/**
|
143 |
+
* @return Mage_Core_Model_Abstract
|
144 |
+
* @throws Exception
|
145 |
+
*/
|
146 |
+
protected function _afterSave()
|
147 |
+
{
|
148 |
+
if ($this->hasDataChanges() && $this->getType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
|
149 |
+
$childCollection = $this->getCollection()
|
150 |
+
->addFieldToFilter('products_listing_id', $this->getProductsListingId())
|
151 |
+
->addFieldToFilter('parent_item_id', $this->getId())
|
152 |
+
->addFieldToFilter('ricardo_article_id', array('null' => 1));
|
153 |
+
|
154 |
+
/* @var $child Diglin_Ricento_Model_Products_Listing_Item */
|
155 |
+
foreach ($childCollection->getItems() as $child) {
|
156 |
+
$child
|
157 |
+
->setRuleId($this->getRuleId())
|
158 |
+
->setSalesOptionsId($this->getSalesOptionsId())
|
159 |
+
->save();
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
return parent::_afterSave();
|
164 |
+
}
|
165 |
+
|
166 |
/**
|
167 |
* @return $this|Mage_Core_Model_Abstract
|
168 |
*/
|
180 |
return $this;
|
181 |
}
|
182 |
|
183 |
+
/**
|
184 |
+
* @return mixed
|
185 |
+
*/
|
186 |
+
public function getDefaultStoreId()
|
187 |
+
{
|
188 |
+
$this->_prepareStoresLanguage();
|
189 |
+
return $this->getData('default_store_id');
|
190 |
+
}
|
191 |
+
|
192 |
/**
|
193 |
* @return Diglin_Ricento_Model_Products_Listing_Item_Product
|
194 |
*/
|
277 |
}
|
278 |
}
|
279 |
|
280 |
+
return (int)$ricardoCategoryId;
|
281 |
}
|
282 |
|
283 |
/**
|
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 |
}
|
342 |
|
343 |
/**
|
344 |
+
* Return the product price in CHF
|
345 |
+
*
|
346 |
* @return float
|
347 |
*/
|
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'])) {
|
354 |
+
$priceOptions[] = $option;
|
355 |
}
|
356 |
}
|
357 |
}
|
358 |
|
359 |
+
// We take the price from default store view of the current Product Listing Website and parent product if relevant
|
360 |
+
$productPrice = $this->getProduct()
|
361 |
+
->setStoreId($this->getDefaultStoreId())
|
362 |
+
->setPriceOptions($priceOptions)
|
363 |
+
->getPrice($convert);
|
364 |
+
|
365 |
return $productPrice;
|
366 |
}
|
367 |
|
370 |
*/
|
371 |
public function getProductQty()
|
372 |
{
|
373 |
+
$qtyMax = Diglin_Ricento_Model_Validate_Products_Item::QTY_MAX;
|
374 |
+
|
375 |
+
if ($this->getSalesOptions()->getStockManagement() == -1
|
376 |
+
|| $this->getSalesOptions()->getStockManagementQtyType() == Diglin_Ricento_Helper_Data::INVENTORY_QTY_TYPE_PERCENT) {
|
377 |
+
|
378 |
+
$qty = $this->getProduct()->getQty();
|
379 |
+
|
380 |
+
if ($qty <= 0) {
|
381 |
+
return 0;
|
382 |
+
}
|
383 |
+
|
384 |
+
if ($this->getSalesOptions()->getStockManagement() == -1) {
|
385 |
+
return ($qty > $qtyMax) ? $qtyMax : $qty;
|
386 |
}
|
387 |
|
388 |
+
$qty = $this->getProduct()->getPercentQty($qty, $this->getSalesOptions()->getStockManagement(), Diglin_Ricento_Helper_Data::INVENTORY_QTY_TYPE_PERCENT);
|
389 |
+
|
390 |
+
return ($qty > $qtyMax) ? $qtyMax : $qty;
|
391 |
} else {
|
392 |
return $this->getSalesOptions()->getStockManagement();
|
393 |
}
|
406 |
*/
|
407 |
public function getProductCondition()
|
408 |
{
|
409 |
+
$sourceCondition = $this->getSalesOptions()->getProductConditionSourceAttributeCode();
|
|
|
|
|
410 |
if (!empty($sourceCondition)) {
|
411 |
$condition = $this->getProduct()->getCondition($this->getBaseProductId());
|
412 |
if (!empty($condition)) {
|
414 |
}
|
415 |
}
|
416 |
|
417 |
+
return $this->getSalesOptions()->getProductCondition();
|
418 |
}
|
419 |
|
420 |
/**
|
427 |
|
428 |
/**
|
429 |
* Define a list of store IDs for each supported and expected language
|
|
|
430 |
*
|
431 |
* @return array
|
432 |
*/
|
433 |
protected function _prepareStoresLanguage()
|
434 |
{
|
435 |
+
if (!$this->_storesLang) {
|
436 |
+
$defaultLang = null;
|
437 |
+
$publishLanguages = $this->getProductsListing()->getPublishLanguages();
|
438 |
+
|
439 |
+
if ($publishLanguages == 'all') {
|
440 |
+
$languages = Mage::helper('diglin_ricento')->getSupportedLang();
|
441 |
+
$defaultLang = $this->getProductsListing()->getDefaultLanguage();
|
442 |
+
foreach ($languages as $language) {
|
443 |
+
$this->_storesLang[$language] = $this->getLangStoreId($language);
|
444 |
+
if ($defaultLang == $language) {
|
445 |
+
$this->setDefaultStoreId($this->_storesLang[$language]);
|
446 |
+
}
|
|
|
447 |
}
|
448 |
+
} else {
|
449 |
+
$this->_storesLang[$publishLanguages] = $this->getLangStoreId($publishLanguages);
|
450 |
+
$this->setDefaultStoreId($this->_storesLang[$publishLanguages]);
|
451 |
}
|
|
|
|
|
|
|
452 |
}
|
453 |
|
454 |
+
return $this->_storesLang;
|
455 |
+
}
|
456 |
+
|
457 |
+
/**
|
458 |
+
* @param string $language
|
459 |
+
* @return int
|
460 |
+
* @throws Mage_Core_Exception
|
461 |
+
*/
|
462 |
+
public function getLangStoreId($language)
|
463 |
+
{
|
464 |
+
$method = 'getLangStoreId' . ucwords($language);
|
465 |
+
$storeId = $this->getProductsListing()->$method();
|
466 |
+
if (is_null($storeId)) {
|
467 |
+
$storeId = Mage::app()->getWebsite($this->getProductsListing()->getWebsiteId())->getDefaultStore()->getId();
|
468 |
+
}
|
469 |
+
return (int) $storeId;
|
470 |
}
|
471 |
|
472 |
/**
|
473 |
* Prepare the InsertArticle Parameter
|
474 |
*
|
475 |
+
* @deprecated
|
476 |
* @return InsertArticleParameter
|
477 |
*/
|
478 |
public function getInsertArticleParameter()
|
493 |
|
494 |
//** Article Images
|
495 |
|
496 |
+
$this->_setInsertArticlePictures($insertArticleParameter);
|
497 |
+
|
498 |
+
$insertArticleParameter
|
499 |
+
->setAntiforgeryToken($this->_getAntiforgeryToken())
|
500 |
+
->setArticleInformation($this->_getArticleInformationParameter())
|
501 |
+
->setIsUpdateArticle(false);
|
502 |
+
|
503 |
+
$this->setLoadFallbackOptions(false);
|
504 |
+
|
505 |
+
return $insertArticleParameter;
|
506 |
+
}
|
507 |
+
|
508 |
+
/**
|
509 |
+
* Prepare the InsertArticle Parameter
|
510 |
+
*
|
511 |
+
* @return BaseInsertArticleWithTrackingParameter
|
512 |
+
*/
|
513 |
+
public function getBaseInsertArticleWithTracking()
|
514 |
+
{
|
515 |
+
$baseInsert = new BaseInsertArticleWithTrackingParameter();
|
516 |
+
|
517 |
+
$this->setLoadFallbackOptions(true);
|
518 |
+
|
519 |
+
$this->_shippingPaymentRule = $this->getShippingPaymentRule();
|
520 |
+
$this->_salesOptions = $this->getSalesOptions();
|
521 |
+
|
522 |
+
//** Article Description
|
523 |
+
|
524 |
+
foreach ($this->_prepareStoresLanguage() as $language => $storeId) {
|
525 |
+
$this->setStoreId($storeId);
|
526 |
+
$baseInsert->setDescriptions($this->_getArticleDescriptionsParameter($language));
|
527 |
+
}
|
528 |
+
|
529 |
+
//** Article Images
|
530 |
+
|
531 |
+
$this->_setInsertArticlePictures($baseInsert);
|
532 |
+
|
533 |
+
$baseInsert
|
534 |
+
->setArticleInformation($this->_getArticleInformationParameter())
|
535 |
+
->setIsUpdateArticle(false)
|
536 |
+
->setCorrelationKey(Helper::guid());
|
537 |
+
|
538 |
+
$this->setLoadFallbackOptions(false);
|
539 |
+
|
540 |
+
return $baseInsert;
|
541 |
+
}
|
542 |
+
|
543 |
+
/**
|
544 |
+
* @param InsertArticleParameter $insertArticleParameter
|
545 |
+
* @return $this
|
546 |
+
*/
|
547 |
+
protected function _setInsertArticlePictures(InsertArticleParameter $insertArticleParameter)
|
548 |
+
{
|
549 |
$images = (array) $this->getProduct()->getImages($this->getBaseProductId());
|
550 |
$i = 0;
|
551 |
$hash = array();
|
552 |
|
553 |
foreach ($images as $image) {
|
554 |
|
555 |
+
if ($i >= 10) {
|
556 |
+
break;
|
557 |
+
}; // Do not set more than 10 pictures
|
558 |
|
559 |
$hashImage = md5($image['filepath']);
|
560 |
+
if (isset($image['filepath']) && !isset($hash[$hashImage])) {
|
561 |
|
562 |
+
$imageHelper = Mage::helper('diglin_ricento/image');
|
563 |
+
$imageHelper
|
564 |
+
->init(new Mage_Catalog_Model_Product(), 'image', $image['filepath'])
|
565 |
+
->keepAspectRatio(true)
|
566 |
+
->keepFrame(false)
|
567 |
+
->setQuality(90)
|
568 |
+
->resize(600);
|
569 |
|
570 |
// Prepare picture to set the content as byte array for the webservice
|
571 |
+
$imageExtension = Helper::getPictureExtension($imageHelper);
|
|
|
572 |
if ($imageExtension) {
|
573 |
$picture = new ArticlePictureParameter();
|
574 |
$picture
|
575 |
// we encode in Json to minimize memory consumption
|
576 |
+
->setPictureBytes(json_encode(array_values(unpack('C*', file_get_contents($imageHelper)))))
|
577 |
->setPictureExtension($imageExtension)
|
578 |
->setPictureIndex(++$i);
|
579 |
|
585 |
}
|
586 |
}
|
587 |
|
588 |
+
return $this;
|
|
|
|
|
|
|
|
|
|
|
589 |
}
|
590 |
|
591 |
/**
|
638 |
*/
|
639 |
protected function _getArticleInformationParameter()
|
640 |
{
|
641 |
+
$helper = Mage::helper('diglin_ricento');
|
642 |
$paymentConditions = array();
|
643 |
+
$paymentMethods = (array)$this->_shippingPaymentRule->getPaymentMethods();
|
644 |
+
$salesType = $this->getSalesOptions()->getSalesType();
|
|
|
645 |
|
646 |
foreach ($paymentMethods as $paymentMethod) {
|
647 |
$paymentConditions[] = $this->_getPaymentConditionId($paymentMethod);
|
648 |
}
|
649 |
|
650 |
+
$untilSoldOut = ((int)$this->getSalesOptions()->getScheduleReactivation() === Diglin_Ricento_Model_Config_Source_Sales_Reactivation::SOLDOUT);
|
651 |
+
$customTemplate = ($this->getSalesOptions()->getCustomizationTemplate() >= 0) ? $this->getSalesOptions()->getCustomizationTemplate() : null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
652 |
|
653 |
$articleInformation = new ArticleInformationParameter();
|
654 |
$articleInformation
|
655 |
// required
|
656 |
->setArticleConditionId($this->getProductCondition())
|
657 |
+
->setArticleDuration(($this->getSalesOptions()->getSchedulePeriodDays() * 24 * 60)) // In minutes
|
658 |
->setAvailabilityId($this->_shippingPaymentRule->getShippingAvailability())
|
659 |
->setCategoryId($this->getCategory())
|
660 |
->setInitialQuantity($this->getProductQty())
|
661 |
->setIsCustomerTemplate(((!is_null($customTemplate)) ? true : false))
|
662 |
->setMainPictureId(1)
|
663 |
+
->setMaxRelistCount((!$untilSoldOut) ? $this->getSalesOptions()->getScheduleReactivation() : 0)
|
664 |
+
->setWarrantyId($this->getSalesOptions()->getProductWarranty())
|
665 |
->setDeliveries($this->_getArticleDeliveryParameter())
|
666 |
// optional
|
667 |
->setInternalReferences($this->_getInternalReferencesParameter())
|
672 |
/**
|
673 |
* Start Date is mandatory for auction but optional for buy now sales type
|
674 |
*/
|
675 |
+
$articleInformation->setStartDate($helper->getJsonDate($helper->getStartingDate($this)));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
676 |
|
677 |
if ($salesType == Diglin_Ricento_Model_Config_Source_Sales_Type::AUCTION) {
|
678 |
$articleInformation
|
679 |
+
->setIncrement($this->getSalesOptions()->getSalesAuctionIncrement())
|
680 |
+
->setStartPrice($this->getSalesOptions()->getSalesAuctionStartPrice());
|
|
|
|
|
|
|
|
|
681 |
}
|
682 |
|
683 |
+
if ($salesType == Diglin_Ricento_Model_Config_Source_Sales_Type::BUYNOW
|
684 |
+
|| $this->getSalesOptions()->getSalesAuctionDirectBuy()
|
685 |
+
) {
|
686 |
$articleInformation->setBuyNowPrice($this->getProductPrice());
|
687 |
}
|
688 |
|
690 |
$articleInformation->setIsRelistSoldOut($untilSoldOut);
|
691 |
}
|
692 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
693 |
// required
|
694 |
+
$articleInformation->setPromotionIds($this->getSalesOptions()->getPromotionIds());
|
695 |
|
696 |
return $articleInformation;
|
697 |
}
|
698 |
|
699 |
+
|
700 |
+
|
701 |
/**
|
702 |
* Prepare Article Description Parameter
|
703 |
*
|
728 |
*/
|
729 |
protected function _getPaymentConditionId($paymentMethod)
|
730 |
{
|
731 |
+
$conditions = (array) Mage::getSingleton('diglin_ricento/api_services_system')
|
732 |
+
->getPaymentConditionsAndMethods();
|
733 |
|
734 |
foreach ($conditions as $condition) {
|
735 |
if (isset($condition['PaymentMethods']) && !empty($condition['PaymentMethods'])) {
|
736 |
foreach ($condition['PaymentMethods'] as $method) {
|
737 |
+
if (isset($method['PaymentMethodId']) && $method['PaymentMethodId'] == (int)$paymentMethod) {
|
738 |
+
return (int)$condition['PaymentConditionId'];
|
739 |
}
|
740 |
}
|
741 |
}
|
783 |
*/
|
784 |
protected function _getAntiforgeryToken()
|
785 |
{
|
786 |
+
return Mage::helper('diglin_ricento/api')->getAntiforgeryToken($this->getProductsListing()->getWebsiteId());
|
|
|
|
|
|
|
787 |
}
|
788 |
|
789 |
/**
|
799 |
}
|
800 |
return array();
|
801 |
}
|
802 |
+
|
803 |
+
/**
|
804 |
+
* @return GetArticleFeeParameter
|
805 |
+
*/
|
806 |
+
public function getArticleFeeDetails($excludeListingFees = false)
|
807 |
+
{
|
808 |
+
$helper = Mage::helper('diglin_ricento');
|
809 |
+
|
810 |
+
$this->setLoadFallbackOptions(true);
|
811 |
+
$salesType = $this->getSalesOptions()->getSalesType();
|
812 |
+
|
813 |
+
$articleFeeParameter = new GetArticleFeeParameter();
|
814 |
+
$articleFeeParameter
|
815 |
+
->setArticleCondition($this->getProductCondition())
|
816 |
+
->setCategoryId($this->getCategory())
|
817 |
+
->setExcludeListingFees($excludeListingFees)
|
818 |
+
->setInitialQuantity($this->getProductQty())
|
819 |
+
->setPictureCount(0) //@todo check if it is really relevant to send this information as we save some computation, there is no influence on final price
|
820 |
+
->setPromotionIds($this->getSalesOptions()->getPromotionIds())
|
821 |
+
->setStartDate(Helper::getJsonDate($helper->getStartingDate($this)));
|
822 |
+
|
823 |
+
if ($salesType == Diglin_Ricento_Model_Config_Source_Sales_Type::AUCTION) {
|
824 |
+
$articleFeeParameter->setStartPrice($this->getSalesOptions()->getSalesAuctionStartPrice());
|
825 |
+
}
|
826 |
+
|
827 |
+
if ($salesType == Diglin_Ricento_Model_Config_Source_Sales_Type::BUYNOW || $this->getSalesOptions()->getSalesAuctionDirectBuy()) {
|
828 |
+
$articleFeeParameter->setBuyNowPrice($this->getProductPrice());
|
829 |
+
}
|
830 |
+
|
831 |
+
$this->setLoadFallbackOptions(false);
|
832 |
+
|
833 |
+
return $articleFeeParameter;
|
834 |
+
}
|
835 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -77,7 +77,14 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
77 |
*
|
78 |
* @var array
|
79 |
*/
|
80 |
-
protected $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
|
82 |
protected $_title;
|
83 |
protected $_subtitle;
|
@@ -118,11 +125,11 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
118 |
*/
|
119 |
public function getMagentoProduct()
|
120 |
{
|
121 |
-
if ($this->_model) {
|
122 |
return $this->_model;
|
123 |
}
|
124 |
|
125 |
-
if ($this->
|
126 |
$this->loadProduct();
|
127 |
return $this->_model;
|
128 |
}
|
@@ -152,8 +159,8 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
152 |
*/
|
153 |
public function loadProduct($productId = null, $storeId = null)
|
154 |
{
|
155 |
-
$productId = (is_null($productId)) ? $this->
|
156 |
-
$storeId = (is_null($storeId)) ? $this->
|
157 |
|
158 |
if (!$productId) {
|
159 |
throw new Exception('Product ID is empty.');
|
@@ -177,7 +184,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
177 |
{
|
178 |
return array(
|
179 |
$storeId,
|
180 |
-
$this->getDefaultStoreId(),
|
181 |
Mage_Core_Model_App::ADMIN_STORE_ID
|
182 |
);
|
183 |
}
|
@@ -190,7 +197,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
190 |
{
|
191 |
(!is_null($productId)) && $this->_productId = $productId;
|
192 |
|
193 |
-
$productId = (int) is_null($productId) ? $this->
|
194 |
|
195 |
if (empty($productId)) {
|
196 |
return false;
|
@@ -248,13 +255,13 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
248 |
return $this->_model->getTypeId();
|
249 |
}
|
250 |
|
251 |
-
$productId = (int) (is_null($productId) ? $this->
|
252 |
|
253 |
if (empty($productId) && empty($this->_typeid)) {
|
254 |
return false;
|
255 |
}
|
256 |
|
257 |
-
if (empty($this->_typeid) || $productId != $this->
|
258 |
$this->getProductInformation($productId);
|
259 |
}
|
260 |
|
@@ -271,13 +278,13 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
271 |
return $this->_model->getHasOptions();
|
272 |
}
|
273 |
|
274 |
-
$productId = (int) (is_null($productId) ? $this->
|
275 |
|
276 |
if (empty($productId) && empty($this->_has_options)) {
|
277 |
return false;
|
278 |
}
|
279 |
|
280 |
-
if (empty($this->_has_options) || $productId != $this->
|
281 |
$this->getProductInformation($productId);
|
282 |
}
|
283 |
|
@@ -294,13 +301,13 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
294 |
return $this->_model->getRequiredOptions();
|
295 |
}
|
296 |
|
297 |
-
$productId = (int) (is_null($productId) ? $this->
|
298 |
|
299 |
if (empty($productId) && empty($this->_required_options)) {
|
300 |
return false;
|
301 |
}
|
302 |
|
303 |
-
if (empty($this->_required_options) || $productId != $this->
|
304 |
$this->getProductInformation($productId);
|
305 |
}
|
306 |
|
@@ -313,13 +320,13 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
313 |
*/
|
314 |
public function getCategoryIds($productId = null)
|
315 |
{
|
316 |
-
$productId = (int) (is_null($productId) ? $this->
|
317 |
|
318 |
if (empty($productId) && empty($this->_category_ids)) {
|
319 |
return false;
|
320 |
}
|
321 |
|
322 |
-
if ($productId && empty($this->_category_ids) || $productId != $this->
|
323 |
$this->getProductInformation($productId);
|
324 |
}
|
325 |
|
@@ -334,8 +341,8 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
334 |
*/
|
335 |
public function getTitle($productId = null, $storeId = null, $sub = true)
|
336 |
{
|
337 |
-
$productId = (int) (is_null($productId) ? $this->
|
338 |
-
$storeId = (int) (is_null($storeId) ? $this->
|
339 |
|
340 |
$titles = array(
|
341 |
'ricardo_title',
|
@@ -376,8 +383,8 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
376 |
*/
|
377 |
public function getSubtitle($productId = null, $storeId = null, $sub = true)
|
378 |
{
|
379 |
-
$productId = (int) (is_null($productId) ? $this->
|
380 |
-
$storeId = (int) (is_null($storeId) ? $this->
|
381 |
|
382 |
$subtitle = '';
|
383 |
|
@@ -405,8 +412,8 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
405 |
*/
|
406 |
public function getDescription($productId = null, $storeId = null, $sub = true)
|
407 |
{
|
408 |
-
$productId = (int) (is_null($productId) ? $this->
|
409 |
-
$storeId = (int) (is_null($storeId) ? $this->
|
410 |
|
411 |
$descriptions = array(
|
412 |
'ricardo_description',
|
@@ -414,19 +421,57 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
414 |
'short_description'
|
415 |
);
|
416 |
|
|
|
417 |
$returnedDescription = null;
|
|
|
|
|
418 |
|
419 |
foreach ($this->getStoresList($storeId) as $id) {
|
420 |
if (is_null($id)) {
|
421 |
continue;
|
422 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
423 |
foreach ($descriptions as $description) {
|
424 |
-
$
|
425 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
break;
|
427 |
}
|
|
|
|
|
|
|
|
|
428 |
}
|
429 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
break;
|
431 |
}
|
432 |
}
|
@@ -443,14 +488,18 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
443 |
/**
|
444 |
* @return float
|
445 |
*/
|
446 |
-
public function getPrice()
|
447 |
{
|
448 |
-
//@todo do the conversion from a non supported currency to the supported currency - at the moment we do not support this feature
|
449 |
-
|
450 |
$salesOptions = $this->getProductListingItem()->getSalesOptions();
|
451 |
$price = $this->_getProductPrice($salesOptions->getPriceSourceAttributeCode());
|
452 |
|
453 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
}
|
455 |
|
456 |
/**
|
@@ -463,7 +512,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
463 |
return $this->_model->getSku();
|
464 |
}
|
465 |
|
466 |
-
$productId = (int) (is_null($productId) ? $this->
|
467 |
|
468 |
if (empty($productId) && empty($this->_sku)) {
|
469 |
return false;
|
@@ -492,26 +541,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
492 |
*/
|
493 |
public function getImages($productId = null)
|
494 |
{
|
495 |
-
|
496 |
-
$productId = $this->_model->getId();
|
497 |
-
} elseif (is_null($productId) && $this->_productId) {
|
498 |
-
$productId = $this->_productId;
|
499 |
-
}
|
500 |
-
|
501 |
-
if (!is_numeric($productId)) {
|
502 |
-
return false;
|
503 |
-
}
|
504 |
-
|
505 |
-
$mediaConfig = Mage::getSingleton('catalog/product_media_config');
|
506 |
-
$images = $this->getAssignedImages($productId);
|
507 |
-
|
508 |
-
foreach ($images as &$image) {
|
509 |
-
if (isset($image['filepath'])) {
|
510 |
-
$image['filepath'] = $mediaConfig->getMediaPath($image['filepath']);
|
511 |
-
}
|
512 |
-
}
|
513 |
-
|
514 |
-
return $images;
|
515 |
}
|
516 |
|
517 |
/**
|
@@ -523,7 +553,15 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
523 |
*/
|
524 |
public function getAssignedImages($productId = null)
|
525 |
{
|
526 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
|
528 |
$read = $this->_getReadConnection();
|
529 |
$resource = $this->_getCoreResource();
|
@@ -570,7 +608,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
570 |
->where('store_id = 0')
|
571 |
->where('attribute_code = ?', 'image');
|
572 |
|
573 |
-
return array_merge($
|
574 |
}
|
575 |
|
576 |
/**
|
@@ -579,11 +617,11 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
579 |
*/
|
580 |
public function getStockItem()
|
581 |
{
|
582 |
-
if (is_null($this->_model) && $this->
|
583 |
throw new Exception('Product Model must be init first');
|
584 |
}
|
585 |
|
586 |
-
$productId = !is_null($this->_model) ? $this->_model->getId() : $this->
|
587 |
|
588 |
return Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
|
589 |
}
|
@@ -593,13 +631,16 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
593 |
*/
|
594 |
public function getQty()
|
595 |
{
|
596 |
-
if ($this->
|
597 |
-
|| $this->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_GROUPED) {
|
598 |
return false;
|
599 |
}
|
600 |
|
601 |
$stockItem = $this->getStockItem();
|
602 |
|
|
|
|
|
|
|
|
|
603 |
if ($stockItem->getIsQtyDecimal()) {
|
604 |
return false;
|
605 |
}
|
@@ -607,14 +648,32 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
607 |
return $stockItem->getQty();
|
608 |
}
|
609 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
610 |
/**
|
611 |
* Check quantity
|
612 |
*
|
613 |
* @param float $qty
|
|
|
614 |
* @exception Mage_Core_Exception
|
615 |
* @return bool
|
616 |
*/
|
617 |
-
public function checkQty($qty)
|
618 |
{
|
619 |
$stockItem = $this->getStockItem();
|
620 |
|
@@ -625,11 +684,11 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
625 |
$composite = false;
|
626 |
$usedProductIds = array();
|
627 |
|
628 |
-
if ($this->
|
629 |
/* @var $instance Mage_Catalog_Model_Product_Type_Configurable */
|
630 |
$usedProductIds = $this->getTypeInstance(true)->getUsedProductIds($this->getMagentoProduct());
|
631 |
$composite = true;
|
632 |
-
} else if ($this->
|
633 |
/* @var $instance Mage_Catalog_Model_Product_Type_Grouped */
|
634 |
$usedProductIds = $this->getAssociatedProductIds();
|
635 |
$composite = true;
|
@@ -639,7 +698,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
639 |
foreach ($usedProductIds as $id) {
|
640 |
$stockItem->unsetData(); // cleanup before to proceed, we may also use the method reset but it's not relevant here
|
641 |
$stockItemProd = $stockItem->loadByProduct($id);
|
642 |
-
if ($stockItemProd->getQty() - $stockItemProd->getMinQty() - $qty < 0) {
|
643 |
switch ($stockItemProd->getBackorders()) {
|
644 |
case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NONOTIFY:
|
645 |
case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NOTIFY:
|
@@ -651,7 +710,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
651 |
}
|
652 |
}
|
653 |
} else {
|
654 |
-
if ($stockItem->getQty() - $stockItem->getMinQty() - $qty < 0) {
|
655 |
switch ($stockItem->getBackorders()) {
|
656 |
case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NONOTIFY:
|
657 |
case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NOTIFY:
|
@@ -718,7 +777,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
718 |
|
719 |
$select = $readConnection
|
720 |
->select()
|
721 |
-
->from(array('cpet'=> $this->_getCoreResource()->getTableName('catalog_product_entity_text')), array($field => 'value'))
|
722 |
->join(
|
723 |
array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
|
724 |
'`cpet`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \''. $field .'\'',
|
@@ -727,7 +786,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
727 |
->where('`cpet`.`entity_id` = ?', $productId)
|
728 |
->where('`cpet`.`store_id` = ?', $storeId);
|
729 |
|
730 |
-
return $readConnection->
|
731 |
}
|
732 |
|
733 |
/**
|
@@ -737,17 +796,14 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
737 |
protected function _getProductPrice($field = null)
|
738 |
{
|
739 |
switch ($this->getTypeId()) {
|
740 |
-
case Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE:
|
741 |
-
$price = $this->_getSimpleProductBasePrice($field);
|
742 |
-
return $this->_getConfigurableProductBasePrice($price);
|
743 |
-
break;
|
744 |
case Mage_Catalog_Model_Product_Type::TYPE_GROUPED:
|
745 |
return $this->_getGroupedProductBasePrice();
|
746 |
break;
|
747 |
case Mage_Catalog_Model_Product_Type::TYPE_SIMPLE:
|
|
|
748 |
default:
|
749 |
// @todo implement a factory adapter to get other kind of external product type
|
750 |
-
return $this->
|
751 |
break;
|
752 |
}
|
753 |
}
|
@@ -757,42 +813,71 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
757 |
* @param bool $withTax
|
758 |
* @return float|string
|
759 |
*/
|
760 |
-
protected function
|
761 |
{
|
762 |
if (is_null($field)) {
|
763 |
$field = 'price';
|
764 |
}
|
765 |
|
766 |
-
$
|
767 |
-
|
768 |
-
$select = $readConnection
|
769 |
-
->select()
|
770 |
-
->from(array('cped'=> $this->_getCoreResource()->getTableName('catalog_product_entity_decimal')), array($field => 'value'))
|
771 |
-
->join(
|
772 |
-
array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
|
773 |
-
'`cped`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \''. $field .'\'',
|
774 |
-
array()
|
775 |
-
)
|
776 |
-
->where('`cped`.`entity_id` = ?', (int) $this->getProductId())
|
777 |
-
->where('`cped`.`store_id` = ?', $this->_defaultStoreId);
|
778 |
|
779 |
-
$price
|
|
|
|
|
780 |
|
781 |
if ($field == 'special_price' && empty($price)) {
|
782 |
-
$price = $this->
|
|
|
|
|
|
|
|
|
|
|
|
|
783 |
}
|
784 |
|
785 |
/**
|
786 |
* Calculate price with incl tax if price catalog doesn't include it
|
787 |
-
* @todo improve performance - Loading product is bad idea (we just need getTaxPercent and getTaxClassId)
|
788 |
*/
|
789 |
if ($withTax) {
|
790 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
791 |
}
|
792 |
|
793 |
return $price;
|
794 |
}
|
795 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
796 |
/**
|
797 |
* Associated Products for grouped products
|
798 |
*
|
@@ -857,7 +942,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
857 |
$priceInclTax = Mage::helper('tax')->getPrice($associatedProduct, $associatedProduct->getPrice(), true, null, null, null, $this->_defaultStoreId);
|
858 |
|
859 |
// Set default qty = 1 when qty = 0
|
860 |
-
$totalPrice += (((
|
861 |
}
|
862 |
}
|
863 |
|
@@ -902,22 +987,27 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
902 |
return $this->_usedProductIds;
|
903 |
}
|
904 |
|
|
|
|
|
|
|
|
|
905 |
public function getConfigurableAttributes()
|
906 |
{
|
907 |
if (!$this->isConfigurableType()) {
|
908 |
return null;
|
909 |
}
|
910 |
|
911 |
-
if (empty($this->
|
912 |
-
$this->
|
913 |
->orderByPosition()
|
914 |
->setProductFilter($this->getMagentoProduct());
|
915 |
}
|
916 |
|
917 |
-
return $this->
|
918 |
}
|
919 |
|
920 |
/**
|
|
|
921 |
* @param float|int $productPrice
|
922 |
* @return null|float
|
923 |
*/
|
@@ -955,6 +1045,24 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
955 |
return ($productPrice + $finalMinPrice);
|
956 |
}
|
957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
958 |
/**
|
959 |
* @param int $productId
|
960 |
* @return $this;
|
@@ -1053,7 +1161,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
1053 |
*/
|
1054 |
public function isSimpleType()
|
1055 |
{
|
1056 |
-
return $this->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE;
|
1057 |
}
|
1058 |
|
1059 |
/**
|
@@ -1061,7 +1169,7 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
1061 |
*/
|
1062 |
public function isConfigurableType()
|
1063 |
{
|
1064 |
-
return $this->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE;
|
1065 |
}
|
1066 |
|
1067 |
/**
|
@@ -1069,6 +1177,24 @@ class Diglin_Ricento_Model_Products_Listing_Item_Product
|
|
1069 |
*/
|
1070 |
public function isGroupedType()
|
1071 |
{
|
1072 |
-
return $this->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_GROUPED;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1073 |
}
|
1074 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
77 |
*
|
78 |
* @var array
|
79 |
*/
|
80 |
+
protected $_configurableAttributes = array();
|
81 |
+
|
82 |
+
/**
|
83 |
+
* For configurable products
|
84 |
+
*
|
85 |
+
* @var array
|
86 |
+
*/
|
87 |
+
protected $_priceOptions = array();
|
88 |
|
89 |
protected $_title;
|
90 |
protected $_subtitle;
|
125 |
*/
|
126 |
public function getMagentoProduct()
|
127 |
{
|
128 |
+
if ($this->_model && $this->_model->getId() == $this->getProductId()) {
|
129 |
return $this->_model;
|
130 |
}
|
131 |
|
132 |
+
if ($this->getProductId() > 0) {
|
133 |
$this->loadProduct();
|
134 |
return $this->_model;
|
135 |
}
|
159 |
*/
|
160 |
public function loadProduct($productId = null, $storeId = null)
|
161 |
{
|
162 |
+
$productId = (is_null($productId)) ? $this->getProductId() : $productId;
|
163 |
+
$storeId = (is_null($storeId)) ? $this->getStoreId() : $storeId;
|
164 |
|
165 |
if (!$productId) {
|
166 |
throw new Exception('Product ID is empty.');
|
184 |
{
|
185 |
return array(
|
186 |
$storeId,
|
187 |
+
$this->getDefaultStoreId(), // fallback language
|
188 |
Mage_Core_Model_App::ADMIN_STORE_ID
|
189 |
);
|
190 |
}
|
197 |
{
|
198 |
(!is_null($productId)) && $this->_productId = $productId;
|
199 |
|
200 |
+
$productId = (int) is_null($productId) ? $this->getProductId() : $productId;
|
201 |
|
202 |
if (empty($productId)) {
|
203 |
return false;
|
255 |
return $this->_model->getTypeId();
|
256 |
}
|
257 |
|
258 |
+
$productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
|
259 |
|
260 |
if (empty($productId) && empty($this->_typeid)) {
|
261 |
return false;
|
262 |
}
|
263 |
|
264 |
+
if (empty($this->_typeid) || $productId != $this->getProductId()) {
|
265 |
$this->getProductInformation($productId);
|
266 |
}
|
267 |
|
278 |
return $this->_model->getHasOptions();
|
279 |
}
|
280 |
|
281 |
+
$productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
|
282 |
|
283 |
if (empty($productId) && empty($this->_has_options)) {
|
284 |
return false;
|
285 |
}
|
286 |
|
287 |
+
if (empty($this->_has_options) || $productId != $this->getProductId()) {
|
288 |
$this->getProductInformation($productId);
|
289 |
}
|
290 |
|
301 |
return $this->_model->getRequiredOptions();
|
302 |
}
|
303 |
|
304 |
+
$productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
|
305 |
|
306 |
if (empty($productId) && empty($this->_required_options)) {
|
307 |
return false;
|
308 |
}
|
309 |
|
310 |
+
if (empty($this->_required_options) || $productId != $this->getProductId()) {
|
311 |
$this->getProductInformation($productId);
|
312 |
}
|
313 |
|
320 |
*/
|
321 |
public function getCategoryIds($productId = null)
|
322 |
{
|
323 |
+
$productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
|
324 |
|
325 |
if (empty($productId) && empty($this->_category_ids)) {
|
326 |
return false;
|
327 |
}
|
328 |
|
329 |
+
if ($productId && empty($this->_category_ids) || $productId != $this->getProductId()) {
|
330 |
$this->getProductInformation($productId);
|
331 |
}
|
332 |
|
341 |
*/
|
342 |
public function getTitle($productId = null, $storeId = null, $sub = true)
|
343 |
{
|
344 |
+
$productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
|
345 |
+
$storeId = (int) (is_null($storeId) ? $this->getStoreId() : $storeId);
|
346 |
|
347 |
$titles = array(
|
348 |
'ricardo_title',
|
383 |
*/
|
384 |
public function getSubtitle($productId = null, $storeId = null, $sub = true)
|
385 |
{
|
386 |
+
$productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
|
387 |
+
$storeId = (int) (is_null($storeId) ? $this->getStoreId() : $storeId);
|
388 |
|
389 |
$subtitle = '';
|
390 |
|
412 |
*/
|
413 |
public function getDescription($productId = null, $storeId = null, $sub = true)
|
414 |
{
|
415 |
+
$productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
|
416 |
+
$storeId = (int) (is_null($storeId) ? $this->getStoreId() : $storeId);
|
417 |
|
418 |
$descriptions = array(
|
419 |
'ricardo_description',
|
421 |
'short_description'
|
422 |
);
|
423 |
|
424 |
+
$canMergeDescriptions = Mage::helper('diglin_ricento')->canMergeDescriptions($storeId);
|
425 |
$returnedDescription = null;
|
426 |
+
$mergedDescriptions = array();
|
427 |
+
$skip = false;
|
428 |
|
429 |
foreach ($this->getStoresList($storeId) as $id) {
|
430 |
if (is_null($id)) {
|
431 |
continue;
|
432 |
}
|
433 |
+
|
434 |
+
/**
|
435 |
+
* 1. Search if ricardo_description exists
|
436 |
+
* 2. if not exist search description
|
437 |
+
* 3. if not exist search short description
|
438 |
+
*
|
439 |
+
* if Merge allowed
|
440 |
+
* 1. Search if ricardo_description exists
|
441 |
+
* 2. if not exists search description and keep in memory
|
442 |
+
* 3. Then Search short_description and keep in memory
|
443 |
+
* 4. Do the merge
|
444 |
+
*/
|
445 |
+
|
446 |
foreach ($descriptions as $description) {
|
447 |
+
$result = $this->_getProductText($description, $productId, $id);
|
448 |
+
$returnedDescription = $result[$description];
|
449 |
+
$rowFounded = (bool) (count($result) >= 1);
|
450 |
+
|
451 |
+
if ((!$rowFounded && $canMergeDescriptions || !$rowFounded && $description == 'ricardo_description') && $id != 0) {
|
452 |
+
$returnedDescription = $this->_getProductText($description, $productId, 0);
|
453 |
+
}
|
454 |
+
|
455 |
+
if ($returnedDescription && !$canMergeDescriptions || $returnedDescription && $description == 'ricardo_description') {
|
456 |
+
$skip = true;
|
457 |
break;
|
458 |
}
|
459 |
+
|
460 |
+
if ($returnedDescription) {
|
461 |
+
$mergedDescriptions[$description] = $returnedDescription;
|
462 |
+
}
|
463 |
}
|
464 |
+
|
465 |
+
if ($canMergeDescriptions && count($mergedDescriptions) && !$skip) {
|
466 |
+
if (!empty($mergedDescriptions['short_description']) && !empty($mergedDescriptions['description'])) {
|
467 |
+
$returnedDescription = $mergedDescriptions['short_description'] . '<br><br>' . $mergedDescriptions['description'];
|
468 |
+
}
|
469 |
+
if (!empty($returnedDescription)) {
|
470 |
+
$skip = true;
|
471 |
+
}
|
472 |
+
}
|
473 |
+
|
474 |
+
if ($skip) {
|
475 |
break;
|
476 |
}
|
477 |
}
|
488 |
/**
|
489 |
* @return float
|
490 |
*/
|
491 |
+
public function getPrice($convert = false)
|
492 |
{
|
|
|
|
|
493 |
$salesOptions = $this->getProductListingItem()->getSalesOptions();
|
494 |
$price = $this->_getProductPrice($salesOptions->getPriceSourceAttributeCode());
|
495 |
|
496 |
+
$price = Mage::helper('diglin_ricento/price')->calculatePriceChange($price, $salesOptions->getPriceChangeType(), $salesOptions->getPriceChange());
|
497 |
+
|
498 |
+
if ($convert) {
|
499 |
+
$price = $this->_convert($price);
|
500 |
+
}
|
501 |
+
|
502 |
+
return $price;
|
503 |
}
|
504 |
|
505 |
/**
|
512 |
return $this->_model->getSku();
|
513 |
}
|
514 |
|
515 |
+
$productId = (int) (is_null($productId) ? $this->getProductId() : $productId);
|
516 |
|
517 |
if (empty($productId) && empty($this->_sku)) {
|
518 |
return false;
|
541 |
*/
|
542 |
public function getImages($productId = null)
|
543 |
{
|
544 |
+
return $this->getAssignedImages($productId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
545 |
}
|
546 |
|
547 |
/**
|
553 |
*/
|
554 |
public function getAssignedImages($productId = null)
|
555 |
{
|
556 |
+
if (is_null($productId) && $this->_model && $this->_model->getId()) {
|
557 |
+
$productId = $this->_model->getId();
|
558 |
+
} elseif (is_null($productId) && $this->getProductId()) {
|
559 |
+
$productId = $this->getProductId();
|
560 |
+
}
|
561 |
+
|
562 |
+
if (!is_numeric($productId)) {
|
563 |
+
return false;
|
564 |
+
}
|
565 |
|
566 |
$read = $this->_getReadConnection();
|
567 |
$resource = $this->_getCoreResource();
|
608 |
->where('store_id = 0')
|
609 |
->where('attribute_code = ?', 'image');
|
610 |
|
611 |
+
return array_merge($read->fetchAll($select), $mediaGallery);
|
612 |
}
|
613 |
|
614 |
/**
|
617 |
*/
|
618 |
public function getStockItem()
|
619 |
{
|
620 |
+
if (is_null($this->_model) && $this->getProductId() < 0) {
|
621 |
throw new Exception('Product Model must be init first');
|
622 |
}
|
623 |
|
624 |
+
$productId = !is_null($this->_model) ? $this->_model->getId() : $this->getProductId();
|
625 |
|
626 |
return Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
|
627 |
}
|
631 |
*/
|
632 |
public function getQty()
|
633 |
{
|
634 |
+
if ($this->isConfigurableType()) {
|
|
|
635 |
return false;
|
636 |
}
|
637 |
|
638 |
$stockItem = $this->getStockItem();
|
639 |
|
640 |
+
if ($this->isGroupedType() && $stockItem->getIsInStock()) {
|
641 |
+
return 1;
|
642 |
+
}
|
643 |
+
|
644 |
if ($stockItem->getIsQtyDecimal()) {
|
645 |
return false;
|
646 |
}
|
648 |
return $stockItem->getQty();
|
649 |
}
|
650 |
|
651 |
+
/**
|
652 |
+
* @param int $productStockQty
|
653 |
+
* @param int $qtyTargeted
|
654 |
+
* @param $type
|
655 |
+
* @return float
|
656 |
+
*/
|
657 |
+
public function getPercentQty($productStockQty, $qtyTargeted, $type)
|
658 |
+
{
|
659 |
+
if ($type == Diglin_Ricento_Helper_Data::INVENTORY_QTY_TYPE_PERCENT) {
|
660 |
+
$qty = round($productStockQty * $qtyTargeted / 100, 0, PHP_ROUND_HALF_DOWN);
|
661 |
+
} else {
|
662 |
+
$qty = $qtyTargeted;
|
663 |
+
}
|
664 |
+
|
665 |
+
return ($qty) ? $qty : 1;
|
666 |
+
}
|
667 |
+
|
668 |
/**
|
669 |
* Check quantity
|
670 |
*
|
671 |
* @param float $qty
|
672 |
+
* @param string $type
|
673 |
* @exception Mage_Core_Exception
|
674 |
* @return bool
|
675 |
*/
|
676 |
+
public function checkQty($qty, $type = Diglin_Ricento_Helper_Data::INVENTORY_QTY_TYPE_FIX)
|
677 |
{
|
678 |
$stockItem = $this->getStockItem();
|
679 |
|
684 |
$composite = false;
|
685 |
$usedProductIds = array();
|
686 |
|
687 |
+
if ($this->isConfigurableType()) {
|
688 |
/* @var $instance Mage_Catalog_Model_Product_Type_Configurable */
|
689 |
$usedProductIds = $this->getTypeInstance(true)->getUsedProductIds($this->getMagentoProduct());
|
690 |
$composite = true;
|
691 |
+
} else if ($this->isGroupedType()) {
|
692 |
/* @var $instance Mage_Catalog_Model_Product_Type_Grouped */
|
693 |
$usedProductIds = $this->getAssociatedProductIds();
|
694 |
$composite = true;
|
698 |
foreach ($usedProductIds as $id) {
|
699 |
$stockItem->unsetData(); // cleanup before to proceed, we may also use the method reset but it's not relevant here
|
700 |
$stockItemProd = $stockItem->loadByProduct($id);
|
701 |
+
if ($stockItemProd->getQty() - $stockItemProd->getMinQty() - $this->getPercentQty($stockItemProd->getQty(), $qty, $type) < 0) {
|
702 |
switch ($stockItemProd->getBackorders()) {
|
703 |
case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NONOTIFY:
|
704 |
case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NOTIFY:
|
710 |
}
|
711 |
}
|
712 |
} else {
|
713 |
+
if ($stockItem->getQty() - $stockItem->getMinQty() - $this->getPercentQty($stockItem->getQty(), $qty, $type) < 0) {
|
714 |
switch ($stockItem->getBackorders()) {
|
715 |
case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NONOTIFY:
|
716 |
case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NOTIFY:
|
777 |
|
778 |
$select = $readConnection
|
779 |
->select()
|
780 |
+
->from(array('cpet'=> $this->_getCoreResource()->getTableName('catalog_product_entity_text')), array($field => 'value', 'entity_id'))
|
781 |
->join(
|
782 |
array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
|
783 |
'`cpet`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \''. $field .'\'',
|
786 |
->where('`cpet`.`entity_id` = ?', $productId)
|
787 |
->where('`cpet`.`store_id` = ?', $storeId);
|
788 |
|
789 |
+
return $readConnection->fetchRow($select);
|
790 |
}
|
791 |
|
792 |
/**
|
796 |
protected function _getProductPrice($field = null)
|
797 |
{
|
798 |
switch ($this->getTypeId()) {
|
|
|
|
|
|
|
|
|
799 |
case Mage_Catalog_Model_Product_Type::TYPE_GROUPED:
|
800 |
return $this->_getGroupedProductBasePrice();
|
801 |
break;
|
802 |
case Mage_Catalog_Model_Product_Type::TYPE_SIMPLE:
|
803 |
+
case Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE:
|
804 |
default:
|
805 |
// @todo implement a factory adapter to get other kind of external product type
|
806 |
+
return $this->_getProductBasePrice($field);
|
807 |
break;
|
808 |
}
|
809 |
}
|
813 |
* @param bool $withTax
|
814 |
* @return float|string
|
815 |
*/
|
816 |
+
protected function _getProductBasePrice($field = null, $withTax = true)
|
817 |
{
|
818 |
if (is_null($field)) {
|
819 |
$field = 'price';
|
820 |
}
|
821 |
|
822 |
+
$productId = ($this->getProductListingItem()->getParentProductId()) ? $this->getProductListingItem()->getParentProductId() : $this->getProductId();
|
823 |
+
$price = $this->_getPrice($field, $productId, $this->_defaultStoreId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
|
825 |
+
if ($price === false) {
|
826 |
+
$price = $this->_getPrice($field, $productId);
|
827 |
+
}
|
828 |
|
829 |
if ($field == 'special_price' && empty($price)) {
|
830 |
+
$price = $this->_getProductBasePrice('price', false);
|
831 |
+
}
|
832 |
+
|
833 |
+
if ($this->getProductListingItem()->getParentProductId() && count($this->getPriceOptions())) {
|
834 |
+
foreach ($this->getPriceOptions() as $option) {
|
835 |
+
$price += Mage::helper('diglin_ricento/price')->calcSelectionPrice($option, $price);
|
836 |
+
}
|
837 |
}
|
838 |
|
839 |
/**
|
840 |
* Calculate price with incl tax if price catalog doesn't include it
|
841 |
+
* @todo improve performance - Loading product is a bad idea (we just need getTaxPercent and getTaxClassId)
|
842 |
*/
|
843 |
if ($withTax) {
|
844 |
+
if ($productId != $this->getProductId()) {
|
845 |
+
$product = Mage::getModel('catalog/product')
|
846 |
+
->setStoreId($this->getStoreId())
|
847 |
+
->load($productId);
|
848 |
+
} else {
|
849 |
+
$product = $this->getMagentoProduct();
|
850 |
+
}
|
851 |
+
|
852 |
+
$price = Mage::helper('tax')->getPrice($product, $price, true, null, null, null, $this->_defaultStoreId);
|
853 |
}
|
854 |
|
855 |
return $price;
|
856 |
}
|
857 |
|
858 |
+
/**
|
859 |
+
* @param string $field
|
860 |
+
* @param int $productId
|
861 |
+
* @param int $storeId
|
862 |
+
* @return string|bool
|
863 |
+
*/
|
864 |
+
private function _getPrice($field, $productId, $storeId = Mage_Core_Model_App::ADMIN_STORE_ID)
|
865 |
+
{
|
866 |
+
$readConnection = $this->_getReadConnection();
|
867 |
+
$select = $readConnection
|
868 |
+
->select()
|
869 |
+
->from(array('cped'=> $this->_getCoreResource()->getTableName('catalog_product_entity_decimal')), array($field => 'value'))
|
870 |
+
->join(
|
871 |
+
array('ea' => $this->_getCoreResource()->getTableName('eav_attribute')),
|
872 |
+
'`cped`.`attribute_id` = `ea`.`attribute_id` AND `ea`.`attribute_code` = \''. $field .'\'',
|
873 |
+
array()
|
874 |
+
)
|
875 |
+
->where('`cped`.`entity_id` = ?', (int) $productId)
|
876 |
+
->where('`cped`.`store_id` = ?', (int) $storeId);
|
877 |
+
|
878 |
+
return $readConnection->fetchOne($select);
|
879 |
+
}
|
880 |
+
|
881 |
/**
|
882 |
* Associated Products for grouped products
|
883 |
*
|
942 |
$priceInclTax = Mage::helper('tax')->getPrice($associatedProduct, $associatedProduct->getPrice(), true, null, null, null, $this->_defaultStoreId);
|
943 |
|
944 |
// Set default qty = 1 when qty = 0
|
945 |
+
$totalPrice += ((($associatedProduct->getQty() > 0) ? $associatedProduct->getQty() : $defaultQty) * $priceInclTax);
|
946 |
}
|
947 |
}
|
948 |
|
987 |
return $this->_usedProductIds;
|
988 |
}
|
989 |
|
990 |
+
/**
|
991 |
+
* @return array|Mage_Catalog_Model_Resource_Product_Type_Configurable_Attribute_Collection|null
|
992 |
+
* @throws Exception
|
993 |
+
*/
|
994 |
public function getConfigurableAttributes()
|
995 |
{
|
996 |
if (!$this->isConfigurableType()) {
|
997 |
return null;
|
998 |
}
|
999 |
|
1000 |
+
if (empty($this->_configurableAttributes)) {
|
1001 |
+
$this->_configurableAttributes = Mage::getResourceModel('catalog/product_type_configurable_attribute_collection')
|
1002 |
->orderByPosition()
|
1003 |
->setProductFilter($this->getMagentoProduct());
|
1004 |
}
|
1005 |
|
1006 |
+
return $this->_configurableAttributes;
|
1007 |
}
|
1008 |
|
1009 |
/**
|
1010 |
+
* @deprecated
|
1011 |
* @param float|int $productPrice
|
1012 |
* @return null|float
|
1013 |
*/
|
1045 |
return ($productPrice + $finalMinPrice);
|
1046 |
}
|
1047 |
|
1048 |
+
/**
|
1049 |
+
* @param $price
|
1050 |
+
* @return float|null
|
1051 |
+
* @throws Mage_Core_Exception
|
1052 |
+
*/
|
1053 |
+
protected function _convert($price)
|
1054 |
+
{
|
1055 |
+
$websiteId = $this->getProductListingItem()->getProductsListing()->getWebsiteId();
|
1056 |
+
$baseCurrency = Mage::app()->getWebsite($websiteId)->getBaseCurrencyCode();
|
1057 |
+
|
1058 |
+
if ($baseCurrency != Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
1059 |
+
$priceHelper = Mage::helper('diglin_ricento/price');
|
1060 |
+
$price = $priceHelper->convert($price, $baseCurrency, Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY, $websiteId);
|
1061 |
+
}
|
1062 |
+
|
1063 |
+
return $price;
|
1064 |
+
}
|
1065 |
+
|
1066 |
/**
|
1067 |
* @param int $productId
|
1068 |
* @return $this;
|
1161 |
*/
|
1162 |
public function isSimpleType()
|
1163 |
{
|
1164 |
+
return ($this->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE);
|
1165 |
}
|
1166 |
|
1167 |
/**
|
1169 |
*/
|
1170 |
public function isConfigurableType()
|
1171 |
{
|
1172 |
+
return ($this->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE);
|
1173 |
}
|
1174 |
|
1175 |
/**
|
1177 |
*/
|
1178 |
public function isGroupedType()
|
1179 |
{
|
1180 |
+
return ($this->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_GROUPED);
|
1181 |
+
}
|
1182 |
+
|
1183 |
+
/**
|
1184 |
+
* @return array
|
1185 |
+
*/
|
1186 |
+
public function getPriceOptions()
|
1187 |
+
{
|
1188 |
+
return $this->_priceOptions;
|
1189 |
+
}
|
1190 |
+
|
1191 |
+
/**
|
1192 |
+
* @param array $priceOptions
|
1193 |
+
* @return $this
|
1194 |
+
*/
|
1195 |
+
public function setPriceOptions($priceOptions)
|
1196 |
+
{
|
1197 |
+
$this->_priceOptions = $priceOptions;
|
1198 |
+
return $this;
|
1199 |
}
|
1200 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -45,6 +45,7 @@ class Diglin_Ricento_Model_Products_Listing_Log extends Mage_Core_Model_Abstract
|
|
45 |
const LOG_TYPE_RELIST = 3;
|
46 |
const LOG_TYPE_SYNCLIST = 4;
|
47 |
const LOG_TYPE_ORDER = 5;
|
|
|
48 |
|
49 |
/**
|
50 |
* Prefix of model events names
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
45 |
const LOG_TYPE_RELIST = 3;
|
46 |
const LOG_TYPE_SYNCLIST = 4;
|
47 |
const LOG_TYPE_ORDER = 5;
|
48 |
+
const LOG_TYPE_CLOSED = 6;
|
49 |
|
50 |
/**
|
51 |
* Prefix of model events names
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -62,7 +62,7 @@ class Diglin_Ricento_Model_Resource_Products_Listing extends Mage_Core_Model_Res
|
|
62 |
->where('pl.entity_id = :id')
|
63 |
->joinLeft(
|
64 |
array('pli' => $this->getTable('diglin_ricento/products_listing_item')),
|
65 |
-
'pli.products_listing_id = pl.entity_id AND pl.status = "
|
66 |
array('item_status' => 'pli.status')
|
67 |
);
|
68 |
|
@@ -103,4 +103,160 @@ class Diglin_Ricento_Model_Resource_Products_Listing extends Mage_Core_Model_Res
|
|
103 |
$bind,
|
104 |
array($this->getIdFieldName() . ' = ?' => $listId));
|
105 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
62 |
->where('pl.entity_id = :id')
|
63 |
->joinLeft(
|
64 |
array('pli' => $this->getTable('diglin_ricento/products_listing_item')),
|
65 |
+
'pli.products_listing_id = pl.entity_id AND pl.status = "'. Diglin_Ricento_Helper_Data::STATUS_LISTED .'"',
|
66 |
array('item_status' => 'pli.status')
|
67 |
);
|
68 |
|
103 |
$bind,
|
104 |
array($this->getIdFieldName() . ' = ?' => $listId));
|
105 |
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Removes items by product id
|
109 |
+
*
|
110 |
+
* @param array $productIds
|
111 |
+
* @param int $itemId
|
112 |
+
* @return int[] Returns two values: [number of removed products, number of not removed listed products]
|
113 |
+
*/
|
114 |
+
public function removeProductsByProductIds(array $productIds, $itemId)
|
115 |
+
{
|
116 |
+
/** @var $items Diglin_Ricento_Model_Resource_Products_Listing_Item_Collection */
|
117 |
+
$items = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
118 |
+
$items
|
119 |
+
->addFieldToFilter('product_id', array('in' => $productIds))
|
120 |
+
->addFieldToFilter('parent_product_id', new Zend_Db_Expr('NULL'))
|
121 |
+
->addFieldToFilter('type', array('neq' => Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE));
|
122 |
+
|
123 |
+
$itemsToRemove = clone $items;
|
124 |
+
|
125 |
+
$numberOfListedItems = $items->addFieldToFilter('products_listing_id', $itemId)
|
126 |
+
->addFieldToFilter('status', array('eq' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
127 |
+
->getSize();
|
128 |
+
|
129 |
+
$numberOfItemsToDelete = $itemsToRemove->addFieldToFilter('products_listing_id', $itemId)
|
130 |
+
->addFieldToFilter('status', array('neq' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
131 |
+
->count();
|
132 |
+
|
133 |
+
$this->beginTransaction();
|
134 |
+
|
135 |
+
$productsIdRemoved = array();
|
136 |
+
if ($numberOfItemsToDelete) {
|
137 |
+
$productsIdRemoved = $itemsToRemove->getColumnValues('product_id');
|
138 |
+
$itemsToRemove->walk('delete');
|
139 |
+
}
|
140 |
+
|
141 |
+
$this->commit();
|
142 |
+
|
143 |
+
/**
|
144 |
+
* Configurable Products
|
145 |
+
*/
|
146 |
+
$productIds = array_diff($productIds, $productsIdRemoved);
|
147 |
+
|
148 |
+
foreach ($productIds as $productId) {
|
149 |
+
/** @var $items Diglin_Ricento_Model_Resource_Products_Listing_Item_Collection */
|
150 |
+
$items = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
151 |
+
|
152 |
+
$childrenCount = $items->addFieldToFilter('products_listing_id', $itemId)
|
153 |
+
->addFieldToFilter('parent_product_id', $productId)
|
154 |
+
->addFieldToFilter('status', array('eq' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
155 |
+
->getSize();
|
156 |
+
|
157 |
+
|
158 |
+
if (!$childrenCount) {
|
159 |
+
$this->beginTransaction();
|
160 |
+
|
161 |
+
$readConnection = $this->getReadConnection();
|
162 |
+
|
163 |
+
$select = $readConnection
|
164 |
+
->select()
|
165 |
+
->from(array('pli' => $this->getTable('diglin_ricento/products_listing_item')), 'item_id')
|
166 |
+
->where('product_id = ?', $productId)
|
167 |
+
->deleteFromSelect('pli');
|
168 |
+
|
169 |
+
if (!empty($select) && !is_numeric($select)) {
|
170 |
+
$readConnection->query($select);
|
171 |
+
}
|
172 |
+
|
173 |
+
$items->walk('delete');
|
174 |
+
|
175 |
+
$this->commit();
|
176 |
+
|
177 |
+
$numberOfItemsToDelete++;
|
178 |
+
}
|
179 |
+
|
180 |
+
$numberOfListedItems += $childrenCount;
|
181 |
+
}
|
182 |
+
|
183 |
+
return array($numberOfItemsToDelete, $numberOfListedItems);
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Removes items by item id
|
188 |
+
*
|
189 |
+
* @param array $itemIds
|
190 |
+
* @param int $itemId
|
191 |
+
* @return int[] Returns two values: [number of removed products, number of not removed listed products]
|
192 |
+
*/
|
193 |
+
public function removeProductsByItemIds(array $itemIds, $itemId)
|
194 |
+
{
|
195 |
+
/** @var $items Diglin_Ricento_Model_Resource_Products_Listing_Item_Collection */
|
196 |
+
$items = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
197 |
+
$items
|
198 |
+
->addFieldToFilter('item_id', array('in' => $itemIds))
|
199 |
+
->addFieldToFilter('parent_product_id', new Zend_Db_Expr('NULL'))
|
200 |
+
->addFieldToFilter('type', array('neq' => Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE));
|
201 |
+
|
202 |
+
$itemsToRemove = clone $items;
|
203 |
+
|
204 |
+
$numberOfListedItems = $items->addFieldToFilter('products_listing_id', $itemId)
|
205 |
+
->addFieldToFilter('status', array('eq' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
206 |
+
->getSize();
|
207 |
+
|
208 |
+
$numberOfItemsToDelete = $itemsToRemove->addFieldToFilter('products_listing_id', $itemId)
|
209 |
+
->addFieldToFilter('status', array('neq' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
210 |
+
->count();
|
211 |
+
|
212 |
+
$this->beginTransaction();
|
213 |
+
|
214 |
+
$itemsIdRemoved = array();
|
215 |
+
if ($numberOfItemsToDelete) {
|
216 |
+
$itemsIdRemoved = $itemsToRemove->getColumnValues('item_id');
|
217 |
+
$itemsToRemove->walk('delete');
|
218 |
+
}
|
219 |
+
|
220 |
+
$this->commit();
|
221 |
+
|
222 |
+
/**
|
223 |
+
* Configurable Products
|
224 |
+
*/
|
225 |
+
$itemIds = array_diff($itemIds, $itemsIdRemoved);
|
226 |
+
|
227 |
+
foreach ($itemIds as $itemId) {
|
228 |
+
/** @var $items Diglin_Ricento_Model_Resource_Products_Listing_Item_Collection */
|
229 |
+
$items = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
230 |
+
|
231 |
+
$childrenCount = $items->addFieldToFilter('products_listing_id', $itemId)
|
232 |
+
->addFieldToFilter('parent_item_id', $itemId)
|
233 |
+
->addFieldToFilter('status', array('eq' => Diglin_Ricento_Helper_Data::STATUS_LISTED))
|
234 |
+
->getSize();
|
235 |
+
|
236 |
+
if (!$childrenCount) {
|
237 |
+
$this->beginTransaction();
|
238 |
+
|
239 |
+
$readConnection = $this->getReadConnection();
|
240 |
+
$select = $readConnection
|
241 |
+
->select()
|
242 |
+
->from(array('pli' => $this->getTable('diglin_ricento/products_listing_item')), 'item_id')
|
243 |
+
->where('item_id = ?', $itemId)
|
244 |
+
->deleteFromSelect('pli');
|
245 |
+
|
246 |
+
if (!empty($select) && !is_numeric($select)) {
|
247 |
+
$readConnection->query($select);
|
248 |
+
}
|
249 |
+
|
250 |
+
$items->walk('delete');
|
251 |
+
|
252 |
+
$this->commit();
|
253 |
+
|
254 |
+
$numberOfItemsToDelete++;
|
255 |
+
}
|
256 |
+
|
257 |
+
$numberOfListedItems += $childrenCount;
|
258 |
+
}
|
259 |
+
|
260 |
+
return array($numberOfItemsToDelete, $numberOfListedItems);
|
261 |
+
}
|
262 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -78,12 +78,26 @@ class Diglin_Ricento_Model_Resource_Products_Listing_Item extends Mage_Core_Mode
|
|
78 |
{
|
79 |
$readerConnection = $this->_getReadAdapter();
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
$select = $readerConnection->select()
|
82 |
->from($this->getTable('diglin_ricento/products_listing_item'), 'product_id')
|
83 |
->where('products_listing_id = :id')
|
84 |
->where($whereClause);
|
85 |
$binds = array('id' => $productsListingId);
|
86 |
|
|
|
|
|
|
|
|
|
87 |
return count($readerConnection->fetchAll($select, $binds));
|
88 |
}
|
89 |
|
@@ -119,44 +133,4 @@ class Diglin_Ricento_Model_Resource_Products_Listing_Item extends Mage_Core_Mode
|
|
119 |
$bind,
|
120 |
array($this->getIdFieldName() . ' = ?' => $itemId));
|
121 |
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* Stop parent product item if all children products are stopped
|
125 |
-
* Probably deprecated because the parent configurable product should not have a changing status
|
126 |
-
*
|
127 |
-
* @param $productsListingId
|
128 |
-
* @return $this
|
129 |
-
*/
|
130 |
-
public function setParentStatusStop($productsListingId)
|
131 |
-
{
|
132 |
-
$readerConnection = $this->_getReadAdapter();
|
133 |
-
|
134 |
-
$select = $readerConnection->select()
|
135 |
-
->from(array('pli' => $this->getTable('diglin_ricento/products_listing_item')), array( 'parent_id' => 'pli.parent_item_id', 'item_status' => 'pli.status'))
|
136 |
-
->where('pli.products_listing_id = :id')
|
137 |
-
->where('pli.parent_item_id IS NOT NULL')
|
138 |
-
->joinLeft(array('plib' => $this->getTable('diglin_ricento/products_listing_item')), 'plib.item_id = pli.parent_item_id AND plib.status = "listed"');
|
139 |
-
|
140 |
-
$binds = array('id' => $productsListingId);
|
141 |
-
|
142 |
-
$items = $readerConnection->fetchAll($select, $binds);
|
143 |
-
$parents = array();
|
144 |
-
|
145 |
-
foreach ($items as $item) {
|
146 |
-
if ($item['item_status'] == Diglin_Ricento_Helper_Data::STATUS_STOPPED) {
|
147 |
-
$parents[$item['parent_id']]['stopped'] = true;
|
148 |
-
}
|
149 |
-
if ($item['item_status'] == Diglin_Ricento_Helper_Data::STATUS_LISTED) {
|
150 |
-
$parents[$item['parent_id']]['listed'] = true;
|
151 |
-
}
|
152 |
-
}
|
153 |
-
|
154 |
-
foreach ($parents as $key => $parent) {
|
155 |
-
if (!isset($parents[$key]['listed']) && isset($parents[$key]['stopped'])) {
|
156 |
-
$this->saveCurrentItem($key, array('status' => Diglin_Ricento_Helper_Data::STATUS_STOPPED));
|
157 |
-
}
|
158 |
-
}
|
159 |
-
|
160 |
-
return $this;
|
161 |
-
}
|
162 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
78 |
{
|
79 |
$readerConnection = $this->_getReadAdapter();
|
80 |
|
81 |
+
/* Exclude Parent Products from calculation */
|
82 |
+
$select = $readerConnection->select()
|
83 |
+
->from($this->getTable('diglin_ricento/products_listing_item'), 'parent_item_id')
|
84 |
+
->where('products_listing_id = :id')
|
85 |
+
->where('parent_item_id > 0')
|
86 |
+
->group('parent_item_id');
|
87 |
+
$binds = array('id' => $productsListingId);
|
88 |
+
|
89 |
+
$itemIds = $readerConnection->fetchCol($select, $binds);
|
90 |
+
|
91 |
$select = $readerConnection->select()
|
92 |
->from($this->getTable('diglin_ricento/products_listing_item'), 'product_id')
|
93 |
->where('products_listing_id = :id')
|
94 |
->where($whereClause);
|
95 |
$binds = array('id' => $productsListingId);
|
96 |
|
97 |
+
if (count($itemIds)) {
|
98 |
+
$select->where('item_id NOT IN ('. implode(",", $itemIds) .')');
|
99 |
+
}
|
100 |
+
|
101 |
return count($readerConnection->fetchAll($select, $binds));
|
102 |
}
|
103 |
|
133 |
$bind,
|
134 |
array($this->getIdFieldName() . ' = ?' => $itemId));
|
135 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -49,56 +49,12 @@ class Diglin_Ricento_Model_Resource_Products_Listing_Item_Collection extends Mag
|
|
49 |
$connection->update(
|
50 |
$this->getTable('diglin_ricento/products_listing_item'),
|
51 |
array('status' => $status),
|
52 |
-
array('item_id IN (?)' => $this->getAllIds())
|
53 |
);
|
54 |
|
55 |
return $this;
|
56 |
}
|
57 |
|
58 |
-
/**
|
59 |
-
* Get only items collection being a configurable product
|
60 |
-
*
|
61 |
-
* @return $this
|
62 |
-
*/
|
63 |
-
public function getConfigurableProducts()
|
64 |
-
{
|
65 |
-
if (!$this->_isProductConfigurableTableJoined) {
|
66 |
-
$this
|
67 |
-
->getSelect()
|
68 |
-
->join(
|
69 |
-
array('pl' => $this->getTable('catalog/product')),
|
70 |
-
"pl.entity_id = main_table.product_id",
|
71 |
-
array('product_type' => 'type_id')
|
72 |
-
)
|
73 |
-
->where('type_id = ?', Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE);
|
74 |
-
|
75 |
-
$this->_isProductConfigurableTableJoined = true;
|
76 |
-
}
|
77 |
-
return $this;
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* Get only items collection being a configurable product
|
82 |
-
*
|
83 |
-
* @return $this
|
84 |
-
*/
|
85 |
-
public function getProductsWithoutConfigurable()
|
86 |
-
{
|
87 |
-
if (!$this->_isProductTableJoined) {
|
88 |
-
$this
|
89 |
-
->getSelect()
|
90 |
-
->join(
|
91 |
-
array('pl' => $this->getTable('catalog/product')),
|
92 |
-
"pl.entity_id = main_table.product_id",
|
93 |
-
array('product_type' => 'type_id')
|
94 |
-
)
|
95 |
-
->where('type_id <> ?', Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE);
|
96 |
-
|
97 |
-
$this->_isProductTableJoined = true;
|
98 |
-
}
|
99 |
-
return $this;
|
100 |
-
}
|
101 |
-
|
102 |
public function getAddAdditionalInformation()
|
103 |
{
|
104 |
return $this->_addAdditionalInformation;
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
49 |
$connection->update(
|
50 |
$this->getTable('diglin_ricento/products_listing_item'),
|
51 |
array('status' => $status),
|
52 |
+
array('item_id IN (?)' => $this->getAllIds(), 'type <> ?' => 'configurable')
|
53 |
);
|
54 |
|
55 |
return $this;
|
56 |
}
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
public function getAddAdditionalInformation()
|
59 |
{
|
60 |
return $this->_addAdditionalInformation;
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Model_Resource_Sales_Transaction_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Diglin_Ricento_Model_Resource_Sales_Transaction_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -72,11 +72,14 @@ class Diglin_Ricento_Model_Sales_Method_Payment extends Mage_Payment_Model_Metho
|
|
72 |
}
|
73 |
|
74 |
if ($checksBitMask & self::CHECK_IS_RICARDO_ORDER) {
|
75 |
-
if (
|
76 |
-
return
|
77 |
}
|
78 |
}
|
79 |
|
80 |
-
|
|
|
|
|
|
|
81 |
}
|
82 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
72 |
}
|
73 |
|
74 |
if ($checksBitMask & self::CHECK_IS_RICARDO_ORDER) {
|
75 |
+
if ($quote->getIsRicardo()) {
|
76 |
+
return true;
|
77 |
}
|
78 |
}
|
79 |
|
80 |
+
if (method_exists('Mage_Payment_Model_Method_Abstract','isApplicableToQuote')) {
|
81 |
+
return parent::isApplicableToQuote($quote, $checksBitMask);
|
82 |
+
}
|
83 |
+
return false;
|
84 |
}
|
85 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -16,12 +16,13 @@ class Diglin_Ricento_Model_Sales_Method_Shipping
|
|
16 |
extends Mage_Shipping_Model_Carrier_Abstract
|
17 |
implements Mage_Shipping_Model_Carrier_Interface
|
18 |
{
|
|
|
19 |
/**
|
20 |
* Carrier's code
|
21 |
*
|
22 |
* @var string
|
23 |
*/
|
24 |
-
protected $_code =
|
25 |
|
26 |
/**
|
27 |
* Whether this carrier has fixed rates calculation
|
@@ -38,11 +39,13 @@ class Diglin_Ricento_Model_Sales_Method_Shipping
|
|
38 |
*/
|
39 |
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
|
40 |
{
|
41 |
-
|
|
|
|
|
42 |
return false;
|
43 |
}
|
44 |
|
45 |
-
$calculationMethod =
|
46 |
$shippingPrice = 0;
|
47 |
$isRicardo = false;
|
48 |
|
@@ -84,8 +87,9 @@ class Diglin_Ricento_Model_Sales_Method_Shipping
|
|
84 |
/** @var Mage_Shipping_Model_Rate_Result $result */
|
85 |
$result = Mage::getModel('shipping/rate_result');
|
86 |
|
87 |
-
|
88 |
-
$
|
|
|
89 |
|
90 |
$shippingPrice = $this->getFinalPriceWithHandlingFee($shippingPrice);
|
91 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
16 |
extends Mage_Shipping_Model_Carrier_Abstract
|
17 |
implements Mage_Shipping_Model_Carrier_Interface
|
18 |
{
|
19 |
+
const SHIPPING_CODE = 'ricento';
|
20 |
/**
|
21 |
* Carrier's code
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
+
protected $_code = self::SHIPPING_CODE;
|
26 |
|
27 |
/**
|
28 |
* Whether this carrier has fixed rates calculation
|
39 |
*/
|
40 |
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
|
41 |
{
|
42 |
+
$helper = Mage::helper('diglin_ricento');
|
43 |
+
|
44 |
+
if (!$this->getConfigFlag('active') || !$helper->isEnabled()) {
|
45 |
return false;
|
46 |
}
|
47 |
|
48 |
+
$calculationMethod = $helper->getShippingCalculationMethod();
|
49 |
$shippingPrice = 0;
|
50 |
$isRicardo = false;
|
51 |
|
87 |
/** @var Mage_Shipping_Model_Rate_Result $result */
|
88 |
$result = Mage::getModel('shipping/rate_result');
|
89 |
|
90 |
+
|
91 |
+
$description = $helper->getRicardoShippingRegistry()->getRicardoShippingDescription();
|
92 |
+
$shippingMethod = $helper->getRicardoShippingRegistry()->getRicardoShippingMethod();
|
93 |
|
94 |
$shippingPrice = $this->getFinalPriceWithHandlingFee($shippingPrice);
|
95 |
|
@@ -5,10 +5,12 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
|
|
|
|
12 |
/**
|
13 |
* Sales_Options Model
|
14 |
*
|
@@ -26,6 +28,7 @@
|
|
26 |
* @method int getScheduleCycleMultipleProducts()
|
27 |
* @method int getScheduleOverwriteProductDateStart()
|
28 |
* @method int getStockManagement()
|
|
|
29 |
* @method int getCustomizationTemplate()
|
30 |
* @method int getPromotionSpace()
|
31 |
* @method int getPromotionStartPage()
|
@@ -50,6 +53,7 @@
|
|
50 |
* @method Diglin_Ricento_Model_Sales_Options setScheduleCycleMultipleProducts(int $scheduleCycleMultipleProducts)
|
51 |
* @method Diglin_Ricento_Model_Sales_Options setScheduleOverwriteProductDateStart(int $scheduleOverwriteProductDateStart)
|
52 |
* @method Diglin_Ricento_Model_Sales_Options setStockManagement(int $stockManagement)
|
|
|
53 |
* @method Diglin_Ricento_Model_Sales_Options setCustomizationTemplate(int $customizationTemplate)
|
54 |
* @method Diglin_Ricento_Model_Sales_Options setPromotionSpace(int $promotionSpace)
|
55 |
* @method Diglin_Ricento_Model_Sales_Options setPromotionStartPage(int $promotionStartPage)
|
@@ -128,4 +132,30 @@ class Diglin_Ricento_Model_Sales_Options extends Mage_Core_Model_Abstract
|
|
128 |
}
|
129 |
return '';
|
130 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
+
use \Diglin\Ricardo\Enums\Article\PromotionCode;
|
13 |
+
|
14 |
/**
|
15 |
* Sales_Options Model
|
16 |
*
|
28 |
* @method int getScheduleCycleMultipleProducts()
|
29 |
* @method int getScheduleOverwriteProductDateStart()
|
30 |
* @method int getStockManagement()
|
31 |
+
* @method string getStockManagementQtyType()
|
32 |
* @method int getCustomizationTemplate()
|
33 |
* @method int getPromotionSpace()
|
34 |
* @method int getPromotionStartPage()
|
53 |
* @method Diglin_Ricento_Model_Sales_Options setScheduleCycleMultipleProducts(int $scheduleCycleMultipleProducts)
|
54 |
* @method Diglin_Ricento_Model_Sales_Options setScheduleOverwriteProductDateStart(int $scheduleOverwriteProductDateStart)
|
55 |
* @method Diglin_Ricento_Model_Sales_Options setStockManagement(int $stockManagement)
|
56 |
+
* @method Diglin_Ricento_Model_Sales_Options setStockManagementQtyType(string $stockManagementQtyType)
|
57 |
* @method Diglin_Ricento_Model_Sales_Options setCustomizationTemplate(int $customizationTemplate)
|
58 |
* @method Diglin_Ricento_Model_Sales_Options setPromotionSpace(int $promotionSpace)
|
59 |
* @method Diglin_Ricento_Model_Sales_Options setPromotionStartPage(int $promotionStartPage)
|
132 |
}
|
133 |
return '';
|
134 |
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* @return array
|
138 |
+
*/
|
139 |
+
public function getPromotionIds()
|
140 |
+
{
|
141 |
+
$promotionIds = array();
|
142 |
+
|
143 |
+
if ($this->getSalesType() == Diglin_Ricento_Model_Config_Source_Sales_Type::AUCTION
|
144 |
+
&& $this->getSalesAuctionDirectBuy()
|
145 |
+
) {
|
146 |
+
$promotionIds[] = PromotionCode::BUYNOW;
|
147 |
+
}
|
148 |
+
|
149 |
+
$space = $this->getPromotionSpace();
|
150 |
+
if ($space) {
|
151 |
+
$promotionIds[] = (int) $space;
|
152 |
+
}
|
153 |
+
|
154 |
+
$startSpace = $this->getPromotionStartPage();
|
155 |
+
if ($startSpace) {
|
156 |
+
$promotionIds[] = (int) $startSpace;
|
157 |
+
}
|
158 |
+
|
159 |
+
return $promotionIds;
|
160 |
+
}
|
161 |
}
|
@@ -0,0 +1,182 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Diglin_Ricento_Model_Sales_Order_Create
|
14 |
+
*/
|
15 |
+
class Diglin_Ricento_Model_Sales_Order_Create extends Mage_Adminhtml_Model_Sales_Order_Create
|
16 |
+
{
|
17 |
+
protected $_store = null;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @return Mage_Core_Model_Store
|
21 |
+
*/
|
22 |
+
public function getStore()
|
23 |
+
{
|
24 |
+
if (is_null($this->_store)) {
|
25 |
+
$this->_store = Mage::app()->getStore($this->getStoreId());
|
26 |
+
if ($currencyId = $this->getCurrencyId()) {
|
27 |
+
$this->_store->setCurrentCurrencyCode($currencyId);
|
28 |
+
}
|
29 |
+
}
|
30 |
+
return $this->_store;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @param Mage_Core_Model_Store $store
|
35 |
+
* @return $this
|
36 |
+
*/
|
37 |
+
public function setStore(Mage_Core_Model_Store $store)
|
38 |
+
{
|
39 |
+
$this->_store = $store;
|
40 |
+
return $this;
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Initialize data for price rules
|
45 |
+
*
|
46 |
+
* @return Mage_Adminhtml_Model_Sales_Order_Create
|
47 |
+
*/
|
48 |
+
public function initRuleData()
|
49 |
+
{
|
50 |
+
Mage::register('rule_data', new Varien_Object(array(
|
51 |
+
'store_id' => $this->getStore()->getId(),
|
52 |
+
'website_id' => $this->getStore()->getWebsiteId(),
|
53 |
+
'customer_group_id' => $this->getCustomerGroupId(),
|
54 |
+
)));
|
55 |
+
return $this;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Prepare quote customer
|
60 |
+
*
|
61 |
+
* @return Mage_Adminhtml_Model_Sales_Order_Create
|
62 |
+
*/
|
63 |
+
public function _prepareCustomer()
|
64 |
+
{
|
65 |
+
/** @var $quote Mage_Sales_Model_Quote */
|
66 |
+
$quote = $this->getQuote();
|
67 |
+
$customer = $quote->getCustomer();
|
68 |
+
|
69 |
+
// Set quote customer data to customer
|
70 |
+
$this->_setCustomerData($customer);
|
71 |
+
|
72 |
+
// Add user defined attributes to quote
|
73 |
+
$form = $this->_getCustomerForm()->setEntity($customer);
|
74 |
+
foreach ($form->getUserAttributes() as $attribute) {
|
75 |
+
$quoteCode = sprintf('customer_%s', $attribute->getAttributeCode());
|
76 |
+
$quote->setData($quoteCode, $customer->getData($attribute->getAttributeCode()));
|
77 |
+
}
|
78 |
+
|
79 |
+
if ($customer->getId()) {
|
80 |
+
// Restore account data for existing customer
|
81 |
+
$this->_getCustomerForm()
|
82 |
+
->setEntity($customer)
|
83 |
+
->resetEntityData();
|
84 |
+
} else {
|
85 |
+
$quote->setCustomerId(true);
|
86 |
+
}
|
87 |
+
|
88 |
+
return $this;
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* @return $this
|
93 |
+
* @throws Diglin_Ricento_Model_Sales_Order_Exception
|
94 |
+
* @throws Mage_Core_Exception
|
95 |
+
*/
|
96 |
+
protected function _validate()
|
97 |
+
{
|
98 |
+
$customerId = $this->getQuote()->getCustomer()->getId();
|
99 |
+
if (is_null($customerId)) {
|
100 |
+
Mage::throwException(Mage::helper('adminhtml')->__('Please select a customer.'));
|
101 |
+
}
|
102 |
+
|
103 |
+
if (!$this->getQuote()->getStore()->getId()) {
|
104 |
+
Mage::throwException(Mage::helper('adminhtml')->__('Please select a store.'));
|
105 |
+
}
|
106 |
+
$items = $this->getQuote()->getAllItems();
|
107 |
+
|
108 |
+
if (count($items) == 0) {
|
109 |
+
$this->_errors[] = Mage::helper('adminhtml')->__('You need to specify order items.');
|
110 |
+
}
|
111 |
+
|
112 |
+
foreach ($items as $item) {
|
113 |
+
$messages = $item->getMessage(false);
|
114 |
+
if ($item->getHasError() && is_array($messages) && !empty($messages)) {
|
115 |
+
$this->_errors = array_merge($this->_errors, $messages);
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
if (!$this->getQuote()->isVirtual()) {
|
120 |
+
if (!$this->getQuote()->getShippingAddress()->getShippingMethod()) {
|
121 |
+
$this->_errors[] = Mage::helper('adminhtml')->__('Shipping method must be specified.');
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
if (!$this->getQuote()->getPayment()->getMethod()) {
|
126 |
+
$this->_errors[] = Mage::helper('adminhtml')->__('Payment method must be specified.');
|
127 |
+
} else {
|
128 |
+
$method = $this->getQuote()->getPayment()->getMethodInstance();
|
129 |
+
if (!$method) {
|
130 |
+
$this->_errors[] = Mage::helper('adminhtml')->__('Payment method instance is not available.');
|
131 |
+
} else {
|
132 |
+
if (!$method->isAvailable($this->getQuote())) {
|
133 |
+
$this->_errors[] = Mage::helper('adminhtml')->__('Payment method is not available.');
|
134 |
+
} else {
|
135 |
+
try {
|
136 |
+
$method->validate();
|
137 |
+
} catch (Mage_Core_Exception $e) {
|
138 |
+
$this->_errors[] = $e->getMessage();
|
139 |
+
}
|
140 |
+
}
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
if (!empty($this->_errors)) {
|
145 |
+
$exception = new Diglin_Ricento_Model_Sales_Order_Exception();
|
146 |
+
foreach ($this->_errors as $error) {
|
147 |
+
$exception->setMessage($error . "\n", true);
|
148 |
+
}
|
149 |
+
throw $exception;
|
150 |
+
}
|
151 |
+
return $this;
|
152 |
+
}
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Create new order
|
156 |
+
*
|
157 |
+
* @return Mage_Sales_Model_Order
|
158 |
+
*/
|
159 |
+
public function createOrder()
|
160 |
+
{
|
161 |
+
$this->_prepareCustomer();
|
162 |
+
$this->_validate();
|
163 |
+
$quote = $this->getQuote();
|
164 |
+
$this->_prepareQuoteItems();
|
165 |
+
|
166 |
+
$service = Mage::getModel('sales/service_quote', $quote);
|
167 |
+
|
168 |
+
$order = $service->submitOrder();
|
169 |
+
|
170 |
+
if ($this->getSendConfirmation()) {
|
171 |
+
$order->sendNewOrderEmail();
|
172 |
+
}
|
173 |
+
|
174 |
+
Mage::dispatchEvent('checkout_submit_all_after', array('order' => $order, 'quote' => $quote));
|
175 |
+
|
176 |
+
if ($order->getId()) {
|
177 |
+
$service->getQuote()->save(); // the flag $quote->setInactive is set to true but still need to save the change
|
178 |
+
}
|
179 |
+
|
180 |
+
return $order;
|
181 |
+
}
|
182 |
+
}
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
class Diglin_Ricento_Model_Sales_Order_Exception extends Mage_Core_Exception
|
13 |
+
{
|
14 |
+
|
15 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -31,13 +31,12 @@
|
|
31 |
class Diglin_Ricento_Model_Sync_Job extends Diglin_Ricento_Model_Sync_Abstract
|
32 |
{
|
33 |
// TYPES OF JOB
|
34 |
-
const TYPE_CHECK_LIST
|
35 |
-
const TYPE_LIST
|
36 |
-
const
|
37 |
-
const
|
38 |
-
const
|
39 |
-
const
|
40 |
-
const TYPE_SYNCLIST = 'sync_list';
|
41 |
|
42 |
// PROGRESS
|
43 |
const PROGRESS_PENDING = 'pending';
|
@@ -129,7 +128,7 @@ class Diglin_Ricento_Model_Sync_Job extends Diglin_Ricento_Model_Sync_Abstract
|
|
129 |
if (in_array($this->getProgress(), array(self::PROGRESS_PENDING, self::PROGRESS_CHUNK_RUNNING))) {
|
130 |
return $helper->__('Check in progress...');
|
131 |
}
|
132 |
-
|
133 |
case self::TYPE_LIST:
|
134 |
if (in_array($this->getProgress(), array(self::PROGRESS_PENDING, self::PROGRESS_CHUNK_RUNNING))) {
|
135 |
return $helper->__('List in progress...');
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
31 |
class Diglin_Ricento_Model_Sync_Job extends Diglin_Ricento_Model_Sync_Abstract
|
32 |
{
|
33 |
// TYPES OF JOB
|
34 |
+
const TYPE_CHECK_LIST = 'check_list';
|
35 |
+
const TYPE_LIST = 'list';
|
36 |
+
const TYPE_STOP = 'stop';
|
37 |
+
const TYPE_ORDER = 'order';
|
38 |
+
const TYPE_SYNCLIST = 'sync_list';
|
39 |
+
const TYPE_CLOSED = 'closed';
|
|
|
40 |
|
41 |
// PROGRESS
|
42 |
const PROGRESS_PENDING = 'pending';
|
128 |
if (in_array($this->getProgress(), array(self::PROGRESS_PENDING, self::PROGRESS_CHUNK_RUNNING))) {
|
129 |
return $helper->__('Check in progress...');
|
130 |
}
|
131 |
+
break;
|
132 |
case self::TYPE_LIST:
|
133 |
if (in_array($this->getProgress(), array(self::PROGRESS_PENDING, self::PROGRESS_CHUNK_RUNNING))) {
|
134 |
return $helper->__('List in progress...');
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -41,6 +41,7 @@ class Diglin_Ricento_Model_Sync_Job_Listing extends Diglin_Ricento_Model_Sync_Ab
|
|
41 |
{
|
42 |
/**
|
43 |
* Prefix of model events names
|
|
|
44 |
* @var string
|
45 |
*/
|
46 |
protected $_eventPrefix = 'sync_job_listing';
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
41 |
{
|
42 |
/**
|
43 |
* Prefix of model events names
|
44 |
+
*
|
45 |
* @var string
|
46 |
*/
|
47 |
protected $_eventPrefix = 'sync_job_listing';
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -27,6 +27,8 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
27 |
const PERIOD_DAYS_MIN = 1; // in days
|
28 |
const PERIOD_DAYS_MAX = 10; // in days
|
29 |
|
|
|
|
|
30 |
/**
|
31 |
* @var array
|
32 |
*/
|
@@ -61,10 +63,31 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
61 |
}
|
62 |
|
63 |
$item->setLoadFallbackOptions(true);
|
64 |
-
$helper = Mage::helper('diglin_ricento');
|
65 |
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
foreach ($stores as $store) {
|
69 |
|
70 |
$item->setStoreId($store);
|
@@ -76,7 +99,7 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
76 |
$strLen = new Zend_Validate_StringLength(array('min' => 1, 'max' => self::LENGTH_PRODUCT_TITLE));
|
77 |
if (!$strLen->isValid($item->getProductTitle(false))) {
|
78 |
// warning - content will be cut when exporting to ricardo
|
79 |
-
$this->_warnings[] = $
|
80 |
}
|
81 |
|
82 |
// Validate subtitle
|
@@ -84,7 +107,7 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
84 |
$strLen = new Zend_Validate_StringLength(array('max' => self::LENGTH_PRODUCT_SUBTITLE));
|
85 |
if (!$strLen->isValid($item->getProductSubtitle(false))) {
|
86 |
// warning - content will be cut when exporting to ricardo
|
87 |
-
$this->_warnings[] = $
|
88 |
}
|
89 |
|
90 |
// Validate description
|
@@ -92,25 +115,38 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
92 |
$strLen = new Zend_Validate_StringLength(array('min' => 1, 'max' => self::LENGTH_PRODUCT_DESCRIPTION));
|
93 |
if (!$strLen->isValid($item->getProductDescription(false))) {
|
94 |
// warning - content will be cut when exporting to ricardo
|
95 |
-
$this->_warnings[] = $
|
96 |
}
|
97 |
}
|
98 |
|
99 |
// Reinit the product to default store
|
100 |
-
|
101 |
$item->getProduct()->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID);
|
102 |
|
103 |
-
|
|
|
104 |
|
|
|
|
|
|
|
|
|
|
|
105 |
if ($item->getProduct()->getHasOptions()) {
|
106 |
// warning - no option will be send to ricardo.ch
|
107 |
-
$this->_warnings[] = $
|
108 |
}
|
109 |
|
110 |
-
|
|
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
$salesOptionsStockManagement = $item->getSalesOptions()->getStockManagement();
|
113 |
$stockItem = $item->getProduct()->getStockItem();
|
|
|
114 |
|
115 |
if ($stockItem->getManageStock()) {
|
116 |
if ($salesOptionsStockManagement == -1) {
|
@@ -119,34 +155,57 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
119 |
// if stock not managed => ok (default qty will be set to 1)
|
120 |
} else {
|
121 |
$qty = $salesOptionsStockManagement;
|
|
|
122 |
// if stock managed, check there is enough quantity compared to $salesOptionsStockManagement
|
123 |
// if stock is not managed => ok (default qty will be set to 1)
|
124 |
}
|
125 |
|
126 |
-
if (!$item->getProduct()->checkQty($qty) || !$stockItem->getIsInStock()) {
|
127 |
// Error - Qty not available or not in stock
|
128 |
-
$this->_errors[] = $
|
129 |
}
|
130 |
}
|
131 |
|
132 |
-
|
|
|
133 |
|
|
|
|
|
|
|
|
|
|
|
134 |
$currencyCode = Mage::app()->getWebsite($item->getProductsListing()->getWebsiteId())->getBaseCurrencyCode();
|
135 |
if ($currencyCode != Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
136 |
-
// Warning - Ricardo supports only CHF currency
|
137 |
-
$this->_warnings[] = $helper->__('Only %s currency is supported. No conversion will be done.', Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY);
|
138 |
-
}
|
139 |
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
|
|
|
|
|
|
|
|
|
|
|
142 |
$category = $item->getCategory();
|
143 |
if (!$category) {
|
144 |
// error - category cannot be empty
|
145 |
-
$this->_errors[] = $
|
146 |
}
|
147 |
|
148 |
-
|
|
|
149 |
|
|
|
|
|
|
|
|
|
|
|
150 |
$methodValidator = new Diglin_Ricento_Model_Validate_Rules_Methods();
|
151 |
$rules = $item->getShippingPaymentRule();
|
152 |
$methods = array(
|
@@ -156,11 +215,19 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
156 |
|
157 |
if (!$methodValidator->isValid($methods)) {
|
158 |
// Error - combination respect mandatory
|
159 |
-
$this->_errors[] = $
|
160 |
}
|
161 |
|
162 |
-
|
|
|
163 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
$salesOptions = $item->getSalesOptions();
|
165 |
$productPrice = $item->getProductPrice();
|
166 |
|
@@ -172,12 +239,12 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
172 |
|
173 |
if (!$greatherThanValidator->isValid($productPrice)) {
|
174 |
// Error - Price not allowed
|
175 |
-
$this->_errors[] = $
|
176 |
}
|
177 |
}
|
178 |
|
179 |
if (($salesOptions->getSalesType() == Diglin_Ricento_Model_Config_Source_Sales_Type::BUYNOW || $salesOptions->getSalesAuctionDirectBuy())
|
180 |
-
&& in_array(PaymentMethods::TYPE_CREDIT_CARD, $
|
181 |
) {
|
182 |
$betweenValidator = new Zend_Validate_Between(
|
183 |
array(
|
@@ -189,14 +256,33 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
189 |
|
190 |
if (!$betweenValidator->isValid($productPrice)) {
|
191 |
// Error - Price not allowed
|
192 |
-
$this->_errors[] = $
|
193 |
}
|
194 |
} else if ($productPrice < self::BUYNOW_MINPRICE_FIXPRICE) {
|
195 |
-
$this->_errors[] = $
|
196 |
}
|
|
|
|
|
197 |
|
198 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
|
|
|
|
|
|
|
|
|
|
|
200 |
$period = (int) $item->getSalesOptions()->getSchedulePeriodDays();
|
201 |
$betweenValidator = new Zend_Validate_Between(
|
202 |
array(
|
@@ -208,22 +294,35 @@ class Diglin_Ricento_Model_Validate_Products_Item extends Zend_Validate_Abstract
|
|
208 |
|
209 |
if (!$betweenValidator->isValid($period)) {
|
210 |
// Error - Period too long or too short
|
211 |
-
$this->_errors[] = $
|
212 |
}
|
|
|
|
|
213 |
|
214 |
-
|
215 |
-
|
|
|
|
|
|
|
|
|
|
|
216 |
$assignedImages = $item->getProduct()->getImages();
|
217 |
-
if (empty($assignedImages) && ($
|
218 |
// Warning - No promotion possible if no image in the product
|
219 |
-
$this->_warnings[] = $
|
220 |
}
|
221 |
-
|
222 |
-
|
223 |
-
return false;
|
224 |
}
|
|
|
|
|
225 |
|
226 |
-
|
|
|
|
|
|
|
|
|
|
|
227 |
}
|
228 |
|
229 |
/**
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
27 |
const PERIOD_DAYS_MIN = 1; // in days
|
28 |
const PERIOD_DAYS_MAX = 10; // in days
|
29 |
|
30 |
+
const QTY_MAX = 999;
|
31 |
+
|
32 |
/**
|
33 |
* @var array
|
34 |
*/
|
63 |
}
|
64 |
|
65 |
$item->setLoadFallbackOptions(true);
|
|
|
66 |
|
67 |
+
$this->validateProductStores($item, $stores);
|
68 |
+
$this->validateCustomOptions($item);
|
69 |
+
$this->validateStockManagement($item);
|
70 |
+
$this->validateCurrency($item);
|
71 |
+
$this->validateCategory($item);
|
72 |
+
$this->validatePaymentShippingRules($item);
|
73 |
+
$this->validateBuyNow($item);
|
74 |
+
$this->validateStartingDate($item);
|
75 |
+
$this->validateEndingDate($item);
|
76 |
+
$this->validatePicture($item);
|
77 |
+
|
78 |
+
if (count($this->_errors)) {
|
79 |
+
return false;
|
80 |
+
}
|
81 |
+
|
82 |
+
return true;
|
83 |
+
}
|
84 |
|
85 |
+
/**
|
86 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
87 |
+
* @param $stores
|
88 |
+
*/
|
89 |
+
public function validateProductStores(Diglin_Ricento_Model_Products_Listing_Item $item, array $stores)
|
90 |
+
{
|
91 |
foreach ($stores as $store) {
|
92 |
|
93 |
$item->setStoreId($store);
|
99 |
$strLen = new Zend_Validate_StringLength(array('min' => 1, 'max' => self::LENGTH_PRODUCT_TITLE));
|
100 |
if (!$strLen->isValid($item->getProductTitle(false))) {
|
101 |
// warning - content will be cut when exporting to ricardo
|
102 |
+
$this->_warnings[] = $this->getHelper()->__('Product Title will be cut after %s characters when published on ricardo.ch for store "%s"', self::LENGTH_PRODUCT_TITLE, $storeCode);
|
103 |
}
|
104 |
|
105 |
// Validate subtitle
|
107 |
$strLen = new Zend_Validate_StringLength(array('max' => self::LENGTH_PRODUCT_SUBTITLE));
|
108 |
if (!$strLen->isValid($item->getProductSubtitle(false))) {
|
109 |
// warning - content will be cut when exporting to ricardo
|
110 |
+
$this->_warnings[] = $this->getHelper()->__('Product Subtitle will be cut after %s characters when published on ricardo.ch for store "%s"', self::LENGTH_PRODUCT_SUBTITLE, $storeCode);
|
111 |
}
|
112 |
|
113 |
// Validate description
|
115 |
$strLen = new Zend_Validate_StringLength(array('min' => 1, 'max' => self::LENGTH_PRODUCT_DESCRIPTION));
|
116 |
if (!$strLen->isValid($item->getProductDescription(false))) {
|
117 |
// warning - content will be cut when exporting to ricardo
|
118 |
+
$this->_warnings[] = $this->getHelper()->__('Product Description will be cut after %s characters when published on ricardo.ch for store "%s"', self::LENGTH_PRODUCT_DESCRIPTION, $storeCode);
|
119 |
}
|
120 |
}
|
121 |
|
122 |
// Reinit the product to default store
|
|
|
123 |
$item->getProduct()->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID);
|
124 |
|
125 |
+
return;
|
126 |
+
}
|
127 |
|
128 |
+
/**
|
129 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
130 |
+
*/
|
131 |
+
public function validateCustomOptions(Diglin_Ricento_Model_Products_Listing_Item $item)
|
132 |
+
{
|
133 |
if ($item->getProduct()->getHasOptions()) {
|
134 |
// warning - no option will be send to ricardo.ch
|
135 |
+
$this->_warnings[] = $this->getHelper()->__('Custom Options are not supported. Those won\'t be synchronized into ricardo.ch.', Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY);
|
136 |
}
|
137 |
|
138 |
+
return;
|
139 |
+
}
|
140 |
|
141 |
+
/**
|
142 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
143 |
+
*/
|
144 |
+
public function validateStockManagement(Diglin_Ricento_Model_Products_Listing_Item $item)
|
145 |
+
{
|
146 |
+
// Validate Inventory - In Stock or not? Enough Qty or not?
|
147 |
$salesOptionsStockManagement = $item->getSalesOptions()->getStockManagement();
|
148 |
$stockItem = $item->getProduct()->getStockItem();
|
149 |
+
$type = null;
|
150 |
|
151 |
if ($stockItem->getManageStock()) {
|
152 |
if ($salesOptionsStockManagement == -1) {
|
155 |
// if stock not managed => ok (default qty will be set to 1)
|
156 |
} else {
|
157 |
$qty = $salesOptionsStockManagement;
|
158 |
+
$type = $item->getSalesOptions()->getStockManagementQtyType();
|
159 |
// if stock managed, check there is enough quantity compared to $salesOptionsStockManagement
|
160 |
// if stock is not managed => ok (default qty will be set to 1)
|
161 |
}
|
162 |
|
163 |
+
if (!$item->getProduct()->checkQty($qty, $type) || !$stockItem->getIsInStock()) {
|
164 |
// Error - Qty not available or not in stock
|
165 |
+
$this->_errors[] = $this->getHelper()->__('The product or its associated products is/are not in stock or doesn\'t have enough quantity in stock.');
|
166 |
}
|
167 |
}
|
168 |
|
169 |
+
return;
|
170 |
+
}
|
171 |
|
172 |
+
/**
|
173 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
174 |
+
*/
|
175 |
+
public function validateCurrency(Diglin_Ricento_Model_Products_Listing_Item $item)
|
176 |
+
{
|
177 |
$currencyCode = Mage::app()->getWebsite($item->getProductsListing()->getWebsiteId())->getBaseCurrencyCode();
|
178 |
if ($currencyCode != Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
|
|
|
|
|
|
179 |
|
180 |
+
$priceHelper = Mage::helper('diglin_ricento/price');
|
181 |
+
$rate = $priceHelper->getCurrency($currencyCode)->getRate(Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY);
|
182 |
+
|
183 |
+
if (empty($rate)) {
|
184 |
+
$this->_errors[] = $this->getHelper()->__('Currency Rate not defined for CHF currency. Please configure your currency rate before to proceed.');
|
185 |
+
}
|
186 |
+
}
|
187 |
+
return;
|
188 |
+
}
|
189 |
|
190 |
+
/**
|
191 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
192 |
+
*/
|
193 |
+
public function validateCategory(Diglin_Ricento_Model_Products_Listing_Item $item)
|
194 |
+
{
|
195 |
$category = $item->getCategory();
|
196 |
if (!$category) {
|
197 |
// error - category cannot be empty
|
198 |
+
$this->_errors[] = $this->getHelper()->__('You MUST define a ricardo category for this product. Check that you set it at products listing level or at Magento category level.');
|
199 |
}
|
200 |
|
201 |
+
return;
|
202 |
+
}
|
203 |
|
204 |
+
/**
|
205 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
206 |
+
*/
|
207 |
+
public function validatePaymentShippingRules(Diglin_Ricento_Model_Products_Listing_Item $item)
|
208 |
+
{
|
209 |
$methodValidator = new Diglin_Ricento_Model_Validate_Rules_Methods();
|
210 |
$rules = $item->getShippingPaymentRule();
|
211 |
$methods = array(
|
215 |
|
216 |
if (!$methodValidator->isValid($methods)) {
|
217 |
// Error - combination respect mandatory
|
218 |
+
$this->_errors[] = $this->getHelper()->__('Payment and/or Shipping combination are not correct.') . '<br>' . print_r($methodValidator->getMessages(), true);
|
219 |
}
|
220 |
|
221 |
+
return;
|
222 |
+
}
|
223 |
|
224 |
+
/**
|
225 |
+
* Validate price against buy now price > 0.05 or 0.1
|
226 |
+
*
|
227 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
228 |
+
*/
|
229 |
+
public function validateBuyNow(Diglin_Ricento_Model_Products_Listing_Item $item)
|
230 |
+
{
|
231 |
$salesOptions = $item->getSalesOptions();
|
232 |
$productPrice = $item->getProductPrice();
|
233 |
|
239 |
|
240 |
if (!$greatherThanValidator->isValid($productPrice)) {
|
241 |
// Error - Price not allowed
|
242 |
+
$this->_errors[] = $this->getHelper()->__('You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s.', $productPrice, $minPrice);
|
243 |
}
|
244 |
}
|
245 |
|
246 |
if (($salesOptions->getSalesType() == Diglin_Ricento_Model_Config_Source_Sales_Type::BUYNOW || $salesOptions->getSalesAuctionDirectBuy())
|
247 |
+
&& in_array(PaymentMethods::TYPE_CREDIT_CARD, $item->getShippingPaymentRule()->getPaymentMethods())
|
248 |
) {
|
249 |
$betweenValidator = new Zend_Validate_Between(
|
250 |
array(
|
256 |
|
257 |
if (!$betweenValidator->isValid($productPrice)) {
|
258 |
// Error - Price not allowed
|
259 |
+
$this->_errors[] = $this->getHelper()->__('Product Price of %s CHF is incorrect for a direct sales with credit card. Price must be between %s and %s.', $productPrice, self::BUYNOW_MINPRICE_FIXPRICE, self::BUYNOW_MAXPRICE_FIXPRICE);
|
260 |
}
|
261 |
} else if ($productPrice < self::BUYNOW_MINPRICE_FIXPRICE) {
|
262 |
+
$this->_errors[] = $this->getHelper()->__('Product Price of %s CHF is incorrect. Minimum price is %s.', self::BUYNOW_MINPRICE_FIXPRICE);
|
263 |
}
|
264 |
+
return;
|
265 |
+
}
|
266 |
|
267 |
+
/**
|
268 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
269 |
+
*/
|
270 |
+
public function validateStartingDate(Diglin_Ricento_Model_Products_Listing_Item $item)
|
271 |
+
{
|
272 |
+
$startDate = Mage::helper('diglin_ricento')->getStartingDate($item);
|
273 |
+
|
274 |
+
if (!is_null($startDate) && $startDate < (time() + 59*60)) {
|
275 |
+
// Warning - starting date must be 1 hour in future
|
276 |
+
$this->_warnings[] = $this->getHelper()->__('The starting date must start one hour in future. It will be automatically updated to list on ricardo.');
|
277 |
+
}
|
278 |
+
return;
|
279 |
+
}
|
280 |
|
281 |
+
/**
|
282 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
283 |
+
*/
|
284 |
+
public function validateEndingDate(Diglin_Ricento_Model_Products_Listing_Item $item)
|
285 |
+
{
|
286 |
$period = (int) $item->getSalesOptions()->getSchedulePeriodDays();
|
287 |
$betweenValidator = new Zend_Validate_Between(
|
288 |
array(
|
294 |
|
295 |
if (!$betweenValidator->isValid($period)) {
|
296 |
// Error - Period too long or too short
|
297 |
+
$this->_errors[] = $this->getHelper()->__('The ending date is too early or too late. Minimum period allowed: %s days - Maximum period allowed: %s days', self::PERIOD_DAYS_MIN, self::PERIOD_DAYS_MAX);
|
298 |
}
|
299 |
+
return;
|
300 |
+
}
|
301 |
|
302 |
+
/**
|
303 |
+
* Validate picture - warning if promotions exists but no picture
|
304 |
+
*
|
305 |
+
* @param Diglin_Ricento_Model_Products_Listing_Item $item
|
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 |
// Warning - No promotion possible if no image in the product
|
312 |
+
$this->_warnings[] = $this->getHelper()->__('You cannot use the privilege spaces as you do not have any pictures for this product.');
|
313 |
}
|
314 |
+
if (count($assignedImages) > 10) {
|
315 |
+
$this->_warnings[] = $this->getHelper()->__('Only 10 pictures maximum allowed.');
|
|
|
316 |
}
|
317 |
+
return;
|
318 |
+
}
|
319 |
|
320 |
+
/**
|
321 |
+
* @return Diglin_Ricento_Helper_Data
|
322 |
+
*/
|
323 |
+
public function getHelper()
|
324 |
+
{
|
325 |
+
return Mage::helper('diglin_ricento');
|
326 |
}
|
327 |
|
328 |
/**
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -15,7 +15,7 @@
|
|
15 |
class Diglin_Ricento_Test_Model_Rule_Validate extends EcomDev_PHPUnit_Test_Case
|
16 |
{
|
17 |
/**
|
18 |
-
* @var
|
19 |
*/
|
20 |
protected $_subject;
|
21 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
15 |
class Diglin_Ricento_Test_Model_Rule_Validate extends EcomDev_PHPUnit_Test_Case
|
16 |
{
|
17 |
/**
|
18 |
+
* @var Diglin_Ricento_Model_Validate_Sales_Increment
|
19 |
*/
|
20 |
protected $_subject;
|
21 |
|
Binary file
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -38,23 +38,6 @@ class Diglin_Ricento_Adminhtml_AccountController extends Mage_Adminhtml_Controll
|
|
38 |
|
39 |
public function assistantAction()
|
40 |
{
|
41 |
-
$
|
42 |
-
|
43 |
-
$block
|
44 |
-
->setTemplate('ricento/iframe.phtml')
|
45 |
-
->setTitle($this->__('ricardo.ch Assistant Portal'))
|
46 |
-
->setIframeUrl(Mage::helper('diglin_ricento')->getRicardoAssistantUrl());
|
47 |
-
|
48 |
-
$ricardoLabel = $this->__('ricardo.ch');
|
49 |
-
$assistantLabel = $this->__('Assistant Portal');
|
50 |
-
|
51 |
-
$this->_title($assistantLabel);
|
52 |
-
|
53 |
-
$this->loadLayout()
|
54 |
-
->_setActiveMenu('ricento/assistant')
|
55 |
-
->_addBreadcrumb($ricardoLabel, $ricardoLabel)
|
56 |
-
->_addBreadcrumb($assistantLabel, $assistantLabel)
|
57 |
-
->_addContent($block)
|
58 |
-
->renderLayout();
|
59 |
}
|
60 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
38 |
|
39 |
public function assistantAction()
|
40 |
{
|
41 |
+
$this->_redirectUrl(Mage::helper('diglin_ricento')->getRicardoAssistantUrl());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
43 |
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
use Diglin\Ricardo\Services\ServiceAbstract;
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
use Diglin\Ricardo\Services\ServiceAbstract;
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -29,7 +29,7 @@ class Diglin_Ricento_Adminhtml_LogController extends Diglin_Ricento_Controller_A
|
|
29 |
|
30 |
public function indexAction()
|
31 |
{
|
32 |
-
$this->_redirect('*/*/
|
33 |
}
|
34 |
|
35 |
/**
|
@@ -39,17 +39,6 @@ class Diglin_Ricento_Adminhtml_LogController extends Diglin_Ricento_Controller_A
|
|
39 |
{
|
40 |
$this->_initAction();
|
41 |
|
42 |
-
// $productsListing = null;
|
43 |
-
// if ($this->getRequest()->getParam('id')) {
|
44 |
-
// $productsListing = $this->_initListing();
|
45 |
-
// $id = $productsListing->getId();
|
46 |
-
// }
|
47 |
-
|
48 |
-
// if ($productsListing && !empty($id)) {
|
49 |
-
// $block = $this->getLayout()->createBlock('diglin_ricento/adminhtml_products_listing_log');
|
50 |
-
// } else {
|
51 |
-
// }
|
52 |
-
|
53 |
$block = $this->getLayout()->createBlock('diglin_ricento/adminhtml_log', 'ricento_logs_tabs',
|
54 |
array('active_tab' => Diglin_Ricento_Block_Adminhtml_Log_Tabs::TAB_LISTING)
|
55 |
);
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
29 |
|
30 |
public function indexAction()
|
31 |
{
|
32 |
+
$this->_redirect('*/*/sync');
|
33 |
}
|
34 |
|
35 |
/**
|
39 |
{
|
40 |
$this->_initAction();
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
$block = $this->getLayout()->createBlock('diglin_ricento/adminhtml_log', 'ricento_logs_tabs',
|
43 |
array('active_tab' => Diglin_Ricento_Block_Adminhtml_Log_Tabs::TAB_LISTING)
|
44 |
);
|
@@ -5,10 +5,14 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
|
|
|
|
|
|
|
|
12 |
/**
|
13 |
* Class Diglin_Ricento_Adminhtml_Products_CategoryController
|
14 |
*/
|
@@ -16,21 +20,92 @@ class Diglin_Ricento_Adminhtml_Products_CategoryController extends Diglin_Ricent
|
|
16 |
{
|
17 |
public function mappingAction()
|
18 |
{
|
|
|
|
|
|
|
19 |
$this->loadLayout();
|
|
|
20 |
$this->getLayout()->getBlock('category_mapping')
|
21 |
-
->setCategoryId($
|
|
|
|
|
|
|
|
|
|
|
22 |
$this->renderLayout();
|
23 |
}
|
24 |
|
25 |
public function childrenAction()
|
26 |
{
|
|
|
|
|
|
|
27 |
$this->loadLayout();
|
28 |
$this->getLayout()->getBlock('category_children')
|
29 |
-
->setCategoryId($
|
30 |
-
->setLevel($this->getRequest()->getParam('level', 0))
|
|
|
|
|
31 |
$this->renderLayout();
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* Show the categories tree to add products related to them into a product listing item
|
36 |
*/
|
@@ -129,6 +204,8 @@ class Diglin_Ricento_Adminhtml_Products_CategoryController extends Diglin_Ricent
|
|
129 |
}
|
130 |
}
|
131 |
|
|
|
|
|
132 |
$this->_getSession()->addSuccess($this->__('%d product(s) added to the listing', $productsAdded));
|
133 |
} catch (Exception $e) {
|
134 |
Mage::logException($e);
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
+
use \Diglin\Ricardo\Managers\Search\Parameter\GetCategoryBestMatchParameter;
|
13 |
+
use \Diglin\Ricardo\Exceptions\SearchException;
|
14 |
+
use \Diglin\Ricardo\Enums\SearchErrors;
|
15 |
+
|
16 |
/**
|
17 |
* Class Diglin_Ricento_Adminhtml_Products_CategoryController
|
18 |
*/
|
20 |
{
|
21 |
public function mappingAction()
|
22 |
{
|
23 |
+
$suggestedCategoriesId = (array) $this->_getSession()->getData('suggested_categories');
|
24 |
+
$categoryId = (int) $this->getRequest()->getParam('id', 1);
|
25 |
+
|
26 |
$this->loadLayout();
|
27 |
+
|
28 |
$this->getLayout()->getBlock('category_mapping')
|
29 |
+
->setCategoryId($categoryId);
|
30 |
+
|
31 |
+
$this->getLayout()->getBlock('category_tree')
|
32 |
+
->setCategoryId($categoryId)
|
33 |
+
->setSuggestedCategoriesId($suggestedCategoriesId);
|
34 |
+
|
35 |
$this->renderLayout();
|
36 |
}
|
37 |
|
38 |
public function childrenAction()
|
39 |
{
|
40 |
+
$suggestedCategoriesId = (array) $this->_getSession()->getData('suggested_categories');
|
41 |
+
$categoryId = (int) $this->getRequest()->getParam('id', 1);
|
42 |
+
|
43 |
$this->loadLayout();
|
44 |
$this->getLayout()->getBlock('category_children')
|
45 |
+
->setCategoryId($categoryId)
|
46 |
+
->setLevel($this->getRequest()->getParam('level', 0))
|
47 |
+
->setSuggestedCategoriesId($suggestedCategoriesId);
|
48 |
+
|
49 |
$this->renderLayout();
|
50 |
}
|
51 |
|
52 |
+
public function suggestAction()
|
53 |
+
{
|
54 |
+
$helper = Mage::helper('diglin_ricento');
|
55 |
+
$sentence = (string) $this->getRequest()->getParam('sentence');
|
56 |
+
|
57 |
+
$categoryBestMatchParameter = new GetCategoryBestMatchParameter();
|
58 |
+
$categoryBestMatchParameter
|
59 |
+
->setNumberMaxOfResult(5)
|
60 |
+
->setLanguageId($helper->getRicardoLanguageIdFromLocaleCode($helper->getDefaultSupportedLang()))
|
61 |
+
->setSentence($sentence);
|
62 |
+
|
63 |
+
$categories = array();
|
64 |
+
$response = new Varien_Object();
|
65 |
+
$suggestedCategoriesId = array();
|
66 |
+
|
67 |
+
try {
|
68 |
+
$searchService = Mage::getSingleton('diglin_ricento/api_services_search');
|
69 |
+
$searchService->setCanUseCache(false);
|
70 |
+
$categories = $searchService->getCategoryBestMatch($categoryBestMatchParameter);
|
71 |
+
} catch (SearchException $e) {
|
72 |
+
$errorMessage = '<div class="error-msg">';
|
73 |
+
$errorMessage .= SearchErrors::getLabel($e->getCode());
|
74 |
+
$errorMessage .= '</div>';
|
75 |
+
|
76 |
+
$response->setError($errorMessage);
|
77 |
+
}
|
78 |
+
|
79 |
+
if (count($categories) > 0) {
|
80 |
+
|
81 |
+
$mapping = Mage::getModel('diglin_ricento/products_category_mapping');
|
82 |
+
$categoryId = $categories[0]['CategoryId'];
|
83 |
+
|
84 |
+
foreach ($categories as $category) {
|
85 |
+
$suggestedCategoriesId = array_merge($suggestedCategoriesId, explode('/', $mapping->getCategory($category['CategoryId'])->getPath()));
|
86 |
+
}
|
87 |
+
|
88 |
+
$block = $this->getLayout()->createBlock('diglin_ricento/adminhtml_products_category_mapping_tree');
|
89 |
+
$block
|
90 |
+
->setCategoryId($categoryId)
|
91 |
+
->setSuggestedCategoriesId($suggestedCategoriesId);
|
92 |
+
|
93 |
+
// array_shift($categories);
|
94 |
+
|
95 |
+
$response
|
96 |
+
->setCategoryId($categoryId)
|
97 |
+
// ->setOtherSuggestions($categories)
|
98 |
+
->setContent($block->toHtml())
|
99 |
+
->setLevels($block->getLevels()) // must be after $block->toHtml()
|
100 |
+
->setChildrenUrl($this->getUrl('ricento/products_category/children', array('id' => '#ID#', 'level' => '#LVL#')));
|
101 |
+
}
|
102 |
+
|
103 |
+
$this->_getSession()->setData('suggested_categories', $suggestedCategoriesId);
|
104 |
+
|
105 |
+
$this->getResponse()->setHeader('Content-Type', 'application/json');
|
106 |
+
$this->getResponse()->setBody($response->toJson());
|
107 |
+
}
|
108 |
+
|
109 |
/**
|
110 |
* Show the categories tree to add products related to them into a product listing item
|
111 |
*/
|
204 |
}
|
205 |
}
|
206 |
|
207 |
+
$this->_prepareConfigurableProduct();
|
208 |
+
|
209 |
$this->_getSession()->addSuccess($this->__('%d product(s) added to the listing', $productsAdded));
|
210 |
} catch (Exception $e) {
|
211 |
Mage::logException($e);
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -31,10 +31,12 @@ class Diglin_Ricento_Adminhtml_Products_Listing_ItemController extends Diglin_Ri
|
|
31 |
}
|
32 |
|
33 |
if ($this->_itemIds) {
|
34 |
-
$itemCollection
|
|
|
35 |
->addFieldToFilter('item_id', array('in' => $this->_itemIds));
|
36 |
} else {
|
37 |
-
$itemCollection
|
|
|
38 |
$this->_itemIds = $itemCollection->getColumnValues('item_id');
|
39 |
}
|
40 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
31 |
}
|
32 |
|
33 |
if ($this->_itemIds) {
|
34 |
+
$itemCollection
|
35 |
+
->addFieldToFilter('products_listing_id', $this->_getListing()->getId())
|
36 |
->addFieldToFilter('item_id', array('in' => $this->_itemIds));
|
37 |
} else {
|
38 |
+
$itemCollection
|
39 |
+
->addFieldToFilter('item_id', array('in' => explode(',', $this->getRequest()->getPost('item_ids'))));
|
40 |
$this->_itemIds = $itemCollection->getColumnValues('item_id');
|
41 |
}
|
42 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -192,6 +192,7 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
192 |
try {
|
193 |
$listing->save();
|
194 |
if ($this->saveConfiguration($data)) {
|
|
|
195 |
$this->_getSession()->addSuccess($this->__('The listing has been saved.'));
|
196 |
} else {
|
197 |
$error = true;
|
@@ -281,13 +282,16 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
281 |
$this->_redirectUrl($this->_getRefererUrl());
|
282 |
return;
|
283 |
}
|
284 |
-
$productIds = (array)
|
285 |
$productsAdded = 0;
|
286 |
foreach ($productIds as $productId) {
|
287 |
if ($this->_getListing()->addProduct((int)$productId)) {
|
288 |
++$productsAdded;
|
289 |
}
|
290 |
}
|
|
|
|
|
|
|
291 |
$this->_getSession()->addSuccess($this->__('%d product(s) added to the listing', $productsAdded));
|
292 |
$this->_redirect('*/*/edit', array('id' => $this->_getListing()->getId()));
|
293 |
}
|
@@ -304,12 +308,12 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
304 |
}
|
305 |
|
306 |
if ($this->getRequest()->isPost()) {
|
307 |
-
$
|
308 |
} else {
|
309 |
-
$
|
310 |
}
|
311 |
|
312 |
-
list($productsRemoved, $productsNotRemoved) = $this->_getListing()->removeProductsByItemIds($
|
313 |
|
314 |
if ($productsRemoved) {
|
315 |
$this->_getSession()->addSuccess($this->__('%d products removed from listing', $productsRemoved));
|
@@ -319,6 +323,10 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
319 |
$this->_getSession()->addNotice($this->__('%d products are listed and could not be removed', $productsNotRemoved));
|
320 |
}
|
321 |
|
|
|
|
|
|
|
|
|
322 |
$this->_redirect('*/*/edit', array('id' => $this->_getListing()->getId()));
|
323 |
}
|
324 |
|
@@ -330,7 +338,7 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
330 |
{
|
331 |
$productListing = $this->_getListing();
|
332 |
|
333 |
-
if (!$this->
|
334 |
$this->_getSession()->addError($this->__('The API token and configuration are not ready to allow this action. Please, check that your token is enabled and not going to expire.'));
|
335 |
$this->_redirectUrl($this->_getRefererUrl());
|
336 |
return;
|
@@ -360,13 +368,14 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
360 |
return;
|
361 |
}
|
362 |
|
363 |
-
|
364 |
-
|
|
|
365 |
$job = Mage::getModel('diglin_ricento/sync_job');
|
366 |
$job
|
367 |
->setJobType($jobType)
|
368 |
->setProgress(Diglin_Ricento_Model_Sync_Job::PROGRESS_PENDING)
|
369 |
-
->setJobMessage(
|
370 |
->save();
|
371 |
|
372 |
$jobListing = Mage::getModel('diglin_ricento/sync_job_listing');
|
@@ -414,11 +423,6 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
414 |
return;
|
415 |
}
|
416 |
|
417 |
-
if ($productListing->getStatus() != Diglin_Ricento_Helper_Data::STATUS_LISTED && !$this->saveAction()) {
|
418 |
-
$this->_redirect('*/*/edit', array('id' => $productListing->getId()));
|
419 |
-
return;
|
420 |
-
}
|
421 |
-
|
422 |
$countPendingItems = Mage::getResourceModel('diglin_ricento/products_listing_item')->countPendingItems($productListing->getId());
|
423 |
|
424 |
if ($countPendingItems == 0) {
|
@@ -431,11 +435,13 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
431 |
$this->_startJobList(Diglin_Ricento_Model_Sync_Job::TYPE_CHECK_LIST, $countPendingItems);
|
432 |
}
|
433 |
|
|
|
|
|
|
|
434 |
public function checkAjaxAction()
|
435 |
{
|
436 |
$return = true;
|
437 |
try {
|
438 |
-
|
439 |
Mage::getSingleton('diglin_ricento/dispatcher')
|
440 |
->dispatch(Diglin_Ricento_Model_Sync_Job::TYPE_CHECK_LIST)
|
441 |
->proceed();
|
@@ -467,7 +473,7 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
467 |
|
468 |
$countReadyToList = Mage::getResourceModel('diglin_ricento/products_listing_item')->coundReadyTolist($productListing->getId());
|
469 |
|
470 |
-
if ($countReadyToList
|
471 |
$this->_getSession()->addError($this->__('There is no product ready to be listed. Please, add products to your products listing "%s".', $productListing->getTitle()));
|
472 |
$this->_redirect('*/*/index');
|
473 |
return;
|
@@ -479,32 +485,6 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
479 |
$this->_startJobList(Diglin_Ricento_Model_Sync_Job::TYPE_LIST, $countReadyToList);
|
480 |
}
|
481 |
|
482 |
-
/**
|
483 |
-
* Start to list the product listing on ricardo platform if those was already listed and sold
|
484 |
-
*
|
485 |
-
* @deprecated since 18.09.2014
|
486 |
-
*/
|
487 |
-
public function relistAction()
|
488 |
-
{
|
489 |
-
$productListing = $this->_initListing();
|
490 |
-
|
491 |
-
if (!$productListing) {
|
492 |
-
$this->_getSession()->addError('Products Listing not found.');
|
493 |
-
$this->_redirectUrl($this->_getRefererUrl());
|
494 |
-
return;
|
495 |
-
}
|
496 |
-
|
497 |
-
$countSoldItems = Mage::getResourceModel('diglin_ricento/products_listing_item')->countSoldItems($productListing->getId());
|
498 |
-
|
499 |
-
if ($countSoldItems == 0) {
|
500 |
-
$this->_getSession()->addError($this->__('There is no item to relist. Only products who have been sold on ricardo.ch can be relisted for the products listing %d.', $productListing->getId()));
|
501 |
-
$this->_redirect('*/*/index');
|
502 |
-
return;
|
503 |
-
}
|
504 |
-
$this->_successMessage = $this->_getSuccessMesageList();
|
505 |
-
$this->_startJobList(Diglin_Ricento_Model_Sync_Job::TYPE_RELIST, $countSoldItems);
|
506 |
-
}
|
507 |
-
|
508 |
/**
|
509 |
* Stop to list all items belonging to a product list from ricardo platform
|
510 |
*/
|
@@ -535,7 +515,7 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
535 |
return;
|
536 |
}
|
537 |
|
538 |
-
$this->_successMessage = $this->__('The job to stop to list your products will start in few minutes.') . $this->__('You can check the progression below.');
|
539 |
$this->_startJobList(Diglin_Ricento_Model_Sync_Job::TYPE_STOP, $countListedItem);
|
540 |
}
|
541 |
|
@@ -561,7 +541,7 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
561 |
|
562 |
$notDeleted = array_diff($productListings, $goingToBeDeleted);
|
563 |
if ($notDeleted) {
|
564 |
-
$this->_getSession()->addNotice($this->__(
|
565 |
}
|
566 |
}
|
567 |
} catch (Exception $e) {
|
@@ -571,4 +551,80 @@ class Diglin_Ricento_Adminhtml_Products_ListingController extends Diglin_Ricento
|
|
571 |
|
572 |
$this->_redirect('*/*/index');
|
573 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
574 |
}
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
192 |
try {
|
193 |
$listing->save();
|
194 |
if ($this->saveConfiguration($data)) {
|
195 |
+
$this->_prepareConfigurableProduct();
|
196 |
$this->_getSession()->addSuccess($this->__('The listing has been saved.'));
|
197 |
} else {
|
198 |
$error = true;
|
282 |
$this->_redirectUrl($this->_getRefererUrl());
|
283 |
return;
|
284 |
}
|
285 |
+
$productIds = (array)$this->getRequest()->getPost('product', array());
|
286 |
$productsAdded = 0;
|
287 |
foreach ($productIds as $productId) {
|
288 |
if ($this->_getListing()->addProduct((int)$productId)) {
|
289 |
++$productsAdded;
|
290 |
}
|
291 |
}
|
292 |
+
|
293 |
+
$this->_prepareConfigurableProduct();
|
294 |
+
|
295 |
$this->_getSession()->addSuccess($this->__('%d product(s) added to the listing', $productsAdded));
|
296 |
$this->_redirect('*/*/edit', array('id' => $this->_getListing()->getId()));
|
297 |
}
|
308 |
}
|
309 |
|
310 |
if ($this->getRequest()->isPost()) {
|
311 |
+
$itemIds = array_map('intval', (array)$this->getRequest()->getPost('item', array()));
|
312 |
} else {
|
313 |
+
$itemIds = array_map('intval', (array)$this->getRequest()->getParam('item', array()));
|
314 |
}
|
315 |
|
316 |
+
list($productsRemoved, $productsNotRemoved) = $this->_getListing()->removeProductsByItemIds($itemIds);
|
317 |
|
318 |
if ($productsRemoved) {
|
319 |
$this->_getSession()->addSuccess($this->__('%d products removed from listing', $productsRemoved));
|
323 |
$this->_getSession()->addNotice($this->__('%d products are listed and could not be removed', $productsNotRemoved));
|
324 |
}
|
325 |
|
326 |
+
if (!$productsRemoved && !$productsNotRemoved) {
|
327 |
+
$this->_getSession()->addWarning($this->__('No product found'));
|
328 |
+
}
|
329 |
+
|
330 |
$this->_redirect('*/*/edit', array('id' => $this->_getListing()->getId()));
|
331 |
}
|
332 |
|
338 |
{
|
339 |
$productListing = $this->_getListing();
|
340 |
|
341 |
+
if (!$this->_isApiReady()) {
|
342 |
$this->_getSession()->addError($this->__('The API token and configuration are not ready to allow this action. Please, check that your token is enabled and not going to expire.'));
|
343 |
$this->_redirectUrl($this->_getRefererUrl());
|
344 |
return;
|
368 |
return;
|
369 |
}
|
370 |
|
371 |
+
/**
|
372 |
+
* Create a job to prepare the sync to Ricardo.ch
|
373 |
+
*/
|
374 |
$job = Mage::getModel('diglin_ricento/sync_job');
|
375 |
$job
|
376 |
->setJobType($jobType)
|
377 |
->setProgress(Diglin_Ricento_Model_Sync_Job::PROGRESS_PENDING)
|
378 |
+
->setJobMessage((is_array($job->getJobMessage())) ? $job->getJobMessage() : array($job->getJobMessage()))
|
379 |
->save();
|
380 |
|
381 |
$jobListing = Mage::getModel('diglin_ricento/sync_job_listing');
|
423 |
return;
|
424 |
}
|
425 |
|
|
|
|
|
|
|
|
|
|
|
426 |
$countPendingItems = Mage::getResourceModel('diglin_ricento/products_listing_item')->countPendingItems($productListing->getId());
|
427 |
|
428 |
if ($countPendingItems == 0) {
|
435 |
$this->_startJobList(Diglin_Ricento_Model_Sync_Job::TYPE_CHECK_LIST, $countPendingItems);
|
436 |
}
|
437 |
|
438 |
+
/**
|
439 |
+
* Start to check list after the display of the job progress
|
440 |
+
*/
|
441 |
public function checkAjaxAction()
|
442 |
{
|
443 |
$return = true;
|
444 |
try {
|
|
|
445 |
Mage::getSingleton('diglin_ricento/dispatcher')
|
446 |
->dispatch(Diglin_Ricento_Model_Sync_Job::TYPE_CHECK_LIST)
|
447 |
->proceed();
|
473 |
|
474 |
$countReadyToList = Mage::getResourceModel('diglin_ricento/products_listing_item')->coundReadyTolist($productListing->getId());
|
475 |
|
476 |
+
if ($countReadyToList <= 0) {
|
477 |
$this->_getSession()->addError($this->__('There is no product ready to be listed. Please, add products to your products listing "%s".', $productListing->getTitle()));
|
478 |
$this->_redirect('*/*/index');
|
479 |
return;
|
485 |
$this->_startJobList(Diglin_Ricento_Model_Sync_Job::TYPE_LIST, $countReadyToList);
|
486 |
}
|
487 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
488 |
/**
|
489 |
* Stop to list all items belonging to a product list from ricardo platform
|
490 |
*/
|
515 |
return;
|
516 |
}
|
517 |
|
518 |
+
$this->_successMessage = $this->__('The job to stop to list your products will start in few minutes.') . ' ' . $this->__('You can check the progression below.');
|
519 |
$this->_startJobList(Diglin_Ricento_Model_Sync_Job::TYPE_STOP, $countListedItem);
|
520 |
}
|
521 |
|
541 |
|
542 |
$notDeleted = array_diff($productListings, $goingToBeDeleted);
|
543 |
if ($notDeleted) {
|
544 |
+
$this->_getSession()->addNotice($this->__("The following products listings IDs have not been deleted because they are still listed on ricardo.ch: %s", implode(',', $notDeleted)));
|
545 |
}
|
546 |
}
|
547 |
} catch (Exception $e) {
|
551 |
|
552 |
$this->_redirect('*/*/index');
|
553 |
}
|
554 |
+
|
555 |
+
/**
|
556 |
+
* Display the confirmation window before to check and list
|
557 |
+
*/
|
558 |
+
public function confirmationAction()
|
559 |
+
{
|
560 |
+
$error = false;
|
561 |
+
|
562 |
+
$listing = $this->_initListing();
|
563 |
+
if (!$listing) {
|
564 |
+
$this->_getSession()->addError($this->__('Products Listing not found.'));
|
565 |
+
$error = true;
|
566 |
+
}
|
567 |
+
|
568 |
+
try {
|
569 |
+
if ($listing->getStatus() != Diglin_Ricento_Helper_Data::STATUS_LISTED && !$this->saveAction()) {
|
570 |
+
$error = true;
|
571 |
+
}
|
572 |
+
|
573 |
+
$this->getResponse()->clearHeader('Location'); // reset the header came from the saveAction
|
574 |
+
|
575 |
+
if (!$error) {
|
576 |
+
$articleDetails = array();
|
577 |
+
$itemsCollection = Mage::getResourceModel('diglin_ricento/products_listing_item_collection');
|
578 |
+
$itemsCollection
|
579 |
+
->addFieldToFilter('products_listing_id', $listing->getId())
|
580 |
+
->addFieldToFilter('status', array('nin' => array(Diglin_Ricento_Helper_Data::STATUS_LISTED, Diglin_Ricento_Helper_Data::STATUS_SOLD)));
|
581 |
+
|
582 |
+
/* @var $item Diglin_Ricento_Model_Products_Listing_Item */
|
583 |
+
foreach ($itemsCollection->getItems() as $item) {
|
584 |
+
if ($item->getType() != Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
|
585 |
+
$articleDetails[] = $item->getArticleFeeDetails();
|
586 |
+
}
|
587 |
+
}
|
588 |
+
|
589 |
+
$sell = Mage::getModel('diglin_ricento/api_services_sell');
|
590 |
+
$fees = $sell->getArticlesFee($articleDetails);
|
591 |
+
|
592 |
+
if ($fees) {
|
593 |
+
|
594 |
+
$storeCurrency = Mage::app()->getWebsite($this->_getListing()->getWebsiteId())->getDefaultStore()->getBaseCurrencyCode();
|
595 |
+
if ($storeCurrency !== Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY) {
|
596 |
+
|
597 |
+
$rate = Mage::helper('diglin_ricento/price')
|
598 |
+
->getCurrency($storeCurrency)
|
599 |
+
->getRate(Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY);
|
600 |
+
|
601 |
+
if (empty($rate)) {
|
602 |
+
$this->_getSession()->addError($this->__('Currency Rate not configured'));
|
603 |
+
}
|
604 |
+
}
|
605 |
+
|
606 |
+
$this->_initLayoutMessages('adminhtml/session');
|
607 |
+
$block = $this->getLayout()->createBlock('diglin_ricento/adminhtml_products_listing_confirmation', 'fees_confirmation', array('article_fees' => $fees));
|
608 |
+
echo $block->toHtml();
|
609 |
+
return;
|
610 |
+
} else {
|
611 |
+
$this->_getSession()->addError($this->__('Sorry, no product found for fees calculation.'));
|
612 |
+
$error = true;
|
613 |
+
}
|
614 |
+
}
|
615 |
+
|
616 |
+
if ($error) {
|
617 |
+
$this->_getSession()->addNotice($this->__('Please, close this popup window and fix the errors before to be allowed to list your products on ricardo.ch.'));
|
618 |
+
$this->_initLayoutMessages('adminhtml/session');
|
619 |
+
$this->getResponse()->setBody($this->getLayout()->getMessagesBlock()->toHtml());
|
620 |
+
return;
|
621 |
+
}
|
622 |
+
} catch (Exception $e) {
|
623 |
+
Mage::logException($e);
|
624 |
+
$this->_getSession()->addError($this->__('An error occurred %s', $e->getMessage()));
|
625 |
+
$this->_initLayoutMessages('adminhtml/session');
|
626 |
+
$this->getResponse()->setBody($this->getLayout()->getMessagesBlock()->toHtml());
|
627 |
+
return;
|
628 |
+
}
|
629 |
+
}
|
630 |
}
|
@@ -5,11 +5,16 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Ricento_
|
8 |
-
* @copyright Copyright (c)
|
9 |
*/
|
10 |
class Diglin_Ricento_Adminhtml_SupportController extends Mage_Adminhtml_Controller_Action
|
11 |
{
|
12 |
public function indexAction()
|
|
|
|
|
|
|
|
|
|
|
13 |
{
|
14 |
$supportLabel = $this->__('Ricento Extension Support');
|
15 |
|
@@ -18,7 +23,6 @@ class Diglin_Ricento_Adminhtml_SupportController extends Mage_Adminhtml_Controll
|
|
18 |
$block
|
19 |
->setTemplate('ricento/support.phtml')
|
20 |
->setTitle($supportLabel);
|
21 |
-
// ->setIframeUrl(Mage::helper('diglin_ricento')->getRicardoAssistantUrl());
|
22 |
|
23 |
$this->_title($supportLabel);
|
24 |
|
@@ -28,4 +32,27 @@ class Diglin_Ricento_Adminhtml_SupportController extends Mage_Adminhtml_Controll
|
|
28 |
->_addContent($block)
|
29 |
->renderLayout();
|
30 |
}
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Ricento_
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
*/
|
10 |
class Diglin_Ricento_Adminhtml_SupportController extends Mage_Adminhtml_Controller_Action
|
11 |
{
|
12 |
public function indexAction()
|
13 |
+
{
|
14 |
+
$this->_redirect('*/*/contact');
|
15 |
+
}
|
16 |
+
|
17 |
+
public function contactAction()
|
18 |
{
|
19 |
$supportLabel = $this->__('Ricento Extension Support');
|
20 |
|
23 |
$block
|
24 |
->setTemplate('ricento/support.phtml')
|
25 |
->setTitle($supportLabel);
|
|
|
26 |
|
27 |
$this->_title($supportLabel);
|
28 |
|
32 |
->_addContent($block)
|
33 |
->renderLayout();
|
34 |
}
|
35 |
+
|
36 |
+
public function exportAction()
|
37 |
+
{
|
38 |
+
$gzDestination = Mage::helper('diglin_ricento/support')->exportAll();
|
39 |
+
return $this->_prepareDownloadResponse('ricardo_support.tar.gz', file_get_contents($gzDestination));
|
40 |
+
}
|
41 |
+
|
42 |
+
public function sendAction()
|
43 |
+
{
|
44 |
+
$helper = Mage::helper('diglin_ricento/support');
|
45 |
+
|
46 |
+
try {
|
47 |
+
$gzDestination = $helper->exportAll();
|
48 |
+
$helper->sendConfigurationFile(file_get_contents($gzDestination));
|
49 |
+
$this->_getSession()->addSuccess($this->__('Configuration successfully sent. If not already done, please <a href="mailto:%s?subject=ricardo.ch Magento Extension Support">contact us</a> to explain us your issue.', $helper->getSupportEmail()));
|
50 |
+
} catch (Exception $e) {
|
51 |
+
Mage::logException($e);
|
52 |
+
$this->_getSession()->addError('A problem occured while trying to send your configuration per email. Please, review your log file');
|
53 |
+
}
|
54 |
+
|
55 |
+
$this->_redirect('adminhtml/system_config/edit/section/ricento');
|
56 |
+
|
57 |
+
}
|
58 |
+
}
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @var $installer Mage_Catalog_Model_Resource_Setup */
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @var $installer Mage_Catalog_Model_Resource_Setup */
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
/* @var $installer Mage_Catalog_Model_Resource_Setup */
|
12 |
+
$installer = $this;
|
13 |
+
|
14 |
+
$installer->startSetup();
|
15 |
+
|
16 |
+
$productsListingTable = $installer->getTable('diglin_ricento/sales_options');
|
17 |
+
|
18 |
+
$installer->run("UPDATE " . $productsListingTable . " SET stock_management_qty_type = 'fix' ");
|
19 |
+
|
20 |
+
$itemTable = $installer->getTable('diglin_ricento/products_listing_item');
|
21 |
+
$productTable = $installer->getTable('catalog/product');
|
22 |
+
|
23 |
+
$installer->run("UPDATE $itemTable SET type = 'simple' WHERE product_id IN (SELECT entity_id FROM $productTable WHERE type_id = 'simple')");
|
24 |
+
$installer->run("UPDATE $itemTable SET type = 'configurable' WHERE product_id IN (SELECT entity_id FROM $productTable WHERE type_id = 'configurable')");
|
25 |
+
$installer->run("UPDATE $itemTable SET type = 'grouped' WHERE product_id IN (SELECT entity_id FROM $productTable WHERE type_id = 'grouped')");
|
26 |
+
|
27 |
+
|
28 |
+
$installer->endSetup();
|
@@ -6,7 +6,7 @@
|
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
-
* @copyright Copyright (c)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
@@ -33,16 +33,16 @@
|
|
33 |
<action>ricento/log</action>
|
34 |
<sort_order>30</sort_order>
|
35 |
<children>
|
36 |
-
<listing>
|
37 |
-
<title>Listing</title>
|
38 |
-
<action>ricento/log/listing</action>
|
39 |
-
<sort_order>10</sort_order>
|
40 |
-
</listing>
|
41 |
<sync>
|
42 |
<title>Synchronization</title>
|
43 |
<action>ricento/log/sync</action>
|
44 |
-
<sort_order>
|
45 |
</sync>
|
|
|
|
|
|
|
|
|
|
|
46 |
</children>
|
47 |
</log>
|
48 |
<assistant translate="title" module="diglin_ricento">
|
@@ -59,6 +59,18 @@
|
|
59 |
<title>Support</title>
|
60 |
<action>ricento/support</action>
|
61 |
<sort_order>200</sort_order>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
</support>
|
63 |
</children>
|
64 |
</ricento>
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
33 |
<action>ricento/log</action>
|
34 |
<sort_order>30</sort_order>
|
35 |
<children>
|
|
|
|
|
|
|
|
|
|
|
36 |
<sync>
|
37 |
<title>Synchronization</title>
|
38 |
<action>ricento/log/sync</action>
|
39 |
+
<sort_order>10</sort_order>
|
40 |
</sync>
|
41 |
+
<listing>
|
42 |
+
<title>Listing</title>
|
43 |
+
<action>ricento/log/listing</action>
|
44 |
+
<sort_order>20</sort_order>
|
45 |
+
</listing>
|
46 |
</children>
|
47 |
</log>
|
48 |
<assistant translate="title" module="diglin_ricento">
|
59 |
<title>Support</title>
|
60 |
<action>ricento/support</action>
|
61 |
<sort_order>200</sort_order>
|
62 |
+
<children>
|
63 |
+
<contact>
|
64 |
+
<title>Contact</title>
|
65 |
+
<action>ricento/support/contact</action>
|
66 |
+
<sort_order>10</sort_order>
|
67 |
+
</contact>
|
68 |
+
<export>
|
69 |
+
<title>Export</title>
|
70 |
+
<action>ricento/support/export</action>
|
71 |
+
<sort_order>20</sort_order>
|
72 |
+
</export>
|
73 |
+
</children>
|
74 |
</support>
|
75 |
</children>
|
76 |
</ricento>
|
@@ -6,32 +6,49 @@
|
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
-
* @copyright Copyright (c)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
14 |
<modules>
|
15 |
<Diglin_Ricento>
|
16 |
-
<version>1.0
|
17 |
</Diglin_Ricento>
|
18 |
</modules>
|
19 |
|
20 |
<default>
|
|
|
|
|
|
|
|
|
21 |
<system>
|
22 |
<messages>
|
23 |
<notification_email_template>system_admin_notification_email_template</notification_email_template>
|
24 |
<pm_email_template>customer_private_message_email_template</pm_email_template>
|
|
|
25 |
</messages>
|
26 |
</system>
|
27 |
|
28 |
<ricento>
|
|
|
|
|
|
|
|
|
29 |
<global>
|
30 |
<merge_order>1</merge_order>
|
31 |
<decrease_inventory>0</decrease_inventory>
|
32 |
<shipping_calculation>cumulative</shipping_calculation>
|
33 |
<email_account_creation>0</email_account_creation>
|
34 |
<email_order_creation>0</email_order_creation>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
</global>
|
36 |
<api_config>
|
37 |
<enabled>1</enabled>
|
@@ -43,7 +60,8 @@
|
|
43 |
<simulate_authorization>0</simulate_authorization>
|
44 |
<email_notification>1</email_notification>
|
45 |
<!-- it's only possible one day before to renew the API token -->
|
46 |
-
<expiration_notification_delay>
|
|
|
47 |
<host>ws.ricardo.ch</host>
|
48 |
<host_dev>ws.betaqxl.com</host_dev>
|
49 |
<lang>de,fr</lang>
|
@@ -253,6 +271,9 @@
|
|
253 |
<stop>
|
254 |
<class>Diglin_Ricento_Model_Dispatcher_Stop</class>
|
255 |
</stop>
|
|
|
|
|
|
|
256 |
</types>
|
257 |
</dispatcher>
|
258 |
</ricento>
|
@@ -269,6 +290,16 @@
|
|
269 |
<file>ricento/private_message.html</file>
|
270 |
<type>html</type>
|
271 |
</customer_private_message_email_template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
</email>
|
273 |
</template>
|
274 |
|
@@ -309,6 +340,14 @@
|
|
309 |
</translate>
|
310 |
|
311 |
<events>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
<adminhtml_block_html_before>
|
313 |
<observers>
|
314 |
<ricardo_customer_fields>
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
13 |
<config>
|
14 |
<modules>
|
15 |
<Diglin_Ricento>
|
16 |
+
<version>1.1.0</version>
|
17 |
</Diglin_Ricento>
|
18 |
</modules>
|
19 |
|
20 |
<default>
|
21 |
+
<support>
|
22 |
+
<email>support[/at/]diglin.com</email>
|
23 |
+
</support>
|
24 |
+
|
25 |
<system>
|
26 |
<messages>
|
27 |
<notification_email_template>system_admin_notification_email_template</notification_email_template>
|
28 |
<pm_email_template>customer_private_message_email_template</pm_email_template>
|
29 |
+
<token_expiration_email_template>token_expiration_email_template</token_expiration_email_template>
|
30 |
</messages>
|
31 |
</system>
|
32 |
|
33 |
<ricento>
|
34 |
+
<listing>
|
35 |
+
<merge_descriptions>0</merge_descriptions>
|
36 |
+
<nl2br>0</nl2br>
|
37 |
+
</listing>
|
38 |
<global>
|
39 |
<merge_order>1</merge_order>
|
40 |
<decrease_inventory>0</decrease_inventory>
|
41 |
<shipping_calculation>cumulative</shipping_calculation>
|
42 |
<email_account_creation>0</email_account_creation>
|
43 |
<email_order_creation>0</email_order_creation>
|
44 |
+
<banner>
|
45 |
+
<enabled>1</enabled>
|
46 |
+
<xml>https://pics.ricardostatic.ch/Contents/ch/magento/magento-banner.xml</xml>
|
47 |
+
</banner>
|
48 |
+
<stats>1</stats>
|
49 |
+
<stats_test_mode>0</stats_test_mode>
|
50 |
+
<stats_app_id>bza2zlst</stats_app_id>
|
51 |
+
<stats_app_id_test>xce86uyp</stats_app_id_test>
|
52 |
</global>
|
53 |
<api_config>
|
54 |
<enabled>1</enabled>
|
60 |
<simulate_authorization>0</simulate_authorization>
|
61 |
<email_notification>1</email_notification>
|
62 |
<!-- it's only possible one day before to renew the API token -->
|
63 |
+
<expiration_notification_delay>7</expiration_notification_delay>
|
64 |
+
<expiration_notification_validation_delay>1</expiration_notification_validation_delay>
|
65 |
<host>ws.ricardo.ch</host>
|
66 |
<host_dev>ws.betaqxl.com</host_dev>
|
67 |
<lang>de,fr</lang>
|
271 |
<stop>
|
272 |
<class>Diglin_Ricento_Model_Dispatcher_Stop</class>
|
273 |
</stop>
|
274 |
+
<closed>
|
275 |
+
<class>Diglin_Ricento_Model_Dispatcher_Closed</class>
|
276 |
+
</closed>
|
277 |
</types>
|
278 |
</dispatcher>
|
279 |
</ricento>
|
290 |
<file>ricento/private_message.html</file>
|
291 |
<type>html</type>
|
292 |
</customer_private_message_email_template>
|
293 |
+
<token_expiration_email_template translate="label" module="diglin_ricento">
|
294 |
+
<label>Admin Email Notification</label>
|
295 |
+
<file>ricento/token_expiration.html</file>
|
296 |
+
<type>text</type>
|
297 |
+
</token_expiration_email_template>
|
298 |
+
<ricento_support translate="label" module="diglin_ricento">
|
299 |
+
<label>Support Email</label>
|
300 |
+
<file>ricento/support.html</file>
|
301 |
+
<type>text</type>
|
302 |
+
</ricento_support>
|
303 |
</email>
|
304 |
</template>
|
305 |
|
340 |
</translate>
|
341 |
|
342 |
<events>
|
343 |
+
<controller_action_layout_load_before>
|
344 |
+
<observers>
|
345 |
+
<ricardo_layout_handle>
|
346 |
+
<class>Diglin_Ricento_Model_Observer</class>
|
347 |
+
<method>addLayoutHandle</method>
|
348 |
+
</ricardo_layout_handle>
|
349 |
+
</observers>
|
350 |
+
</controller_action_layout_load_before>
|
351 |
<adminhtml_block_html_before>
|
352 |
<observers>
|
353 |
<ricardo_customer_fields>
|
@@ -6,7 +6,7 @@
|
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
-
* @copyright Copyright (c)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
@@ -6,7 +6,7 @@
|
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
-
* @copyright Copyright (c)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
@@ -36,8 +36,38 @@
|
|
36 |
<show_in_store>1</show_in_store>
|
37 |
</hint>
|
38 |
|
39 |
-
<
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
<sort_order>10</sort_order>
|
42 |
<show_in_default>1</show_in_default>
|
43 |
<show_in_website>1</show_in_website>
|
@@ -69,10 +99,7 @@
|
|
69 |
<sort_order>30</sort_order>
|
70 |
<frontend_type>select</frontend_type>
|
71 |
<source_model>diglin_ricento/config_source_rules_shipping_calculation</source_model>
|
72 |
-
<comment><![CDATA[You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>
|
73 |
-
"Highest Price": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>
|
74 |
-
"Cumulative": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.
|
75 |
-
]]></comment>
|
76 |
<show_in_default>1</show_in_default>
|
77 |
<show_in_website>0</show_in_website>
|
78 |
<show_in_store>0</show_in_store>
|
@@ -146,6 +173,16 @@
|
|
146 |
<show_in_website>0</show_in_website>
|
147 |
<show_in_store>0</show_in_store>
|
148 |
</debug>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
<!--<simulate_authorization module="diglin_ricento" translate="label comment">-->
|
150 |
<!--<label>Automatize API Authorization</label>-->
|
151 |
<!--<frontend_type>select</frontend_type>-->
|
@@ -331,18 +368,6 @@
|
|
331 |
<enabled>1</enabled>
|
332 |
</depends>
|
333 |
</partner_pass_dev_fr>
|
334 |
-
|
335 |
-
<!-- @todo -->
|
336 |
-
<!--<email_notification module="diglin_ricento" translate="label comment">-->
|
337 |
-
<!--<label>Notification API Token Expiration</label>-->
|
338 |
-
<!--<frontend_type>select</frontend_type>-->
|
339 |
-
<!--<source_model>adminhtml/system_config_source_yesno</source_model>-->
|
340 |
-
<!--<comment><![CDATA[Do you want to receive an email when the API Token will expire? If your API Token expires, you won't be able to use the extension until you authorize it again. Receiving a notification per email will help you to prevent such a problem.]]></comment>-->
|
341 |
-
<!--<sort_order>60</sort_order>-->
|
342 |
-
<!--<show_in_default>1</show_in_default>-->
|
343 |
-
<!--<show_in_website>1</show_in_website>-->
|
344 |
-
<!--<show_in_store>0</show_in_store>-->
|
345 |
-
<!--</email_notification>-->
|
346 |
</fields>
|
347 |
</api_config>
|
348 |
|
@@ -394,15 +419,6 @@
|
|
394 |
<show_in_website>1</show_in_website>
|
395 |
<show_in_store>1</show_in_store>
|
396 |
</bank_transfer_instructions>
|
397 |
-
<currency translate="label">
|
398 |
-
<label>Accepted Currency</label>
|
399 |
-
<frontend_type>select</frontend_type>
|
400 |
-
<source_model>diglin_ricento/config_source_sales_currency</source_model>
|
401 |
-
<sort_order>50</sort_order>
|
402 |
-
<show_in_default>1</show_in_default>
|
403 |
-
<show_in_website>1</show_in_website>
|
404 |
-
<show_in_store>0</show_in_store>
|
405 |
-
</currency>
|
406 |
</fields>
|
407 |
</ricento>
|
408 |
</groups>
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
-->
|
36 |
<show_in_store>1</show_in_store>
|
37 |
</hint>
|
38 |
|
39 |
+
<listing module="diglin_ricento" translate="label comment">
|
40 |
+
<label>Product Listing Configuration</label>
|
41 |
+
<sort_order>5</sort_order>
|
42 |
+
<show_in_default>1</show_in_default>
|
43 |
+
<show_in_website>1</show_in_website>
|
44 |
+
<show_in_store>1</show_in_store>
|
45 |
+
<fields>
|
46 |
+
<merge_descriptions translate="label comment">
|
47 |
+
<label>Merge Descriptions</label>
|
48 |
+
<frontend_type>select</frontend_type>
|
49 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
50 |
+
<comment><![CDATA[Merge short and normal descriptions as one content for ricardo product description. The short description will be the first part and the normal description will be the second part of the ricardo article description.]]></comment>
|
51 |
+
<sort_order>10</sort_order>
|
52 |
+
<show_in_default>1</show_in_default>
|
53 |
+
<show_in_website>0</show_in_website>
|
54 |
+
<show_in_store>0</show_in_store>
|
55 |
+
</merge_descriptions>
|
56 |
+
<nl2br>
|
57 |
+
<label>Replace Carriage Return with br HTML Tag</label>
|
58 |
+
<frontend_type>select</frontend_type>
|
59 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
60 |
+
<comment><![CDATA[Do you want to replace into the description the carriage return with <br> HTML Tag?]]></comment>
|
61 |
+
<sort_order>20</sort_order>
|
62 |
+
<show_in_default>1</show_in_default>
|
63 |
+
<show_in_website>0</show_in_website>
|
64 |
+
<show_in_store>0</show_in_store>
|
65 |
+
</nl2br>
|
66 |
+
</fields>
|
67 |
+
</listing>
|
68 |
+
|
69 |
+
<global module="diglin_ricento" translate="label comment"><!-- for legacy reason keep "global" -->
|
70 |
+
<label>Order Configuration</label>
|
71 |
<sort_order>10</sort_order>
|
72 |
<show_in_default>1</show_in_default>
|
73 |
<show_in_website>1</show_in_website>
|
99 |
<sort_order>30</sort_order>
|
100 |
<frontend_type>select</frontend_type>
|
101 |
<source_model>diglin_ricento/config_source_rules_shipping_calculation</source_model>
|
102 |
+
<comment><![CDATA[You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>"Highest Price": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>"Cumulative": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.]]></comment>
|
|
|
|
|
|
|
103 |
<show_in_default>1</show_in_default>
|
104 |
<show_in_website>0</show_in_website>
|
105 |
<show_in_store>0</show_in_store>
|
173 |
<show_in_website>0</show_in_website>
|
174 |
<show_in_store>0</show_in_store>
|
175 |
</debug>
|
176 |
+
<email_notification module="diglin_ricento" translate="label comment">
|
177 |
+
<label>Email notification</label>
|
178 |
+
<frontend_type>select</frontend_type>
|
179 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
180 |
+
<comment><![CDATA[Receive email notification in case of error? Email are sent to the main shop contact and are related to API errors, Token expiration, etc...]]></comment>
|
181 |
+
<sort_order>13</sort_order>
|
182 |
+
<show_in_default>1</show_in_default>
|
183 |
+
<show_in_website>0</show_in_website>
|
184 |
+
<show_in_store>0</show_in_store>
|
185 |
+
</email_notification>
|
186 |
<!--<simulate_authorization module="diglin_ricento" translate="label comment">-->
|
187 |
<!--<label>Automatize API Authorization</label>-->
|
188 |
<!--<frontend_type>select</frontend_type>-->
|
368 |
<enabled>1</enabled>
|
369 |
</depends>
|
370 |
</partner_pass_dev_fr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
</fields>
|
372 |
</api_config>
|
373 |
|
419 |
<show_in_website>1</show_in_website>
|
420 |
<show_in_store>1</show_in_store>
|
421 |
</bank_transfer_instructions>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
422 |
</fields>
|
423 |
</ricento>
|
424 |
</groups>
|
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* @category Diglin
|
6 |
* @package Diglin_Ricento
|
7 |
-
* @copyright Copyright (c)
|
8 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
9 |
*/
|
10 |
/* @var $installer Mage_Catalog_Model_Resource_Setup */
|
4 |
*
|
5 |
* @category Diglin
|
6 |
* @package Diglin_Ricento
|
7 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
8 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
9 |
*/
|
10 |
/* @var $installer Mage_Catalog_Model_Resource_Setup */
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Ricento
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
*/
|
10 |
+
/* @var $installer Mage_Catalog_Model_Resource_Setup */
|
11 |
+
$installer = $this;
|
12 |
+
|
13 |
+
$installer->startSetup();
|
14 |
+
|
15 |
+
$salesOptionsTable = $installer->getTable('diglin_ricento/sales_options');
|
16 |
+
$itemTable = $installer->getTable('diglin_ricento/products_listing_item');
|
17 |
+
$apiTokenTable = $installer->getTable('diglin_ricento/api_token');
|
18 |
+
$transactionTable = $installer->getTable('diglin_ricento/sales_transaction');
|
19 |
+
|
20 |
+
$installer->getConnection()->modifyColumn($salesOptionsTable, 'sales_auction_increment', "decimal(12,4) NOT NULL DEFAULT '1.0000' COMMENT 'Sales_auction_increment'");
|
21 |
+
$installer->getConnection()->addColumn($salesOptionsTable, 'stock_management_qty_type', array(
|
22 |
+
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
|
23 |
+
'length' => 10,
|
24 |
+
'nullable' => false,
|
25 |
+
'unsigned' => false,
|
26 |
+
'default' => Diglin_Ricento_Helper_Data::INVENTORY_QTY_TYPE_FIX,
|
27 |
+
'after' => 'stock_management',
|
28 |
+
'comment' => 'Stock Management Quantity Type'));
|
29 |
+
|
30 |
+
$installer->getConnection()->addColumn($apiTokenTable, 'merchant_notified', array(
|
31 |
+
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
32 |
+
'length' => 4,
|
33 |
+
'nullable' => false,
|
34 |
+
'unsigned' => false,
|
35 |
+
'default' => 0,
|
36 |
+
'after' => 'session_expiration_date',
|
37 |
+
'comment' => 'Merchant is notified'));
|
38 |
+
|
39 |
+
$installer->getConnection()->addColumn($itemTable, 'type', array(
|
40 |
+
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
|
41 |
+
'length' => 255,
|
42 |
+
'nullable' => false,
|
43 |
+
'unsigned' => false,
|
44 |
+
'default' => 'simple',
|
45 |
+
'after' => 'product_id',
|
46 |
+
'comment' => 'Type of product'));
|
47 |
+
|
48 |
+
$installer->getConnection()->addColumn($transactionTable, 'currency', array(
|
49 |
+
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
|
50 |
+
'length' => 4,
|
51 |
+
'nullable' => false,
|
52 |
+
'default' => 'CHF',
|
53 |
+
'after' => 'total_bid_price',
|
54 |
+
'comment' => 'Currency'));
|
55 |
+
|
56 |
+
$installer->updateAttribute(Mage_Catalog_Model_Product::ENTITY, 'ricardo_description', 'is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE);
|
57 |
+
$installer->updateAttribute(Mage_Catalog_Model_Product::ENTITY, 'ricardo_title', 'is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE);
|
58 |
+
$installer->updateAttribute(Mage_Catalog_Model_Product::ENTITY, 'ricardo_subtitle', 'is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE);
|
59 |
+
|
60 |
+
$installer->endSetup();
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
*/
|
10 |
/* @var $installer Mage_Catalog_Model_Resource_Setup */
|
11 |
$installer = $this;
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Ricento
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
*/
|
10 |
/* @var $installer Mage_Catalog_Model_Resource_Setup */
|
11 |
$installer = $this;
|
@@ -6,7 +6,7 @@
|
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
-
* @copyright Copyright (c)
|
10 |
*/
|
11 |
-->
|
12 |
<layout>
|
@@ -28,6 +28,12 @@
|
|
28 |
</reference>
|
29 |
</default>
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
<ricento_scripts>
|
32 |
<reference name="head">
|
33 |
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
|
@@ -39,7 +45,7 @@
|
|
39 |
|
40 |
<ricento_dashboard_index>
|
41 |
<reference name="content">
|
42 |
-
<block type="
|
43 |
template="ricento/dashboard.phtml">
|
44 |
<block type="core/text_list" name="ricento_dashboard_left" as="ricento.dashboard.left">
|
45 |
<block type="adminhtml/template" name="ricento_dashboard_toolbar" as="ricento.dashboard.toolbar"
|
@@ -54,14 +60,12 @@
|
|
54 |
template="ricento/dashboard/news.phtml"/>
|
55 |
</block>
|
56 |
<block type="core/text_list" name="ricento_dashboard_right" as="ricento.dashboard.right">
|
57 |
-
<block type="diglin_ricento/
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
template="ricento/dashboard/turnover.phtml">
|
62 |
-
<block type="diglin_ricento/adminhtml_dashboard_turnover" name="ricento_dashboard_turnover_graph" as="ricento.dashboard.turnover.graph" />
|
63 |
</block>
|
64 |
-
<block type="
|
65 |
template="ricento/dashboard/bestsellers.phtml">
|
66 |
<block type="diglin_ricento/adminhtml_dashboard_bestsellers"
|
67 |
name="ricento_dashboard_bestsellers_grid"
|
@@ -91,7 +95,7 @@
|
|
91 |
<block type="diglin_ricento/adminhtml_products_listing_edit_tabs" name="products_listing_edit_tabs" />
|
92 |
</reference>
|
93 |
</ricento_products_listing_edit>
|
94 |
-
|
95 |
<ricento_products_listing_addproductspopup>
|
96 |
<update handle="overlay_popup" />
|
97 |
<remove name="footer" />
|
@@ -128,7 +132,9 @@
|
|
128 |
<update handle="overlay_popup" />
|
129 |
<remove name="footer" />
|
130 |
<reference name="content">
|
131 |
-
<block type="diglin_ricento/adminhtml_products_category_mapping" name="category_mapping"
|
|
|
|
|
132 |
</reference>
|
133 |
</ricento_products_category_mapping>
|
134 |
|
@@ -140,7 +146,7 @@
|
|
140 |
<adminhtml_catalog_category_edit>
|
141 |
<update handle="ricento_scripts" />
|
142 |
</adminhtml_catalog_category_edit>
|
143 |
-
|
144 |
<ricento_products_category_showcategoriestree>
|
145 |
<update handle="overlay_popup" />
|
146 |
<remove name="footer" />
|
6 |
* @author Sylvain Rayé <support at diglin.com>
|
7 |
* @category Diglin
|
8 |
* @package Diglin_Ricento
|
9 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
10 |
*/
|
11 |
-->
|
12 |
<layout>
|
28 |
</reference>
|
29 |
</default>
|
30 |
|
31 |
+
<ricento>
|
32 |
+
<reference name="before_body_end">
|
33 |
+
<block type="adminhtml/template" name="stats" as="stats" template="ricento/stats.phtml" />
|
34 |
+
</reference>
|
35 |
+
</ricento>
|
36 |
+
|
37 |
<ricento_scripts>
|
38 |
<reference name="head">
|
39 |
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
|
45 |
|
46 |
<ricento_dashboard_index>
|
47 |
<reference name="content">
|
48 |
+
<block type="adminhtml/template" name="ricento_dashboard" as="ricento.dashboard"
|
49 |
template="ricento/dashboard.phtml">
|
50 |
<block type="core/text_list" name="ricento_dashboard_left" as="ricento.dashboard.left">
|
51 |
<block type="adminhtml/template" name="ricento_dashboard_toolbar" as="ricento.dashboard.toolbar"
|
60 |
template="ricento/dashboard/news.phtml"/>
|
61 |
</block>
|
62 |
<block type="core/text_list" name="ricento_dashboard_right" as="ricento.dashboard.right">
|
63 |
+
<block type="diglin_ricento/adminhtml_dashboard_banner" name="plp_banner" as="plp.banner" template="ricento/dashboard/banner.phtml"/>
|
64 |
+
<block type="diglin_ricento/adminhtml_dashboard_lifetime" name="ricento_dashboard_lifetime" as="ricento.dashboard.lifetime" template="ricento/dashboard/lifeturnover.phtml"/>
|
65 |
+
<block type="adminhtml/template" name="ricento_dashboard_turnover" as="ricento.dashboard.turnover" template="ricento/dashboard/turnover.phtml">
|
66 |
+
<block type="diglin_ricento/adminhtml_dashboard_turnover" name="ricento_dashboard_turnover_graph" as="ricento.dashboard.turnover.graph"/>
|
|
|
|
|
67 |
</block>
|
68 |
+
<block type="adminhtml/template" name="ricento_dashboard_bestsellers" as="ricento.dashboard.bestsellers"
|
69 |
template="ricento/dashboard/bestsellers.phtml">
|
70 |
<block type="diglin_ricento/adminhtml_dashboard_bestsellers"
|
71 |
name="ricento_dashboard_bestsellers_grid"
|
95 |
<block type="diglin_ricento/adminhtml_products_listing_edit_tabs" name="products_listing_edit_tabs" />
|
96 |
</reference>
|
97 |
</ricento_products_listing_edit>
|
98 |
+
|
99 |
<ricento_products_listing_addproductspopup>
|
100 |
<update handle="overlay_popup" />
|
101 |
<remove name="footer" />
|
132 |
<update handle="overlay_popup" />
|
133 |
<remove name="footer" />
|
134 |
<reference name="content">
|
135 |
+
<block type="diglin_ricento/adminhtml_products_category_mapping" name="category_mapping">
|
136 |
+
<block type="diglin_ricento/adminhtml_products_category_mapping_tree" name="category_tree" as="category_tree" />
|
137 |
+
</block>
|
138 |
</reference>
|
139 |
</ricento_products_category_mapping>
|
140 |
|
146 |
<adminhtml_catalog_category_edit>
|
147 |
<update handle="ricento_scripts" />
|
148 |
</adminhtml_catalog_category_edit>
|
149 |
+
|
150 |
<ricento_products_category_showcategoriestree>
|
151 |
<update handle="overlay_popup" />
|
152 |
<remove name="footer" />
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @var $this Mage_Adminhtml_Block_Template */
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @var $this Mage_Adminhtml_Block_Template */
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/** @var $this Diglin_Ricento_Block_Adminhtml_Dashboard_Banner */
|
13 |
+
|
14 |
+
?>
|
15 |
+
<?php if ($this->isEnabled() && $this->getBannerSrc()): ?>
|
16 |
+
<div class="entry-edit">
|
17 |
+
<a href="<?php echo $this->getBannerUrl() ?>" target="_blank"><img class="banner" src="<?php echo $this->getBannerSrc(); ?>" title="<?php echo $this->getBannerTitle() ?>" alt="<?php echo $this->getBannerTitle() ?>" height="90px" width="728px" /></a>
|
18 |
+
</div>
|
19 |
+
<?php endif; ?>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/** @var $this Diglin_Ricento_Block_Adminhtml_Dashboard_Turnover */
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/** @var $this Diglin_Ricento_Block_Adminhtml_Dashboard_Turnover */
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @see Diglin_Ricento_Adminhtml_AccountController */
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @see Diglin_Ricento_Adminhtml_AccountController */
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
$paymentValidationMessage = $this->getPaymentValidationMessage();
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
$paymentValidationMessage = $this->getPaymentValidationMessage();
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
$incrementValidationMessage = $this->getErrorMessage();
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
$incrementValidationMessage = $this->getErrorMessage();
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -22,7 +22,7 @@ $website = Mage::app()->getWebsite();
|
|
22 |
<?php if ($this->getApiReady()): ?>
|
23 |
<div class="notification-global">
|
24 |
<?php if ($this->isApiCredentialTokenExist($website)): ?>
|
25 |
-
<strong><?php echo $this->__('Your ricardo.ch API token credentials are going to expire in %s days for the website "%s".', $this->
|
26 |
<?php else: ?>
|
27 |
<strong><?php echo $this->__('No ricardo.ch API Authorization have been found for the website "%s".', $website->getName());?></strong>
|
28 |
<?php endif; ?>
|
@@ -30,9 +30,11 @@ $website = Mage::app()->getWebsite();
|
|
30 |
$validationUrl = $this->getValidationUrl($website);
|
31 |
if (empty($validationUrl)) {
|
32 |
echo Mage::helper('diglin_ricento')->__('Security error occurred with the ricardo API. Please, check your log files and your <a href="%s">API configuration</a>.', Mage::helper('diglin_ricento')->getConfigurationUrl($website));
|
33 |
-
} else {
|
34 |
echo $this->__('You have to authorize your account to get access to the ricardo.ch API thanks to the <a href="%s">ricardo.ch Authorization Page</a>. If you don\'t do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked.',
|
35 |
$validationUrl); ?>
|
|
|
|
|
36 |
<?php } ?>
|
37 |
<?php echo $this->__('To hide this message, you have to <a href="%s">disable the extension</a>.', Mage::helper('diglin_ricento')->getConfigurationUrl($website)); ?>
|
38 |
</div>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
22 |
<?php if ($this->getApiReady()): ?>
|
23 |
<div class="notification-global">
|
24 |
<?php if ($this->isApiCredentialTokenExist($website)): ?>
|
25 |
+
<strong><?php echo $this->__('Your ricardo.ch API token credentials are going to expire in %s days for the website "%s".', $this->getDelayExpirationDays($website->getId()), $website->getName());?></strong>
|
26 |
<?php else: ?>
|
27 |
<strong><?php echo $this->__('No ricardo.ch API Authorization have been found for the website "%s".', $website->getName());?></strong>
|
28 |
<?php endif; ?>
|
30 |
$validationUrl = $this->getValidationUrl($website);
|
31 |
if (empty($validationUrl)) {
|
32 |
echo Mage::helper('diglin_ricento')->__('Security error occurred with the ricardo API. Please, check your log files and your <a href="%s">API configuration</a>.', Mage::helper('diglin_ricento')->getConfigurationUrl($website));
|
33 |
+
} else if ($this->canApiAuthorizationBeTriggered($website)) {
|
34 |
echo $this->__('You have to authorize your account to get access to the ricardo.ch API thanks to the <a href="%s">ricardo.ch Authorization Page</a>. If you don\'t do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked.',
|
35 |
$validationUrl); ?>
|
36 |
+
<?php } else {
|
37 |
+
echo $this->__('The authorization of the ricardo.ch API Token can be done only %s before the expiration. You will receive automatically an email when it will be possible.', $this->getExpirationNotificationValidationDelay($website->getDefaultStore()->getId())); ?>
|
38 |
<?php } ?>
|
39 |
<?php echo $this->__('To hide this message, you have to <a href="%s">disable the extension</a>.', Mage::helper('diglin_ricento')->getConfigurationUrl($website)); ?>
|
40 |
</div>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
?>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -15,13 +15,14 @@ $level = $this->getLevel();
|
|
15 |
<nav class="span<?php echo $level?> navCat" id=navCatLvl<?php echo $level?>>
|
16 |
<ul class="nav nav-list">
|
17 |
<?php foreach ($this->getCategories() as $category): ?>
|
18 |
-
<li class="<?php if ($category->getIsFinal()): ?>final<?php endif; ?><?php if ($this->getSelectedCategoryId() == $category->getId()): ?> selected<?php endif; ?>" >
|
19 |
<a href="#"
|
20 |
data-category-id="<?php echo $category->getId(); ?>"
|
21 |
data-update-prefix = "navCatLvl"
|
22 |
data-level = "<?php echo $level; ?>"
|
23 |
data-update-level = "<?php echo $level + 1; ?>"
|
24 |
data-is-final = "<?php echo $category->getIsFinal(); ?>"
|
|
|
25 |
data-text = "<?php echo $category->getCategoryName(); ?>">
|
26 |
<?php if (!$category->getIsFinal()): ?>
|
27 |
<strong class="icon icon-plus">></strong>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
15 |
<nav class="span<?php echo $level?> navCat" id=navCatLvl<?php echo $level?>>
|
16 |
<ul class="nav nav-list">
|
17 |
<?php foreach ($this->getCategories() as $category): ?>
|
18 |
+
<li class="<?php if ($category->getIsFinal()): ?>final<?php endif; ?><?php if ($this->getSelectedCategoryId() == $category->getId()): ?> selected<?php endif; ?> <?php echo (in_array($category->getId(), $this->getSuggestedCategoriesId()) ? 'suggested' : ''); ?>" >
|
19 |
<a href="#"
|
20 |
data-category-id="<?php echo $category->getId(); ?>"
|
21 |
data-update-prefix = "navCatLvl"
|
22 |
data-level = "<?php echo $level; ?>"
|
23 |
data-update-level = "<?php echo $level + 1; ?>"
|
24 |
data-is-final = "<?php echo $category->getIsFinal(); ?>"
|
25 |
+
data-is-suggested = "<?php echo (in_array($category->getId(), $this->getSuggestedCategoriesId()) ? 1 : 0); ?>"
|
26 |
data-text = "<?php echo $category->getCategoryName(); ?>">
|
27 |
<?php if (!$category->getIsFinal()): ?>
|
28 |
<strong class="icon icon-plus">></strong>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @var $this Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping */
|
@@ -16,14 +16,13 @@
|
|
16 |
<button type="button" onclick="Ricento.closePopup()" class="cancel button" id="ricardo_categories_button_cancel"><span><?php echo $this->__('Cancel'); ?></span></button>
|
17 |
<button type="submit" class="save button" id="ricardo_categories_button_save"><span><?php echo $this->__('Confirm');?></span></button>
|
18 |
</div>
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
<div id="ricardo_children">
|
23 |
-
<?php
|
24 |
-
echo $this->getChildHtml('sublevel');
|
25 |
-
?>
|
26 |
</div>
|
|
|
|
|
|
|
27 |
<input type="hidden" name="ricardo_category_selected_title" id="ricardo_category_selected_title" value="" />
|
28 |
<div class="form-buttons">
|
29 |
<button type="button" onclick="Ricento.closePopup()" class="cancel button" id="ricardo_categories_button_cancel"><span><?php echo $this->__('Cancel'); ?></span></button>
|
@@ -31,10 +30,10 @@
|
|
31 |
</div>
|
32 |
</form>
|
33 |
</div>
|
34 |
-
|
35 |
<script type="text/javascript">
|
36 |
categoryMapper = new Ricento.CategoryMappper({
|
37 |
wrapperElement : 'ricardo_categories',
|
38 |
loadChildrenUrl : '<?php echo $this->getUrl('ricento/products_category/children', array('id' => '#ID#', 'level' => '#LVL#')); ?>'
|
39 |
});
|
|
|
40 |
</script>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @var $this Diglin_Ricento_Block_Adminhtml_Products_Category_Mapping */
|
16 |
<button type="button" onclick="Ricento.closePopup()" class="cancel button" id="ricardo_categories_button_cancel"><span><?php echo $this->__('Cancel'); ?></span></button>
|
17 |
<button type="submit" class="save button" id="ricardo_categories_button_save"><span><?php echo $this->__('Confirm');?></span></button>
|
18 |
</div>
|
19 |
+
<div class="category-suggestion">
|
20 |
+
<input type="text" id="ricardo_categories_suggest" name="ricardo_categories_suggest" value="<?php echo $this->__('Enter product name: e.g. iphone'); ?>" />
|
21 |
+
<div id="other-suggestions"></div>
|
|
|
|
|
|
|
|
|
22 |
</div>
|
23 |
+
|
24 |
+
<?php echo $this->getChildHtml('category_tree'); ?>
|
25 |
+
|
26 |
<input type="hidden" name="ricardo_category_selected_title" id="ricardo_category_selected_title" value="" />
|
27 |
<div class="form-buttons">
|
28 |
<button type="button" onclick="Ricento.closePopup()" class="cancel button" id="ricardo_categories_button_cancel"><span><?php echo $this->__('Cancel'); ?></span></button>
|
30 |
</div>
|
31 |
</form>
|
32 |
</div>
|
|
|
33 |
<script type="text/javascript">
|
34 |
categoryMapper = new Ricento.CategoryMappper({
|
35 |
wrapperElement : 'ricardo_categories',
|
36 |
loadChildrenUrl : '<?php echo $this->getUrl('ricento/products_category/children', array('id' => '#ID#', 'level' => '#LVL#')); ?>'
|
37 |
});
|
38 |
+
categoryMapper.initAutocomplete('<?php echo $this->getSuggestUrl() ?>', 'category-tree', '<?php echo $this->__('Enter product name: e.g. iphone'); ?>');
|
39 |
</script>
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <sylvain.raye at diglin.com>
|
6 |
+
* @category Ricento
|
7 |
+
* @package Ricento
|
8 |
+
* @copyright Copyright (c) 2011-2014 Diglin (http://www.diglin.com)
|
9 |
+
*/
|
10 |
+
?>
|
11 |
+
<div id="category-tree">
|
12 |
+
<?php echo $this->getChildHtml('toplevel'); ?>
|
13 |
+
<div id="ricardo_children">
|
14 |
+
<?php echo $this->getChildHtml('sublevel'); ?>
|
15 |
+
</div>
|
16 |
+
</div>
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <sylvain.raye at diglin.com>
|
6 |
+
* @category Ricento
|
7 |
+
* @package Ricento
|
8 |
+
* @copyright Copyright (c) 2011-2014 Diglin (http://www.diglin.com)
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @var $this Diglin_Ricento_Block_Adminhtml_Products_Listing_Confirmation
|
13 |
+
*/
|
14 |
+
|
15 |
+
$articleFees = $this->getArticleFees();
|
16 |
+
$listingFees = $this->getListingFees();
|
17 |
+
?>
|
18 |
+
<div id="messages">
|
19 |
+
<?php echo $this->getMessagesBlock()->getGroupedHtml(); ?>
|
20 |
+
</div>
|
21 |
+
<table>
|
22 |
+
<thead>
|
23 |
+
<tr>
|
24 |
+
<th><?php echo $this->__('Product listing & promotion'); ?></th>
|
25 |
+
<th><?php echo $this->__('Qty'); ?></th>
|
26 |
+
<th><?php echo $this->__('Unit Price'); ?></th>
|
27 |
+
<th><?php echo $this->__('Total price'); ?></th>
|
28 |
+
</tr>
|
29 |
+
</thead>
|
30 |
+
<tbody>
|
31 |
+
<?php foreach ($articleFees as $articleFee): ?>
|
32 |
+
<tr>
|
33 |
+
<td><?php echo $articleFee['label'] ?></td>
|
34 |
+
<td><?php echo $articleFee['qty'] ?></td>
|
35 |
+
<td><?php echo $this->formatPrice($articleFee['unit_price']) ?></td>
|
36 |
+
<td><?php echo $this->formatPrice($articleFee['total_price']) ?></td>
|
37 |
+
</tr>
|
38 |
+
<?php endforeach; ?>
|
39 |
+
<tr>
|
40 |
+
<td><?php echo $this->__('Listing Fees') ?></td>
|
41 |
+
<td><?php echo $listingFees['qty'] ?></td>
|
42 |
+
<td><?php echo $this->formatPrice($listingFees['unit_price']) ?></td>
|
43 |
+
<td><?php echo $this->formatPrice($listingFees['total_price']) ?></td>
|
44 |
+
</tr>
|
45 |
+
</tbody>
|
46 |
+
<tfoot>
|
47 |
+
<tr>
|
48 |
+
<td colspan="3"><?php echo $this->__('Total') ?></td>
|
49 |
+
<td><?php echo $this->getTotalFee() ?></td>
|
50 |
+
</tr>
|
51 |
+
</tfoot>
|
52 |
+
</table>
|
53 |
+
<div class="terms">
|
54 |
+
<h3><?php echo $this->__('Important'); ?></h3>
|
55 |
+
<ul>
|
56 |
+
<li><?php echo $this->__('ricardo.ch does invoices in %s', Diglin_Ricento_Helper_Data::ALLOWED_CURRENCY); ?></li>
|
57 |
+
<li><?php echo $this->__('Sales Fee (following the <a href="%s" target="_blank">fees rules from 01.07.2014</a>)', $this->getFeesRulesUrl()); ?></li>
|
58 |
+
<li><?php echo $this->__('With the confirmation of the publication, you accept the <a href="%s" target="_blank">terms and conditions</a> and <a href="%s" target="_blank">privacy policy</a>', $this->getTermsUrl(), $this->getPrivacyUrl()); ?></li>
|
59 |
+
</ul>
|
60 |
+
</div>
|
61 |
+
<form id="confirmation_fee" name="confirmation_fee" enctype="application/x-www-form-urlencoded" action="<?php echo $this->getFormUrl(); ?>">
|
62 |
+
<input type="hidden" name="id" id="id" value="<?php echo $this->getProductsListingId(); ?>" />
|
63 |
+
<input name="form_key" type="hidden" value="<?php echo $this->getFormKey(); ?>" />
|
64 |
+
<button class="scalable save"><span><span><?php echo $this->__('Confirm, check and List') ?></span></span></button>
|
65 |
+
</form>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @var $this Diglin_Ricento_Block_Adminhtml_Products_Listing_Item_Edit_Form */ ?>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
/* @var $this Diglin_Ricento_Block_Adminhtml_Products_Listing_Item_Edit_Form */ ?>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* ricardo.ch AG - Switzerland
|
4 |
+
*
|
5 |
+
* @author Sylvain Rayé <support at diglin.com>
|
6 |
+
* @category Diglin
|
7 |
+
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* @var $this Mage_Core_Block_Template */
|
13 |
+
|
14 |
+
$user = Mage::getSingleton('admin/session')->getUser();
|
15 |
+
$isEnabled = Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_STATS);
|
16 |
+
$testMode = Mage::getStoreConfigFlag(Diglin_Ricento_Helper_Data::CFG_STATS_TEST_MODE);
|
17 |
+
$appid = ($testMode) ? Mage::getStoreConfig(Diglin_Ricento_Helper_Data::CFG_STATS_APPID_TEST) : Mage::getStoreConfig(Diglin_Ricento_Helper_Data::CFG_STATS_APPID);
|
18 |
+
|
19 |
+
if ($isEnabled && $user && $user->getUsername()):
|
20 |
+
?>
|
21 |
+
<script>
|
22 |
+
window.intercomSettings = {
|
23 |
+
name: "<?php echo $user->getFirstname() . ' ' . $user->getLastname(); ?>",
|
24 |
+
email: "<?php echo $user->getEmail(); ?>",
|
25 |
+
created_at: <?php echo strtotime($user->getCreated()); ?>,
|
26 |
+
app_id: "<?php echo $appid ?>"
|
27 |
+
};
|
28 |
+
</script>
|
29 |
+
<script>(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/<?php echo $appid ?>';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()</script>
|
30 |
+
<?php endif; ?>
|
@@ -5,10 +5,12 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
|
|
|
|
12 |
/**
|
13 |
* @todo:
|
14 |
* - Provide in the mailto information about the user or shop
|
@@ -49,13 +51,14 @@
|
|
49 |
('Diglin_Ricento')->version; ?></strong></p>
|
50 |
<h2>License & support</h2>
|
51 |
<p>This extension has been realized for <a href="http://www.ricardo.ch">ricardo.ch</a> in collaboration with
|
52 |
-
<a href="http://www.diglin.com">Diglin GmbH</a>. This extension is licensed under the
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
charge or against payment depending on the support needed e.g. Installation, Configuration,
|
57 |
Custom development, Problem due to conflict with other extensions or misusing,
|
58 |
etc. <a href="mailto:support@diglin.com?subject=Support for Ricento Extension">Contact us</a> for details.</p>
|
|
|
|
|
59 |
<h2>Imprint</h2>
|
60 |
<div class="ricardo-imprint">
|
61 |
<p>ricardo.ch AG</p>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
12 |
+
/* @var $this Mage_Core_Block_Template */
|
13 |
+
|
14 |
/**
|
15 |
* @todo:
|
16 |
* - Provide in the mailto information about the user or shop
|
51 |
('Diglin_Ricento')->version; ?></strong></p>
|
52 |
<h2>License & support</h2>
|
53 |
<p>This extension has been realized for <a href="http://www.ricardo.ch">ricardo.ch</a> in collaboration with
|
54 |
+
<a href="http://www.diglin.com">Diglin GmbH</a>. This extension is licensed under the
|
55 |
+
<a href="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</a> license. <a href="http://www.ricardo.ch">ricardo.ch</a> or
|
56 |
+
<a href="http://www.diglin.com">Diglin GmbH</a> are not responsible for any damages or lost.</p>
|
57 |
+
<p>Support is provided against payment depending on the support needed e.g. Installation, Configuration,
|
|
|
58 |
Custom development, Problem due to conflict with other extensions or misusing,
|
59 |
etc. <a href="mailto:support@diglin.com?subject=Support for Ricento Extension">Contact us</a> for details.</p>
|
60 |
+
<button type="button" onclick="window.location.href='<?php echo $this->getUrl('ricento/support/send') ?>'"><span><span><?php echo $this->__('Send us your configuration') ?></span></span></button>
|
61 |
+
<button type="button" onclick="window.location.href='<?php echo $this->getUrl('ricento/support/export') ?>'"><span><span><?php echo $this->__('Export your configuration') ?></span></span></button>
|
62 |
<h2>Imprint</h2>
|
63 |
<div class="ricardo-imprint">
|
64 |
<p>ricardo.ch AG</p>
|
@@ -5,7 +5,7 @@
|
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
-
* @copyright Copyright (c)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
@@ -19,7 +19,6 @@ $helper = Mage::helper('diglin_ricento');
|
|
19 |
<ul class="messages">
|
20 |
<?php if (count($messages)) { ?>
|
21 |
<?php foreach ($messages as $message) { ?>
|
22 |
-
|
23 |
<?php if (isset($message['name'])) { ?>
|
24 |
<h2><?php echo $message['name'] ?></h2>
|
25 |
<?php } ?>
|
5 |
* @author Sylvain Rayé <support at diglin.com>
|
6 |
* @category Diglin
|
7 |
* @package Diglin_Ricento
|
8 |
+
* @copyright Copyright (c) 2015 ricardo.ch AG (http://www.ricardo.ch)
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
|
19 |
<ul class="messages">
|
20 |
<?php if (count($messages)) { ?>
|
21 |
<?php foreach ($messages as $message) { ?>
|
|
|
22 |
<?php if (isset($message['name'])) { ?>
|
23 |
<h2><?php echo $message['name'] ?></h2>
|
24 |
<?php } ?>
|
@@ -2,57 +2,55 @@
|
|
2 |
"Dashboard","Dashboard"
|
3 |
"Products Listing","Produktübersicht"
|
4 |
"Logs","Logs"
|
5 |
-
"
|
6 |
"Configuration","Konfiguration"
|
7 |
"Ricento by Diglin GmbH","Ricento von der Diglin GmbH"
|
8 |
"Log","Log"
|
9 |
-
"ricardo.ch Payment Methods","ricardo.ch
|
10 |
"ricardo.ch Shipping","ricardo.ch Versandarten"
|
11 |
"Admin Email Notification","Admin Email Benachrichtigung"
|
12 |
"Private message","Private Nachricht"
|
13 |
-
"
|
14 |
"Merge Order","Bestellungen zusammenfassen"
|
15 |
"If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?","Wenn ein Kunde mehrere Produkte innerhalb von 30 Minuten bestellt, möchten Sie, dass die Bestellungen zusammengefasst werden?"
|
16 |
"Shipping Calculation","Versandkosten-Kalkulation"
|
17 |
-
"You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>","Sie können entscheiden, wie die Versandkosten berechnet werden, wenn eine Bestellung zusammengefasst wurde.<br>"
|
18 |
-
" ""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>","""Höchster Preis"": Diese Methode findet das Produkt mit den höchsten Versandkosten und nutzt diesen Versandkosten für die Gesamtsumme.<br>"
|
19 |
-
" ""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.","""Kumulativ"": diese Methode addiert die Versandkosten der einzelnen Produkte"
|
20 |
"Send Account Creation Confirmation Email","Sende Willkommensbestätigung per Mail"
|
21 |
-
"Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?","Möchten Sie
|
22 |
"Send Email for new order","Sende Email beim Eingang einer neuen Bestellung"
|
23 |
-
"Do you want to send the newly order created by email to a customer when the order is
|
24 |
"API Token Configuration","API Token Konfiguration"
|
25 |
"General API Config","Allgemeine API Konfiguration"
|
26 |
"ricardo.ch Extension enabled","ricardo.ch Extension aktiviert"
|
27 |
"Development Mode","Entwicklermodus"
|
28 |
"If you enable this configuration, all API requests will be send to the ricardo.ch Sandbox instead to use the production servers. Be aware, you have to provide others partner Keys and Passwords specific for dev environment below.","Wenn Sie diese Funktion aktivieren, werden alle API-Anfragen an die ricardo.ch BETA Umgebubg verschickt. Stellen Sie sicher, dass Sie die dafür passenden API-Keys und Passwörter eingetragen haben."
|
29 |
"Debug","Debug"
|
30 |
-
"Write into the var/log/ricento.log file all requests sent to the ricardo.ch API. Enable it to help us to support you and send this file to us if you have an issue. Your passwords will be anonymized. Attention: the file size can grow quite fast.","In diesem Modus werden alle Anfragen an die ricardo.ch-API in die Datei var/log/ricento.log geschrieben. Aktivieren Sie diesen Modus, wenn Sie Probleme haben und schicken Sie uns diese Datei zu. Damit können wir Ihnen helfen. Die Passwörter werden anonymisiert. Achtung:
|
31 |
"German API Token","Deutscher API Token"
|
32 |
-
"PROD German Partner Key","PROD Deutscher
|
33 |
-
"Partner Key has the following format '0F12345-1234-1234-1234-1234567890'. You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Der
|
34 |
-
"PROD German Partner Password","PROD Deutsches
|
35 |
"You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Sie müssen sich für die ricardo.ch API anmelden, um diesen Schlüssel zu bekommen. Klicken Sie dazu auf den Button oben auf der Seite."
|
36 |
-
"DEV German Partner Key","Entwicklermodus deutscher
|
37 |
-
"DEV German Partner Password","Entwicklermodus deutsches
|
38 |
"French API Token","Französischer API Token"
|
39 |
-
"PROD French Partner Key","PROD Französischer
|
40 |
-
"PROD French Partner Password","PROD Französischer
|
41 |
-
"DEV French Partner Key","Entwicklermodus französischer
|
42 |
-
"DEV French Partner Password","Entwicklermodus französischer
|
43 |
-
"Cleanup Synchronization Jobs Log","
|
44 |
"Enabled","Aktiviert"
|
45 |
-
"Keep for X days","
|
46 |
-
"Cleanup Listings Log","
|
47 |
"ricardo.ch API Payment Methods","ricardo.ch API Zahlungsarten"
|
48 |
"Bank Transfer Instructions","Instruktionen Bank-Überweisung"
|
49 |
"Accepted Currency","Akzeptierte Währung"
|
50 |
-
"Stock quantity set to 1 because auction sales type with direct buy option does not allow more than one article to be sold","Lagerbestand auf 1 gesetzt, da die
|
51 |
"Invalid start date.","Ungültiges Startdatum"
|
52 |
"The end date must be in the future.","Das Enddatum muss in der Zukunft liegen."
|
53 |
-
"Listed listings cannot be modified. Stop the listing first to make changes.","Aktive
|
54 |
"An error occurred while saving the configuration.","Ein Fehler trat beim Speichern der Konfiguration auf."
|
55 |
-
"ricardo.ch Service Model doesn
|
56 |
"ricardo.ch API Credentials are not configured. Please, configure the extension before to proceed.","ricardo.ch API Daten sind nicht vorhanden. Bitte tragen Sie zunächst die Daten ein."
|
57 |
"API language provided for the Service Manager is not supported.","API Sprache für den Service Manager wird nicht unterstützt."
|
58 |
"Error while trying to connect to the ricardo.ch API. Please, check your log files.","Fehler beim Verbinden mit der ricardo.ch API. Bitte checken Sie Ihre Log Dateien, um eine genauere Fehlerbeschreibung zu erhalten."
|
@@ -61,16 +59,16 @@
|
|
61 |
"Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract.","Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract."
|
62 |
"The product has been sold","Das Produkt wurde verkauft."
|
63 |
"Customer creation failed! ricardo.ch transaction cannot be added.","Kunde konnte nicht angelegt werden. ricardo.ch Bestellung konnte nicht übertragen werden."
|
64 |
-
"Order automatically generated by the ricardo.ch Extension.","Bestellung(en) wurde(n) automatisch durch
|
65 |
"Payment is pending","Bezahlung ausstehend"
|
66 |
-
"Payment has been completed on ricardo.ch side","Bezahlung wurde bei ricardo.ch
|
67 |
"Order canceled on ricardo.ch side","Bezahlung wurd bei ricardo.ch storniert."
|
68 |
"Country Code is not available. Please contact the author of this extension or support.","Ländercode ist nicht verfügbar. Bitte kontaktieren Sie den Autor dieses Moduls für Support."
|
69 |
"Report: %d success, %d warning(s), %d error(s)","Report: %d erfolgreich, %d Warnung(en), %d Fehler"
|
70 |
-
"Successful products checked are going to be listed. To force to list products having a warning, please <a href=""%s"">click here</a>. Products with an error won
|
71 |
-
"The product is now live on ricardo.ch","Das Produkt ist nun
|
72 |
"Sorry, the product has not been sold","Sorry, das Produkt wurde nicht verkauft."
|
73 |
-
"This item is already listed or has already a ricardo article Id. No insert done to ricardo.ch","Der Artikel ist bereits
|
74 |
"The product has been removed from ricardo.ch","Das Produkt wurde bei ricardo.ch entfernt."
|
75 |
"The product has not been removed from ricardo.ch. Probably because someone bid the product or bought it.","Das Produkt wurde nicht bei ricardo.ch entfernt. Wahrscheinlich weil jemand für das Produkt geboten oder es gekauft hat."
|
76 |
"Report: %d success, %d error(s)","Report: %d erfolgreich, %d Fehler"
|
@@ -104,12 +102,12 @@
|
|
104 |
"Buy now","Sofort-Kaufen"
|
105 |
"Highest Price","Höchster Preis"
|
106 |
"Cumulative","Kumulativ"
|
107 |
-
"Pending","
|
108 |
-
"Running","
|
109 |
-
"Ready","
|
110 |
-
"Completed","
|
111 |
"Products Check Job","Produkt-Check Job"
|
112 |
-
"List Job","
|
113 |
"Stop List Job","Stop Einstellen Job"
|
114 |
"Sync Order Job","Sync Bestellung Job"
|
115 |
"Relist Job","Reaktivierung Job"
|
@@ -126,29 +124,28 @@
|
|
126 |
"Product Title will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Titel wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
127 |
"Product Subtitle will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Untertitel wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
128 |
"Product Description will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Beschreibung wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
129 |
-
"Custom Options are not supported. Those won
|
130 |
-
"The product or its associated products is/are not in stock or doesn
|
131 |
-
"
|
132 |
-
"
|
133 |
-
"Payment and/or Shipping combination are not correct.","Zahlung und/oder Versand-Kombination sind nicht korrekt."
|
134 |
"You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s.","Sie können keinen Startpreis für eine Auktion von %2$s festlegen, wenn Sie ""Sofort-Kaufen"" mit dem Produktpreis von %1$s anbieten."
|
135 |
-
"Product Price of %s CHF is incorrect for a direct sales with credit card. Price must be between %s and %s.","Aus Sicherheitsgründen ist eine Kreditkarten-Zahlung bei Beträgen von CHF %s.- nicht möglich für ""Sofort-Kaufen"". Bitte wählen Sie andere
|
136 |
-
"The ending date is too early or too late. Minimum period allowed: %s days - Maximum period allowed: %s days","Das Enddatum ist zu früh oder zu spät.
|
137 |
-
"You cannot use the privilege spaces as you do not have any pictures for this product.","Sie können keine
|
138 |
"This increment value is not possible for this start price.","Der angegebene Erhöhungsschritt ist nicht möglich für diesen Startpreis."
|
139 |
"Only the following combinations are possible:","Nur die folgenden Kombinationen sind möglich:"
|
140 |
-
"Start price is between","Startpreis
|
141 |
-
"Increment must be between","Erhöhungsschritt
|
142 |
-
"This payment method combination is not possible.","Diese
|
143 |
"The following combinations are possible:","Die folgenden Kombinationen sind möglich:"
|
144 |
-
"It is not possible to combine ""Other"" shipping method with ""Credit Card"" payment method","Es ist nicht möglich, die Versandmethode ""Andere"" mit der
|
145 |
-
"No category will be displayed, the products listing doesn
|
146 |
-
"You are not allowed to save the products listing, so you cannot add products from a category. Please, close the window.","Sie dürfen dieses Produktlisting nicht speichern. Es können keine Produkte von einer Kategorie hinzufügen. Bitte
|
147 |
-
"Product(s) from the selected categories cannot be saved. The products listing doesn
|
148 |
-
"You are not allowed to save the products listing, so you cannot add products from a category.","Sie dürfen
|
149 |
-
"%d product(s) added to the listing","%d Produkte
|
150 |
"Error occurred while saving the product(s) from the selected categories. Please check your exception log.","Fehler traten auf während des Speicherns der gewählten Kategorien. Bitte prüfen Sie den Fehlerlog."
|
151 |
-
"The action you try to do, is not possible. You must authorize the API token. Please, go the <a href=""%s"">ricardo.ch Authorization</a> page to do the authorization process","Die Aktion, die Sie durchführen wollen, ist nicht möglich. Sie müssen zunächst
|
152 |
"Listing name and website must be specified.","Listingname und Webseite müssen definiert werden."
|
153 |
"We have detected and set for you the language configuration. Please, review it before to go further.","Wir haben die Sprache für Sie vorausgewählt. Bitte prüfen Sie, ob die Wahl richtig ist, bevor Sie fortfahren."
|
154 |
"The listing has been saved.","Das Listing wurde gespeichert."
|
@@ -156,32 +153,32 @@
|
|
156 |
"Listed listings cannot be deleted. Stop the listing first.","Aktive Listings können nicht gelöscht werden. Stoppen Sie die Listings zuerst."
|
157 |
"Listing deleted","Listing entfernt"
|
158 |
"%d products removed from listing","%d Produkte vom Listing entfernt."
|
159 |
-
"%d products are listed and could not be removed","%d Produkte sind
|
160 |
-
"The API token and configuration are not ready to allow this action. Please, check that your token is enabled and not going to expire.","Der API Token und die Konfiguration sind nicht
|
161 |
-
"A similar job is already running. This job won
|
162 |
-
"It
|
163 |
-
"An error occurred while starting this job. Please check your log file.","Ein Fehler trat auf beim Start des Vorgangs. Bitte
|
164 |
"The job to check your products listing will start in few minutes. You can check the progression below.","Der Vorgang um Ihre Produktlistings zu überprüfen wird in wenigen Minuten starten. Sie können den Fortschritt unten einsehen."
|
165 |
-
"If it finishes with success, your products will be listed automatically otherwise you will have to choose if you want to keep going to list or fix potential issues.","Wenn erfolgreich beendet, werden Ihre Produkte automatisch
|
166 |
"There is no product ready to be listed. Please, add products to your products listing ""%s"".","Kein Produkt ist bereit um eingestellt zu werden. Bitte fügen Sie Produkt zu Ihrem Produktlisting ""%s"" hinzu."
|
167 |
"There is no pending product to check.","Kein zu prüfendes Produkt vorhanden"
|
168 |
-
"The job to list your products listing will start in few minutes.","Der Vorgang
|
169 |
"You can check the progression below.","Sie können den Fortschritten unten einsehen."
|
170 |
-
"There is no item to relist. Only products who have been sold on ricardo.ch can be relisted for the products listing %d.","Es gibt kein Produkt zum reaktivieren. Nur Produkte, die schon mal auf ricardo.ch.ch
|
171 |
-
"Only listed product items can be stopped.","Nur
|
172 |
"The job to stop to list your products will start in few minutes.","Der Vorgang um Ihre Produkte zu beenden wird in wenigen Minuten beginnen."
|
173 |
"Products listing(s) is/are successfully deleted.","Produktlisting(s) wurde(n) erfolgreich gelöscht."
|
174 |
-
"The following products listings IDs have not been deleted because they are still listed on ricardo.ch:
|
175 |
-
"An error occurred while trying to delete the products listing(s). Please, check your exception log.","Beim Löschen des/der Produktlisting(s) trat ein Fehler auf. Bitte
|
176 |
"No products selected.","Keine Produkte gewählt."
|
177 |
"The configuration has been saved successfully.","Die Konfiguration wurde erfolgreich gespeichert."
|
178 |
-
"An error occurred while saving the configuration. Please, check your log files for more details.","Beim Speichern der Konfiguration trat ein Fehler auf. Bitte
|
179 |
-
"It
|
180 |
"Log(s) is/are successfully deleted.","Log(s) wurde(n) erfolgreich gelöscht."
|
181 |
-
"An error occurred while trying to delete the listing log(s). Please, check your exception log.","Beim Löschen der Listing-Logs trat ein Fehler auf. Bitte
|
182 |
-
"Job(s) is/are successfully deleted.","
|
183 |
"The following job IDs have not been deleted because they are still running: %s","Die folgenden Aktions-IDs wurden nicht gelöscht, da Sie immer noch aktiv sind."
|
184 |
-
"An error occurred while trying to delete the job(s). Please, check your exception log.","Beim Löschen der Aktion(en) trat ein Fehler auf. Bitte
|
185 |
"ricardo.ch API Signup","ricardo.ch API Anmeldung"
|
186 |
"API Signup","API Anmeldung"
|
187 |
"ricardo.ch Assistant Portal","ricardo.ch Verkäuferportal"
|
@@ -189,16 +186,16 @@
|
|
189 |
"Only Ajax call is allowed here.","Hier ist nur ein Ajax-Aufruf erlaubt."
|
190 |
"The website code returned from ricardo.ch is not correct! Your authorization has not been saved on our side.","Der Website Code von ricardo.ch ist nicht korrekt. Die Authorisierung konnte auf Seiten von Magento nicht gespeichert werden."
|
191 |
"Your ricardo.ch account has been authorized to get access to the API.","Ihr ricardo.ch-Konto wurde erfolgreich authorisiert, um Zugang zur API zu erhalten."
|
192 |
-
"An error occurred while saving the token. Please, check your log files.","Beim Speichern des Tokens trat ein Fehler auf. Bitte
|
193 |
"Authorization was not successful on ricardo.ch side. Please, contact ricardo.ch to find out the reason.","Die Authorisierung wurde von ricardo.ch zurückgewiesen. Bitte kontaktieren Sie ricardo.ch um den Grund zu erfahren."
|
194 |
"Sign Up to ricardo.ch API","Anmeldung zur ricardo.ch API"
|
195 |
"API Authorization","API Authorisierung"
|
196 |
"No Selection","Keine Auswahl"
|
197 |
"Open ricardo.ch Category Window","Öffne ricardo.ch Kategorien Fenster"
|
198 |
"Add products from selected categories","Füge Produkte von gewählten Kategorien hinzu"
|
199 |
-
"Only product types supported, enabled and not listed in other products listing will be added.","Nur Produkte, deren Typ unterstützt wird, die aktiv und nicht bereits
|
200 |
-
"Be aware, you have also to select the sub-categories, otherwise selecting only a top category won
|
201 |
-
"Create new listing","
|
202 |
"Show Synchronization Jobs","Zeige Synchronisierung-Aufträge"
|
203 |
"General","Allgemeine API Konfiguration"
|
204 |
"Products","Produkte"
|
@@ -213,7 +210,7 @@
|
|
213 |
"Status","Status"
|
214 |
"Action","Aktion"
|
215 |
"Preview","Vorschau"
|
216 |
-
"Configure","
|
217 |
"Remove","Löschen"
|
218 |
"Are you sure to remove this/these product(s)?","Sind Sie sicher, dass Sie diese Produkte löschen möchten?"
|
219 |
"Remove from list","Von der Liste löschen"
|
@@ -222,53 +219,51 @@
|
|
222 |
"This product has been configured for %s %s","Diese Produkte wurde konfiguriert für %s %s"
|
223 |
"The product has custom options, those will not be added to ricardo.ch!","Das Produkt hat individuelle Optionen, diese werden nicht zu ricardo.ch übertragen."
|
224 |
"ID","ID"
|
225 |
-
"Add selected product(s)","Fügen Sie
|
226 |
"Title","Titel"
|
227 |
-
"Website","
|
228 |
"Language","Sprache"
|
229 |
"Product languages to synchronize to ricardo.ch","Produktsprachen, die mit ricardo.ch synchronisiert werden sollen."
|
230 |
-
"ricardo.ch supports only two languages at the moment: German and French. You can set in which language you want to publish your product content (title, subtitle, description, etc).","ricardo.ch unterstützt zur Zeit nur zwei Sprachen: Deutsch und Französisch. Sie können wählen, in welcher Sprache Sie die
|
231 |
"Default language to publish","Standardsprache bei der Veröffentlichung."
|
232 |
-
"Which language to publish by default to ricardo.ch when the product content is not available in a language?","Welche Sprache soll standarmässig zur Veröffentlichung bei ricardo.ch gewählt werden, wenn
|
233 |
-
"Store View for %s","
|
234 |
"Payment Methods","Zahlungsarten"
|
235 |
-
"Payment Description German","Zahlungsarten
|
236 |
-
"Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other""","Zeichen: %s. Max. 5 000 Zeichen.
|
237 |
"Payment Description French","Beschreibung Zahlungsarten Französisch"
|
238 |
"Shipping Methods","Versandarten"
|
239 |
"Shipping Price","Versandkosten"
|
240 |
"Free shipping","kostenloser Versand"
|
241 |
-
"Is Shipping fee cumulative","
|
242 |
-
"If you select this option, the shipping fee will be calculate for each sold product.","Wenn Sie diese Option wählen, werden die Versandkosten für jedes verkaufte Produkt
|
243 |
-
"e.g. an article is sold with a quantity of 3 to one customer and the shipping fee is 15 CHF. Total Shipping fee is 45 CHF. Let it empty if you don't such an option.","z.
|
244 |
"Shipping Availability","Verfügbarkeit des Artikels"
|
245 |
-
"Shipping Description German","Versandbeschreibung
|
246 |
"Characters: %s. Max. 5 000 characters","Zeichen: %s. Max. 5 000 Zeichen"
|
247 |
-
"Shipping Description French","Versandbeschreibung
|
248 |
-
"The store's base currency is {$storeCurrency}. Only %s is allowed as currency. No currency conversion will be proceed.","Die Standardwährung dieses Stores ist {$storeCurrency}. Nur %s ist als Währung erlaubt. Die Preise werde nicht umgerechnet."
|
249 |
"Category","Kategorie"
|
250 |
"ricardo.ch Category","ricardo.ch Kategorie"
|
251 |
-
"Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)","Nutze Magento / ricardo.ch Kategorie-Mapping (wenn ein Mapping
|
252 |
"Select ricardo.ch Category","Wähle ricardo.ch Kategorie"
|
253 |
"Select the category","Wähle Kategorie"
|
254 |
-
"Type of sales","
|
255 |
-
"Until sold","Bis ausverkauft"
|
256 |
"Start price","Startpreis"
|
257 |
-
"Range from Fr. 0.05 to Fr. 1 000 000. If Credit card payment method available and enabled, the range is from Fr. 0.05 to Fr. 2 999.95.","Spanne
|
258 |
"Increment","Erhöhtungsschritt"
|
259 |
"Currency","Währung"
|
260 |
"Allow Direct Buy","Erlaube Sofort-Kaufen"
|
261 |
"Fill in the fieldset ""Buy now"" below to define the direct price settings. <strong>Note</strong>: if set to ""Yes"", the stock management will be set to ""Custom Qty"" with a value of 1.","Befüllen Sie das Feld ""Sofort-Kaufen"" unten, um den Sofort-Kaufen-Preis zu definieren. <strong>Hinweis</strong>: wenn auf ""Ja"" gestellt, wird die ""individuelle Verfügbarkeit"" auf 1 gestellt."
|
262 |
"Source","Quelle"
|
263 |
"Price Change","Preisspanne"
|
264 |
-
"For Fixed Price articles, the minimum price is Fr. 0.05 and maximum Fr. 2 999.95 if the Credit Card payment method is used.","Für Produkte mit Fixpreis
|
265 |
-
"For Auction articles, the minimum amount is Fr. 0.1 and must be greater than the Start Price.","Für
|
266 |
-
"If not correctly defined, the minimum and maximum values will be automatically set.","Wenn nicht korrekt definiert, werden die
|
267 |
"Schedule","Zeitplan"
|
268 |
"Start","Start"
|
269 |
"Starting date must start minimum in one hour and maximum 30 days in the future.","Der Verkauf kann frühestens in einer Stunde, spätestens in 30 Tagen starten."
|
270 |
"Start immediately","Sofort starten"
|
271 |
-
"Start from","Starte
|
272 |
"End","Ende"
|
273 |
"Ending date must finish at the minimum in 24 hours and maximum 10 days from the starting date.","Der Verkauf darf frühestens in 24 Stunden, spätestens 10 Tage nach dem Startdatum enden."
|
274 |
"End after %s days","Ende nach %s Tagen"
|
@@ -283,42 +278,44 @@
|
|
283 |
"Condition Product Source","Zustand des Produkts"
|
284 |
"Do you want to define the condition source from the ricardo.ch Condition Attribute if you defined it on product basis? Otherwise, if not found or you set here to ""No"", the default condition set above will be defined.","Möchten Sie den Zustand des Produkts über das Produktattribut bestimmen? Falls nicht und Sie hier ""Nein"" eintragen, wird der Standardwert aus dem Produktlisting übernommen."
|
285 |
"Warranty","Garantie"
|
286 |
-
"Warranty description German","Garantiebeschreibung
|
287 |
"Characters %s. Max. 5 000 characters","Zeichen %s. Max. 5 000 Zeichen"
|
288 |
-
"Warranty description French","Garantiebeschreibung
|
289 |
"Stock Management","Lagerverwaltung"
|
290 |
-
"Range 1...999. If you use the product inventory option, the amount of items will be taken from the field ""Qty"" defined in the product inventory and limited to 999 if you have a quantity above this value.","Spanne 1
|
291 |
"Use product inventory","Nutze Lagerbestand des Produkts"
|
292 |
"Use custom qty","Nutze spezifizierte Menge"
|
293 |
-
"Customization","
|
294 |
-
"Template","
|
295 |
-
"To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales"".","Um
|
296 |
"Promotion","Promotion"
|
297 |
"Privilege Space","Promo-Fenster"
|
298 |
-
"
|
|
|
299 |
"Home Privilege Space","Promo-Fenster Homepage"
|
300 |
"Privilege space on the homepage. More information about this feature <a onclick=""window.open('%s');"">here</a>","Promo-Fenster auf der Homepage. Mehr Informationen über dieses Feature bekommen Sie <a onclick=""window.open('%s');"">hier</a>"
|
301 |
"Home Space","Promo-Fenster Homepage"
|
302 |
"These options will not be activated for products having no picture.","Diese Option wird nicht aktiviert für Produkte ohne Bilder."
|
303 |
-
"
|
|
|
304 |
"Back to the list ""%s""","Zurück zur Liste ""%s"""
|
305 |
"Configure product '%s'","Konfiguriere Produkt '%s'"
|
306 |
"Configure all %s selected products","Konfiguriere alle %s gewählten Produkte"
|
307 |
"No ricardo.ch category found","Keine ricardo.ch Kategorie gefunden"
|
308 |
"Give a name","Geben Sie einen Namen an"
|
309 |
"Select a website","Wählen Sie eine Website"
|
310 |
-
"The website(s) must be configured and enabled for this extension. If this field is empty or some are missing please <a href=""%s"">configure</a> the extension.","Die Website(s) müssen für diese
|
311 |
"Cancel","Abbrechen"
|
312 |
-
"Listed products:","
|
313 |
-
"Not listed products:","Nicht
|
314 |
"Add Product(s) from category","Füge Produkt(e) von der Kategorie hinzu"
|
315 |
"Add Product(s)","Füge Produkt(e) hinzu"
|
316 |
-
"Stop","
|
317 |
-
"Remove article listed on ricardo.ch","Entferne
|
318 |
-
"Check & List","
|
319 |
-
"Check & list only pending & error items","
|
320 |
"List","Einstellen"
|
321 |
-
"List only ""Ready to list"" items","Nur Produkte einstellen, die den Status ""Fertig
|
322 |
"Edit Products Listing '%s'","Bearbeite Produktlisting '%s'"
|
323 |
"New Products Listing","Neues Produktlisting"
|
324 |
"Websites","Websites"
|
@@ -329,7 +326,7 @@
|
|
329 |
"View Logs","Siehe Logs"
|
330 |
"Change status","Ändere Status"
|
331 |
"Delete","Löschen"
|
332 |
-
"Are you sure that you want to delete this/these products listing(s)? Be aware it\'s
|
333 |
"Products Listing Log ""%s""","Produktlistings Log ""%s"""
|
334 |
"Edit ""%s""","Bearbeite ""%s"""
|
335 |
"Job ID","Job ID"
|
@@ -342,7 +339,7 @@
|
|
342 |
"Job Type","Job Typ"
|
343 |
"Job Message","Job Nachricht"
|
344 |
"Current Progress","Aktueller Fortschritt"
|
345 |
-
"Started at","
|
346 |
"Ended at","Beendet am"
|
347 |
"Are you sure that you want to delete this/these job(s)?","Sind Sie sicher, dass Sie diese Vorgänge löschen möchten?"
|
348 |
"Show Products Listing","Zeige Produktlisting"
|
@@ -353,18 +350,18 @@
|
|
353 |
"You may also access to the %s content of this page</a> in a new window.","Sie können den %s Inhalt dieser Seite auch </a> in einem neuen Fenster bearbeiten."
|
354 |
"Your ricardo.ch API token credentials are going to expire in %s days for the website ""%s"".","Ihre ricardo.ch-API-Token-Daten laufen in %s Tagen für diese Webseite ""%s"" ab."
|
355 |
"No ricardo.ch API Authorization have been found for the website ""%s"".","Keine ricardo.ch-API-Authorisierung wurde für diese Website ""%s"" gefunden."
|
356 |
-
"
|
357 |
"To hide this message, you have to <a href=""%s"">disable the extension</a>.","Um diese Nachricht zu verbergen, müssen Sie die Extension <a href=""%s"">deaktivieren</a>."
|
358 |
"The Official ricardo.ch Extension has been installed.","Die offizielle ricardo.ch Extension wurde installiert."
|
359 |
"Please, click <a href=""%s"">here to configure</a> the access to the ricardo.ch API.","Bitte klicken Sie <a href=""%s"">hier</a> um den Zugang zur ricardo.ch API zu konfigurieren."
|
360 |
"Latest message for the selected job","Letzte Nachricht für den gewählten Vorgang"
|
361 |
-
"<a href=""%s"">Edit</a> your products listing if needed","<a href=""%s"">
|
362 |
"No message found.","Keine Nachricht gefunden."
|
363 |
-
"Confirm","
|
364 |
"More Views","Mehr Ansichten"
|
365 |
"%s days 0:0:0","%s Tage 0:0:0"
|
366 |
"Starting price","Startpreis"
|
367 |
-
"Place a bit","
|
368 |
"Quantity","Anzahl"
|
369 |
"of %s","von %s"
|
370 |
"Details","Details"
|
@@ -382,29 +379,25 @@
|
|
382 |
"Shipping Price:","Versandkosten:"
|
383 |
"Shipping Availability:","Versandverfügbarkeit:"
|
384 |
"Shipping Description (CH):","Versandkosten Beschreibung (CH):"
|
385 |
-
"You must select a ricardo.ch Category if you set this option","Sie müssen eine ricardo.ch-Kategorie wählen, um diese Option zu
|
386 |
"The task will start few minutes","Der Vorgang wird in ein paar Minuten starten"
|
387 |
"No progress","Kein Fortschritt"
|
388 |
"The product list has been stopped.","Die Produktliste wurde beendet."
|
389 |
-
|
390 |
"ricardo.ch Lifetime Sales","ricardo.ch Gesamtumsatz"
|
391 |
"Turnover per month","Umsatz pro Monat"
|
392 |
"Best Sellers","Meistverkaufte Produkte"
|
393 |
-
"Qty sold",
|
394 |
-
"Product Name","
|
395 |
"SKU","SKU"
|
396 |
"Price","Preis"
|
397 |
"Your ricardo.ch API Token","Ihre ricardo.ch API Token"
|
398 |
-
|
399 |
-
"
|
400 |
-
"
|
401 |
-
"PREMIUMCATEGORYGOLD"," "Gross"
|
402 |
-
|
403 |
"TYPE_BANK_TRANSFER","Banküberweisung"
|
404 |
-
"TYPE_CASH","
|
405 |
"TYPE_CREDIT_CARD","Kreditkarte via ricardo.ch"
|
406 |
-
"TYPE_OTHER",
|
407 |
-
|
408 |
"UNKNOWNPROPERTY","Unbekannter Besitzer"
|
409 |
"CUSTOMERNOTARTICLEOWNER","Der Kunde darf das Produkt nicht bearbeiten, da er nicht der Besitzer ist."
|
410 |
"CHECKPASSWORDWRONGPASSWORD","Das Passwort ist falsch."
|
@@ -416,9 +409,9 @@
|
|
416 |
"TOKENEXPIRED","Token ausgelaufen für API "
|
417 |
"ANONYMOUSNOTALLOWED","Anonymer Aufruf ist nicht erlaubt"
|
418 |
"TEMPORAYCREDENTIALEXPIRED","temporärer Zugang abgelaufen für API"
|
419 |
-
"TEMPORAYCREDENTIALUNVALIDATED","temporärer Zugang für API nicht
|
420 |
"SESSIONEXPIRED","Session abgelaufen"
|
421 |
-
"UPDATEPASSWORDPOLICYINVALID","CustomerUpdatePassword wird mit einem Passwort mit invaliden Bedingungen genutzt. Es müssen mindestens 8 Zeichen sein, davon mindestens ein
|
422 |
"AFTOKENERROR","Anti Forgery token error "
|
423 |
"UNKNOWNPARTNERSHIP","Unbekannte Partnerschaft"
|
424 |
"CHECKPASSWORDPENDINGEMAILVALIDATION","Nutzer hat seine E-Mail Adresse nicht validiert"
|
@@ -427,7 +420,6 @@
|
|
427 |
"ACCOUNTCLOSED","Das Kundenkonto wurde geschlossen."
|
428 |
"METHODNOTALLOWED","Die Partnerschaft stimmt nicht mit der gewählten Methode überein."
|
429 |
"TOKEN_AUTHORIZATION","Die Authorisierung muss nochmal durchgeführt werden"
|
430 |
-
|
431 |
"CLOSEAUCTIONFAILED","Auktion konnte nicht geschlossen werden"
|
432 |
"CLOSECLASSIFIEDFAILED","Ein Produkt konnte nicht klassifiziert werden"
|
433 |
"DELETEPLANNEDFAILED","Ein Produkt konnte nicht gelöscht werden"
|
@@ -438,19 +430,18 @@
|
|
438 |
"CUSTOMERNOTFOUND","Kunde nicht gefunden"
|
439 |
"EMPTYIPADDRESS","Die IP Adresse ist nicht definiert"
|
440 |
"TECHNICALPROBLEM","Technischer Fehler"
|
441 |
-
"ARTICLESAMOUNTLIMIT","
|
442 |
"LISTOFARTICLESEMPTY","Liste der Produkte ist leer"
|
443 |
"UNKNOWNCATEGORYNAME","Kategoriename ist nicht bekannt"
|
444 |
-
|
445 |
-
"
|
446 |
-
"
|
447 |
-
"
|
448 |
-
"EMPTYRELISINFOS","Ein technischer Fehler ist aufgetreten. Wir bitten Sie um Entschuldigung. Bitte versuchen Sie es später nochmals oder kontaktieren Sie unseren Kundendienst."
|
449 |
"EMPTYCUSTOMER","Ein technischer Fehler ist aufgetreten. Wir bitten Sie um Entschuldigung. Bitte versuchen Sie es später nochmals oder kontaktieren Sie unseren Kundendienst."
|
450 |
-
"UNKNOWNPARTNERID","
|
451 |
-
"UNKONWNCATEGORYID","
|
452 |
"INVALIDDURATION","Die angefragte Dauer ist nicht möglich."
|
453 |
-
"RELISTCOUNTEXCEEDED","Bitte beachten Sie, dass Sie
|
454 |
"STARTPRICETOOHIGH","Bitte setzen Sie einen Startpreis, der gleich oder tiefer als CHF 10 000 000 000 ist."
|
455 |
"STARTPRICETOOLOW","Bitte setzen Sie einen Startpreis, der gleich oder höher als CHF 0.05 ist."
|
456 |
"INVALIDARTICLETYPEFORCATEGORY","Bitte beachten Sie, dass diese Kategorie-Änderung nicht erlaubt ist."
|
@@ -458,7 +449,7 @@
|
|
458 |
"CATEGORYDEDICATEDTOUSERS","Leider können Sie in dieser Kategorie keine Artikel einstellen. Bitte wählen Sie eine andere Kategorie aus oder kontaktieren Sie unseren Kundendienst."
|
459 |
"INVALIDTEMPLATEID","Bitte überprüfen Sie ob die ausgewählte Vorlage in Ihrem My Ricardo vorhanden ist."
|
460 |
"EMPTYTITLE","Bitte tragen Sie einen Titel in das entsprechende Feld ein."
|
461 |
-
"EMPTYDESCRIPTION","Bitte tragen Sie eine
|
462 |
"EMPTYSUBTITLE","Bitte tragen Sie einen Untertitel in der zweiten Sprache ein."
|
463 |
"TOOLONGTITLE","Bitte beachten Sie, dass der Titel nicht mehr als 40 Zeichen enthalten darf."
|
464 |
"TOOLONGDESCRIPTION","Bitte beachten Sie, dass Ihre Artikel-Beschreibung nicht mehr als 65'000 Zeichen enthalten darf."
|
@@ -477,21 +468,21 @@
|
|
477 |
"NODELIVERYCONDITION","Bitte wählen Sie eine Versandart aus. "
|
478 |
"DELIVERYCOSTTOOHIGH","Die von Ihnen definierte Versandkosten sind zu hoch. Bitte wählen Sie einen Betrag der kleiner ist als CHF 210'000."
|
479 |
"MANUALINCREMENTNOTALLOWED","Der Erhöhungschritt kann nicht manuell definiert werden."
|
480 |
-
"PLANNEDSCHEDULETOOLOW","Die geplante Startzeit
|
481 |
"PLANNEDSCHEDULETOOHIGH","Die von Ihnen definierte ""Startzeit"" für das Einstellen des Artikels liegt zuweit in der Zukunft. Bitte planen Sie max. 30 Tage im Voraus. "
|
482 |
-
"REFERENCETOOLONG","Die von
|
483 |
-
"INVALIDQUANTITYFORAUCTIONBUYNOW","Bitte beachten Sie, dass die Option
|
484 |
"BUYNOWLOWERTHANSTARTPRICE","Bitte setzen Sie einen Sofort-Kaufen-Preis, der höher als Ihr Startpreis ist."
|
485 |
"RICARDOPAYNOCARSANDBIKES","Über ricardo.ch können keine Autos oder Fahrräder verkauft werden"
|
486 |
-
"RICARDOPAYWRONGPAYMENTCONDITIONS","Die gewählte
|
487 |
"RICARDOPAYPRICETOOHIGH","Der Preis ist zu hoch."
|
488 |
"RICARDOPAYWALLETBLOCKED","Das ricardo.ch Pay-Wallet wurde blockiert."
|
489 |
"MAXPICTURESIZEREACHED","Bitte beachten Sie, dass die gesamte Grösse für das Hochladen Ihrer Bilder auf 20 MB beschränkt ist. "
|
490 |
"ERRORRESIZINGPICTURE","Während der Verarbeitung Ihrer Bilder ist ein Fehler aufgetreten. Wir bitten Sie um Entschuldigung."
|
491 |
-
"MAXPICTURESCOUNTREACHED","Bitte beachten Sie, dass die maximale Anzahl
|
492 |
"INVALIDPROMOTION","Ungültige Promotion."
|
493 |
"INVALIDPROMOTIONCOMBINATION","Bitte beachten Sie, dass die mehrfache Auswahl von Anzeigepaketen nicht möglich ist. "
|
494 |
-
"NOTCLOSED","Die Bezahloption „Kreditkartenzahlung“ steht für Autozubehör nicht zur Verfügung.
|
495 |
"EMPTYARTICLEINFOS","Bitte wählen Sie eine Option, um den Zustand Ihres Artikels zu definieren."
|
496 |
"EMPTYDELIVERY","Bitte wählen Sie eine Versandart aus."
|
497 |
"EMPTYPROMOTIONS","Bitte tragen Sie eine Beschreibung für Ihren Artikel in das entsprechende Feld ein."
|
@@ -563,31 +554,29 @@
|
|
563 |
"CANTUPDATEPICTUREONARTICLEWITHBID","Das Bild kann bei einem Angebot das bereits Gebote erhalten hat nicht aktualisiert werden."
|
564 |
"HTMLTAGSNOTALLOWED","Bitte beachten Sie, dass HTML-Tags in diesem Beschreibungsfeld nicht unterstützt werden"
|
565 |
"WRONGPAYMENTCONDITIONS","Falsche Zahlungsarten"
|
566 |
-
"EMPTYPAYMENTCONDITIONIDS","
|
567 |
-
"NODETAILS","Keine Details
|
568 |
-
"ARTICLEALREADYHASCARDPAYMENT","Produkt hat bereits eine
|
569 |
"ERRORINSERTINGCARDPAYMENT","Fehler bei der Eingabe der Kartenzahlung."
|
570 |
"ARTICLEDOESNOTHAVECARDPAYMENT","Produkt hat keine Kartenzahlung."
|
571 |
"ERRORREMOVINGCARDPAYMENT","Fehler beim Entfernen der Kartenzahlung"
|
572 |
-
"RICARDOPAYNOTACTIVATED","ricardo.ch
|
573 |
-
"EMPTYPAYMENTMETHODSIDS","Leere
|
574 |
-
"EMPTYARTICLEID","Leere Produkt-
|
575 |
"INVALIDCARDCOMBINATIONWITHDELIVERYCONDITION","Ungültige Karte in Kombination mit den Versandkonditionen"
|
576 |
"NUMBEROFARTICLELIMITED","Anzahl der Produkte ist limitiert."
|
577 |
"PAYMENTMETHODNEEDALTERNATEONE","Alternative Zahlungsart notwendig."
|
578 |
-
"WRONGPAYMENTMETHODS","
|
579 |
-
"CUMULATIVESHIPPINGNOTALLOWED","
|
580 |
-
|
581 |
"MAXPICTURESCOUNTREACHED","maximale Bilderanzahl erreicht"
|
582 |
-
"MAXPICTURESIZEREACHED","maximale
|
583 |
"ERRORRESIZINGPICTURE","Fehler bei der Grössenänderung der Bilder"
|
584 |
"PICTUREINDEXDOESNOTEXIST","Bildindex existiert nicht"
|
585 |
"EMPTYPICTURECONTENT","leerer Bildinhalt"
|
586 |
"NOPICTURES","keine Bilder"
|
587 |
"INVALIDPICTUREINDEX","ungültiger Bildindex"
|
588 |
-
"MAXLOGOPICTURESIZEREACHED","maximale
|
589 |
-
"ERRORRESIZINGLOGOPICTURE","Fehler bei der
|
590 |
-
|
591 |
"NOTALLOWEDTOSELL","Produkt nicht erlaubt zu verkaufen"
|
592 |
"BILLINGERROR","BILLINGERROR"
|
593 |
"GETCUSTOMERERROR","GETCUSTOMERERROR"
|
@@ -652,13 +641,38 @@
|
|
652 |
"UNABLETOINSERT","UNABLETOINSERT"
|
653 |
"CREDITLIMITEXCEEDED","Kreditlimit erreicht. Bitte, kontaktieren Sie ricardo.ch"
|
654 |
"ACTIVATIONCODESTATUSMANUALLYBLOCKED","ACTIVATIONCODESTATUSMANUALLYBLOCKED"
|
655 |
-
|
656 |
"No Options because API is not configured","No Options because API is not configured"
|
657 |
"No Options because API has a problem","No Options because API has a problem"
|
658 |
-
"Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>.",
|
659 |
-
"Security error occurred with the ricardo API. Please, check your log files.",
|
660 |
"Error occurred with the API. Check if the API is correctly configured: %s","Error occurred with the API. Check if the API is correctly configured: %s"
|
661 |
-
"Product Price of %s CHF is incorrect. Minimum price is %s.","Produktpreis von %s
|
662 |
"You cannot reactivate a product until sold out when doing an auction sales type.","You cannot reactivate a product until sold out when doing an auction sales type."
|
663 |
"Following error(s) appeared:","Following error(s) appeared:"
|
664 |
"<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction""","<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
"Dashboard","Dashboard"
|
3 |
"Products Listing","Produktübersicht"
|
4 |
"Logs","Logs"
|
5 |
+
"ricardoAssistant","ricardoAssistent"
|
6 |
"Configuration","Konfiguration"
|
7 |
"Ricento by Diglin GmbH","Ricento von der Diglin GmbH"
|
8 |
"Log","Log"
|
9 |
+
"ricardo.ch Payment Methods","ricardo.ch Zahlungsarten"
|
10 |
"ricardo.ch Shipping","ricardo.ch Versandarten"
|
11 |
"Admin Email Notification","Admin Email Benachrichtigung"
|
12 |
"Private message","Private Nachricht"
|
13 |
+
"Order Configuration","Bestellungs Konfiguration"
|
14 |
"Merge Order","Bestellungen zusammenfassen"
|
15 |
"If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?","Wenn ein Kunde mehrere Produkte innerhalb von 30 Minuten bestellt, möchten Sie, dass die Bestellungen zusammengefasst werden?"
|
16 |
"Shipping Calculation","Versandkosten-Kalkulation"
|
17 |
+
"You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.","Sie können entscheiden, wie die Versandkosten berechnet werden, wenn eine Bestellung zusammengefasst wurde.<br> ""Höchster Preis"": Diese Methode findet das Produkt mit den höchsten Versandkosten und nutzt diesen Versandkosten für die Gesamtsumme.<br>""Kumulativ"": diese Methode addiert die Versandkosten der einzelnen Produkte."
|
|
|
|
|
18 |
"Send Account Creation Confirmation Email","Sende Willkommensbestätigung per Mail"
|
19 |
+
"Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?","Möchten Sie ein Bestätigungsmail von Magento senden, wenn ein Kunde ein Konto erstellt hat?"
|
20 |
"Send Email for new order","Sende Email beim Eingang einer neuen Bestellung"
|
21 |
+
"Do you want to send the newly order created by email to a customer when the order is imported from ricardo?","Möchten Sie eine Bestellungbestätigungsmail versenden, wenn eine neue Bestellung importiert ist?"
|
22 |
"API Token Configuration","API Token Konfiguration"
|
23 |
"General API Config","Allgemeine API Konfiguration"
|
24 |
"ricardo.ch Extension enabled","ricardo.ch Extension aktiviert"
|
25 |
"Development Mode","Entwicklermodus"
|
26 |
"If you enable this configuration, all API requests will be send to the ricardo.ch Sandbox instead to use the production servers. Be aware, you have to provide others partner Keys and Passwords specific for dev environment below.","Wenn Sie diese Funktion aktivieren, werden alle API-Anfragen an die ricardo.ch BETA Umgebubg verschickt. Stellen Sie sicher, dass Sie die dafür passenden API-Keys und Passwörter eingetragen haben."
|
27 |
"Debug","Debug"
|
28 |
+
"Write into the var/log/ricento.log file all requests sent to the ricardo.ch API. Enable it to help us to support you and send this file to us if you have an issue. Your passwords will be anonymized. Attention: the file size can grow quite fast.","In diesem Modus werden alle Anfragen an die ricardo.ch-API in die Datei var/log/ricento.log geschrieben. Aktivieren Sie diesen Modus, wenn Sie Probleme haben und schicken Sie uns diese Datei zu. Damit können wir Ihnen helfen. Die Passwörter werden anonymisiert. Achtung: Die Log Datei kann sehr schnell wachsen."
|
29 |
"German API Token","Deutscher API Token"
|
30 |
+
"PROD German Partner Key","PROD Deutscher Partnership Key"
|
31 |
+
"Partner Key has the following format '0F12345-1234-1234-1234-1234567890'. You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Der Partnership Key hat das folgende Format: '0F12345-1234-1234-1234-1234567890'. Sie müssen sich für die ricardo.ch API anmelden, um diesen Schlüssel zu bekommen. Klicken Sie dazu auf den Button oben auf der Seite."
|
32 |
+
"PROD German Partner Password","PROD Deutsches Partnership Passwort"
|
33 |
"You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Sie müssen sich für die ricardo.ch API anmelden, um diesen Schlüssel zu bekommen. Klicken Sie dazu auf den Button oben auf der Seite."
|
34 |
+
"DEV German Partner Key","Entwicklermodus deutscher Partnership Key"
|
35 |
+
"DEV German Partner Password","Entwicklermodus deutsches Partnership Passwort"
|
36 |
"French API Token","Französischer API Token"
|
37 |
+
"PROD French Partner Key","PROD Französischer Partnership Key"
|
38 |
+
"PROD French Partner Password","PROD Französischer Partnership Passwort"
|
39 |
+
"DEV French Partner Key","Entwicklermodus französischer Partnership Key"
|
40 |
+
"DEV French Partner Password","Entwicklermodus französischer Partnership Passwort"
|
41 |
+
"Cleanup Synchronization Jobs Log","Log für Synchronisation-Jobs löschen"
|
42 |
"Enabled","Aktiviert"
|
43 |
+
"Keep for X days","Aufbewahren für x Tage"
|
44 |
+
"Cleanup Listings Log","Log für Produktlisten leeren"
|
45 |
"ricardo.ch API Payment Methods","ricardo.ch API Zahlungsarten"
|
46 |
"Bank Transfer Instructions","Instruktionen Bank-Überweisung"
|
47 |
"Accepted Currency","Akzeptierte Währung"
|
48 |
+
"Stock quantity set to 1 because auction sales type with direct buy option does not allow more than one article to be sold","Lagerbestand auf 1 gesetzt, da die Sofort-Kaufen Option nicht mehr als ein Stück erlaubt."
|
49 |
"Invalid start date.","Ungültiges Startdatum"
|
50 |
"The end date must be in the future.","Das Enddatum muss in der Zukunft liegen."
|
51 |
+
"Listed listings cannot be modified. Stop the listing first to make changes.","Aktive Produklisten können nicht verändert werden. Beenden Sie die Produklisten, um Änderungen vornehmen zu können."
|
52 |
"An error occurred while saving the configuration.","Ein Fehler trat beim Speichern der Konfiguration auf."
|
53 |
+
"ricardo.ch Service Model doesn't exists.","ricardo.ch Service Model existiert nicht."
|
54 |
"ricardo.ch API Credentials are not configured. Please, configure the extension before to proceed.","ricardo.ch API Daten sind nicht vorhanden. Bitte tragen Sie zunächst die Daten ein."
|
55 |
"API language provided for the Service Manager is not supported.","API Sprache für den Service Manager wird nicht unterstützt."
|
56 |
"Error while trying to connect to the ricardo.ch API. Please, check your log files.","Fehler beim Verbinden mit der ricardo.ch API. Bitte checken Sie Ihre Log Dateien, um eine genauere Fehlerbeschreibung zu erhalten."
|
59 |
"Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract.","Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract."
|
60 |
"The product has been sold","Das Produkt wurde verkauft."
|
61 |
"Customer creation failed! ricardo.ch transaction cannot be added.","Kunde konnte nicht angelegt werden. ricardo.ch Bestellung konnte nicht übertragen werden."
|
62 |
+
"Order automatically generated by the ricardo.ch Extension.","Bestellung(en) wurde(n) automatisch durch die ricardo.ch Extension erstellt."
|
63 |
"Payment is pending","Bezahlung ausstehend"
|
64 |
+
"Payment has been completed on ricardo.ch side","Bezahlung wurde bei ricardo.ch ausgeführt."
|
65 |
"Order canceled on ricardo.ch side","Bezahlung wurd bei ricardo.ch storniert."
|
66 |
"Country Code is not available. Please contact the author of this extension or support.","Ländercode ist nicht verfügbar. Bitte kontaktieren Sie den Autor dieses Moduls für Support."
|
67 |
"Report: %d success, %d warning(s), %d error(s)","Report: %d erfolgreich, %d Warnung(en), %d Fehler"
|
68 |
+
"Successful products checked are going to be listed. To force to list products having a warning, please <a href=""%s"">click here</a>. Products with an error won't be synchronized, you have to fix the problem first.","Erfolgreich geprüfte Produkte werden eingestellt. Um Produkte mit Warnungen einzustellen, klick Sie bitte <a href=""%s"">hier</a>. Produkte mit Fehlern werden nicht eingestellt, Sie müssen die Fehler zuerst beheben."
|
69 |
+
"The product is now live on ricardo.ch","Das Produkt ist nun auf ricardo.ch eingestellt."
|
70 |
"Sorry, the product has not been sold","Sorry, das Produkt wurde nicht verkauft."
|
71 |
+
"This item is already listed or has already a ricardo article Id. No insert done to ricardo.ch","Der Artikel ist bereits eingestellt oder hat bereits eine Artikelnummer bei ricardo.ch."
|
72 |
"The product has been removed from ricardo.ch","Das Produkt wurde bei ricardo.ch entfernt."
|
73 |
"The product has not been removed from ricardo.ch. Probably because someone bid the product or bought it.","Das Produkt wurde nicht bei ricardo.ch entfernt. Wahrscheinlich weil jemand für das Produkt geboten oder es gekauft hat."
|
74 |
"Report: %d success, %d error(s)","Report: %d erfolgreich, %d Fehler"
|
102 |
"Buy now","Sofort-Kaufen"
|
103 |
"Highest Price","Höchster Preis"
|
104 |
"Cumulative","Kumulativ"
|
105 |
+
"Pending","Ausstehend"
|
106 |
+
"Running","In Verarbeitung"
|
107 |
+
"Ready","Bereit"
|
108 |
+
"Completed","Abgeschlossen"
|
109 |
"Products Check Job","Produkt-Check Job"
|
110 |
+
"List Job","Einstellen-Job"
|
111 |
"Stop List Job","Stop Einstellen Job"
|
112 |
"Sync Order Job","Sync Bestellung Job"
|
113 |
"Relist Job","Reaktivierung Job"
|
124 |
"Product Title will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Titel wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
125 |
"Product Subtitle will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Untertitel wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
126 |
"Product Description will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Beschreibung wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
127 |
+
"Custom Options are not supported. Those won't be synchronized into ricardo.ch.","Individuelle Optionen werden nicht unterstützt. Sie werden nicht zu ricardo.ch übertragen und ignoriert."
|
128 |
+
"The product or its associated products is/are not in stock or doesn't have enough quantity in stock.","Das Hauptprodukt oder seine verknüpften Produkte sind nicht an Lager oder der Lagerbestand ist nicht hoch genug."
|
129 |
+
"You MUST define a ricardo category for this product. Check that you set it at products listing level or at Magento category level.","Sie müssen eine ricardo.ch-Kategorie für dieses Produkt wählen. Prüfen Sie, ob Sie das Produkt auf Produktliste-Ebene oder Magento-Kategorie-Ebene gesetzt haben."
|
130 |
+
"Payment and/or Shipping combination are not correct.","Zahlungsarten- und/oder Versand-Kombination sind nicht korrekt."
|
|
|
131 |
"You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s.","Sie können keinen Startpreis für eine Auktion von %2$s festlegen, wenn Sie ""Sofort-Kaufen"" mit dem Produktpreis von %1$s anbieten."
|
132 |
+
"Product Price of %s CHF is incorrect for a direct sales with credit card. Price must be between %s and %s.","Aus Sicherheitsgründen ist eine Kreditkarten-Zahlung bei Beträgen von CHF %s.- nicht möglich für ""Sofort-Kaufen"". Bitte wählen Sie eine andere Zahlungsart oder passen Sie den Preis an. Der Preis muss zwischen %s und %s liegen."
|
133 |
+
"The ending date is too early or too late. Minimum period allowed: %s days - Maximum period allowed: %s days","Das Enddatum ist zu früh oder zu spät. Erlaubte Zeitspanne: mindestens %s Tage – maximal %s Tage"
|
134 |
+
"You cannot use the privilege spaces as you do not have any pictures for this product.","Sie können keine Promotionen nutzen, da Sie keine Bilder für dieses Produkt hinterlegt haben."
|
135 |
"This increment value is not possible for this start price.","Der angegebene Erhöhungsschritt ist nicht möglich für diesen Startpreis."
|
136 |
"Only the following combinations are possible:","Nur die folgenden Kombinationen sind möglich:"
|
137 |
+
"Start price is between","Startpreis"
|
138 |
+
"Increment must be between","Erhöhungsschritt"
|
139 |
+
"This payment method combination is not possible.","Diese Zahlungsarten-Kombination ist nicht möglich."
|
140 |
"The following combinations are possible:","Die folgenden Kombinationen sind möglich:"
|
141 |
+
"It is not possible to combine ""Other"" shipping method with ""Credit Card"" payment method","Es ist nicht möglich, die Versandmethode ""Andere"" mit der Zahlungsart ""Kreditkarte"" zu kombinieren."
|
142 |
+
"No category will be displayed, the products listing doesn't exists. Please, close the window.","Keine Kategorie wird angezeigt, das Produktlisting existiert nicht. Bitte schließen Sie das Fenster."
|
143 |
+
"You are not allowed to save the products listing, so you cannot add products from a category. Please, close the window.","Sie dürfen dieses Produktlisting nicht speichern. Es können keine Produkte von einer Kategorie hinzufügen. Bitte schließen Sie das Fenster."
|
144 |
+
"Product(s) from the selected categories cannot be saved. The products listing doesn't exists.","Produkte von den gewählten Kategorien können nicht gespeichert werden. Die Produktliste existiert nicht."
|
145 |
+
"You are not allowed to save the products listing, so you cannot add products from a category.","Sie dürfen diese Produktliste nicht speichern. Es können keine Produkte von einer Kategorie hinzufügen. "
|
146 |
+
"%d product(s) added to the listing","%d Produkte zur Produkliste hinzugefügt."
|
147 |
"Error occurred while saving the product(s) from the selected categories. Please check your exception log.","Fehler traten auf während des Speicherns der gewählten Kategorien. Bitte prüfen Sie den Fehlerlog."
|
148 |
+
"The action you try to do, is not possible. You must authorize the API token. Please, go the <a href=""%s"">ricardo.ch Authorization</a> page to do the authorization process","Die Aktion, die Sie durchführen wollen, ist nicht möglich. Sie müssen zunächst den API Token authorisieren. Bitte gehen Sie zur <a href=""%s"">ricardo.ch Authorisierungsseite</a> um den Authorisierungsprozeß durchzuführen."
|
149 |
"Listing name and website must be specified.","Listingname und Webseite müssen definiert werden."
|
150 |
"We have detected and set for you the language configuration. Please, review it before to go further.","Wir haben die Sprache für Sie vorausgewählt. Bitte prüfen Sie, ob die Wahl richtig ist, bevor Sie fortfahren."
|
151 |
"The listing has been saved.","Das Listing wurde gespeichert."
|
153 |
"Listed listings cannot be deleted. Stop the listing first.","Aktive Listings können nicht gelöscht werden. Stoppen Sie die Listings zuerst."
|
154 |
"Listing deleted","Listing entfernt"
|
155 |
"%d products removed from listing","%d Produkte vom Listing entfernt."
|
156 |
+
"%d products are listed and could not be removed","%d Produkte sind eingestellt und können nicht entfernt werden."
|
157 |
+
"The API token and configuration are not ready to allow this action. Please, check that your token is enabled and not going to expire.","Der API Token und die Konfiguration sind nicht bereit für diese Aktion. Bitte prüfen Sie, dass der Token aktiv ist und die Gültigkeit nicht abläuft."
|
158 |
+
"A similar job is already running. This job won't be executed.","Es läuft bereits ein Vorgang. Ihre Aktion wird nicht ausgeführt."
|
159 |
+
"It's s not possible to start this job. You must authorize the API token. Please, go the <a href=""%s"">ricardo.ch Authorization</a> page to do the authorization process","Es ist nicht möglich, diese Aktion durchzuführen. Sie müssen den API Token zunächst authorisieren. Bitte gehen Sie zur <a href=""%s"">ricardo.ch Authorisierungsseite</a> um den Authorisierungsprozess durchzuführen."
|
160 |
+
"An error occurred while starting this job. Please check your log file.","Ein Fehler trat auf beim Start des Vorgangs. Bitte prüfen Sie den Fehlerlog."
|
161 |
"The job to check your products listing will start in few minutes. You can check the progression below.","Der Vorgang um Ihre Produktlistings zu überprüfen wird in wenigen Minuten starten. Sie können den Fortschritt unten einsehen."
|
162 |
+
"If it finishes with success, your products will be listed automatically otherwise you will have to choose if you want to keep going to list or fix potential issues.","Wenn erfolgreich beendet, werden Ihre Produkte automatisch eingestellt. Falls Fehler auftreten, müssen Sie entscheiden, ob das Einstellen fortgesetzt oder überprüft werden soll."
|
163 |
"There is no product ready to be listed. Please, add products to your products listing ""%s"".","Kein Produkt ist bereit um eingestellt zu werden. Bitte fügen Sie Produkt zu Ihrem Produktlisting ""%s"" hinzu."
|
164 |
"There is no pending product to check.","Kein zu prüfendes Produkt vorhanden"
|
165 |
+
"The job to list your products listing will start in few minutes.","Der Vorgang zum Einstellen Ihrer Produkte wird in wenigen Minuten beginnen."
|
166 |
"You can check the progression below.","Sie können den Fortschritten unten einsehen."
|
167 |
+
"There is no item to relist. Only products who have been sold on ricardo.ch can be relisted for the products listing %d.","Es gibt kein Produkt zum reaktivieren. Nur Produkte, die schon mal auf ricardo.ch.ch eingestellt wurden, können wieder aktiviert werden für das Produktlisting %d."
|
168 |
+
"Only listed product items can be stopped.","Nur eingestellte Produkte können deaktiviert werden."
|
169 |
"The job to stop to list your products will start in few minutes.","Der Vorgang um Ihre Produkte zu beenden wird in wenigen Minuten beginnen."
|
170 |
"Products listing(s) is/are successfully deleted.","Produktlisting(s) wurde(n) erfolgreich gelöscht."
|
171 |
+
"The following products listings IDs have not been deleted because they are still listed on ricardo.ch: %s","Die folgenden Produktlisting-IDs wurden nicht gelöscht, da Sie immer noch aktiv auf ricardo.ch eingestellt sind:"
|
172 |
+
"An error occurred while trying to delete the products listing(s). Please, check your exception log.","Beim Löschen des/der Produktlisting(s) trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog."
|
173 |
"No products selected.","Keine Produkte gewählt."
|
174 |
"The configuration has been saved successfully.","Die Konfiguration wurde erfolgreich gespeichert."
|
175 |
+
"An error occurred while saving the configuration. Please, check your log files for more details.","Beim Speichern der Konfiguration trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog für weitere Informationen."
|
176 |
+
"It's just a preview. Please, be aware that the display on ricardo.ch might be slightly different.","Dies ist nur eine Vorschau. Bitte denken Sie daran, dass die Darstellung auf ricardo.ch abweichen kann."
|
177 |
"Log(s) is/are successfully deleted.","Log(s) wurde(n) erfolgreich gelöscht."
|
178 |
+
"An error occurred while trying to delete the listing log(s). Please, check your exception log.","Beim Löschen der Listing-Logs trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog."
|
179 |
+
"Job(s) is/are successfully deleted.","Job erfolgreich gelöscht."
|
180 |
"The following job IDs have not been deleted because they are still running: %s","Die folgenden Aktions-IDs wurden nicht gelöscht, da Sie immer noch aktiv sind."
|
181 |
+
"An error occurred while trying to delete the job(s). Please, check your exception log.","Beim Löschen der Aktion(en) trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog."
|
182 |
"ricardo.ch API Signup","ricardo.ch API Anmeldung"
|
183 |
"API Signup","API Anmeldung"
|
184 |
"ricardo.ch Assistant Portal","ricardo.ch Verkäuferportal"
|
186 |
"Only Ajax call is allowed here.","Hier ist nur ein Ajax-Aufruf erlaubt."
|
187 |
"The website code returned from ricardo.ch is not correct! Your authorization has not been saved on our side.","Der Website Code von ricardo.ch ist nicht korrekt. Die Authorisierung konnte auf Seiten von Magento nicht gespeichert werden."
|
188 |
"Your ricardo.ch account has been authorized to get access to the API.","Ihr ricardo.ch-Konto wurde erfolgreich authorisiert, um Zugang zur API zu erhalten."
|
189 |
+
"An error occurred while saving the token. Please, check your log files.","Beim Speichern des Tokens trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog."
|
190 |
"Authorization was not successful on ricardo.ch side. Please, contact ricardo.ch to find out the reason.","Die Authorisierung wurde von ricardo.ch zurückgewiesen. Bitte kontaktieren Sie ricardo.ch um den Grund zu erfahren."
|
191 |
"Sign Up to ricardo.ch API","Anmeldung zur ricardo.ch API"
|
192 |
"API Authorization","API Authorisierung"
|
193 |
"No Selection","Keine Auswahl"
|
194 |
"Open ricardo.ch Category Window","Öffne ricardo.ch Kategorien Fenster"
|
195 |
"Add products from selected categories","Füge Produkte von gewählten Kategorien hinzu"
|
196 |
+
"Only product types supported, enabled and not listed in other products listing will be added.","Nur Produkte, deren Typ unterstützt wird, die aktiv und nicht bereits eingestellt sind, werden hinzugefügt."
|
197 |
+
"Be aware, you have also to select the sub-categories, otherwise selecting only a top category won't allow to add products of its subcategories.","Bitte achten Sie darauf, auch die Unterkategorien zu wählen. Wenn Sie nur eine Oberkategorie wählen können Produkte nicht zu deren Unterkategorien hinzugefügt werden."
|
198 |
+
"Create new listing","Neue Prouduktliste erstellen"
|
199 |
"Show Synchronization Jobs","Zeige Synchronisierung-Aufträge"
|
200 |
"General","Allgemeine API Konfiguration"
|
201 |
"Products","Produkte"
|
210 |
"Status","Status"
|
211 |
"Action","Aktion"
|
212 |
"Preview","Vorschau"
|
213 |
+
"Configure","Konfigurieren"
|
214 |
"Remove","Löschen"
|
215 |
"Are you sure to remove this/these product(s)?","Sind Sie sicher, dass Sie diese Produkte löschen möchten?"
|
216 |
"Remove from list","Von der Liste löschen"
|
219 |
"This product has been configured for %s %s","Diese Produkte wurde konfiguriert für %s %s"
|
220 |
"The product has custom options, those will not be added to ricardo.ch!","Das Produkt hat individuelle Optionen, diese werden nicht zu ricardo.ch übertragen."
|
221 |
"ID","ID"
|
222 |
+
"Add selected product(s)","Fügen Sie die gewählten Produkte hinzu"
|
223 |
"Title","Titel"
|
224 |
+
"Website","Webseite"
|
225 |
"Language","Sprache"
|
226 |
"Product languages to synchronize to ricardo.ch","Produktsprachen, die mit ricardo.ch synchronisiert werden sollen."
|
227 |
+
"ricardo.ch supports only two languages at the moment: German and French. You can set in which language you want to publish your product content (title, subtitle, description, etc).","ricardo.ch unterstützt zur Zeit nur zwei Sprachen: Deutsch und Französisch. Sie können wählen, in welcher Sprache Sie die Produktinformationen übertragen möchten (Titel, Untertitel, Beschreibung, etc)."
|
228 |
"Default language to publish","Standardsprache bei der Veröffentlichung."
|
229 |
+
"Which language to publish by default to ricardo.ch when the product content is not available in a language?","Welche Sprache soll standarmässig zur Veröffentlichung bei ricardo.ch gewählt werden, wenn Produktinformationen in gewüschter Sprache nicht verfügbar sind?"
|
230 |
+
"Store View for %s","Shopansicht für %s"
|
231 |
"Payment Methods","Zahlungsarten"
|
232 |
+
"Payment Description German","Beschreibung Zahlungsarten Deutsch"
|
233 |
+
"Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other""","Zeichen: %s. Max. 5 000 Zeichen. Beschreibung der Zahlungsarten für Kunden. Diese Infos werden zu ricardo.ch nur übertragen, wenn Sie die Zahlungsart ""Andere"" wählen."
|
234 |
"Payment Description French","Beschreibung Zahlungsarten Französisch"
|
235 |
"Shipping Methods","Versandarten"
|
236 |
"Shipping Price","Versandkosten"
|
237 |
"Free shipping","kostenloser Versand"
|
238 |
+
"Is Shipping fee cumulative","Versandkosten einzeln verrechnen"
|
239 |
+
"If you select this option, the shipping fee will be calculate for each sold product.","Wenn Sie diese Option wählen, werden die Versandkosten für jedes verkaufte Produkt einzeln berechnet."
|
240 |
+
"e.g. an article is sold with a quantity of 3 to one customer and the shipping fee is 15 CHF. Total Shipping fee is 45 CHF. Let it empty if you don't such an option.","z.B. Ein Kunde kauft 3 Stück eines Artikels und die Versandkosten liegen bei jeweils 15 CHF. Die Versandkosten sind dann insgesamt 45 CHF. Lassen Sie das Feld leer, wenn Sie diese Option nicht wählen möchten."
|
241 |
"Shipping Availability","Verfügbarkeit des Artikels"
|
242 |
+
"Shipping Description German","Versandbeschreibung Deutsch"
|
243 |
"Characters: %s. Max. 5 000 characters","Zeichen: %s. Max. 5 000 Zeichen"
|
244 |
+
"Shipping Description French","Versandbeschreibung Französisch"
|
|
|
245 |
"Category","Kategorie"
|
246 |
"ricardo.ch Category","ricardo.ch Kategorie"
|
247 |
+
"Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)","Nutze Magento / ricardo.ch Kategorie-Mapping (wenn ein Mapping fehlt, wird eine Fehlermeldung ausgegeben, während die Synchronisierung zu ricardo.ch vorbereitet wird.)"
|
248 |
"Select ricardo.ch Category","Wähle ricardo.ch Kategorie"
|
249 |
"Select the category","Wähle Kategorie"
|
250 |
+
"Type of sales","Angebotsformat"
|
|
|
251 |
"Start price","Startpreis"
|
252 |
+
"Range from Fr. 0.05 to Fr. 1 000 000. If Credit card payment method available and enabled, the range is from Fr. 0.05 to Fr. 2 999.95.","Spanne von Fr. 0.05 bis Fr. 1 000 000. Wenn Kreditkarte als Zahlungsart verfügbar und aktiv, liegt die Spanne zwischen Fr. 0.05 und Fr. 2 999.95."
|
253 |
"Increment","Erhöhtungsschritt"
|
254 |
"Currency","Währung"
|
255 |
"Allow Direct Buy","Erlaube Sofort-Kaufen"
|
256 |
"Fill in the fieldset ""Buy now"" below to define the direct price settings. <strong>Note</strong>: if set to ""Yes"", the stock management will be set to ""Custom Qty"" with a value of 1.","Befüllen Sie das Feld ""Sofort-Kaufen"" unten, um den Sofort-Kaufen-Preis zu definieren. <strong>Hinweis</strong>: wenn auf ""Ja"" gestellt, wird die ""individuelle Verfügbarkeit"" auf 1 gestellt."
|
257 |
"Source","Quelle"
|
258 |
"Price Change","Preisspanne"
|
259 |
+
"For Fixed Price articles, the minimum price is Fr. 0.05 and maximum Fr. 2 999.95 if the Credit Card payment method is used.","Für Produkte mit Fixpreis ist der Mindestpreis Fr. 0.05 und der Maximalpreis Fr. 2 999.95 sofern die Zahlungsart Kreditkarte aktiviert ist."
|
260 |
+
"For Auction articles, the minimum amount is Fr. 0.1 and must be greater than the Start Price.","Für Auktionen der Mindest-Sofort-Kaufen Preis ist Fr. 0.1 und muss größer sein, als der Startpreis."
|
261 |
+
"If not correctly defined, the minimum and maximum values will be automatically set.","Wenn nicht korrekt definiert, werden die Mininal- und Maximal-Werte automatisch gesetzt."
|
262 |
"Schedule","Zeitplan"
|
263 |
"Start","Start"
|
264 |
"Starting date must start minimum in one hour and maximum 30 days in the future.","Der Verkauf kann frühestens in einer Stunde, spätestens in 30 Tagen starten."
|
265 |
"Start immediately","Sofort starten"
|
266 |
+
"Start from","Starte am"
|
267 |
"End","Ende"
|
268 |
"Ending date must finish at the minimum in 24 hours and maximum 10 days from the starting date.","Der Verkauf darf frühestens in 24 Stunden, spätestens 10 Tage nach dem Startdatum enden."
|
269 |
"End after %s days","Ende nach %s Tagen"
|
278 |
"Condition Product Source","Zustand des Produkts"
|
279 |
"Do you want to define the condition source from the ricardo.ch Condition Attribute if you defined it on product basis? Otherwise, if not found or you set here to ""No"", the default condition set above will be defined.","Möchten Sie den Zustand des Produkts über das Produktattribut bestimmen? Falls nicht und Sie hier ""Nein"" eintragen, wird der Standardwert aus dem Produktlisting übernommen."
|
280 |
"Warranty","Garantie"
|
281 |
+
"Warranty description German","Garantiebeschreibung Deutsch"
|
282 |
"Characters %s. Max. 5 000 characters","Zeichen %s. Max. 5 000 Zeichen"
|
283 |
+
"Warranty description French","Garantiebeschreibung Französisch"
|
284 |
"Stock Management","Lagerverwaltung"
|
285 |
+
"Range 1...999. If you use the product inventory option, the amount of items will be taken from the field ""Qty"" defined in the product inventory and limited to 999 if you have a quantity above this value.","Spanne 1 bis 999. Wenn Sie die Lagerhaltungs-Option nutzen, wird die Menge der Produkte mit dem Feld ""Menge"" befüllt. Die maximale Menge ist jedoch 999."
|
286 |
"Use product inventory","Nutze Lagerbestand des Produkts"
|
287 |
"Use custom qty","Nutze spezifizierte Menge"
|
288 |
+
"Customization","Personalisierung"
|
289 |
+
"Template","Vorlage"
|
290 |
+
"To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales"".","Um eine Vorlage zu erstellen, gehen Sie zu Ihrem <a href=""%s"">ricardo.ch Konto</a> in ""Meine Verkäufe""."
|
291 |
"Promotion","Promotion"
|
292 |
"Privilege Space","Promo-Fenster"
|
293 |
+
"PREMIUMHOMEPAGE","Promo-Fenster"
|
294 |
+
"Privilege space on main category page and search results. More information about this feature <a onclick=\window.open('%s');\"">here</a>""","Promo-Fenster auf der Hauptkategorieseite und Suchergebniss Seite. Mehr Informationen über dieses Feature finden Sie <a onclick=\window.open('%s');\"">hier</a>"""
|
295 |
"Home Privilege Space","Promo-Fenster Homepage"
|
296 |
"Privilege space on the homepage. More information about this feature <a onclick=""window.open('%s');"">here</a>","Promo-Fenster auf der Homepage. Mehr Informationen über dieses Feature bekommen Sie <a onclick=""window.open('%s');"">hier</a>"
|
297 |
"Home Space","Promo-Fenster Homepage"
|
298 |
"These options will not be activated for products having no picture.","Diese Option wird nicht aktiviert für Produkte ohne Bilder."
|
299 |
+
"Until sold","Bis ausverkauft"
|
300 |
+
"Listed items cannot be modified. Stop the listing first to make changes.","Eingestellte Produkte können nicht modifiziert werden. Beenden Sie zunächst das Listing um Änderungen vornehmen zu können."
|
301 |
"Back to the list ""%s""","Zurück zur Liste ""%s"""
|
302 |
"Configure product '%s'","Konfiguriere Produkt '%s'"
|
303 |
"Configure all %s selected products","Konfiguriere alle %s gewählten Produkte"
|
304 |
"No ricardo.ch category found","Keine ricardo.ch Kategorie gefunden"
|
305 |
"Give a name","Geben Sie einen Namen an"
|
306 |
"Select a website","Wählen Sie eine Website"
|
307 |
+
"The website(s) must be configured and enabled for this extension. If this field is empty or some are missing please <a href=""%s"">configure</a> the extension.","Die Website(s) müssen für diese Extension konfiguriert und aktiviert sein. Wenn dieses Feld leer ist oder etwas fehlt, <a href=""%s"">konfigurieren</a> Sie bitte die Extension."
|
308 |
"Cancel","Abbrechen"
|
309 |
+
"Listed products:","Eingestellte Produkte"
|
310 |
+
"Not listed products:","Nicht eingestellte Produkte"
|
311 |
"Add Product(s) from category","Füge Produkt(e) von der Kategorie hinzu"
|
312 |
"Add Product(s)","Füge Produkt(e) hinzu"
|
313 |
+
"Stop","Stopp"
|
314 |
+
"Remove article listed on ricardo.ch","Entferne auf ricardo.ch eingestellte Artikel"
|
315 |
+
"Check & List","Prüfen & Einstellen"
|
316 |
+
"Check & list only pending & error items","Prüfen & Einstellen wartender und fehlerhafter Artikel"
|
317 |
"List","Einstellen"
|
318 |
+
"List only ""Ready to list"" items","Nur Produkte einstellen, die den Status ""Fertig zum Einstellen"" haben"
|
319 |
"Edit Products Listing '%s'","Bearbeite Produktlisting '%s'"
|
320 |
"New Products Listing","Neues Produktlisting"
|
321 |
"Websites","Websites"
|
326 |
"View Logs","Siehe Logs"
|
327 |
"Change status","Ändere Status"
|
328 |
"Delete","Löschen"
|
329 |
+
"Are you sure that you want to delete this/these products listing(s)? Be aware it\'s not possible when the listing is ""Listed""","Sind Sie sicher, dass Sie die Produktlisting(s) löschen möchten? Beachten Sie, das nur aktive Listen gelöscht werden können."
|
330 |
"Products Listing Log ""%s""","Produktlistings Log ""%s"""
|
331 |
"Edit ""%s""","Bearbeite ""%s"""
|
332 |
"Job ID","Job ID"
|
339 |
"Job Type","Job Typ"
|
340 |
"Job Message","Job Nachricht"
|
341 |
"Current Progress","Aktueller Fortschritt"
|
342 |
+
"Started at","Gestartet am"
|
343 |
"Ended at","Beendet am"
|
344 |
"Are you sure that you want to delete this/these job(s)?","Sind Sie sicher, dass Sie diese Vorgänge löschen möchten?"
|
345 |
"Show Products Listing","Zeige Produktlisting"
|
350 |
"You may also access to the %s content of this page</a> in a new window.","Sie können den %s Inhalt dieser Seite auch </a> in einem neuen Fenster bearbeiten."
|
351 |
"Your ricardo.ch API token credentials are going to expire in %s days for the website ""%s"".","Ihre ricardo.ch-API-Token-Daten laufen in %s Tagen für diese Webseite ""%s"" ab."
|
352 |
"No ricardo.ch API Authorization have been found for the website ""%s"".","Keine ricardo.ch-API-Authorisierung wurde für diese Website ""%s"" gefunden."
|
353 |
+
"You have to authorize your account to get access to the ricardo.ch API thanks to the <a href=""%s"">ricardo.ch Authorization Page</a>. If you don't do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked."," Sie müssen Ihr Konto authorisieren, um Zugang zur ricardo.ch-API zu bekommen. Sie können das mittels der <a href=""%s"">ricardo.ch Authorisierungsseite</a> tun. Wenn Sie das nicht tun, werden alle Aufrufe von und zu ricardo.ch blockiert."
|
354 |
"To hide this message, you have to <a href=""%s"">disable the extension</a>.","Um diese Nachricht zu verbergen, müssen Sie die Extension <a href=""%s"">deaktivieren</a>."
|
355 |
"The Official ricardo.ch Extension has been installed.","Die offizielle ricardo.ch Extension wurde installiert."
|
356 |
"Please, click <a href=""%s"">here to configure</a> the access to the ricardo.ch API.","Bitte klicken Sie <a href=""%s"">hier</a> um den Zugang zur ricardo.ch API zu konfigurieren."
|
357 |
"Latest message for the selected job","Letzte Nachricht für den gewählten Vorgang"
|
358 |
+
"<a href=""%s"">Edit</a> your products listing if needed","<a href=""%s"">Bearbeiten</a> Sie Ihre Produktlistings, wenn notwendig"
|
359 |
"No message found.","Keine Nachricht gefunden."
|
360 |
+
"Confirm","Bestätigen"
|
361 |
"More Views","Mehr Ansichten"
|
362 |
"%s days 0:0:0","%s Tage 0:0:0"
|
363 |
"Starting price","Startpreis"
|
364 |
+
"Place a bit","Gebot abgeben"
|
365 |
"Quantity","Anzahl"
|
366 |
"of %s","von %s"
|
367 |
"Details","Details"
|
379 |
"Shipping Price:","Versandkosten:"
|
380 |
"Shipping Availability:","Versandverfügbarkeit:"
|
381 |
"Shipping Description (CH):","Versandkosten Beschreibung (CH):"
|
382 |
+
"You must select a ricardo.ch Category if you set this option","Sie müssen eine ricardo.ch-Kategorie wählen, um diese Option zu aktivieren"
|
383 |
"The task will start few minutes","Der Vorgang wird in ein paar Minuten starten"
|
384 |
"No progress","Kein Fortschritt"
|
385 |
"The product list has been stopped.","Die Produktliste wurde beendet."
|
|
|
386 |
"ricardo.ch Lifetime Sales","ricardo.ch Gesamtumsatz"
|
387 |
"Turnover per month","Umsatz pro Monat"
|
388 |
"Best Sellers","Meistverkaufte Produkte"
|
389 |
+
"Qty sold","Verkaufte Menge"
|
390 |
+
"Product Name","Produktbezeichnung"
|
391 |
"SKU","SKU"
|
392 |
"Price","Preis"
|
393 |
"Your ricardo.ch API Token","Ihre ricardo.ch API Token"
|
394 |
+
"PREMIUMCATEGORYBRONZE","Klein"
|
395 |
+
"PREMIUMCATEGORYSILVER","Mittel"
|
396 |
+
"PREMIUMCATEGORYGOLD","Groß"
|
|
|
|
|
397 |
"TYPE_BANK_TRANSFER","Banküberweisung"
|
398 |
+
"TYPE_CASH","Barzahlung"
|
399 |
"TYPE_CREDIT_CARD","Kreditkarte via ricardo.ch"
|
400 |
+
"TYPE_OTHER","Andere Zahlungsmethoden"
|
|
|
401 |
"UNKNOWNPROPERTY","Unbekannter Besitzer"
|
402 |
"CUSTOMERNOTARTICLEOWNER","Der Kunde darf das Produkt nicht bearbeiten, da er nicht der Besitzer ist."
|
403 |
"CHECKPASSWORDWRONGPASSWORD","Das Passwort ist falsch."
|
409 |
"TOKENEXPIRED","Token ausgelaufen für API "
|
410 |
"ANONYMOUSNOTALLOWED","Anonymer Aufruf ist nicht erlaubt"
|
411 |
"TEMPORAYCREDENTIALEXPIRED","temporärer Zugang abgelaufen für API"
|
412 |
+
"TEMPORAYCREDENTIALUNVALIDATED","temporärer Zugang für API nicht gültig"
|
413 |
"SESSIONEXPIRED","Session abgelaufen"
|
414 |
+
"UPDATEPASSWORDPOLICYINVALID","CustomerUpdatePassword wird mit einem Passwort mit invaliden Bedingungen genutzt. Es müssen mindestens 8 Zeichen sein, davon mindestens ein Großbuchstabe und ein Nicht-Alphanumerisches Zeichen."
|
415 |
"AFTOKENERROR","Anti Forgery token error "
|
416 |
"UNKNOWNPARTNERSHIP","Unbekannte Partnerschaft"
|
417 |
"CHECKPASSWORDPENDINGEMAILVALIDATION","Nutzer hat seine E-Mail Adresse nicht validiert"
|
420 |
"ACCOUNTCLOSED","Das Kundenkonto wurde geschlossen."
|
421 |
"METHODNOTALLOWED","Die Partnerschaft stimmt nicht mit der gewählten Methode überein."
|
422 |
"TOKEN_AUTHORIZATION","Die Authorisierung muss nochmal durchgeführt werden"
|
|
|
423 |
"CLOSEAUCTIONFAILED","Auktion konnte nicht geschlossen werden"
|
424 |
"CLOSECLASSIFIEDFAILED","Ein Produkt konnte nicht klassifiziert werden"
|
425 |
"DELETEPLANNEDFAILED","Ein Produkt konnte nicht gelöscht werden"
|
430 |
"CUSTOMERNOTFOUND","Kunde nicht gefunden"
|
431 |
"EMPTYIPADDRESS","Die IP Adresse ist nicht definiert"
|
432 |
"TECHNICALPROBLEM","Technischer Fehler"
|
433 |
+
"ARTICLESAMOUNTLIMIT","Limite für die Menge pro Übertragung liegt bei 100 "
|
434 |
"LISTOFARTICLESEMPTY","Liste der Produkte ist leer"
|
435 |
"UNKNOWNCATEGORYNAME","Kategoriename ist nicht bekannt"
|
436 |
+
"EMPTYCOUNTRYID","Länder ID darf nicht leer sein."
|
437 |
+
"EMPTYPARTNERID","Partner ID darf nicht leer sein."
|
438 |
+
"EMPTYCATEGORY","Kategorie darf nicht leer sein."
|
439 |
+
"EMPTYRELISINFOS","Reaktivierungsinformation fehlt"
|
|
|
440 |
"EMPTYCUSTOMER","Ein technischer Fehler ist aufgetreten. Wir bitten Sie um Entschuldigung. Bitte versuchen Sie es später nochmals oder kontaktieren Sie unseren Kundendienst."
|
441 |
+
"UNKNOWNPARTNERID","Unbekannte Partnerschaft"
|
442 |
+
"UNKONWNCATEGORYID","Die übergebene Kategorie ID existiert nicht"
|
443 |
"INVALIDDURATION","Die angefragte Dauer ist nicht möglich."
|
444 |
+
"RELISTCOUNTEXCEEDED","Bitte beachten Sie, dass Sie ein Artikel höchstens 9 Mal reaktiviert werden kann. "
|
445 |
"STARTPRICETOOHIGH","Bitte setzen Sie einen Startpreis, der gleich oder tiefer als CHF 10 000 000 000 ist."
|
446 |
"STARTPRICETOOLOW","Bitte setzen Sie einen Startpreis, der gleich oder höher als CHF 0.05 ist."
|
447 |
"INVALIDARTICLETYPEFORCATEGORY","Bitte beachten Sie, dass diese Kategorie-Änderung nicht erlaubt ist."
|
449 |
"CATEGORYDEDICATEDTOUSERS","Leider können Sie in dieser Kategorie keine Artikel einstellen. Bitte wählen Sie eine andere Kategorie aus oder kontaktieren Sie unseren Kundendienst."
|
450 |
"INVALIDTEMPLATEID","Bitte überprüfen Sie ob die ausgewählte Vorlage in Ihrem My Ricardo vorhanden ist."
|
451 |
"EMPTYTITLE","Bitte tragen Sie einen Titel in das entsprechende Feld ein."
|
452 |
+
"EMPTYDESCRIPTION","Bitte tragen Sie eine Artikelbeschreibung in das entsprechende Feld ein."
|
453 |
"EMPTYSUBTITLE","Bitte tragen Sie einen Untertitel in der zweiten Sprache ein."
|
454 |
"TOOLONGTITLE","Bitte beachten Sie, dass der Titel nicht mehr als 40 Zeichen enthalten darf."
|
455 |
"TOOLONGDESCRIPTION","Bitte beachten Sie, dass Ihre Artikel-Beschreibung nicht mehr als 65'000 Zeichen enthalten darf."
|
468 |
"NODELIVERYCONDITION","Bitte wählen Sie eine Versandart aus. "
|
469 |
"DELIVERYCOSTTOOHIGH","Die von Ihnen definierte Versandkosten sind zu hoch. Bitte wählen Sie einen Betrag der kleiner ist als CHF 210'000."
|
470 |
"MANUALINCREMENTNOTALLOWED","Der Erhöhungschritt kann nicht manuell definiert werden."
|
471 |
+
"PLANNEDSCHEDULETOOLOW","Die geplante Startzeit muss mindestens eine Stunde in der Zukunft liegen."
|
472 |
"PLANNEDSCHEDULETOOHIGH","Die von Ihnen definierte ""Startzeit"" für das Einstellen des Artikels liegt zuweit in der Zukunft. Bitte planen Sie max. 30 Tage im Voraus. "
|
473 |
+
"REFERENCETOOLONG","Die von eingegebene Referenznummer ist zu lang. Bitte wählen Sie eine Referenznummer mit maximal 40 Zeichen."
|
474 |
+
"INVALIDQUANTITYFORAUCTIONBUYNOW","Bitte beachten Sie, dass die Option Sofort-Kaufen nur bei Angeboten mit der Stückzahl 1 gewählt werden kann."
|
475 |
"BUYNOWLOWERTHANSTARTPRICE","Bitte setzen Sie einen Sofort-Kaufen-Preis, der höher als Ihr Startpreis ist."
|
476 |
"RICARDOPAYNOCARSANDBIKES","Über ricardo.ch können keine Autos oder Fahrräder verkauft werden"
|
477 |
+
"RICARDOPAYWRONGPAYMENTCONDITIONS","Die gewählte Zahlungsart kann nicht mit der Kreditkartenzahlung kombiniert werden. Bitte wählen Sie eine andere Methode aus."
|
478 |
"RICARDOPAYPRICETOOHIGH","Der Preis ist zu hoch."
|
479 |
"RICARDOPAYWALLETBLOCKED","Das ricardo.ch Pay-Wallet wurde blockiert."
|
480 |
"MAXPICTURESIZEREACHED","Bitte beachten Sie, dass die gesamte Grösse für das Hochladen Ihrer Bilder auf 20 MB beschränkt ist. "
|
481 |
"ERRORRESIZINGPICTURE","Während der Verarbeitung Ihrer Bilder ist ein Fehler aufgetreten. Wir bitten Sie um Entschuldigung."
|
482 |
+
"MAXPICTURESCOUNTREACHED","Bitte beachten Sie, dass die maximale Anzahl Bilder pro Artikel auf 10 beschränkt ist."
|
483 |
"INVALIDPROMOTION","Ungültige Promotion."
|
484 |
"INVALIDPROMOTIONCOMBINATION","Bitte beachten Sie, dass die mehrfache Auswahl von Anzeigepaketen nicht möglich ist. "
|
485 |
+
"NOTCLOSED","Die Bezahloption „Kreditkartenzahlung“ steht für Autozubehör nicht zur Verfügung. Bitte deaktivieren Sie diese Option."
|
486 |
"EMPTYARTICLEINFOS","Bitte wählen Sie eine Option, um den Zustand Ihres Artikels zu definieren."
|
487 |
"EMPTYDELIVERY","Bitte wählen Sie eine Versandart aus."
|
488 |
"EMPTYPROMOTIONS","Bitte tragen Sie eine Beschreibung für Ihren Artikel in das entsprechende Feld ein."
|
554 |
"CANTUPDATEPICTUREONARTICLEWITHBID","Das Bild kann bei einem Angebot das bereits Gebote erhalten hat nicht aktualisiert werden."
|
555 |
"HTMLTAGSNOTALLOWED","Bitte beachten Sie, dass HTML-Tags in diesem Beschreibungsfeld nicht unterstützt werden"
|
556 |
"WRONGPAYMENTCONDITIONS","Falsche Zahlungsarten"
|
557 |
+
"EMPTYPAYMENTCONDITIONIDS","Fehlende Zahlungsarten"
|
558 |
+
"NODETAILS","Keine Details verfügbar."
|
559 |
+
"ARTICLEALREADYHASCARDPAYMENT","Produkt hat bereits eine Zahlungsart."
|
560 |
"ERRORINSERTINGCARDPAYMENT","Fehler bei der Eingabe der Kartenzahlung."
|
561 |
"ARTICLEDOESNOTHAVECARDPAYMENT","Produkt hat keine Kartenzahlung."
|
562 |
"ERRORREMOVINGCARDPAYMENT","Fehler beim Entfernen der Kartenzahlung"
|
563 |
+
"RICARDOPAYNOTACTIVATED","ricardo.ch PayU ist nicht aktiviert."
|
564 |
+
"EMPTYPAYMENTMETHODSIDS","Leere Zahlungsart-ID"
|
565 |
+
"EMPTYARTICLEID","Leere Produkt-ID"
|
566 |
"INVALIDCARDCOMBINATIONWITHDELIVERYCONDITION","Ungültige Karte in Kombination mit den Versandkonditionen"
|
567 |
"NUMBEROFARTICLELIMITED","Anzahl der Produkte ist limitiert."
|
568 |
"PAYMENTMETHODNEEDALTERNATEONE","Alternative Zahlungsart notwendig."
|
569 |
+
"WRONGPAYMENTMETHODS","Falsche Zahlungsart"
|
570 |
+
"CUMULATIVESHIPPINGNOTALLOWED","Kumulative Versandkosten nicht erlaubt."
|
|
|
571 |
"MAXPICTURESCOUNTREACHED","maximale Bilderanzahl erreicht"
|
572 |
+
"MAXPICTURESIZEREACHED","maximale Bildgröße erreicht"
|
573 |
"ERRORRESIZINGPICTURE","Fehler bei der Grössenänderung der Bilder"
|
574 |
"PICTUREINDEXDOESNOTEXIST","Bildindex existiert nicht"
|
575 |
"EMPTYPICTURECONTENT","leerer Bildinhalt"
|
576 |
"NOPICTURES","keine Bilder"
|
577 |
"INVALIDPICTUREINDEX","ungültiger Bildindex"
|
578 |
+
"MAXLOGOPICTURESIZEREACHED","maximale Logogröße erreicht"
|
579 |
+
"ERRORRESIZINGLOGOPICTURE","Fehler bei der Größenänderung des Logos"
|
|
|
580 |
"NOTALLOWEDTOSELL","Produkt nicht erlaubt zu verkaufen"
|
581 |
"BILLINGERROR","BILLINGERROR"
|
582 |
"GETCUSTOMERERROR","GETCUSTOMERERROR"
|
641 |
"UNABLETOINSERT","UNABLETOINSERT"
|
642 |
"CREDITLIMITEXCEEDED","Kreditlimit erreicht. Bitte, kontaktieren Sie ricardo.ch"
|
643 |
"ACTIVATIONCODESTATUSMANUALLYBLOCKED","ACTIVATIONCODESTATUSMANUALLYBLOCKED"
|
|
|
644 |
"No Options because API is not configured","No Options because API is not configured"
|
645 |
"No Options because API has a problem","No Options because API has a problem"
|
646 |
+
"Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>.","Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>."
|
647 |
+
"Security error occurred with the ricardo API. Please, check your log files.","Security error occurred with the ricardo API. Please, check your log files."
|
648 |
"Error occurred with the API. Check if the API is correctly configured: %s","Error occurred with the API. Check if the API is correctly configured: %s"
|
649 |
+
"Product Price of %s CHF is incorrect. Minimum price is %s.","Produktpreis von Fr. %s ist falsch. Minimum Preis ist Fr. %s."
|
650 |
"You cannot reactivate a product until sold out when doing an auction sales type.","You cannot reactivate a product until sold out when doing an auction sales type."
|
651 |
"Following error(s) appeared:","Following error(s) appeared:"
|
652 |
"<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction""","<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction"""
|
653 |
+
"The authorization of the ricardo.ch API Token can be done only %s before the expiration. You will receive automatically an email when it will be possible.","The authorization of the ricardo.ch API Token can be done only %s before the expiration. You will receive automatically an email when it will be possible."
|
654 |
+
"Merge Descriptions","Beschreibungen zusammenführen"
|
655 |
+
"Merge short and normal descriptions as one content for ricardo product description. The short description will be the first part and the normal description will be the second part of the ricardo article description.","Beschreibung und Kurzbeschreibung zusammenführen und als eine Artikelbeschreibung auf ricardo.ch veröffentlichen. Die Kurzbeschreibung wird der erste Teil und die normale Beschreibung der zweite Teil der ricardo.ch Artikelbeschreibung sein."
|
656 |
+
"Only 10 pictures maximum allowed.","Maximal 10 Bilder erlaubt."
|
657 |
+
"The starting date must start one hour in future. It will be automatically updated to list on ricardo.","Das Startdatum muss mindestens eine Stunde in der Zukunft liegen. Es wird automatisch angepasst."
|
658 |
+
"Enter product name: e.g. iphone","Produktbezeichnung eingeben (z.B. Iphone)"
|
659 |
+
"Sorry, no product found for fees calculation.","Es wurden keine Artikel gefunden um die Gebühren zu berechnen."
|
660 |
+
"Please, close this popup window and fix the errors before to be allowed to list your products on ricardo.ch.","Bitte schliessen Sie dieses Fenster und beheben Sie die Fehler, damit die Artikel auf ricardo.ch eingestellt werden können."
|
661 |
+
"Product Listing Configuration","Konfiguration Produklisting"
|
662 |
+
"Currency Conversion","Währungsumrechnung"
|
663 |
+
"The store's base currency is %2$s. Only %1$s is allowed as currency on ricardo.ch. Be aware that your product will be converted into %1$s. Check the documentation for more explanation.","Die Webshop Standard-Währung ist %2$s. Auf ricardo.ch kann nur in %1$s eingestellt werden. Bitte beachten Sie, dass alle Preise in %1$s umgerechnet werden. Lesen Sie die Dokumentation für weitere Erklärungen."
|
664 |
+
"Currency Rate not configured","Wechselkurs nicht konfiguriert"
|
665 |
+
"Currency Rate not defined for CHF currency. Please configure your currency rate before to proceed.","Wechselkurs nicht definiert für CHF. Bitte konfigurieren Sie den Wechselkurs bevor Sie weiterfahren."
|
666 |
+
"Replace Carriage Return with br HTML Tag","Zeilenumbrüche umwandeln um Abstände beizubehalten"
|
667 |
+
"Do you want to replace into the description the carriage return with <br> HTML Tag?","Wollen Sie Zeilenumbrüche in HTML Tags des Typs <br> umwandeln? Dadurch werden die Abstände zwischen ihren Textblöcken beibehalten."
|
668 |
+
"Product listing & promotion","Produktliste & Promotionen"
|
669 |
+
"Total price","Gesamtpreis"
|
670 |
+
"Important","Wichtig"
|
671 |
+
"Listing Fees","Einstellgebühren"
|
672 |
+
"ricardo.ch does invoices in %s","ricardo.ch verrechnet ausschliesslich in %s"
|
673 |
+
"Sales Fee (following the <a href=""%s"" target=""_blank"">fees rules from 01.07.2014</a>)","Abschlussgebühren (gemäss <a href=""%s"" target=""_blank"">Gebührenreglement vom 01.07.2014</a>)"
|
674 |
+
"With the confirmation of the publication, you accept the <a href=""%s"" target=""_blank"">terms and conditions</a> and <a href=""%s"" target=""_blank"">privacy policy</a>","Mit dem Bestätigen und Publizieren akzeptiere ich die <a href=""%s"" target=""_blank"">AGB</a>und die <a href=""%s"" target=""_blank"">Datenschutzerklärung</a> von ricardo.ch"
|
675 |
+
"Confirm, check and List","Bestätigen, Prüfen und Einstellen"
|
676 |
+
"Send us your configuration","Senden Sie uns Ihre Konfiguration"
|
677 |
+
"Export your configuration","Ihre Konfiguration exportieren"
|
678 |
+
"Receive email notification in case of error? Email are sent to the main shop contact and are related to API errors, Token expiration, etc...","Möchten Sie über Fehler per Email benachrichtigt werden? Emails werden an die Email Adresse des allgemeinen Kontaktes in Magento versendet im Falle von API Fehlermeldungen, Ablauf von Token, etc…"
|
@@ -2,57 +2,55 @@
|
|
2 |
"Dashboard","Dashboard"
|
3 |
"Products Listing","Produktübersicht"
|
4 |
"Logs","Logs"
|
5 |
-
"
|
6 |
"Configuration","Konfiguration"
|
7 |
"Ricento by Diglin GmbH","Ricento von der Diglin GmbH"
|
8 |
"Log","Log"
|
9 |
-
"ricardo.ch Payment Methods","ricardo.ch
|
10 |
"ricardo.ch Shipping","ricardo.ch Versandarten"
|
11 |
"Admin Email Notification","Admin Email Benachrichtigung"
|
12 |
"Private message","Private Nachricht"
|
13 |
-
"
|
14 |
"Merge Order","Bestellungen zusammenfassen"
|
15 |
"If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?","Wenn ein Kunde mehrere Produkte innerhalb von 30 Minuten bestellt, möchten Sie, dass die Bestellungen zusammengefasst werden?"
|
16 |
"Shipping Calculation","Versandkosten-Kalkulation"
|
17 |
-
"You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>","Sie können entscheiden, wie die Versandkosten berechnet werden, wenn eine Bestellung zusammengefasst wurde.<br>"
|
18 |
-
" ""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>","""Höchster Preis"": Diese Methode findet das Produkt mit den höchsten Versandkosten und nutzt diesen Versandkosten für die Gesamtsumme.<br>"
|
19 |
-
" ""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.","""Kumulativ"": diese Methode addiert die Versandkosten der einzelnen Produkte"
|
20 |
"Send Account Creation Confirmation Email","Sende Willkommensbestätigung per Mail"
|
21 |
-
"Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?","Möchten Sie
|
22 |
"Send Email for new order","Sende Email beim Eingang einer neuen Bestellung"
|
23 |
-
"Do you want to send the newly order created by email to a customer when the order is
|
24 |
"API Token Configuration","API Token Konfiguration"
|
25 |
"General API Config","Allgemeine API Konfiguration"
|
26 |
"ricardo.ch Extension enabled","ricardo.ch Extension aktiviert"
|
27 |
"Development Mode","Entwicklermodus"
|
28 |
"If you enable this configuration, all API requests will be send to the ricardo.ch Sandbox instead to use the production servers. Be aware, you have to provide others partner Keys and Passwords specific for dev environment below.","Wenn Sie diese Funktion aktivieren, werden alle API-Anfragen an die ricardo.ch BETA Umgebubg verschickt. Stellen Sie sicher, dass Sie die dafür passenden API-Keys und Passwörter eingetragen haben."
|
29 |
"Debug","Debug"
|
30 |
-
"Write into the var/log/ricento.log file all requests sent to the ricardo.ch API. Enable it to help us to support you and send this file to us if you have an issue. Your passwords will be anonymized. Attention: the file size can grow quite fast.","In diesem Modus werden alle Anfragen an die ricardo.ch-API in die Datei var/log/ricento.log geschrieben. Aktivieren Sie diesen Modus, wenn Sie Probleme haben und schicken Sie uns diese Datei zu. Damit können wir Ihnen helfen. Die Passwörter werden anonymisiert. Achtung:
|
31 |
"German API Token","Deutscher API Token"
|
32 |
-
"PROD German Partner Key","PROD Deutscher
|
33 |
-
"Partner Key has the following format '0F12345-1234-1234-1234-1234567890'. You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Der
|
34 |
-
"PROD German Partner Password","PROD Deutsches
|
35 |
"You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Sie müssen sich für die ricardo.ch API anmelden, um diesen Schlüssel zu bekommen. Klicken Sie dazu auf den Button oben auf der Seite."
|
36 |
-
"DEV German Partner Key","Entwicklermodus deutscher
|
37 |
-
"DEV German Partner Password","Entwicklermodus deutsches
|
38 |
"French API Token","Französischer API Token"
|
39 |
-
"PROD French Partner Key","PROD Französischer
|
40 |
-
"PROD French Partner Password","PROD Französischer
|
41 |
-
"DEV French Partner Key","Entwicklermodus französischer
|
42 |
-
"DEV French Partner Password","Entwicklermodus französischer
|
43 |
-
"Cleanup Synchronization Jobs Log","
|
44 |
"Enabled","Aktiviert"
|
45 |
-
"Keep for X days","
|
46 |
-
"Cleanup Listings Log","
|
47 |
"ricardo.ch API Payment Methods","ricardo.ch API Zahlungsarten"
|
48 |
"Bank Transfer Instructions","Instruktionen Bank-Überweisung"
|
49 |
"Accepted Currency","Akzeptierte Währung"
|
50 |
-
"Stock quantity set to 1 because auction sales type with direct buy option does not allow more than one article to be sold","Lagerbestand auf 1 gesetzt, da die
|
51 |
"Invalid start date.","Ungültiges Startdatum"
|
52 |
"The end date must be in the future.","Das Enddatum muss in der Zukunft liegen."
|
53 |
-
"Listed listings cannot be modified. Stop the listing first to make changes.","Aktive
|
54 |
"An error occurred while saving the configuration.","Ein Fehler trat beim Speichern der Konfiguration auf."
|
55 |
-
"ricardo.ch Service Model doesn
|
56 |
"ricardo.ch API Credentials are not configured. Please, configure the extension before to proceed.","ricardo.ch API Daten sind nicht vorhanden. Bitte tragen Sie zunächst die Daten ein."
|
57 |
"API language provided for the Service Manager is not supported.","API Sprache für den Service Manager wird nicht unterstützt."
|
58 |
"Error while trying to connect to the ricardo.ch API. Please, check your log files.","Fehler beim Verbinden mit der ricardo.ch API. Bitte checken Sie Ihre Log Dateien, um eine genauere Fehlerbeschreibung zu erhalten."
|
@@ -61,16 +59,16 @@
|
|
61 |
"Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract.","Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract."
|
62 |
"The product has been sold","Das Produkt wurde verkauft."
|
63 |
"Customer creation failed! ricardo.ch transaction cannot be added.","Kunde konnte nicht angelegt werden. ricardo.ch Bestellung konnte nicht übertragen werden."
|
64 |
-
"Order automatically generated by the ricardo.ch Extension.","Bestellung(en) wurde(n) automatisch durch
|
65 |
"Payment is pending","Bezahlung ausstehend"
|
66 |
-
"Payment has been completed on ricardo.ch side","Bezahlung wurde bei ricardo.ch
|
67 |
"Order canceled on ricardo.ch side","Bezahlung wurd bei ricardo.ch storniert."
|
68 |
"Country Code is not available. Please contact the author of this extension or support.","Ländercode ist nicht verfügbar. Bitte kontaktieren Sie den Autor dieses Moduls für Support."
|
69 |
"Report: %d success, %d warning(s), %d error(s)","Report: %d erfolgreich, %d Warnung(en), %d Fehler"
|
70 |
-
"Successful products checked are going to be listed. To force to list products having a warning, please <a href=""%s"">click here</a>. Products with an error won't be synchronized, you have to fix the problem first.","Erfolgreich geprüfte Produkte werden
|
71 |
-
"The product is now live on ricardo.ch","Das Produkt ist nun
|
72 |
"Sorry, the product has not been sold","Sorry, das Produkt wurde nicht verkauft."
|
73 |
-
"This item is already listed or has already a ricardo article Id. No insert done to ricardo.ch","Der Artikel ist bereits
|
74 |
"The product has been removed from ricardo.ch","Das Produkt wurde bei ricardo.ch entfernt."
|
75 |
"The product has not been removed from ricardo.ch. Probably because someone bid the product or bought it.","Das Produkt wurde nicht bei ricardo.ch entfernt. Wahrscheinlich weil jemand für das Produkt geboten oder es gekauft hat."
|
76 |
"Report: %d success, %d error(s)","Report: %d erfolgreich, %d Fehler"
|
@@ -104,12 +102,12 @@
|
|
104 |
"Buy now","Sofort-Kaufen"
|
105 |
"Highest Price","Höchster Preis"
|
106 |
"Cumulative","Kumulativ"
|
107 |
-
"Pending","
|
108 |
-
"Running","
|
109 |
-
"Ready","
|
110 |
-
"Completed","
|
111 |
"Products Check Job","Produkt-Check Job"
|
112 |
-
"List Job","
|
113 |
"Stop List Job","Stop Einstellen Job"
|
114 |
"Sync Order Job","Sync Bestellung Job"
|
115 |
"Relist Job","Reaktivierung Job"
|
@@ -126,29 +124,28 @@
|
|
126 |
"Product Title will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Titel wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
127 |
"Product Subtitle will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Untertitel wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
128 |
"Product Description will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Beschreibung wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
129 |
-
"Custom Options are not supported. Those won
|
130 |
-
"The product or its associated products is/are not in stock or doesn
|
131 |
-
"
|
132 |
-
"
|
133 |
-
"Payment and/or Shipping combination are not correct.","Zahlung und/oder Versand-Kombination sind nicht korrekt."
|
134 |
"You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s.","Sie können keinen Startpreis für eine Auktion von %2$s festlegen, wenn Sie ""Sofort-Kaufen"" mit dem Produktpreis von %1$s anbieten."
|
135 |
-
"Product Price of %s CHF is incorrect for a direct sales with credit card. Price must be between %s and %s.","Aus Sicherheitsgründen ist eine Kreditkarten-Zahlung bei Beträgen von CHF %s.- nicht möglich für ""Sofort-Kaufen"". Bitte wählen Sie andere
|
136 |
-
"The ending date is too early or too late. Minimum period allowed: %s days - Maximum period allowed: %s days","Das Enddatum ist zu früh oder zu spät.
|
137 |
-
"You cannot use the privilege spaces as you do not have any pictures for this product.","Sie können keine
|
138 |
"This increment value is not possible for this start price.","Der angegebene Erhöhungsschritt ist nicht möglich für diesen Startpreis."
|
139 |
"Only the following combinations are possible:","Nur die folgenden Kombinationen sind möglich:"
|
140 |
-
"Start price is between","Startpreis
|
141 |
-
"Increment must be between","Erhöhungsschritt
|
142 |
-
"This payment method combination is not possible.","Diese
|
143 |
"The following combinations are possible:","Die folgenden Kombinationen sind möglich:"
|
144 |
-
"It is not possible to combine ""Other"" shipping method with ""Credit Card"" payment method","Es ist nicht möglich, die Versandmethode ""Andere"" mit der
|
145 |
-
"No category will be displayed, the products listing doesn
|
146 |
"You are not allowed to save the products listing, so you cannot add products from a category. Please, close the window.","Sie dürfen dieses Produktlisting nicht speichern. Es können keine Produkte von einer Kategorie hinzufügen. Bitte schließen Sie das Fenster."
|
147 |
-
"Product(s) from the selected categories cannot be saved. The products listing doesn
|
148 |
-
"You are not allowed to save the products listing, so you cannot add products from a category.","Sie dürfen
|
149 |
-
"%d product(s) added to the listing","%d Produkte
|
150 |
"Error occurred while saving the product(s) from the selected categories. Please check your exception log.","Fehler traten auf während des Speicherns der gewählten Kategorien. Bitte prüfen Sie den Fehlerlog."
|
151 |
-
"The action you try to do, is not possible. You must authorize the API token. Please, go the <a href=""%s"">ricardo.ch Authorization</a> page to do the authorization process","Die Aktion, die Sie durchführen wollen, ist nicht möglich. Sie müssen zunächst
|
152 |
"Listing name and website must be specified.","Listingname und Webseite müssen definiert werden."
|
153 |
"We have detected and set for you the language configuration. Please, review it before to go further.","Wir haben die Sprache für Sie vorausgewählt. Bitte prüfen Sie, ob die Wahl richtig ist, bevor Sie fortfahren."
|
154 |
"The listing has been saved.","Das Listing wurde gespeichert."
|
@@ -156,32 +153,32 @@
|
|
156 |
"Listed listings cannot be deleted. Stop the listing first.","Aktive Listings können nicht gelöscht werden. Stoppen Sie die Listings zuerst."
|
157 |
"Listing deleted","Listing entfernt"
|
158 |
"%d products removed from listing","%d Produkte vom Listing entfernt."
|
159 |
-
"%d products are listed and could not be removed","%d Produkte sind
|
160 |
-
"The API token and configuration are not ready to allow this action. Please, check that your token is enabled and not going to expire.","Der API Token und die Konfiguration sind nicht
|
161 |
-
"A similar job is already running. This job won
|
162 |
-
"It
|
163 |
-
"An error occurred while starting this job. Please check your log file.","Ein Fehler trat auf beim Start des Vorgangs. Bitte
|
164 |
"The job to check your products listing will start in few minutes. You can check the progression below.","Der Vorgang um Ihre Produktlistings zu überprüfen wird in wenigen Minuten starten. Sie können den Fortschritt unten einsehen."
|
165 |
-
"If it finishes with success, your products will be listed automatically otherwise you will have to choose if you want to keep going to list or fix potential issues.","Wenn erfolgreich beendet, werden Ihre Produkte automatisch
|
166 |
"There is no product ready to be listed. Please, add products to your products listing ""%s"".","Kein Produkt ist bereit um eingestellt zu werden. Bitte fügen Sie Produkt zu Ihrem Produktlisting ""%s"" hinzu."
|
167 |
"There is no pending product to check.","Kein zu prüfendes Produkt vorhanden"
|
168 |
-
"The job to list your products listing will start in few minutes.","Der Vorgang
|
169 |
"You can check the progression below.","Sie können den Fortschritten unten einsehen."
|
170 |
-
"There is no item to relist. Only products who have been sold on ricardo.ch can be relisted for the products listing %d.","Es gibt kein Produkt zum reaktivieren. Nur Produkte, die schon mal auf ricardo.ch.ch
|
171 |
-
"Only listed product items can be stopped.","Nur
|
172 |
"The job to stop to list your products will start in few minutes.","Der Vorgang um Ihre Produkte zu beenden wird in wenigen Minuten beginnen."
|
173 |
"Products listing(s) is/are successfully deleted.","Produktlisting(s) wurde(n) erfolgreich gelöscht."
|
174 |
-
"The following products listings IDs have not been deleted because they are still listed on ricardo.ch:
|
175 |
-
"An error occurred while trying to delete the products listing(s). Please, check your exception log.","Beim Löschen des/der Produktlisting(s) trat ein Fehler auf. Bitte
|
176 |
"No products selected.","Keine Produkte gewählt."
|
177 |
"The configuration has been saved successfully.","Die Konfiguration wurde erfolgreich gespeichert."
|
178 |
-
"An error occurred while saving the configuration. Please, check your log files for more details.","Beim Speichern der Konfiguration trat ein Fehler auf. Bitte
|
179 |
-
"It
|
180 |
"Log(s) is/are successfully deleted.","Log(s) wurde(n) erfolgreich gelöscht."
|
181 |
-
"An error occurred while trying to delete the listing log(s). Please, check your exception log.","Beim Löschen der Listing-Logs trat ein Fehler auf. Bitte
|
182 |
-
"Job(s) is/are successfully deleted.","
|
183 |
"The following job IDs have not been deleted because they are still running: %s","Die folgenden Aktions-IDs wurden nicht gelöscht, da Sie immer noch aktiv sind."
|
184 |
-
"An error occurred while trying to delete the job(s). Please, check your exception log.","Beim Löschen der Aktion(en) trat ein Fehler auf. Bitte
|
185 |
"ricardo.ch API Signup","ricardo.ch API Anmeldung"
|
186 |
"API Signup","API Anmeldung"
|
187 |
"ricardo.ch Assistant Portal","ricardo.ch Verkäuferportal"
|
@@ -189,16 +186,16 @@
|
|
189 |
"Only Ajax call is allowed here.","Hier ist nur ein Ajax-Aufruf erlaubt."
|
190 |
"The website code returned from ricardo.ch is not correct! Your authorization has not been saved on our side.","Der Website Code von ricardo.ch ist nicht korrekt. Die Authorisierung konnte auf Seiten von Magento nicht gespeichert werden."
|
191 |
"Your ricardo.ch account has been authorized to get access to the API.","Ihr ricardo.ch-Konto wurde erfolgreich authorisiert, um Zugang zur API zu erhalten."
|
192 |
-
"An error occurred while saving the token. Please, check your log files.","Beim Speichern des Tokens trat ein Fehler auf. Bitte
|
193 |
"Authorization was not successful on ricardo.ch side. Please, contact ricardo.ch to find out the reason.","Die Authorisierung wurde von ricardo.ch zurückgewiesen. Bitte kontaktieren Sie ricardo.ch um den Grund zu erfahren."
|
194 |
"Sign Up to ricardo.ch API","Anmeldung zur ricardo.ch API"
|
195 |
"API Authorization","API Authorisierung"
|
196 |
"No Selection","Keine Auswahl"
|
197 |
"Open ricardo.ch Category Window","Öffne ricardo.ch Kategorien Fenster"
|
198 |
"Add products from selected categories","Füge Produkte von gewählten Kategorien hinzu"
|
199 |
-
"Only product types supported, enabled and not listed in other products listing will be added.","Nur Produkte, deren Typ unterstützt wird, die aktiv und nicht bereits
|
200 |
-
"Be aware, you have also to select the sub-categories, otherwise selecting only a top category won
|
201 |
-
"Create new listing","
|
202 |
"Show Synchronization Jobs","Zeige Synchronisierung-Aufträge"
|
203 |
"General","Allgemeine API Konfiguration"
|
204 |
"Products","Produkte"
|
@@ -213,7 +210,7 @@
|
|
213 |
"Status","Status"
|
214 |
"Action","Aktion"
|
215 |
"Preview","Vorschau"
|
216 |
-
"Configure","
|
217 |
"Remove","Löschen"
|
218 |
"Are you sure to remove this/these product(s)?","Sind Sie sicher, dass Sie diese Produkte löschen möchten?"
|
219 |
"Remove from list","Von der Liste löschen"
|
@@ -222,52 +219,51 @@
|
|
222 |
"This product has been configured for %s %s","Diese Produkte wurde konfiguriert für %s %s"
|
223 |
"The product has custom options, those will not be added to ricardo.ch!","Das Produkt hat individuelle Optionen, diese werden nicht zu ricardo.ch übertragen."
|
224 |
"ID","ID"
|
225 |
-
"Add selected product(s)","Fügen Sie
|
226 |
"Title","Titel"
|
227 |
-
"Website","
|
228 |
"Language","Sprache"
|
229 |
"Product languages to synchronize to ricardo.ch","Produktsprachen, die mit ricardo.ch synchronisiert werden sollen."
|
230 |
-
"ricardo.ch supports only two languages at the moment: German and French. You can set in which language you want to publish your product content (title, subtitle, description, etc).","ricardo.ch unterstützt zur Zeit nur zwei Sprachen: Deutsch und Französisch. Sie können wählen, in welcher Sprache Sie die
|
231 |
"Default language to publish","Standardsprache bei der Veröffentlichung."
|
232 |
-
"Which language to publish by default to ricardo.ch when the product content is not available in a language?","Welche Sprache soll standarmässig zur Veröffentlichung bei ricardo.ch gewählt werden, wenn
|
233 |
-
"Store View for %s","
|
234 |
"Payment Methods","Zahlungsarten"
|
235 |
-
"Payment Description German","Zahlungsarten
|
236 |
-
"Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other""","Zeichen: %s. Max. 5 000 Zeichen.
|
237 |
"Payment Description French","Beschreibung Zahlungsarten Französisch"
|
238 |
"Shipping Methods","Versandarten"
|
239 |
"Shipping Price","Versandkosten"
|
240 |
"Free shipping","kostenloser Versand"
|
241 |
-
"Is Shipping fee cumulative","
|
242 |
-
"If you select this option, the shipping fee will be calculate for each sold product.","Wenn Sie diese Option wählen, werden die Versandkosten für jedes verkaufte Produkt
|
243 |
-
"e.g. an article is sold with a quantity of 3 to one customer and the shipping fee is 15 CHF. Total Shipping fee is 45 CHF. Let it empty if you don't such an option.","z.
|
244 |
"Shipping Availability","Verfügbarkeit des Artikels"
|
245 |
-
"Shipping Description German","Versandbeschreibung
|
246 |
"Characters: %s. Max. 5 000 characters","Zeichen: %s. Max. 5 000 Zeichen"
|
247 |
-
"Shipping Description French","Versandbeschreibung
|
248 |
-
"The store's base currency is {$storeCurrency}. Only %s is allowed as currency. No currency conversion will be proceed.","Die Standardwährung dieses Stores ist {$storeCurrency}. Nur %s ist als Währung erlaubt. Die Preise werde nicht umgerechnet."
|
249 |
"Category","Kategorie"
|
250 |
"ricardo.ch Category","ricardo.ch Kategorie"
|
251 |
-
"Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)","Nutze Magento / ricardo.ch Kategorie-Mapping (wenn ein Mapping
|
252 |
"Select ricardo.ch Category","Wähle ricardo.ch Kategorie"
|
253 |
"Select the category","Wähle Kategorie"
|
254 |
-
"Type of sales","
|
255 |
"Start price","Startpreis"
|
256 |
-
"Range from Fr. 0.05 to Fr. 1 000 000. If Credit card payment method available and enabled, the range is from Fr. 0.05 to Fr. 2 999.95.","Spanne
|
257 |
"Increment","Erhöhtungsschritt"
|
258 |
"Currency","Währung"
|
259 |
"Allow Direct Buy","Erlaube Sofort-Kaufen"
|
260 |
"Fill in the fieldset ""Buy now"" below to define the direct price settings. <strong>Note</strong>: if set to ""Yes"", the stock management will be set to ""Custom Qty"" with a value of 1.","Befüllen Sie das Feld ""Sofort-Kaufen"" unten, um den Sofort-Kaufen-Preis zu definieren. <strong>Hinweis</strong>: wenn auf ""Ja"" gestellt, wird die ""individuelle Verfügbarkeit"" auf 1 gestellt."
|
261 |
"Source","Quelle"
|
262 |
"Price Change","Preisspanne"
|
263 |
-
"For Fixed Price articles, the minimum price is Fr. 0.05 and maximum Fr. 2 999.95 if the Credit Card payment method is used.","Für Produkte mit Fixpreis
|
264 |
-
"For Auction articles, the minimum amount is Fr. 0.1 and must be greater than the Start Price.","Für
|
265 |
-
"If not correctly defined, the minimum and maximum values will be automatically set.","Wenn nicht korrekt definiert, werden die
|
266 |
"Schedule","Zeitplan"
|
267 |
"Start","Start"
|
268 |
"Starting date must start minimum in one hour and maximum 30 days in the future.","Der Verkauf kann frühestens in einer Stunde, spätestens in 30 Tagen starten."
|
269 |
"Start immediately","Sofort starten"
|
270 |
-
"Start from","Starte
|
271 |
"End","Ende"
|
272 |
"Ending date must finish at the minimum in 24 hours and maximum 10 days from the starting date.","Der Verkauf darf frühestens in 24 Stunden, spätestens 10 Tage nach dem Startdatum enden."
|
273 |
"End after %s days","Ende nach %s Tagen"
|
@@ -282,43 +278,44 @@
|
|
282 |
"Condition Product Source","Zustand des Produkts"
|
283 |
"Do you want to define the condition source from the ricardo.ch Condition Attribute if you defined it on product basis? Otherwise, if not found or you set here to ""No"", the default condition set above will be defined.","Möchten Sie den Zustand des Produkts über das Produktattribut bestimmen? Falls nicht und Sie hier ""Nein"" eintragen, wird der Standardwert aus dem Produktlisting übernommen."
|
284 |
"Warranty","Garantie"
|
285 |
-
"Warranty description German","Garantiebeschreibung
|
286 |
"Characters %s. Max. 5 000 characters","Zeichen %s. Max. 5 000 Zeichen"
|
287 |
-
"Warranty description French","Garantiebeschreibung
|
288 |
"Stock Management","Lagerverwaltung"
|
289 |
-
"Range 1...999. If you use the product inventory option, the amount of items will be taken from the field ""Qty"" defined in the product inventory and limited to 999 if you have a quantity above this value.","Spanne 1
|
290 |
"Use product inventory","Nutze Lagerbestand des Produkts"
|
291 |
"Use custom qty","Nutze spezifizierte Menge"
|
292 |
-
"Customization","
|
293 |
-
"Template","
|
294 |
-
"To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales"".","Um
|
295 |
"Promotion","Promotion"
|
296 |
"Privilege Space","Promo-Fenster"
|
297 |
-
"
|
|
|
298 |
"Home Privilege Space","Promo-Fenster Homepage"
|
299 |
"Privilege space on the homepage. More information about this feature <a onclick=""window.open('%s');"">here</a>","Promo-Fenster auf der Homepage. Mehr Informationen über dieses Feature bekommen Sie <a onclick=""window.open('%s');"">hier</a>"
|
300 |
"Home Space","Promo-Fenster Homepage"
|
301 |
"These options will not be activated for products having no picture.","Diese Option wird nicht aktiviert für Produkte ohne Bilder."
|
302 |
"Until sold","Bis ausverkauft"
|
303 |
-
"Listed items cannot be modified. Stop the listing first to make changes.","
|
304 |
"Back to the list ""%s""","Zurück zur Liste ""%s"""
|
305 |
"Configure product '%s'","Konfiguriere Produkt '%s'"
|
306 |
"Configure all %s selected products","Konfiguriere alle %s gewählten Produkte"
|
307 |
"No ricardo.ch category found","Keine ricardo.ch Kategorie gefunden"
|
308 |
"Give a name","Geben Sie einen Namen an"
|
309 |
"Select a website","Wählen Sie eine Website"
|
310 |
-
"The website(s) must be configured and enabled for this extension. If this field is empty or some are missing please <a href=""%s"">configure</a> the extension.","Die Website(s) müssen für diese
|
311 |
"Cancel","Abbrechen"
|
312 |
-
"Listed products:","
|
313 |
-
"Not listed products:","Nicht
|
314 |
"Add Product(s) from category","Füge Produkt(e) von der Kategorie hinzu"
|
315 |
"Add Product(s)","Füge Produkt(e) hinzu"
|
316 |
-
"Stop","
|
317 |
-
"Remove article listed on ricardo.ch","Entferne
|
318 |
-
"Check & List","
|
319 |
-
"Check & list only pending & error items","
|
320 |
"List","Einstellen"
|
321 |
-
"List only ""Ready to list"" items","Nur Produkte einstellen, die den Status ""Fertig
|
322 |
"Edit Products Listing '%s'","Bearbeite Produktlisting '%s'"
|
323 |
"New Products Listing","Neues Produktlisting"
|
324 |
"Websites","Websites"
|
@@ -329,7 +326,7 @@
|
|
329 |
"View Logs","Siehe Logs"
|
330 |
"Change status","Ändere Status"
|
331 |
"Delete","Löschen"
|
332 |
-
"Are you sure that you want to delete this/these products listing(s)? Be aware it\'s
|
333 |
"Products Listing Log ""%s""","Produktlistings Log ""%s"""
|
334 |
"Edit ""%s""","Bearbeite ""%s"""
|
335 |
"Job ID","Job ID"
|
@@ -342,7 +339,7 @@
|
|
342 |
"Job Type","Job Typ"
|
343 |
"Job Message","Job Nachricht"
|
344 |
"Current Progress","Aktueller Fortschritt"
|
345 |
-
"Started at","
|
346 |
"Ended at","Beendet am"
|
347 |
"Are you sure that you want to delete this/these job(s)?","Sind Sie sicher, dass Sie diese Vorgänge löschen möchten?"
|
348 |
"Show Products Listing","Zeige Produktlisting"
|
@@ -353,18 +350,18 @@
|
|
353 |
"You may also access to the %s content of this page</a> in a new window.","Sie können den %s Inhalt dieser Seite auch </a> in einem neuen Fenster bearbeiten."
|
354 |
"Your ricardo.ch API token credentials are going to expire in %s days for the website ""%s"".","Ihre ricardo.ch-API-Token-Daten laufen in %s Tagen für diese Webseite ""%s"" ab."
|
355 |
"No ricardo.ch API Authorization have been found for the website ""%s"".","Keine ricardo.ch-API-Authorisierung wurde für diese Website ""%s"" gefunden."
|
356 |
-
"You have to authorize your account to get access to the ricardo.ch API thanks to the <a href=""%s"">ricardo.ch Authorization Page</a>. If you don't do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked."," Sie müssen Ihr Konto authorisieren, um Zugang zur ricardo.ch-API zu bekommen. Sie können das mittels der <a href=""%s"">ricardo.ch Authorisierungsseite</a> tun. Wenn Sie das nicht tun, werden alle Aufrufe von
|
357 |
"To hide this message, you have to <a href=""%s"">disable the extension</a>.","Um diese Nachricht zu verbergen, müssen Sie die Extension <a href=""%s"">deaktivieren</a>."
|
358 |
"The Official ricardo.ch Extension has been installed.","Die offizielle ricardo.ch Extension wurde installiert."
|
359 |
"Please, click <a href=""%s"">here to configure</a> the access to the ricardo.ch API.","Bitte klicken Sie <a href=""%s"">hier</a> um den Zugang zur ricardo.ch API zu konfigurieren."
|
360 |
"Latest message for the selected job","Letzte Nachricht für den gewählten Vorgang"
|
361 |
-
"<a href=""%s"">Edit</a> your products listing if needed","<a href=""%s"">
|
362 |
"No message found.","Keine Nachricht gefunden."
|
363 |
-
"Confirm","
|
364 |
"More Views","Mehr Ansichten"
|
365 |
"%s days 0:0:0","%s Tage 0:0:0"
|
366 |
"Starting price","Startpreis"
|
367 |
-
"Place a bit","
|
368 |
"Quantity","Anzahl"
|
369 |
"of %s","von %s"
|
370 |
"Details","Details"
|
@@ -382,29 +379,25 @@
|
|
382 |
"Shipping Price:","Versandkosten:"
|
383 |
"Shipping Availability:","Versandverfügbarkeit:"
|
384 |
"Shipping Description (CH):","Versandkosten Beschreibung (CH):"
|
385 |
-
"You must select a ricardo.ch Category if you set this option","Sie müssen eine ricardo.ch-Kategorie wählen, um diese Option zu
|
386 |
"The task will start few minutes","Der Vorgang wird in ein paar Minuten starten"
|
387 |
"No progress","Kein Fortschritt"
|
388 |
"The product list has been stopped.","Die Produktliste wurde beendet."
|
389 |
-
|
390 |
"ricardo.ch Lifetime Sales","ricardo.ch Gesamtumsatz"
|
391 |
"Turnover per month","Umsatz pro Monat"
|
392 |
"Best Sellers","Meistverkaufte Produkte"
|
393 |
-
"Qty sold",
|
394 |
-
"Product Name","
|
395 |
"SKU","SKU"
|
396 |
"Price","Preis"
|
397 |
"Your ricardo.ch API Token","Ihre ricardo.ch API Token"
|
398 |
-
|
399 |
-
"
|
400 |
-
"
|
401 |
-
"PREMIUMCATEGORYGOLD"," "Groß"
|
402 |
-
|
403 |
"TYPE_BANK_TRANSFER","Banküberweisung"
|
404 |
-
"TYPE_CASH","
|
405 |
"TYPE_CREDIT_CARD","Kreditkarte via ricardo.ch"
|
406 |
-
"TYPE_OTHER",
|
407 |
-
|
408 |
"UNKNOWNPROPERTY","Unbekannter Besitzer"
|
409 |
"CUSTOMERNOTARTICLEOWNER","Der Kunde darf das Produkt nicht bearbeiten, da er nicht der Besitzer ist."
|
410 |
"CHECKPASSWORDWRONGPASSWORD","Das Passwort ist falsch."
|
@@ -416,7 +409,7 @@
|
|
416 |
"TOKENEXPIRED","Token ausgelaufen für API "
|
417 |
"ANONYMOUSNOTALLOWED","Anonymer Aufruf ist nicht erlaubt"
|
418 |
"TEMPORAYCREDENTIALEXPIRED","temporärer Zugang abgelaufen für API"
|
419 |
-
"TEMPORAYCREDENTIALUNVALIDATED","temporärer Zugang für API nicht
|
420 |
"SESSIONEXPIRED","Session abgelaufen"
|
421 |
"UPDATEPASSWORDPOLICYINVALID","CustomerUpdatePassword wird mit einem Passwort mit invaliden Bedingungen genutzt. Es müssen mindestens 8 Zeichen sein, davon mindestens ein Großbuchstabe und ein Nicht-Alphanumerisches Zeichen."
|
422 |
"AFTOKENERROR","Anti Forgery token error "
|
@@ -427,7 +420,6 @@
|
|
427 |
"ACCOUNTCLOSED","Das Kundenkonto wurde geschlossen."
|
428 |
"METHODNOTALLOWED","Die Partnerschaft stimmt nicht mit der gewählten Methode überein."
|
429 |
"TOKEN_AUTHORIZATION","Die Authorisierung muss nochmal durchgeführt werden"
|
430 |
-
|
431 |
"CLOSEAUCTIONFAILED","Auktion konnte nicht geschlossen werden"
|
432 |
"CLOSECLASSIFIEDFAILED","Ein Produkt konnte nicht klassifiziert werden"
|
433 |
"DELETEPLANNEDFAILED","Ein Produkt konnte nicht gelöscht werden"
|
@@ -438,19 +430,18 @@
|
|
438 |
"CUSTOMERNOTFOUND","Kunde nicht gefunden"
|
439 |
"EMPTYIPADDRESS","Die IP Adresse ist nicht definiert"
|
440 |
"TECHNICALPROBLEM","Technischer Fehler"
|
441 |
-
"ARTICLESAMOUNTLIMIT","
|
442 |
"LISTOFARTICLESEMPTY","Liste der Produkte ist leer"
|
443 |
"UNKNOWNCATEGORYNAME","Kategoriename ist nicht bekannt"
|
444 |
-
|
445 |
-
"
|
446 |
-
"
|
447 |
-
"
|
448 |
-
"EMPTYRELISINFOS","Ein technischer Fehler ist aufgetreten. Wir bitten Sie um Entschuldigung. Bitte versuchen Sie es später nochmals oder kontaktieren Sie unseren Kundendienst."
|
449 |
"EMPTYCUSTOMER","Ein technischer Fehler ist aufgetreten. Wir bitten Sie um Entschuldigung. Bitte versuchen Sie es später nochmals oder kontaktieren Sie unseren Kundendienst."
|
450 |
-
"UNKNOWNPARTNERID","
|
451 |
-
"UNKONWNCATEGORYID","
|
452 |
"INVALIDDURATION","Die angefragte Dauer ist nicht möglich."
|
453 |
-
"RELISTCOUNTEXCEEDED","Bitte beachten Sie, dass Sie
|
454 |
"STARTPRICETOOHIGH","Bitte setzen Sie einen Startpreis, der gleich oder tiefer als CHF 10 000 000 000 ist."
|
455 |
"STARTPRICETOOLOW","Bitte setzen Sie einen Startpreis, der gleich oder höher als CHF 0.05 ist."
|
456 |
"INVALIDARTICLETYPEFORCATEGORY","Bitte beachten Sie, dass diese Kategorie-Änderung nicht erlaubt ist."
|
@@ -458,7 +449,7 @@
|
|
458 |
"CATEGORYDEDICATEDTOUSERS","Leider können Sie in dieser Kategorie keine Artikel einstellen. Bitte wählen Sie eine andere Kategorie aus oder kontaktieren Sie unseren Kundendienst."
|
459 |
"INVALIDTEMPLATEID","Bitte überprüfen Sie ob die ausgewählte Vorlage in Ihrem My Ricardo vorhanden ist."
|
460 |
"EMPTYTITLE","Bitte tragen Sie einen Titel in das entsprechende Feld ein."
|
461 |
-
"EMPTYDESCRIPTION","Bitte tragen Sie eine
|
462 |
"EMPTYSUBTITLE","Bitte tragen Sie einen Untertitel in der zweiten Sprache ein."
|
463 |
"TOOLONGTITLE","Bitte beachten Sie, dass der Titel nicht mehr als 40 Zeichen enthalten darf."
|
464 |
"TOOLONGDESCRIPTION","Bitte beachten Sie, dass Ihre Artikel-Beschreibung nicht mehr als 65'000 Zeichen enthalten darf."
|
@@ -477,21 +468,21 @@
|
|
477 |
"NODELIVERYCONDITION","Bitte wählen Sie eine Versandart aus. "
|
478 |
"DELIVERYCOSTTOOHIGH","Die von Ihnen definierte Versandkosten sind zu hoch. Bitte wählen Sie einen Betrag der kleiner ist als CHF 210'000."
|
479 |
"MANUALINCREMENTNOTALLOWED","Der Erhöhungschritt kann nicht manuell definiert werden."
|
480 |
-
"PLANNEDSCHEDULETOOLOW","Die geplante Startzeit
|
481 |
"PLANNEDSCHEDULETOOHIGH","Die von Ihnen definierte ""Startzeit"" für das Einstellen des Artikels liegt zuweit in der Zukunft. Bitte planen Sie max. 30 Tage im Voraus. "
|
482 |
-
"REFERENCETOOLONG","Die von
|
483 |
-
"INVALIDQUANTITYFORAUCTIONBUYNOW","Bitte beachten Sie, dass die Option
|
484 |
"BUYNOWLOWERTHANSTARTPRICE","Bitte setzen Sie einen Sofort-Kaufen-Preis, der höher als Ihr Startpreis ist."
|
485 |
"RICARDOPAYNOCARSANDBIKES","Über ricardo.ch können keine Autos oder Fahrräder verkauft werden"
|
486 |
-
"RICARDOPAYWRONGPAYMENTCONDITIONS","Die gewählte
|
487 |
"RICARDOPAYPRICETOOHIGH","Der Preis ist zu hoch."
|
488 |
"RICARDOPAYWALLETBLOCKED","Das ricardo.ch Pay-Wallet wurde blockiert."
|
489 |
"MAXPICTURESIZEREACHED","Bitte beachten Sie, dass die gesamte Grösse für das Hochladen Ihrer Bilder auf 20 MB beschränkt ist. "
|
490 |
"ERRORRESIZINGPICTURE","Während der Verarbeitung Ihrer Bilder ist ein Fehler aufgetreten. Wir bitten Sie um Entschuldigung."
|
491 |
-
"MAXPICTURESCOUNTREACHED","Bitte beachten Sie, dass die maximale Anzahl
|
492 |
"INVALIDPROMOTION","Ungültige Promotion."
|
493 |
"INVALIDPROMOTIONCOMBINATION","Bitte beachten Sie, dass die mehrfache Auswahl von Anzeigepaketen nicht möglich ist. "
|
494 |
-
"NOTCLOSED","Die Bezahloption „Kreditkartenzahlung“ steht für Autozubehör nicht zur Verfügung.
|
495 |
"EMPTYARTICLEINFOS","Bitte wählen Sie eine Option, um den Zustand Ihres Artikels zu definieren."
|
496 |
"EMPTYDELIVERY","Bitte wählen Sie eine Versandart aus."
|
497 |
"EMPTYPROMOTIONS","Bitte tragen Sie eine Beschreibung für Ihren Artikel in das entsprechende Feld ein."
|
@@ -563,21 +554,20 @@
|
|
563 |
"CANTUPDATEPICTUREONARTICLEWITHBID","Das Bild kann bei einem Angebot das bereits Gebote erhalten hat nicht aktualisiert werden."
|
564 |
"HTMLTAGSNOTALLOWED","Bitte beachten Sie, dass HTML-Tags in diesem Beschreibungsfeld nicht unterstützt werden"
|
565 |
"WRONGPAYMENTCONDITIONS","Falsche Zahlungsarten"
|
566 |
-
"EMPTYPAYMENTCONDITIONIDS","
|
567 |
-
"NODETAILS","Keine Details
|
568 |
-
"ARTICLEALREADYHASCARDPAYMENT","Produkt hat bereits eine
|
569 |
"ERRORINSERTINGCARDPAYMENT","Fehler bei der Eingabe der Kartenzahlung."
|
570 |
"ARTICLEDOESNOTHAVECARDPAYMENT","Produkt hat keine Kartenzahlung."
|
571 |
"ERRORREMOVINGCARDPAYMENT","Fehler beim Entfernen der Kartenzahlung"
|
572 |
-
"RICARDOPAYNOTACTIVATED","ricardo.ch
|
573 |
-
"EMPTYPAYMENTMETHODSIDS","Leere
|
574 |
-
"EMPTYARTICLEID","Leere Produkt-
|
575 |
"INVALIDCARDCOMBINATIONWITHDELIVERYCONDITION","Ungültige Karte in Kombination mit den Versandkonditionen"
|
576 |
"NUMBEROFARTICLELIMITED","Anzahl der Produkte ist limitiert."
|
577 |
"PAYMENTMETHODNEEDALTERNATEONE","Alternative Zahlungsart notwendig."
|
578 |
-
"WRONGPAYMENTMETHODS","
|
579 |
-
"CUMULATIVESHIPPINGNOTALLOWED","
|
580 |
-
|
581 |
"MAXPICTURESCOUNTREACHED","maximale Bilderanzahl erreicht"
|
582 |
"MAXPICTURESIZEREACHED","maximale Bildgröße erreicht"
|
583 |
"ERRORRESIZINGPICTURE","Fehler bei der Grössenänderung der Bilder"
|
@@ -587,7 +577,6 @@
|
|
587 |
"INVALIDPICTUREINDEX","ungültiger Bildindex"
|
588 |
"MAXLOGOPICTURESIZEREACHED","maximale Logogröße erreicht"
|
589 |
"ERRORRESIZINGLOGOPICTURE","Fehler bei der Größenänderung des Logos"
|
590 |
-
|
591 |
"NOTALLOWEDTOSELL","Produkt nicht erlaubt zu verkaufen"
|
592 |
"BILLINGERROR","BILLINGERROR"
|
593 |
"GETCUSTOMERERROR","GETCUSTOMERERROR"
|
@@ -652,13 +641,38 @@
|
|
652 |
"UNABLETOINSERT","UNABLETOINSERT"
|
653 |
"CREDITLIMITEXCEEDED","Kreditlimit erreicht. Bitte, kontaktieren Sie ricardo.ch"
|
654 |
"ACTIVATIONCODESTATUSMANUALLYBLOCKED","ACTIVATIONCODESTATUSMANUALLYBLOCKED"
|
655 |
-
|
656 |
"No Options because API is not configured","No Options because API is not configured"
|
657 |
"No Options because API has a problem","No Options because API has a problem"
|
658 |
-
"Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>.",
|
659 |
-
"Security error occurred with the ricardo API. Please, check your log files.",
|
660 |
"Error occurred with the API. Check if the API is correctly configured: %s","Error occurred with the API. Check if the API is correctly configured: %s"
|
661 |
-
"Product Price of %s CHF is incorrect. Minimum price is %s.","Produktpreis von %s
|
662 |
"You cannot reactivate a product until sold out when doing an auction sales type.","You cannot reactivate a product until sold out when doing an auction sales type."
|
663 |
"Following error(s) appeared:","Following error(s) appeared:"
|
664 |
"<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction""","<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
"Dashboard","Dashboard"
|
3 |
"Products Listing","Produktübersicht"
|
4 |
"Logs","Logs"
|
5 |
+
"ricardoAssistant","ricardoAssistent"
|
6 |
"Configuration","Konfiguration"
|
7 |
"Ricento by Diglin GmbH","Ricento von der Diglin GmbH"
|
8 |
"Log","Log"
|
9 |
+
"ricardo.ch Payment Methods","ricardo.ch Zahlungsarten"
|
10 |
"ricardo.ch Shipping","ricardo.ch Versandarten"
|
11 |
"Admin Email Notification","Admin Email Benachrichtigung"
|
12 |
"Private message","Private Nachricht"
|
13 |
+
"Order Configuration","Bestellungs Konfiguration"
|
14 |
"Merge Order","Bestellungen zusammenfassen"
|
15 |
"If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?","Wenn ein Kunde mehrere Produkte innerhalb von 30 Minuten bestellt, möchten Sie, dass die Bestellungen zusammengefasst werden?"
|
16 |
"Shipping Calculation","Versandkosten-Kalkulation"
|
17 |
+
"You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.","Sie können entscheiden, wie die Versandkosten berechnet werden, wenn eine Bestellung zusammengefasst wurde.<br> ""Höchster Preis"": Diese Methode findet das Produkt mit den höchsten Versandkosten und nutzt diesen Versandkosten für die Gesamtsumme.<br>""Kumulativ"": diese Methode addiert die Versandkosten der einzelnen Produkte."
|
|
|
|
|
18 |
"Send Account Creation Confirmation Email","Sende Willkommensbestätigung per Mail"
|
19 |
+
"Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?","Möchten Sie ein Bestätigungsmail von Magento senden, wenn ein Kunde ein Konto erstellt hat?"
|
20 |
"Send Email for new order","Sende Email beim Eingang einer neuen Bestellung"
|
21 |
+
"Do you want to send the newly order created by email to a customer when the order is imported from ricardo?","Möchten Sie eine Bestellungbestätigungsmail versenden, wenn eine neue Bestellung importiert ist?"
|
22 |
"API Token Configuration","API Token Konfiguration"
|
23 |
"General API Config","Allgemeine API Konfiguration"
|
24 |
"ricardo.ch Extension enabled","ricardo.ch Extension aktiviert"
|
25 |
"Development Mode","Entwicklermodus"
|
26 |
"If you enable this configuration, all API requests will be send to the ricardo.ch Sandbox instead to use the production servers. Be aware, you have to provide others partner Keys and Passwords specific for dev environment below.","Wenn Sie diese Funktion aktivieren, werden alle API-Anfragen an die ricardo.ch BETA Umgebubg verschickt. Stellen Sie sicher, dass Sie die dafür passenden API-Keys und Passwörter eingetragen haben."
|
27 |
"Debug","Debug"
|
28 |
+
"Write into the var/log/ricento.log file all requests sent to the ricardo.ch API. Enable it to help us to support you and send this file to us if you have an issue. Your passwords will be anonymized. Attention: the file size can grow quite fast.","In diesem Modus werden alle Anfragen an die ricardo.ch-API in die Datei var/log/ricento.log geschrieben. Aktivieren Sie diesen Modus, wenn Sie Probleme haben und schicken Sie uns diese Datei zu. Damit können wir Ihnen helfen. Die Passwörter werden anonymisiert. Achtung: Die Log Datei kann sehr schnell wachsen."
|
29 |
"German API Token","Deutscher API Token"
|
30 |
+
"PROD German Partner Key","PROD Deutscher Partnership Key"
|
31 |
+
"Partner Key has the following format '0F12345-1234-1234-1234-1234567890'. You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Der Partnership Key hat das folgende Format: '0F12345-1234-1234-1234-1234567890'. Sie müssen sich für die ricardo.ch API anmelden, um diesen Schlüssel zu bekommen. Klicken Sie dazu auf den Button oben auf der Seite."
|
32 |
+
"PROD German Partner Password","PROD Deutsches Partnership Passwort"
|
33 |
"You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Sie müssen sich für die ricardo.ch API anmelden, um diesen Schlüssel zu bekommen. Klicken Sie dazu auf den Button oben auf der Seite."
|
34 |
+
"DEV German Partner Key","Entwicklermodus deutscher Partnership Key"
|
35 |
+
"DEV German Partner Password","Entwicklermodus deutsches Partnership Passwort"
|
36 |
"French API Token","Französischer API Token"
|
37 |
+
"PROD French Partner Key","PROD Französischer Partnership Key"
|
38 |
+
"PROD French Partner Password","PROD Französischer Partnership Passwort"
|
39 |
+
"DEV French Partner Key","Entwicklermodus französischer Partnership Key"
|
40 |
+
"DEV French Partner Password","Entwicklermodus französischer Partnership Passwort"
|
41 |
+
"Cleanup Synchronization Jobs Log","Log für Synchronisation-Jobs löschen"
|
42 |
"Enabled","Aktiviert"
|
43 |
+
"Keep for X days","Aufbewahren für x Tage"
|
44 |
+
"Cleanup Listings Log","Log für Produktlisten leeren"
|
45 |
"ricardo.ch API Payment Methods","ricardo.ch API Zahlungsarten"
|
46 |
"Bank Transfer Instructions","Instruktionen Bank-Überweisung"
|
47 |
"Accepted Currency","Akzeptierte Währung"
|
48 |
+
"Stock quantity set to 1 because auction sales type with direct buy option does not allow more than one article to be sold","Lagerbestand auf 1 gesetzt, da die Sofort-Kaufen Option nicht mehr als ein Stück erlaubt."
|
49 |
"Invalid start date.","Ungültiges Startdatum"
|
50 |
"The end date must be in the future.","Das Enddatum muss in der Zukunft liegen."
|
51 |
+
"Listed listings cannot be modified. Stop the listing first to make changes.","Aktive Produklisten können nicht verändert werden. Beenden Sie die Produklisten, um Änderungen vornehmen zu können."
|
52 |
"An error occurred while saving the configuration.","Ein Fehler trat beim Speichern der Konfiguration auf."
|
53 |
+
"ricardo.ch Service Model doesn't exists.","ricardo.ch Service Model existiert nicht."
|
54 |
"ricardo.ch API Credentials are not configured. Please, configure the extension before to proceed.","ricardo.ch API Daten sind nicht vorhanden. Bitte tragen Sie zunächst die Daten ein."
|
55 |
"API language provided for the Service Manager is not supported.","API Sprache für den Service Manager wird nicht unterstützt."
|
56 |
"Error while trying to connect to the ricardo.ch API. Please, check your log files.","Fehler beim Verbinden mit der ricardo.ch API. Bitte checken Sie Ihre Log Dateien, um eine genauere Fehlerbeschreibung zu erhalten."
|
59 |
"Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract.","Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract."
|
60 |
"The product has been sold","Das Produkt wurde verkauft."
|
61 |
"Customer creation failed! ricardo.ch transaction cannot be added.","Kunde konnte nicht angelegt werden. ricardo.ch Bestellung konnte nicht übertragen werden."
|
62 |
+
"Order automatically generated by the ricardo.ch Extension.","Bestellung(en) wurde(n) automatisch durch die ricardo.ch Extension erstellt."
|
63 |
"Payment is pending","Bezahlung ausstehend"
|
64 |
+
"Payment has been completed on ricardo.ch side","Bezahlung wurde bei ricardo.ch ausgeführt."
|
65 |
"Order canceled on ricardo.ch side","Bezahlung wurd bei ricardo.ch storniert."
|
66 |
"Country Code is not available. Please contact the author of this extension or support.","Ländercode ist nicht verfügbar. Bitte kontaktieren Sie den Autor dieses Moduls für Support."
|
67 |
"Report: %d success, %d warning(s), %d error(s)","Report: %d erfolgreich, %d Warnung(en), %d Fehler"
|
68 |
+
"Successful products checked are going to be listed. To force to list products having a warning, please <a href=""%s"">click here</a>. Products with an error won't be synchronized, you have to fix the problem first.","Erfolgreich geprüfte Produkte werden eingestellt. Um Produkte mit Warnungen einzustellen, klick Sie bitte <a href=""%s"">hier</a>. Produkte mit Fehlern werden nicht eingestellt, Sie müssen die Fehler zuerst beheben."
|
69 |
+
"The product is now live on ricardo.ch","Das Produkt ist nun auf ricardo.ch eingestellt."
|
70 |
"Sorry, the product has not been sold","Sorry, das Produkt wurde nicht verkauft."
|
71 |
+
"This item is already listed or has already a ricardo article Id. No insert done to ricardo.ch","Der Artikel ist bereits eingestellt oder hat bereits eine Artikelnummer bei ricardo.ch."
|
72 |
"The product has been removed from ricardo.ch","Das Produkt wurde bei ricardo.ch entfernt."
|
73 |
"The product has not been removed from ricardo.ch. Probably because someone bid the product or bought it.","Das Produkt wurde nicht bei ricardo.ch entfernt. Wahrscheinlich weil jemand für das Produkt geboten oder es gekauft hat."
|
74 |
"Report: %d success, %d error(s)","Report: %d erfolgreich, %d Fehler"
|
102 |
"Buy now","Sofort-Kaufen"
|
103 |
"Highest Price","Höchster Preis"
|
104 |
"Cumulative","Kumulativ"
|
105 |
+
"Pending","Ausstehend"
|
106 |
+
"Running","In Verarbeitung"
|
107 |
+
"Ready","Bereit"
|
108 |
+
"Completed","Abgeschlossen"
|
109 |
"Products Check Job","Produkt-Check Job"
|
110 |
+
"List Job","Einstellen-Job"
|
111 |
"Stop List Job","Stop Einstellen Job"
|
112 |
"Sync Order Job","Sync Bestellung Job"
|
113 |
"Relist Job","Reaktivierung Job"
|
124 |
"Product Title will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Titel wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
125 |
"Product Subtitle will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Untertitel wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
126 |
"Product Description will be cut after %s characters when published on ricardo.ch for store ""%s""","Produkt-Beschreibung wird nach %s Zeichen abgeschnitten, wenn auf ricardo.ch für Store ""%s"" veröffentlicht."
|
127 |
+
"Custom Options are not supported. Those won't be synchronized into ricardo.ch.","Individuelle Optionen werden nicht unterstützt. Sie werden nicht zu ricardo.ch übertragen und ignoriert."
|
128 |
+
"The product or its associated products is/are not in stock or doesn't have enough quantity in stock.","Das Hauptprodukt oder seine verknüpften Produkte sind nicht an Lager oder der Lagerbestand ist nicht hoch genug."
|
129 |
+
"You MUST define a ricardo category for this product. Check that you set it at products listing level or at Magento category level.","Sie müssen eine ricardo.ch-Kategorie für dieses Produkt wählen. Prüfen Sie, ob Sie das Produkt auf Produktliste-Ebene oder Magento-Kategorie-Ebene gesetzt haben."
|
130 |
+
"Payment and/or Shipping combination are not correct.","Zahlungsarten- und/oder Versand-Kombination sind nicht korrekt."
|
|
|
131 |
"You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s.","Sie können keinen Startpreis für eine Auktion von %2$s festlegen, wenn Sie ""Sofort-Kaufen"" mit dem Produktpreis von %1$s anbieten."
|
132 |
+
"Product Price of %s CHF is incorrect for a direct sales with credit card. Price must be between %s and %s.","Aus Sicherheitsgründen ist eine Kreditkarten-Zahlung bei Beträgen von CHF %s.- nicht möglich für ""Sofort-Kaufen"". Bitte wählen Sie eine andere Zahlungsart oder passen Sie den Preis an. Der Preis muss zwischen %s und %s liegen."
|
133 |
+
"The ending date is too early or too late. Minimum period allowed: %s days - Maximum period allowed: %s days","Das Enddatum ist zu früh oder zu spät. Erlaubte Zeitspanne: mindestens %s Tage – maximal %s Tage"
|
134 |
+
"You cannot use the privilege spaces as you do not have any pictures for this product.","Sie können keine Promotionen nutzen, da Sie keine Bilder für dieses Produkt hinterlegt haben."
|
135 |
"This increment value is not possible for this start price.","Der angegebene Erhöhungsschritt ist nicht möglich für diesen Startpreis."
|
136 |
"Only the following combinations are possible:","Nur die folgenden Kombinationen sind möglich:"
|
137 |
+
"Start price is between","Startpreis"
|
138 |
+
"Increment must be between","Erhöhungsschritt"
|
139 |
+
"This payment method combination is not possible.","Diese Zahlungsarten-Kombination ist nicht möglich."
|
140 |
"The following combinations are possible:","Die folgenden Kombinationen sind möglich:"
|
141 |
+
"It is not possible to combine ""Other"" shipping method with ""Credit Card"" payment method","Es ist nicht möglich, die Versandmethode ""Andere"" mit der Zahlungsart ""Kreditkarte"" zu kombinieren."
|
142 |
+
"No category will be displayed, the products listing doesn't exists. Please, close the window.","Keine Kategorie wird angezeigt, das Produktlisting existiert nicht. Bitte schließen Sie das Fenster."
|
143 |
"You are not allowed to save the products listing, so you cannot add products from a category. Please, close the window.","Sie dürfen dieses Produktlisting nicht speichern. Es können keine Produkte von einer Kategorie hinzufügen. Bitte schließen Sie das Fenster."
|
144 |
+
"Product(s) from the selected categories cannot be saved. The products listing doesn't exists.","Produkte von den gewählten Kategorien können nicht gespeichert werden. Die Produktliste existiert nicht."
|
145 |
+
"You are not allowed to save the products listing, so you cannot add products from a category.","Sie dürfen diese Produktliste nicht speichern. Es können keine Produkte von einer Kategorie hinzufügen. "
|
146 |
+
"%d product(s) added to the listing","%d Produkte zur Produkliste hinzugefügt."
|
147 |
"Error occurred while saving the product(s) from the selected categories. Please check your exception log.","Fehler traten auf während des Speicherns der gewählten Kategorien. Bitte prüfen Sie den Fehlerlog."
|
148 |
+
"The action you try to do, is not possible. You must authorize the API token. Please, go the <a href=""%s"">ricardo.ch Authorization</a> page to do the authorization process","Die Aktion, die Sie durchführen wollen, ist nicht möglich. Sie müssen zunächst den API Token authorisieren. Bitte gehen Sie zur <a href=""%s"">ricardo.ch Authorisierungsseite</a> um den Authorisierungsprozeß durchzuführen."
|
149 |
"Listing name and website must be specified.","Listingname und Webseite müssen definiert werden."
|
150 |
"We have detected and set for you the language configuration. Please, review it before to go further.","Wir haben die Sprache für Sie vorausgewählt. Bitte prüfen Sie, ob die Wahl richtig ist, bevor Sie fortfahren."
|
151 |
"The listing has been saved.","Das Listing wurde gespeichert."
|
153 |
"Listed listings cannot be deleted. Stop the listing first.","Aktive Listings können nicht gelöscht werden. Stoppen Sie die Listings zuerst."
|
154 |
"Listing deleted","Listing entfernt"
|
155 |
"%d products removed from listing","%d Produkte vom Listing entfernt."
|
156 |
+
"%d products are listed and could not be removed","%d Produkte sind eingestellt und können nicht entfernt werden."
|
157 |
+
"The API token and configuration are not ready to allow this action. Please, check that your token is enabled and not going to expire.","Der API Token und die Konfiguration sind nicht bereit für diese Aktion. Bitte prüfen Sie, dass der Token aktiv ist und die Gültigkeit nicht abläuft."
|
158 |
+
"A similar job is already running. This job won't be executed.","Es läuft bereits ein Vorgang. Ihre Aktion wird nicht ausgeführt."
|
159 |
+
"It's s not possible to start this job. You must authorize the API token. Please, go the <a href=""%s"">ricardo.ch Authorization</a> page to do the authorization process","Es ist nicht möglich, diese Aktion durchzuführen. Sie müssen den API Token zunächst authorisieren. Bitte gehen Sie zur <a href=""%s"">ricardo.ch Authorisierungsseite</a> um den Authorisierungsprozess durchzuführen."
|
160 |
+
"An error occurred while starting this job. Please check your log file.","Ein Fehler trat auf beim Start des Vorgangs. Bitte prüfen Sie den Fehlerlog."
|
161 |
"The job to check your products listing will start in few minutes. You can check the progression below.","Der Vorgang um Ihre Produktlistings zu überprüfen wird in wenigen Minuten starten. Sie können den Fortschritt unten einsehen."
|
162 |
+
"If it finishes with success, your products will be listed automatically otherwise you will have to choose if you want to keep going to list or fix potential issues.","Wenn erfolgreich beendet, werden Ihre Produkte automatisch eingestellt. Falls Fehler auftreten, müssen Sie entscheiden, ob das Einstellen fortgesetzt oder überprüft werden soll."
|
163 |
"There is no product ready to be listed. Please, add products to your products listing ""%s"".","Kein Produkt ist bereit um eingestellt zu werden. Bitte fügen Sie Produkt zu Ihrem Produktlisting ""%s"" hinzu."
|
164 |
"There is no pending product to check.","Kein zu prüfendes Produkt vorhanden"
|
165 |
+
"The job to list your products listing will start in few minutes.","Der Vorgang zum Einstellen Ihrer Produkte wird in wenigen Minuten beginnen."
|
166 |
"You can check the progression below.","Sie können den Fortschritten unten einsehen."
|
167 |
+
"There is no item to relist. Only products who have been sold on ricardo.ch can be relisted for the products listing %d.","Es gibt kein Produkt zum reaktivieren. Nur Produkte, die schon mal auf ricardo.ch.ch eingestellt wurden, können wieder aktiviert werden für das Produktlisting %d."
|
168 |
+
"Only listed product items can be stopped.","Nur eingestellte Produkte können deaktiviert werden."
|
169 |
"The job to stop to list your products will start in few minutes.","Der Vorgang um Ihre Produkte zu beenden wird in wenigen Minuten beginnen."
|
170 |
"Products listing(s) is/are successfully deleted.","Produktlisting(s) wurde(n) erfolgreich gelöscht."
|
171 |
+
"The following products listings IDs have not been deleted because they are still listed on ricardo.ch: %s","Die folgenden Produktlisting-IDs wurden nicht gelöscht, da Sie immer noch aktiv auf ricardo.ch eingestellt sind:"
|
172 |
+
"An error occurred while trying to delete the products listing(s). Please, check your exception log.","Beim Löschen des/der Produktlisting(s) trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog."
|
173 |
"No products selected.","Keine Produkte gewählt."
|
174 |
"The configuration has been saved successfully.","Die Konfiguration wurde erfolgreich gespeichert."
|
175 |
+
"An error occurred while saving the configuration. Please, check your log files for more details.","Beim Speichern der Konfiguration trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog für weitere Informationen."
|
176 |
+
"It's just a preview. Please, be aware that the display on ricardo.ch might be slightly different.","Dies ist nur eine Vorschau. Bitte denken Sie daran, dass die Darstellung auf ricardo.ch abweichen kann."
|
177 |
"Log(s) is/are successfully deleted.","Log(s) wurde(n) erfolgreich gelöscht."
|
178 |
+
"An error occurred while trying to delete the listing log(s). Please, check your exception log.","Beim Löschen der Listing-Logs trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog."
|
179 |
+
"Job(s) is/are successfully deleted.","Job erfolgreich gelöscht."
|
180 |
"The following job IDs have not been deleted because they are still running: %s","Die folgenden Aktions-IDs wurden nicht gelöscht, da Sie immer noch aktiv sind."
|
181 |
+
"An error occurred while trying to delete the job(s). Please, check your exception log.","Beim Löschen der Aktion(en) trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog."
|
182 |
"ricardo.ch API Signup","ricardo.ch API Anmeldung"
|
183 |
"API Signup","API Anmeldung"
|
184 |
"ricardo.ch Assistant Portal","ricardo.ch Verkäuferportal"
|
186 |
"Only Ajax call is allowed here.","Hier ist nur ein Ajax-Aufruf erlaubt."
|
187 |
"The website code returned from ricardo.ch is not correct! Your authorization has not been saved on our side.","Der Website Code von ricardo.ch ist nicht korrekt. Die Authorisierung konnte auf Seiten von Magento nicht gespeichert werden."
|
188 |
"Your ricardo.ch account has been authorized to get access to the API.","Ihr ricardo.ch-Konto wurde erfolgreich authorisiert, um Zugang zur API zu erhalten."
|
189 |
+
"An error occurred while saving the token. Please, check your log files.","Beim Speichern des Tokens trat ein Fehler auf. Bitte prüfen Sie den Fehlerlog."
|
190 |
"Authorization was not successful on ricardo.ch side. Please, contact ricardo.ch to find out the reason.","Die Authorisierung wurde von ricardo.ch zurückgewiesen. Bitte kontaktieren Sie ricardo.ch um den Grund zu erfahren."
|
191 |
"Sign Up to ricardo.ch API","Anmeldung zur ricardo.ch API"
|
192 |
"API Authorization","API Authorisierung"
|
193 |
"No Selection","Keine Auswahl"
|
194 |
"Open ricardo.ch Category Window","Öffne ricardo.ch Kategorien Fenster"
|
195 |
"Add products from selected categories","Füge Produkte von gewählten Kategorien hinzu"
|
196 |
+
"Only product types supported, enabled and not listed in other products listing will be added.","Nur Produkte, deren Typ unterstützt wird, die aktiv und nicht bereits eingestellt sind, werden hinzugefügt."
|
197 |
+
"Be aware, you have also to select the sub-categories, otherwise selecting only a top category won't allow to add products of its subcategories.","Bitte achten Sie darauf, auch die Unterkategorien zu wählen. Wenn Sie nur eine Oberkategorie wählen können Produkte nicht zu deren Unterkategorien hinzugefügt werden."
|
198 |
+
"Create new listing","Neue Prouduktliste erstellen"
|
199 |
"Show Synchronization Jobs","Zeige Synchronisierung-Aufträge"
|
200 |
"General","Allgemeine API Konfiguration"
|
201 |
"Products","Produkte"
|
210 |
"Status","Status"
|
211 |
"Action","Aktion"
|
212 |
"Preview","Vorschau"
|
213 |
+
"Configure","Konfigurieren"
|
214 |
"Remove","Löschen"
|
215 |
"Are you sure to remove this/these product(s)?","Sind Sie sicher, dass Sie diese Produkte löschen möchten?"
|
216 |
"Remove from list","Von der Liste löschen"
|
219 |
"This product has been configured for %s %s","Diese Produkte wurde konfiguriert für %s %s"
|
220 |
"The product has custom options, those will not be added to ricardo.ch!","Das Produkt hat individuelle Optionen, diese werden nicht zu ricardo.ch übertragen."
|
221 |
"ID","ID"
|
222 |
+
"Add selected product(s)","Fügen Sie die gewählten Produkte hinzu"
|
223 |
"Title","Titel"
|
224 |
+
"Website","Webseite"
|
225 |
"Language","Sprache"
|
226 |
"Product languages to synchronize to ricardo.ch","Produktsprachen, die mit ricardo.ch synchronisiert werden sollen."
|
227 |
+
"ricardo.ch supports only two languages at the moment: German and French. You can set in which language you want to publish your product content (title, subtitle, description, etc).","ricardo.ch unterstützt zur Zeit nur zwei Sprachen: Deutsch und Französisch. Sie können wählen, in welcher Sprache Sie die Produktinformationen übertragen möchten (Titel, Untertitel, Beschreibung, etc)."
|
228 |
"Default language to publish","Standardsprache bei der Veröffentlichung."
|
229 |
+
"Which language to publish by default to ricardo.ch when the product content is not available in a language?","Welche Sprache soll standarmässig zur Veröffentlichung bei ricardo.ch gewählt werden, wenn Produktinformationen in gewüschter Sprache nicht verfügbar sind?"
|
230 |
+
"Store View for %s","Shopansicht für %s"
|
231 |
"Payment Methods","Zahlungsarten"
|
232 |
+
"Payment Description German","Beschreibung Zahlungsarten Deutsch"
|
233 |
+
"Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other""","Zeichen: %s. Max. 5 000 Zeichen. Beschreibung der Zahlungsarten für Kunden. Diese Infos werden zu ricardo.ch nur übertragen, wenn Sie die Zahlungsart ""Andere"" wählen."
|
234 |
"Payment Description French","Beschreibung Zahlungsarten Französisch"
|
235 |
"Shipping Methods","Versandarten"
|
236 |
"Shipping Price","Versandkosten"
|
237 |
"Free shipping","kostenloser Versand"
|
238 |
+
"Is Shipping fee cumulative","Versandkosten einzeln verrechnen"
|
239 |
+
"If you select this option, the shipping fee will be calculate for each sold product.","Wenn Sie diese Option wählen, werden die Versandkosten für jedes verkaufte Produkt einzeln berechnet."
|
240 |
+
"e.g. an article is sold with a quantity of 3 to one customer and the shipping fee is 15 CHF. Total Shipping fee is 45 CHF. Let it empty if you don't such an option.","z.B. Ein Kunde kauft 3 Stück eines Artikels und die Versandkosten liegen bei jeweils 15 CHF. Die Versandkosten sind dann insgesamt 45 CHF. Lassen Sie das Feld leer, wenn Sie diese Option nicht wählen möchten."
|
241 |
"Shipping Availability","Verfügbarkeit des Artikels"
|
242 |
+
"Shipping Description German","Versandbeschreibung Deutsch"
|
243 |
"Characters: %s. Max. 5 000 characters","Zeichen: %s. Max. 5 000 Zeichen"
|
244 |
+
"Shipping Description French","Versandbeschreibung Französisch"
|
|
|
245 |
"Category","Kategorie"
|
246 |
"ricardo.ch Category","ricardo.ch Kategorie"
|
247 |
+
"Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)","Nutze Magento / ricardo.ch Kategorie-Mapping (wenn ein Mapping fehlt, wird eine Fehlermeldung ausgegeben, während die Synchronisierung zu ricardo.ch vorbereitet wird.)"
|
248 |
"Select ricardo.ch Category","Wähle ricardo.ch Kategorie"
|
249 |
"Select the category","Wähle Kategorie"
|
250 |
+
"Type of sales","Angebotsformat"
|
251 |
"Start price","Startpreis"
|
252 |
+
"Range from Fr. 0.05 to Fr. 1 000 000. If Credit card payment method available and enabled, the range is from Fr. 0.05 to Fr. 2 999.95.","Spanne von Fr. 0.05 bis Fr. 1 000 000. Wenn Kreditkarte als Zahlungsart verfügbar und aktiv, liegt die Spanne zwischen Fr. 0.05 und Fr. 2 999.95."
|
253 |
"Increment","Erhöhtungsschritt"
|
254 |
"Currency","Währung"
|
255 |
"Allow Direct Buy","Erlaube Sofort-Kaufen"
|
256 |
"Fill in the fieldset ""Buy now"" below to define the direct price settings. <strong>Note</strong>: if set to ""Yes"", the stock management will be set to ""Custom Qty"" with a value of 1.","Befüllen Sie das Feld ""Sofort-Kaufen"" unten, um den Sofort-Kaufen-Preis zu definieren. <strong>Hinweis</strong>: wenn auf ""Ja"" gestellt, wird die ""individuelle Verfügbarkeit"" auf 1 gestellt."
|
257 |
"Source","Quelle"
|
258 |
"Price Change","Preisspanne"
|
259 |
+
"For Fixed Price articles, the minimum price is Fr. 0.05 and maximum Fr. 2 999.95 if the Credit Card payment method is used.","Für Produkte mit Fixpreis ist der Mindestpreis Fr. 0.05 und der Maximalpreis Fr. 2 999.95 sofern die Zahlungsart Kreditkarte aktiviert ist."
|
260 |
+
"For Auction articles, the minimum amount is Fr. 0.1 and must be greater than the Start Price.","Für Auktionen der Mindest-Sofort-Kaufen Preis ist Fr. 0.1 und muss größer sein, als der Startpreis."
|
261 |
+
"If not correctly defined, the minimum and maximum values will be automatically set.","Wenn nicht korrekt definiert, werden die Mininal- und Maximal-Werte automatisch gesetzt."
|
262 |
"Schedule","Zeitplan"
|
263 |
"Start","Start"
|
264 |
"Starting date must start minimum in one hour and maximum 30 days in the future.","Der Verkauf kann frühestens in einer Stunde, spätestens in 30 Tagen starten."
|
265 |
"Start immediately","Sofort starten"
|
266 |
+
"Start from","Starte am"
|
267 |
"End","Ende"
|
268 |
"Ending date must finish at the minimum in 24 hours and maximum 10 days from the starting date.","Der Verkauf darf frühestens in 24 Stunden, spätestens 10 Tage nach dem Startdatum enden."
|
269 |
"End after %s days","Ende nach %s Tagen"
|
278 |
"Condition Product Source","Zustand des Produkts"
|
279 |
"Do you want to define the condition source from the ricardo.ch Condition Attribute if you defined it on product basis? Otherwise, if not found or you set here to ""No"", the default condition set above will be defined.","Möchten Sie den Zustand des Produkts über das Produktattribut bestimmen? Falls nicht und Sie hier ""Nein"" eintragen, wird der Standardwert aus dem Produktlisting übernommen."
|
280 |
"Warranty","Garantie"
|
281 |
+
"Warranty description German","Garantiebeschreibung Deutsch"
|
282 |
"Characters %s. Max. 5 000 characters","Zeichen %s. Max. 5 000 Zeichen"
|
283 |
+
"Warranty description French","Garantiebeschreibung Französisch"
|
284 |
"Stock Management","Lagerverwaltung"
|
285 |
+
"Range 1...999. If you use the product inventory option, the amount of items will be taken from the field ""Qty"" defined in the product inventory and limited to 999 if you have a quantity above this value.","Spanne 1 bis 999. Wenn Sie die Lagerhaltungs-Option nutzen, wird die Menge der Produkte mit dem Feld ""Menge"" befüllt. Die maximale Menge ist jedoch 999."
|
286 |
"Use product inventory","Nutze Lagerbestand des Produkts"
|
287 |
"Use custom qty","Nutze spezifizierte Menge"
|
288 |
+
"Customization","Personalisierung"
|
289 |
+
"Template","Vorlage"
|
290 |
+
"To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales"".","Um eine Vorlage zu erstellen, gehen Sie zu Ihrem <a href=""%s"">ricardo.ch Konto</a> in ""Meine Verkäufe""."
|
291 |
"Promotion","Promotion"
|
292 |
"Privilege Space","Promo-Fenster"
|
293 |
+
"PREMIUMHOMEPAGE","Promo-Fenster"
|
294 |
+
"Privilege space on main category page and search results. More information about this feature <a onclick=\window.open('%s');\"">here</a>""","Promo-Fenster auf der Hauptkategorieseite und Suchergebniss Seite. Mehr Informationen über dieses Feature finden Sie <a onclick=\window.open('%s');\"">hier</a>"""
|
295 |
"Home Privilege Space","Promo-Fenster Homepage"
|
296 |
"Privilege space on the homepage. More information about this feature <a onclick=""window.open('%s');"">here</a>","Promo-Fenster auf der Homepage. Mehr Informationen über dieses Feature bekommen Sie <a onclick=""window.open('%s');"">hier</a>"
|
297 |
"Home Space","Promo-Fenster Homepage"
|
298 |
"These options will not be activated for products having no picture.","Diese Option wird nicht aktiviert für Produkte ohne Bilder."
|
299 |
"Until sold","Bis ausverkauft"
|
300 |
+
"Listed items cannot be modified. Stop the listing first to make changes.","Eingestellte Produkte können nicht modifiziert werden. Beenden Sie zunächst das Listing um Änderungen vornehmen zu können."
|
301 |
"Back to the list ""%s""","Zurück zur Liste ""%s"""
|
302 |
"Configure product '%s'","Konfiguriere Produkt '%s'"
|
303 |
"Configure all %s selected products","Konfiguriere alle %s gewählten Produkte"
|
304 |
"No ricardo.ch category found","Keine ricardo.ch Kategorie gefunden"
|
305 |
"Give a name","Geben Sie einen Namen an"
|
306 |
"Select a website","Wählen Sie eine Website"
|
307 |
+
"The website(s) must be configured and enabled for this extension. If this field is empty or some are missing please <a href=""%s"">configure</a> the extension.","Die Website(s) müssen für diese Extension konfiguriert und aktiviert sein. Wenn dieses Feld leer ist oder etwas fehlt, <a href=""%s"">konfigurieren</a> Sie bitte die Extension."
|
308 |
"Cancel","Abbrechen"
|
309 |
+
"Listed products:","Eingestellte Produkte"
|
310 |
+
"Not listed products:","Nicht eingestellte Produkte"
|
311 |
"Add Product(s) from category","Füge Produkt(e) von der Kategorie hinzu"
|
312 |
"Add Product(s)","Füge Produkt(e) hinzu"
|
313 |
+
"Stop","Stopp"
|
314 |
+
"Remove article listed on ricardo.ch","Entferne auf ricardo.ch eingestellte Artikel"
|
315 |
+
"Check & List","Prüfen & Einstellen"
|
316 |
+
"Check & list only pending & error items","Prüfen & Einstellen wartender und fehlerhafter Artikel"
|
317 |
"List","Einstellen"
|
318 |
+
"List only ""Ready to list"" items","Nur Produkte einstellen, die den Status ""Fertig zum Einstellen"" haben"
|
319 |
"Edit Products Listing '%s'","Bearbeite Produktlisting '%s'"
|
320 |
"New Products Listing","Neues Produktlisting"
|
321 |
"Websites","Websites"
|
326 |
"View Logs","Siehe Logs"
|
327 |
"Change status","Ändere Status"
|
328 |
"Delete","Löschen"
|
329 |
+
"Are you sure that you want to delete this/these products listing(s)? Be aware it\'s not possible when the listing is ""Listed""","Sind Sie sicher, dass Sie die Produktlisting(s) löschen möchten? Beachten Sie, das nur aktive Listen gelöscht werden können."
|
330 |
"Products Listing Log ""%s""","Produktlistings Log ""%s"""
|
331 |
"Edit ""%s""","Bearbeite ""%s"""
|
332 |
"Job ID","Job ID"
|
339 |
"Job Type","Job Typ"
|
340 |
"Job Message","Job Nachricht"
|
341 |
"Current Progress","Aktueller Fortschritt"
|
342 |
+
"Started at","Gestartet am"
|
343 |
"Ended at","Beendet am"
|
344 |
"Are you sure that you want to delete this/these job(s)?","Sind Sie sicher, dass Sie diese Vorgänge löschen möchten?"
|
345 |
"Show Products Listing","Zeige Produktlisting"
|
350 |
"You may also access to the %s content of this page</a> in a new window.","Sie können den %s Inhalt dieser Seite auch </a> in einem neuen Fenster bearbeiten."
|
351 |
"Your ricardo.ch API token credentials are going to expire in %s days for the website ""%s"".","Ihre ricardo.ch-API-Token-Daten laufen in %s Tagen für diese Webseite ""%s"" ab."
|
352 |
"No ricardo.ch API Authorization have been found for the website ""%s"".","Keine ricardo.ch-API-Authorisierung wurde für diese Website ""%s"" gefunden."
|
353 |
+
"You have to authorize your account to get access to the ricardo.ch API thanks to the <a href=""%s"">ricardo.ch Authorization Page</a>. If you don't do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked."," Sie müssen Ihr Konto authorisieren, um Zugang zur ricardo.ch-API zu bekommen. Sie können das mittels der <a href=""%s"">ricardo.ch Authorisierungsseite</a> tun. Wenn Sie das nicht tun, werden alle Aufrufe von und zu ricardo.ch blockiert."
|
354 |
"To hide this message, you have to <a href=""%s"">disable the extension</a>.","Um diese Nachricht zu verbergen, müssen Sie die Extension <a href=""%s"">deaktivieren</a>."
|
355 |
"The Official ricardo.ch Extension has been installed.","Die offizielle ricardo.ch Extension wurde installiert."
|
356 |
"Please, click <a href=""%s"">here to configure</a> the access to the ricardo.ch API.","Bitte klicken Sie <a href=""%s"">hier</a> um den Zugang zur ricardo.ch API zu konfigurieren."
|
357 |
"Latest message for the selected job","Letzte Nachricht für den gewählten Vorgang"
|
358 |
+
"<a href=""%s"">Edit</a> your products listing if needed","<a href=""%s"">Bearbeiten</a> Sie Ihre Produktlistings, wenn notwendig"
|
359 |
"No message found.","Keine Nachricht gefunden."
|
360 |
+
"Confirm","Bestätigen"
|
361 |
"More Views","Mehr Ansichten"
|
362 |
"%s days 0:0:0","%s Tage 0:0:0"
|
363 |
"Starting price","Startpreis"
|
364 |
+
"Place a bit","Gebot abgeben"
|
365 |
"Quantity","Anzahl"
|
366 |
"of %s","von %s"
|
367 |
"Details","Details"
|
379 |
"Shipping Price:","Versandkosten:"
|
380 |
"Shipping Availability:","Versandverfügbarkeit:"
|
381 |
"Shipping Description (CH):","Versandkosten Beschreibung (CH):"
|
382 |
+
"You must select a ricardo.ch Category if you set this option","Sie müssen eine ricardo.ch-Kategorie wählen, um diese Option zu aktivieren"
|
383 |
"The task will start few minutes","Der Vorgang wird in ein paar Minuten starten"
|
384 |
"No progress","Kein Fortschritt"
|
385 |
"The product list has been stopped.","Die Produktliste wurde beendet."
|
|
|
386 |
"ricardo.ch Lifetime Sales","ricardo.ch Gesamtumsatz"
|
387 |
"Turnover per month","Umsatz pro Monat"
|
388 |
"Best Sellers","Meistverkaufte Produkte"
|
389 |
+
"Qty sold","Verkaufte Menge"
|
390 |
+
"Product Name","Produktbezeichnung"
|
391 |
"SKU","SKU"
|
392 |
"Price","Preis"
|
393 |
"Your ricardo.ch API Token","Ihre ricardo.ch API Token"
|
394 |
+
"PREMIUMCATEGORYBRONZE","Klein"
|
395 |
+
"PREMIUMCATEGORYSILVER","Mittel"
|
396 |
+
"PREMIUMCATEGORYGOLD","Groß"
|
|
|
|
|
397 |
"TYPE_BANK_TRANSFER","Banküberweisung"
|
398 |
+
"TYPE_CASH","Barzahlung"
|
399 |
"TYPE_CREDIT_CARD","Kreditkarte via ricardo.ch"
|
400 |
+
"TYPE_OTHER","Andere Zahlungsmethoden"
|
|
|
401 |
"UNKNOWNPROPERTY","Unbekannter Besitzer"
|
402 |
"CUSTOMERNOTARTICLEOWNER","Der Kunde darf das Produkt nicht bearbeiten, da er nicht der Besitzer ist."
|
403 |
"CHECKPASSWORDWRONGPASSWORD","Das Passwort ist falsch."
|
409 |
"TOKENEXPIRED","Token ausgelaufen für API "
|
410 |
"ANONYMOUSNOTALLOWED","Anonymer Aufruf ist nicht erlaubt"
|
411 |
"TEMPORAYCREDENTIALEXPIRED","temporärer Zugang abgelaufen für API"
|
412 |
+
"TEMPORAYCREDENTIALUNVALIDATED","temporärer Zugang für API nicht gültig"
|
413 |
"SESSIONEXPIRED","Session abgelaufen"
|
414 |
"UPDATEPASSWORDPOLICYINVALID","CustomerUpdatePassword wird mit einem Passwort mit invaliden Bedingungen genutzt. Es müssen mindestens 8 Zeichen sein, davon mindestens ein Großbuchstabe und ein Nicht-Alphanumerisches Zeichen."
|
415 |
"AFTOKENERROR","Anti Forgery token error "
|
420 |
"ACCOUNTCLOSED","Das Kundenkonto wurde geschlossen."
|
421 |
"METHODNOTALLOWED","Die Partnerschaft stimmt nicht mit der gewählten Methode überein."
|
422 |
"TOKEN_AUTHORIZATION","Die Authorisierung muss nochmal durchgeführt werden"
|
|
|
423 |
"CLOSEAUCTIONFAILED","Auktion konnte nicht geschlossen werden"
|
424 |
"CLOSECLASSIFIEDFAILED","Ein Produkt konnte nicht klassifiziert werden"
|
425 |
"DELETEPLANNEDFAILED","Ein Produkt konnte nicht gelöscht werden"
|
430 |
"CUSTOMERNOTFOUND","Kunde nicht gefunden"
|
431 |
"EMPTYIPADDRESS","Die IP Adresse ist nicht definiert"
|
432 |
"TECHNICALPROBLEM","Technischer Fehler"
|
433 |
+
"ARTICLESAMOUNTLIMIT","Limite für die Menge pro Übertragung liegt bei 100 "
|
434 |
"LISTOFARTICLESEMPTY","Liste der Produkte ist leer"
|
435 |
"UNKNOWNCATEGORYNAME","Kategoriename ist nicht bekannt"
|
436 |
+
"EMPTYCOUNTRYID","Länder ID darf nicht leer sein."
|
437 |
+
"EMPTYPARTNERID","Partner ID darf nicht leer sein."
|
438 |
+
"EMPTYCATEGORY","Kategorie darf nicht leer sein."
|
439 |
+
"EMPTYRELISINFOS","Reaktivierungsinformation fehlt"
|
|
|
440 |
"EMPTYCUSTOMER","Ein technischer Fehler ist aufgetreten. Wir bitten Sie um Entschuldigung. Bitte versuchen Sie es später nochmals oder kontaktieren Sie unseren Kundendienst."
|
441 |
+
"UNKNOWNPARTNERID","Unbekannte Partnerschaft"
|
442 |
+
"UNKONWNCATEGORYID","Die übergebene Kategorie ID existiert nicht"
|
443 |
"INVALIDDURATION","Die angefragte Dauer ist nicht möglich."
|
444 |
+
"RELISTCOUNTEXCEEDED","Bitte beachten Sie, dass Sie ein Artikel höchstens 9 Mal reaktiviert werden kann. "
|
445 |
"STARTPRICETOOHIGH","Bitte setzen Sie einen Startpreis, der gleich oder tiefer als CHF 10 000 000 000 ist."
|
446 |
"STARTPRICETOOLOW","Bitte setzen Sie einen Startpreis, der gleich oder höher als CHF 0.05 ist."
|
447 |
"INVALIDARTICLETYPEFORCATEGORY","Bitte beachten Sie, dass diese Kategorie-Änderung nicht erlaubt ist."
|
449 |
"CATEGORYDEDICATEDTOUSERS","Leider können Sie in dieser Kategorie keine Artikel einstellen. Bitte wählen Sie eine andere Kategorie aus oder kontaktieren Sie unseren Kundendienst."
|
450 |
"INVALIDTEMPLATEID","Bitte überprüfen Sie ob die ausgewählte Vorlage in Ihrem My Ricardo vorhanden ist."
|
451 |
"EMPTYTITLE","Bitte tragen Sie einen Titel in das entsprechende Feld ein."
|
452 |
+
"EMPTYDESCRIPTION","Bitte tragen Sie eine Artikelbeschreibung in das entsprechende Feld ein."
|
453 |
"EMPTYSUBTITLE","Bitte tragen Sie einen Untertitel in der zweiten Sprache ein."
|
454 |
"TOOLONGTITLE","Bitte beachten Sie, dass der Titel nicht mehr als 40 Zeichen enthalten darf."
|
455 |
"TOOLONGDESCRIPTION","Bitte beachten Sie, dass Ihre Artikel-Beschreibung nicht mehr als 65'000 Zeichen enthalten darf."
|
468 |
"NODELIVERYCONDITION","Bitte wählen Sie eine Versandart aus. "
|
469 |
"DELIVERYCOSTTOOHIGH","Die von Ihnen definierte Versandkosten sind zu hoch. Bitte wählen Sie einen Betrag der kleiner ist als CHF 210'000."
|
470 |
"MANUALINCREMENTNOTALLOWED","Der Erhöhungschritt kann nicht manuell definiert werden."
|
471 |
+
"PLANNEDSCHEDULETOOLOW","Die geplante Startzeit muss mindestens eine Stunde in der Zukunft liegen."
|
472 |
"PLANNEDSCHEDULETOOHIGH","Die von Ihnen definierte ""Startzeit"" für das Einstellen des Artikels liegt zuweit in der Zukunft. Bitte planen Sie max. 30 Tage im Voraus. "
|
473 |
+
"REFERENCETOOLONG","Die von eingegebene Referenznummer ist zu lang. Bitte wählen Sie eine Referenznummer mit maximal 40 Zeichen."
|
474 |
+
"INVALIDQUANTITYFORAUCTIONBUYNOW","Bitte beachten Sie, dass die Option Sofort-Kaufen nur bei Angeboten mit der Stückzahl 1 gewählt werden kann."
|
475 |
"BUYNOWLOWERTHANSTARTPRICE","Bitte setzen Sie einen Sofort-Kaufen-Preis, der höher als Ihr Startpreis ist."
|
476 |
"RICARDOPAYNOCARSANDBIKES","Über ricardo.ch können keine Autos oder Fahrräder verkauft werden"
|
477 |
+
"RICARDOPAYWRONGPAYMENTCONDITIONS","Die gewählte Zahlungsart kann nicht mit der Kreditkartenzahlung kombiniert werden. Bitte wählen Sie eine andere Methode aus."
|
478 |
"RICARDOPAYPRICETOOHIGH","Der Preis ist zu hoch."
|
479 |
"RICARDOPAYWALLETBLOCKED","Das ricardo.ch Pay-Wallet wurde blockiert."
|
480 |
"MAXPICTURESIZEREACHED","Bitte beachten Sie, dass die gesamte Grösse für das Hochladen Ihrer Bilder auf 20 MB beschränkt ist. "
|
481 |
"ERRORRESIZINGPICTURE","Während der Verarbeitung Ihrer Bilder ist ein Fehler aufgetreten. Wir bitten Sie um Entschuldigung."
|
482 |
+
"MAXPICTURESCOUNTREACHED","Bitte beachten Sie, dass die maximale Anzahl Bilder pro Artikel auf 10 beschränkt ist."
|
483 |
"INVALIDPROMOTION","Ungültige Promotion."
|
484 |
"INVALIDPROMOTIONCOMBINATION","Bitte beachten Sie, dass die mehrfache Auswahl von Anzeigepaketen nicht möglich ist. "
|
485 |
+
"NOTCLOSED","Die Bezahloption „Kreditkartenzahlung“ steht für Autozubehör nicht zur Verfügung. Bitte deaktivieren Sie diese Option."
|
486 |
"EMPTYARTICLEINFOS","Bitte wählen Sie eine Option, um den Zustand Ihres Artikels zu definieren."
|
487 |
"EMPTYDELIVERY","Bitte wählen Sie eine Versandart aus."
|
488 |
"EMPTYPROMOTIONS","Bitte tragen Sie eine Beschreibung für Ihren Artikel in das entsprechende Feld ein."
|
554 |
"CANTUPDATEPICTUREONARTICLEWITHBID","Das Bild kann bei einem Angebot das bereits Gebote erhalten hat nicht aktualisiert werden."
|
555 |
"HTMLTAGSNOTALLOWED","Bitte beachten Sie, dass HTML-Tags in diesem Beschreibungsfeld nicht unterstützt werden"
|
556 |
"WRONGPAYMENTCONDITIONS","Falsche Zahlungsarten"
|
557 |
+
"EMPTYPAYMENTCONDITIONIDS","Fehlende Zahlungsarten"
|
558 |
+
"NODETAILS","Keine Details verfügbar."
|
559 |
+
"ARTICLEALREADYHASCARDPAYMENT","Produkt hat bereits eine Zahlungsart."
|
560 |
"ERRORINSERTINGCARDPAYMENT","Fehler bei der Eingabe der Kartenzahlung."
|
561 |
"ARTICLEDOESNOTHAVECARDPAYMENT","Produkt hat keine Kartenzahlung."
|
562 |
"ERRORREMOVINGCARDPAYMENT","Fehler beim Entfernen der Kartenzahlung"
|
563 |
+
"RICARDOPAYNOTACTIVATED","ricardo.ch PayU ist nicht aktiviert."
|
564 |
+
"EMPTYPAYMENTMETHODSIDS","Leere Zahlungsart-ID"
|
565 |
+
"EMPTYARTICLEID","Leere Produkt-ID"
|
566 |
"INVALIDCARDCOMBINATIONWITHDELIVERYCONDITION","Ungültige Karte in Kombination mit den Versandkonditionen"
|
567 |
"NUMBEROFARTICLELIMITED","Anzahl der Produkte ist limitiert."
|
568 |
"PAYMENTMETHODNEEDALTERNATEONE","Alternative Zahlungsart notwendig."
|
569 |
+
"WRONGPAYMENTMETHODS","Falsche Zahlungsart"
|
570 |
+
"CUMULATIVESHIPPINGNOTALLOWED","Kumulative Versandkosten nicht erlaubt."
|
|
|
571 |
"MAXPICTURESCOUNTREACHED","maximale Bilderanzahl erreicht"
|
572 |
"MAXPICTURESIZEREACHED","maximale Bildgröße erreicht"
|
573 |
"ERRORRESIZINGPICTURE","Fehler bei der Grössenänderung der Bilder"
|
577 |
"INVALIDPICTUREINDEX","ungültiger Bildindex"
|
578 |
"MAXLOGOPICTURESIZEREACHED","maximale Logogröße erreicht"
|
579 |
"ERRORRESIZINGLOGOPICTURE","Fehler bei der Größenänderung des Logos"
|
|
|
580 |
"NOTALLOWEDTOSELL","Produkt nicht erlaubt zu verkaufen"
|
581 |
"BILLINGERROR","BILLINGERROR"
|
582 |
"GETCUSTOMERERROR","GETCUSTOMERERROR"
|
641 |
"UNABLETOINSERT","UNABLETOINSERT"
|
642 |
"CREDITLIMITEXCEEDED","Kreditlimit erreicht. Bitte, kontaktieren Sie ricardo.ch"
|
643 |
"ACTIVATIONCODESTATUSMANUALLYBLOCKED","ACTIVATIONCODESTATUSMANUALLYBLOCKED"
|
|
|
644 |
"No Options because API is not configured","No Options because API is not configured"
|
645 |
"No Options because API has a problem","No Options because API has a problem"
|
646 |
+
"Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>.","Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>."
|
647 |
+
"Security error occurred with the ricardo API. Please, check your log files.","Security error occurred with the ricardo API. Please, check your log files."
|
648 |
"Error occurred with the API. Check if the API is correctly configured: %s","Error occurred with the API. Check if the API is correctly configured: %s"
|
649 |
+
"Product Price of %s CHF is incorrect. Minimum price is %s.","Produktpreis von Fr. %s ist falsch. Minimum Preis ist Fr. %s."
|
650 |
"You cannot reactivate a product until sold out when doing an auction sales type.","You cannot reactivate a product until sold out when doing an auction sales type."
|
651 |
"Following error(s) appeared:","Following error(s) appeared:"
|
652 |
"<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction""","<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction"""
|
653 |
+
"The authorization of the ricardo.ch API Token can be done only %s before the expiration. You will receive automatically an email when it will be possible.","The authorization of the ricardo.ch API Token can be done only %s before the expiration. You will receive automatically an email when it will be possible."
|
654 |
+
"Merge Descriptions","Beschreibungen zusammenführen"
|
655 |
+
"Merge short and normal descriptions as one content for ricardo product description. The short description will be the first part and the normal description will be the second part of the ricardo article description.","Beschreibung und Kurzbeschreibung zusammenführen und als eine Artikelbeschreibung auf ricardo.ch veröffentlichen. Die Kurzbeschreibung wird der erste Teil und die normale Beschreibung der zweite Teil der ricardo.ch Artikelbeschreibung sein."
|
656 |
+
"Only 10 pictures maximum allowed.","Maximal 10 Bilder erlaubt."
|
657 |
+
"The starting date must start one hour in future. It will be automatically updated to list on ricardo.","Das Startdatum muss mindestens eine Stunde in der Zukunft liegen. Es wird automatisch angepasst."
|
658 |
+
"Enter product name: e.g. iphone","Produktbezeichnung eingeben (z.B. Iphone)"
|
659 |
+
"Sorry, no product found for fees calculation.","Es wurden keine Artikel gefunden um die Gebühren zu berechnen."
|
660 |
+
"Please, close this popup window and fix the errors before to be allowed to list your products on ricardo.ch.","Bitte schliessen Sie dieses Fenster und beheben Sie die Fehler, damit die Artikel auf ricardo.ch eingestellt werden können."
|
661 |
+
"Product Listing Configuration","Konfiguration Produklisting"
|
662 |
+
"Currency Conversion","Währungsumrechnung"
|
663 |
+
"The store's base currency is %2$s. Only %1$s is allowed as currency on ricardo.ch. Be aware that your product will be converted into %1$s. Check the documentation for more explanation.","Die Webshop Standard-Währung ist %2$s. Auf ricardo.ch kann nur in %1$s eingestellt werden. Bitte beachten Sie, dass alle Preise in %1$s umgerechnet werden. Lesen Sie die Dokumentation für weitere Erklärungen."
|
664 |
+
"Currency Rate not configured","Wechselkurs nicht konfiguriert"
|
665 |
+
"Currency Rate not defined for CHF currency. Please configure your currency rate before to proceed.","Wechselkurs nicht definiert für CHF. Bitte konfigurieren Sie den Wechselkurs bevor Sie weiterfahren."
|
666 |
+
"Replace Carriage Return with br HTML Tag","Zeilenumbrüche umwandeln um Abstände beizubehalten"
|
667 |
+
"Do you want to replace into the description the carriage return with <br> HTML Tag?","Wollen Sie Zeilenumbrüche in HTML Tags des Typs <br> umwandeln? Dadurch werden die Abstände zwischen ihren Textblöcken beibehalten."
|
668 |
+
"Product listing & promotion","Produktliste & Promotionen"
|
669 |
+
"Total price","Gesamtpreis"
|
670 |
+
"Important","Wichtig"
|
671 |
+
"Listing Fees","Einstellgebühren"
|
672 |
+
"ricardo.ch does invoices in %s","ricardo.ch verrechnet ausschliesslich in %s"
|
673 |
+
"Sales Fee (following the <a href=""%s"" target=""_blank"">fees rules from 01.07.2014</a>)","Abschlussgebühren (gemäss <a href=""%s"" target=""_blank"">Gebührenreglement vom 01.07.2014</a>)"
|
674 |
+
"With the confirmation of the publication, you accept the <a href=""%s"" target=""_blank"">terms and conditions</a> and <a href=""%s"" target=""_blank"">privacy policy</a>","Mit dem Bestätigen und Publizieren akzeptiere ich die <a href=""%s"" target=""_blank"">AGB</a>und die <a href=""%s"" target=""_blank"">Datenschutzerklärung</a> von ricardo.ch"
|
675 |
+
"Confirm, check and List","Bestätigen, Prüfen und Einstellen"
|
676 |
+
"Send us your configuration","Senden Sie uns Ihre Konfiguration"
|
677 |
+
"Export your configuration","Ihre Konfiguration exportieren"
|
678 |
+
"Receive email notification in case of error? Email are sent to the main shop contact and are related to API errors, Token expiration, etc...","Möchten Sie über Fehler per Email benachrichtigt werden? Emails werden an die Email Adresse des allgemeinen Kontaktes in Magento versendet im Falle von API Fehlermeldungen, Ablauf von Token, etc…"
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!--@subject Diglin - Support ricardo.ch extension from shop {{var shopname}} @-->
|
2 |
+
Hi,
|
3 |
+
|
4 |
+
Please find in attachment the configuration for a support on the ricardo extension for the shop {{var shopname}}:
|
5 |
+
|
6 |
+
{{var message}}
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!--@subject ricardo.ch API Authorisation renewal for your Magento shop @-->
|
2 |
+
Dear Admin,
|
3 |
+
|
4 |
+
You have to authorize your account to get access to the ricardo.ch API thanks to the ricardo.ch Authorization Page.
|
5 |
+
If you don't do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked.
|
6 |
+
|
7 |
+
Please, log in to your <a href="{{var shop_url}}">Magento backend page</a> to follow the instructions displayed in the banner notification.
|
8 |
+
|
9 |
+
Best regards
|
@@ -14,13 +14,7 @@
|
|
14 |
"Merge Order","Merge Order"
|
15 |
"If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?","If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?"
|
16 |
"Shipping Calculation","Shipping Calculation"
|
17 |
-
"You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>
|
18 |
-
""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>
|
19 |
-
""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.
|
20 |
-
","You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>
|
21 |
-
""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>
|
22 |
-
""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.
|
23 |
-
"
|
24 |
"Send Account Creation Confirmation Email","Send Account Creation Confirmation Email"
|
25 |
"Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?","Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?"
|
26 |
"Send Email for new order","Send Email for new order"
|
@@ -132,7 +126,6 @@
|
|
132 |
"Product Description will be cut after %s characters when published on ricardo.ch for store ""%s""","Product Description will be cut after %s characters when published on ricardo.ch for store ""%s"""
|
133 |
"Custom Options are not supported. Those won\'t be synchronized into ricardo.ch.","Custom Options are not supported. Those won\'t be synchronized into ricardo.ch."
|
134 |
"The product or its associated products is/are not in stock or doesn\'t have enough quantity in stock.","The product or its associated products is/are not in stock or doesn\'t have enough quantity in stock."
|
135 |
-
"Only %s currency is supported. No conversion will be done.","Only %s currency is supported. No conversion will be done."
|
136 |
"You MUST define a ricardo category for this product. Check that you set it at products listing level or at Magento category level.","You MUST define a ricardo category for this product. Check that you set it at products listing level or at Magento category level."
|
137 |
"Payment and/or Shipping combination are not correct.","Payment and/or Shipping combination are not correct."
|
138 |
"You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s.","You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s."
|
@@ -175,7 +168,7 @@
|
|
175 |
"Only listed product items can be stopped.","Only listed product items can be stopped."
|
176 |
"The job to stop to list your products will start in few minutes.","The job to stop to list your products will start in few minutes."
|
177 |
"Products listing(s) is/are successfully deleted.","Products listing(s) is/are successfully deleted."
|
178 |
-
"The following products listings IDs have not been deleted because they are still listed on ricardo.ch:
|
179 |
"An error occurred while trying to delete the products listing(s). Please, check your exception log.","An error occurred while trying to delete the products listing(s). Please, check your exception log."
|
180 |
"No products selected.","No products selected."
|
181 |
"The configuration has been saved successfully.","The configuration has been saved successfully."
|
@@ -184,7 +177,7 @@
|
|
184 |
"Log(s) is/are successfully deleted.","Log(s) is/are successfully deleted."
|
185 |
"An error occurred while trying to delete the listing log(s). Please, check your exception log.","An error occurred while trying to delete the listing log(s). Please, check your exception log."
|
186 |
"Job(s) is/are successfully deleted.","Job(s) is/are successfully deleted."
|
187 |
-
"The following job IDs have not been deleted because they are still running:
|
188 |
"An error occurred while trying to delete the job(s). Please, check your exception log.","An error occurred while trying to delete the job(s). Please, check your exception log."
|
189 |
"ricardo.ch API Signup","ricardo.ch API Signup"
|
190 |
"API Signup","API Signup"
|
@@ -230,11 +223,11 @@
|
|
230 |
"Title","Title"
|
231 |
"Website","Website"
|
232 |
"Language","Language"
|
233 |
-
"Product languages to synchronize to ricardo.ch
|
234 |
-
"ricardo.ch
|
235 |
"Default language to publish","Default language to publish"
|
236 |
-
"Which language to publish by default to ricardo.ch
|
237 |
-
"Store View for
|
238 |
"Payment Methods","Payment Methods"
|
239 |
"Payment Description German","Payment Description German"
|
240 |
"Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other""","Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other"""
|
@@ -249,7 +242,6 @@
|
|
249 |
"Shipping Description German","Shipping Description German"
|
250 |
"Characters: %s. Max. 5 000 characters","Characters: %s. Max. 5 000 characters"
|
251 |
"Shipping Description French","Shipping Description French"
|
252 |
-
"The store's base currency is {$storeCurrency}. Only %s is allowed as currency. No currency conversion will be proceed.","The store's base currency is {$storeCurrency}. Only %s is allowed as currency. No currency conversion will be proceed."
|
253 |
"Category","Category"
|
254 |
"ricardo.ch Category","ricardo.ch Category"
|
255 |
"Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)","Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)"
|
@@ -298,6 +290,7 @@
|
|
298 |
"To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales"".","To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales""."
|
299 |
"Promotion","Promotion"
|
300 |
"Privilege Space","Privilege Space"
|
|
|
301 |
"Privilege space on main category page and search results. More information about this feature <a onclick=\"window.open('%s');\">here</a>","Privilege space on main category page and search results. More information about this feature <a onclick=\"window.open('%s');\">here</a>"
|
302 |
"Home Privilege Space","Home Privilege Space"
|
303 |
"Privilege space on the homepage. More information about this feature <a onclick=\"window.open('%s');\">here</a>","Privilege space on the homepage. More information about this feature <a onclick=\"window.open('%s');\">here</a>"
|
@@ -333,7 +326,7 @@
|
|
333 |
"View Logs","View Logs"
|
334 |
"Change status","Change status"
|
335 |
"Delete","Delete"
|
336 |
-
"Are you sure that you want to delete this/these products listing(s)? Be aware it\'s
|
337 |
"Products Listing Log ""%s""","Products Listing Log ""%s"""
|
338 |
"Edit ""%s""","Edit ""%s"""
|
339 |
"Job ID","Job ID"
|
@@ -390,16 +383,21 @@
|
|
390 |
"The task will start few minutes","The task will start few minutes"
|
391 |
"No progress","No progress"
|
392 |
"The product list has been stopped.","The product list has been stopped."
|
393 |
-
|
394 |
-
"
|
395 |
-
"
|
396 |
-
"
|
397 |
-
|
398 |
-
"
|
399 |
-
"
|
400 |
-
"
|
401 |
-
"
|
402 |
-
|
|
|
|
|
|
|
|
|
|
|
403 |
"UNKNOWNPROPERTY","Unknow Property"
|
404 |
"CUSTOMERNOTARTICLEOWNER","The current customer can't act on the article as he's not the owner "
|
405 |
"CHECKPASSWORDWRONGPASSWORD","The CheckPassword is used with a wrong password "
|
@@ -422,7 +420,6 @@
|
|
422 |
"ACCOUNTCLOSED","The account linked to the customer has been closed"
|
423 |
"METHODNOTALLOWED","The Partnership used is not allowed to use this method"
|
424 |
"TOKEN_AUTHORIZATION","The authorization of the token must be again requested"
|
425 |
-
|
426 |
"CLOSEAUCTIONFAILED","Failed to close the auction"
|
427 |
"CLOSECLASSIFIEDFAILED","Failed to close a classified article"
|
428 |
"DELETEPLANNEDFAILED","Failed to delete planned article"
|
@@ -436,7 +433,6 @@
|
|
436 |
"ARTICLESAMOUNTLIMIT","Limit for amount of articles per 1 push is 100 "
|
437 |
"LISTOFARTICLESEMPTY","list of article empty"
|
438 |
"UNKNOWNCATEGORYNAME","Category name specified is unknown"
|
439 |
-
|
440 |
"EMPTYCOUNTRYID","EMPTYCOUNTRYID"
|
441 |
"EMPTYPARTNERID","EMPTYPARTNERID"
|
442 |
"EMPTYCATEGORY","EMPTYCATEGORY"
|
@@ -572,7 +568,6 @@
|
|
572 |
"PAYMENTMETHODNEEDALTERNATEONE","PAYMENTMETHODNEEDALTERNATEONE"
|
573 |
"WRONGPAYMENTMETHODS","WRONGPAYMENTMETHODS"
|
574 |
"CUMULATIVESHIPPINGNOTALLOWED","CUMULATIVESHIPPINGNOTALLOWED"
|
575 |
-
|
576 |
"MAXPICTURESCOUNTREACHED","MAXPICTURESCOUNTREACHED"
|
577 |
"MAXPICTURESIZEREACHED","MAXPICTURESIZEREACHED"
|
578 |
"ERRORRESIZINGPICTURE","ERRORRESIZINGPICTURE"
|
@@ -582,7 +577,6 @@
|
|
582 |
"INVALIDPICTUREINDEX","INVALIDPICTUREINDEX"
|
583 |
"MAXLOGOPICTURESIZEREACHED","MAXLOGOPICTURESIZEREACHED"
|
584 |
"ERRORRESIZINGLOGOPICTURE","ERRORRESIZINGLOGOPICTURE"
|
585 |
-
|
586 |
"NOTALLOWEDTOSELL","Product Not allowed to be sold"
|
587 |
"BILLINGERROR","BILLINGERROR"
|
588 |
"GETCUSTOMERERROR","GETCUSTOMERERROR"
|
@@ -647,13 +641,38 @@
|
|
647 |
"UNABLETOINSERT","UNABLETOINSERT"
|
648 |
"CREDITLIMITEXCEEDED","Credit limit exceeded. Please contact ricardo.ch"
|
649 |
"ACTIVATIONCODESTATUSMANUALLYBLOCKED","ACTIVATIONCODESTATUSMANUALLYBLOCKED"
|
650 |
-
|
651 |
"No Options because API is not configured","No Options because API is not configured"
|
652 |
"No Options because API has a problem","No Options because API has a problem"
|
653 |
-
"Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>.",
|
654 |
-
"Security error occurred with the ricardo API. Please, check your log files.",
|
655 |
"Error occurred with the API. Check if the API is correctly configured: %s","Error occurred with the API. Check if the API is correctly configured: %s"
|
656 |
"Product Price of %s CHF is incorrect. Minimum price is %s.","Product Price of %s CHF is incorrect. Minimum price is %s."
|
657 |
"You cannot reactivate a product until sold out when doing an auction sales type.","You cannot reactivate a product until sold out when doing an auction sales type."
|
658 |
"Following error(s) appeared:","Following error(s) appeared:"
|
659 |
"<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction""","<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
"Merge Order","Merge Order"
|
15 |
"If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?","If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?"
|
16 |
"Shipping Calculation","Shipping Calculation"
|
17 |
+
"You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.","You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them."
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
"Send Account Creation Confirmation Email","Send Account Creation Confirmation Email"
|
19 |
"Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?","Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?"
|
20 |
"Send Email for new order","Send Email for new order"
|
126 |
"Product Description will be cut after %s characters when published on ricardo.ch for store ""%s""","Product Description will be cut after %s characters when published on ricardo.ch for store ""%s"""
|
127 |
"Custom Options are not supported. Those won\'t be synchronized into ricardo.ch.","Custom Options are not supported. Those won\'t be synchronized into ricardo.ch."
|
128 |
"The product or its associated products is/are not in stock or doesn\'t have enough quantity in stock.","The product or its associated products is/are not in stock or doesn\'t have enough quantity in stock."
|
|
|
129 |
"You MUST define a ricardo category for this product. Check that you set it at products listing level or at Magento category level.","You MUST define a ricardo category for this product. Check that you set it at products listing level or at Magento category level."
|
130 |
"Payment and/or Shipping combination are not correct.","Payment and/or Shipping combination are not correct."
|
131 |
"You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s.","You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s."
|
168 |
"Only listed product items can be stopped.","Only listed product items can be stopped."
|
169 |
"The job to stop to list your products will start in few minutes.","The job to stop to list your products will start in few minutes."
|
170 |
"Products listing(s) is/are successfully deleted.","Products listing(s) is/are successfully deleted."
|
171 |
+
"The following products listings IDs have not been deleted because they are still listed on ricardo.ch: %s","The following products listings IDs have not been deleted because they are still listed on ricardo.ch: %s"
|
172 |
"An error occurred while trying to delete the products listing(s). Please, check your exception log.","An error occurred while trying to delete the products listing(s). Please, check your exception log."
|
173 |
"No products selected.","No products selected."
|
174 |
"The configuration has been saved successfully.","The configuration has been saved successfully."
|
177 |
"Log(s) is/are successfully deleted.","Log(s) is/are successfully deleted."
|
178 |
"An error occurred while trying to delete the listing log(s). Please, check your exception log.","An error occurred while trying to delete the listing log(s). Please, check your exception log."
|
179 |
"Job(s) is/are successfully deleted.","Job(s) is/are successfully deleted."
|
180 |
+
"The following job IDs have not been deleted because they are still running: %s","The following job IDs have not been deleted because they are still running: %s"
|
181 |
"An error occurred while trying to delete the job(s). Please, check your exception log.","An error occurred while trying to delete the job(s). Please, check your exception log."
|
182 |
"ricardo.ch API Signup","ricardo.ch API Signup"
|
183 |
"API Signup","API Signup"
|
223 |
"Title","Title"
|
224 |
"Website","Website"
|
225 |
"Language","Language"
|
226 |
+
"Product languages to synchronize to ricardo.ch","Product languages to synchronize to ricardo.ch"
|
227 |
+
"ricardo.ch supports only two languages at the moment: German and French. You can set in which language you want to publish your product content (title, subtitle, description, etc).","ricardo.ch supports only two languages at the moment: German and French. You can set in which language you want to publish your product content (title, subtitle, description, etc)."
|
228 |
"Default language to publish","Default language to publish"
|
229 |
+
"Which language to publish by default to ricardo.ch when the product content is not available in a language","Which language to publish by default to ricardo.ch when the product content is not available in a language"
|
230 |
+
"Store View for %s","Store View for %s"
|
231 |
"Payment Methods","Payment Methods"
|
232 |
"Payment Description German","Payment Description German"
|
233 |
"Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other""","Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other"""
|
242 |
"Shipping Description German","Shipping Description German"
|
243 |
"Characters: %s. Max. 5 000 characters","Characters: %s. Max. 5 000 characters"
|
244 |
"Shipping Description French","Shipping Description French"
|
|
|
245 |
"Category","Category"
|
246 |
"ricardo.ch Category","ricardo.ch Category"
|
247 |
"Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)","Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)"
|
290 |
"To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales"".","To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales""."
|
291 |
"Promotion","Promotion"
|
292 |
"Privilege Space","Privilege Space"
|
293 |
+
"PREMIUMHOMEPAGE","Privilege Space"
|
294 |
"Privilege space on main category page and search results. More information about this feature <a onclick=\"window.open('%s');\">here</a>","Privilege space on main category page and search results. More information about this feature <a onclick=\"window.open('%s');\">here</a>"
|
295 |
"Home Privilege Space","Home Privilege Space"
|
296 |
"Privilege space on the homepage. More information about this feature <a onclick=\"window.open('%s');\">here</a>","Privilege space on the homepage. More information about this feature <a onclick=\"window.open('%s');\">here</a>"
|
326 |
"View Logs","View Logs"
|
327 |
"Change status","Change status"
|
328 |
"Delete","Delete"
|
329 |
+
"Are you sure that you want to delete this/these products listing(s)? Be aware it\'s not possible when the listing is ""Listed""","Are you sure that you want to delete this/these products listing(s)? Be aware it\'s not possible when the listing is ""Listed"""
|
330 |
"Products Listing Log ""%s""","Products Listing Log ""%s"""
|
331 |
"Edit ""%s""","Edit ""%s"""
|
332 |
"Job ID","Job ID"
|
383 |
"The task will start few minutes","The task will start few minutes"
|
384 |
"No progress","No progress"
|
385 |
"The product list has been stopped.","The product list has been stopped."
|
386 |
+
"ricardo.ch Lifetime Sales","ricardo.ch Lifetime Sales"
|
387 |
+
"Turnover per month","Turnover per month"
|
388 |
+
"Best Sellers","Meistverkaufte Produkte"
|
389 |
+
"Qty sold","Qty sold"
|
390 |
+
"Product Name","Product Name"
|
391 |
+
"SKU","SKU"
|
392 |
+
"Price","Price"
|
393 |
+
"Your ricardo.ch API Token","Your ricardo.ch API Token"
|
394 |
+
"PREMIUMCATEGORYBRONZE","Small"
|
395 |
+
"PREMIUMCATEGORYSILVER","Medium"
|
396 |
+
"PREMIUMCATEGORYGOLD","Big"
|
397 |
+
"TYPE_BANK_TRANSFER","Bank transfer"
|
398 |
+
"TYPE_CASH","Cash"
|
399 |
+
"TYPE_CREDIT_CARD","Credit Card via ricardo.ch"
|
400 |
+
"TYPE_OTHER","Other payment method"
|
401 |
"UNKNOWNPROPERTY","Unknow Property"
|
402 |
"CUSTOMERNOTARTICLEOWNER","The current customer can't act on the article as he's not the owner "
|
403 |
"CHECKPASSWORDWRONGPASSWORD","The CheckPassword is used with a wrong password "
|
420 |
"ACCOUNTCLOSED","The account linked to the customer has been closed"
|
421 |
"METHODNOTALLOWED","The Partnership used is not allowed to use this method"
|
422 |
"TOKEN_AUTHORIZATION","The authorization of the token must be again requested"
|
|
|
423 |
"CLOSEAUCTIONFAILED","Failed to close the auction"
|
424 |
"CLOSECLASSIFIEDFAILED","Failed to close a classified article"
|
425 |
"DELETEPLANNEDFAILED","Failed to delete planned article"
|
433 |
"ARTICLESAMOUNTLIMIT","Limit for amount of articles per 1 push is 100 "
|
434 |
"LISTOFARTICLESEMPTY","list of article empty"
|
435 |
"UNKNOWNCATEGORYNAME","Category name specified is unknown"
|
|
|
436 |
"EMPTYCOUNTRYID","EMPTYCOUNTRYID"
|
437 |
"EMPTYPARTNERID","EMPTYPARTNERID"
|
438 |
"EMPTYCATEGORY","EMPTYCATEGORY"
|
568 |
"PAYMENTMETHODNEEDALTERNATEONE","PAYMENTMETHODNEEDALTERNATEONE"
|
569 |
"WRONGPAYMENTMETHODS","WRONGPAYMENTMETHODS"
|
570 |
"CUMULATIVESHIPPINGNOTALLOWED","CUMULATIVESHIPPINGNOTALLOWED"
|
|
|
571 |
"MAXPICTURESCOUNTREACHED","MAXPICTURESCOUNTREACHED"
|
572 |
"MAXPICTURESIZEREACHED","MAXPICTURESIZEREACHED"
|
573 |
"ERRORRESIZINGPICTURE","ERRORRESIZINGPICTURE"
|
577 |
"INVALIDPICTUREINDEX","INVALIDPICTUREINDEX"
|
578 |
"MAXLOGOPICTURESIZEREACHED","MAXLOGOPICTURESIZEREACHED"
|
579 |
"ERRORRESIZINGLOGOPICTURE","ERRORRESIZINGLOGOPICTURE"
|
|
|
580 |
"NOTALLOWEDTOSELL","Product Not allowed to be sold"
|
581 |
"BILLINGERROR","BILLINGERROR"
|
582 |
"GETCUSTOMERERROR","GETCUSTOMERERROR"
|
641 |
"UNABLETOINSERT","UNABLETOINSERT"
|
642 |
"CREDITLIMITEXCEEDED","Credit limit exceeded. Please contact ricardo.ch"
|
643 |
"ACTIVATIONCODESTATUSMANUALLYBLOCKED","ACTIVATIONCODESTATUSMANUALLYBLOCKED"
|
|
|
644 |
"No Options because API is not configured","No Options because API is not configured"
|
645 |
"No Options because API has a problem","No Options because API has a problem"
|
646 |
+
"Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>.","Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>."
|
647 |
+
"Security error occurred with the ricardo API. Please, check your log files.","Security error occurred with the ricardo API. Please, check your log files."
|
648 |
"Error occurred with the API. Check if the API is correctly configured: %s","Error occurred with the API. Check if the API is correctly configured: %s"
|
649 |
"Product Price of %s CHF is incorrect. Minimum price is %s.","Product Price of %s CHF is incorrect. Minimum price is %s."
|
650 |
"You cannot reactivate a product until sold out when doing an auction sales type.","You cannot reactivate a product until sold out when doing an auction sales type."
|
651 |
"Following error(s) appeared:","Following error(s) appeared:"
|
652 |
"<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction""","<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction"""
|
653 |
+
"The authorization of the ricardo.ch API Token can be done only %s before the expiration. You will receive automatically an email when it will be possible.","The authorization of the ricardo.ch API Token can be done only %s before the expiration. You will receive automatically an email when it will be possible."
|
654 |
+
"Merge Descriptions","Merge Descriptions"
|
655 |
+
"Merge short and normal descriptions as one content for ricardo product description. The short description will be the first part and the normal description will be the second part of the ricardo article description.","Merge short and normal descriptions as one content for ricardo product description. The short description will be the first part and the normal description will be the second part of the ricardo article description."
|
656 |
+
"Only 10 pictures maximum allowed.","Only 10 pictures maximum allowed."
|
657 |
+
"The starting date must start one hour in future. It will be automatically updated to list on ricardo.","The starting date must start one hour in future. It will be automatically updated to list on ricardo."
|
658 |
+
"Enter product name: e.g. iphone","Enter product name: e.g. iphone"
|
659 |
+
"Sorry, no product found for fees calculation.","Sorry, no product found for fees calculation."
|
660 |
+
"Please, close this popup window and fix the errors before to be allowed to list your products on ricardo.ch.","Please, close this popup window and fix the errors before to be allowed to list your products on ricardo.ch."
|
661 |
+
"Product Listing Configuration","Product Listing Configuration"
|
662 |
+
"Currency Conversion","Currency Conversion"
|
663 |
+
"The store's base currency is %2$s. Only %1$s is allowed as currency on ricardo.ch. Be aware that your product will be converted into %1$s. Check the documentation for more explanation.","The store's base currency is %2$s. Only %1$s is allowed as currency on ricardo.ch. Be aware that your product will be converted into %1$s. Check the documentation for more explanation."
|
664 |
+
"Currency Rate not configured","Currency Rate not configured"
|
665 |
+
"Currency Rate not defined for CHF currency. Please configure your currency rate before to proceed.","Currency Rate not defined for CHF currency. Please configure your currency rate before to proceed."
|
666 |
+
"Replace Carriage Return with br HTML Tag","Replace Carriage Return with br HTML Tag"
|
667 |
+
"Do you want to replace into the description the carriage return with <br> HTML Tag?","Do you want to replace into the description the carriage return with <br> HTML Tag?"
|
668 |
+
"Product listing & promotion","Product listing & promotion"
|
669 |
+
"Total price","Total price"
|
670 |
+
"Important","Important"
|
671 |
+
"Listing Fees","Listing Fees"
|
672 |
+
"ricardo.ch does invoices in %s","ricardo.ch does invoices in %s"
|
673 |
+
"Sales Fee (following the <a href=""%s"" target=""_blank"">fees rules from 01.07.2014</a>)","Sales Fee (following the <a href=""%s"" target=""_blank"">fees rules from 01.07.2014</a>)"
|
674 |
+
"With the confirmation of the publication, you accept the <a href=""%s"" target=""_blank"">terms and conditions</a> and <a href=""%s"" target=""_blank"">privacy policy</a>","With the confirmation of the publication, you accept the <a href=""%s"" target=""_blank"">terms and conditions</a> and <a href=""%s"" target=""_blank"">privacy policy</a>"
|
675 |
+
"Confirm, check and List","Confirm, check and List"
|
676 |
+
"Send us your configuration","Send us your configuration"
|
677 |
+
"Export your configuration","Export your configuration"
|
678 |
+
"Receive email notification in case of error? Email are sent to the main shop contact and are related to API errors, Token expiration, etc...","Receive email notification in case of error? Email are sent to the main shop contact and are related to API errors, Token expiration, etc..."
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!--@subject ricardo.ch API Authorisation renewal for your Magento shop @-->
|
2 |
+
Dear Admin,
|
3 |
+
|
4 |
+
You have to authorize your account to get access to the ricardo.ch API thanks to the ricardo.ch Authorization Page.
|
5 |
+
If you don't do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked.
|
6 |
+
|
7 |
+
Please, log in to your <a href="{{var shop_url}}">Magento backend page</a> to follow the instructions displayed in the banner notification.
|
8 |
+
|
9 |
+
Best regards
|
@@ -1,117 +1,111 @@
|
|
1 |
"ricardo.ch","ricardo.ch"
|
2 |
-
"Dashboard","
|
3 |
-
"Products Listing","
|
4 |
-
"Logs","
|
5 |
-
"ricardo.ch Assistant","ricardo.ch
|
6 |
"Configuration","Configuration"
|
7 |
-
"Ricento by Diglin GmbH","Ricento
|
8 |
-
"Log","
|
9 |
-
"ricardo.ch Payment Methods","ricardo.ch
|
10 |
-
"ricardo.ch Shipping","ricardo.ch
|
11 |
-
"Admin Email Notification","
|
12 |
-
"Private message","
|
13 |
-
"Global Configuration","Global
|
14 |
-
"Merge Order","
|
15 |
-
"If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?","
|
16 |
-
"Shipping Calculation","
|
17 |
-
"You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
"
|
25 |
-
"
|
26 |
-
"
|
27 |
-
"Do you want to send the newly order created by email to a customer when the order is created thanks to the ricardo.ch API?","Do you want to send the newly order created by email to a customer when the order is created thanks to the ricardo.ch API?"
|
28 |
-
"API Token Configuration","API Token Configuration"
|
29 |
-
"General API Config","General API Config"
|
30 |
-
"ricardo.ch Extension enabled","ricardo.ch Extension enabled"
|
31 |
-
"Development Mode","Development Mode"
|
32 |
-
"If you enable this configuration, all API requests will be send to the ricardo.ch Sandbox instead to use the production servers. Be aware, you have to provide others partner Keys and Passwords specific for dev environment below.","If you enable this configuration, all API requests will be send to the ricardo.ch Sandbox instead to use the production servers. Be aware, you have to provide others partner Keys and Passwords specific for dev environment below."
|
33 |
"Debug","Debug"
|
34 |
-
"Write into the var/log/ricento.log file all requests sent to the ricardo.ch API. Enable it to help us to support you and send this file to us if you have an issue. Your passwords will be anonymized. Attention: the file size can grow quite fast.","
|
35 |
-
"German API Token","
|
36 |
-
"PROD German Partner Key","PROD
|
37 |
-
"Partner Key has the following format '0F12345-1234-1234-1234-1234567890'. You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Partner Key
|
38 |
-
"PROD German Partner Password","PROD
|
39 |
-
"You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","
|
40 |
-
"DEV German Partner Key","DEV
|
41 |
-
"DEV German Partner Password","DEV
|
42 |
-
"French API Token","
|
43 |
-
"PROD French Partner Key","PROD
|
44 |
-
"PROD French Partner Password","PROD
|
45 |
-
"DEV French Partner Key","DEV
|
46 |
-
"DEV French Partner Password","DEV
|
47 |
-
"Cleanup Synchronization Jobs Log","
|
48 |
-
"Enabled","
|
49 |
-
"Keep for X days","
|
50 |
-
"Cleanup Listings Log","
|
51 |
-
"ricardo.ch API Payment Methods","ricardo.ch
|
52 |
-
"Bank Transfer Instructions","
|
53 |
-
"Accepted Currency","
|
54 |
-
"Stock quantity set to 1 because auction sales type with direct buy option does not allow more than one article to be sold","
|
55 |
-
"Invalid start date.","
|
56 |
-
"The end date must be in the future.","
|
57 |
-
"Listed listings cannot be modified. Stop the listing first to make changes.","
|
58 |
-
"An error occurred while saving the configuration.","
|
59 |
-
"ricardo.ch Service Model doesn\'t exists.","ricardo.ch Service Model
|
60 |
-
"ricardo.ch API Credentials are not configured. Please, configure the extension before to proceed.","ricardo.ch
|
61 |
"API language provided for the Service Manager is not supported.","API language provided for the Service Manager is not supported."
|
62 |
-
"Error while trying to connect to the ricardo.ch API. Please, check your log files.","
|
63 |
-
"The format of the token is invalid","
|
64 |
-
"The dispatcher of type '%s' is not found at %s.","
|
65 |
"Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract.","Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract."
|
66 |
-
"The product has been sold","
|
67 |
-
"Customer creation failed! ricardo.ch transaction cannot be added.","
|
68 |
-
"Order automatically generated by the ricardo.ch Extension.","
|
69 |
-
"Payment is pending","
|
70 |
-
"Payment has been completed on ricardo.ch side","
|
71 |
-
"Order canceled on ricardo.ch side","
|
72 |
-
"Country Code is not available. Please contact the author of this extension or support.","
|
73 |
-
"Report: %d success, %d warning(s), %d error(s)","
|
74 |
-
"Successful products checked are going to be listed. To force to list products having a warning, please <a href=""%s"">clicking here</a>. Products with an error won't be synchronized, you have to fix the problem first.","
|
75 |
-
"The product is now live on ricardo.ch","
|
76 |
-
"Sorry, the product has not been sold","
|
77 |
-
"This item is already listed or has already a ricardo article Id. No insert done to ricardo.ch","
|
78 |
-
"The product has been removed from ricardo.ch","
|
79 |
-
"The product has not been removed from ricardo.ch. Probably because someone bid the product or bought it.","
|
80 |
-
"Report: %d success, %d error(s)","
|
81 |
-
"errors","
|
82 |
-
"warnings","
|
83 |
-
"success","
|
84 |
-
"The Job has finished with %s.","
|
85 |
-
"Please, view the <a href=""%s"">log</a> for details.","
|
86 |
-
"No item is ready for this job. No action has been done.","
|
87 |
-
"Error Code: %d","
|
88 |
"Notice","Notice"
|
89 |
-
"Success","
|
90 |
-
"Error","
|
91 |
-
"Warning","
|
92 |
-
"Product item checks","
|
93 |
-
"List product item to ricardo.ch","
|
94 |
-
"Stop product item to ricardo.ch","
|
95 |
-
"Default Values","
|
96 |
-
"No package","
|
97 |
-
"-- Select Product Attribute --","--
|
98 |
-
"-- Select Method --","--
|
99 |
-
"No change","
|
100 |
-
"Relative increase (+ %)","
|
101 |
-
"Relative decrease (- %)","
|
102 |
-
"Absolute increase (+)","
|
103 |
-
"Absolute decrease (-)","
|
104 |
-
"None","
|
105 |
-
"ricardo.ch Condition","ricardo.ch
|
106 |
-
"-- Please Select --","--
|
107 |
-
"Auction","
|
108 |
-
"Buy now","
|
109 |
-
"Highest Price","
|
110 |
-
"Cumulative","
|
111 |
-
"Pending","
|
112 |
-
"Running","
|
113 |
-
"Ready","
|
114 |
-
"Completed","
|
115 |
"Products Check Job","Products Check Job"
|
116 |
"List Job","List Job"
|
117 |
"Stop List Job","Stop List Job"
|
@@ -119,302 +113,297 @@
|
|
119 |
"Relist Job","Relist Job"
|
120 |
"Update Job","Update Job"
|
121 |
"Sync List Job","Sync List Job"
|
122 |
-
"-- Please select --","--
|
123 |
-
"All languages","
|
124 |
-
"Listed","
|
125 |
-
"Stopped","
|
126 |
-
"Ready to list","
|
127 |
-
"Check in progress...","
|
128 |
-
"List in progress...","
|
129 |
-
"Job in progress...","Job
|
130 |
-
"Product Title will be cut after %s characters when published on ricardo.ch for store ""%s""","
|
131 |
-
"Product Subtitle will be cut after %s characters when published on ricardo.ch for store ""%s""","
|
132 |
-
"Product Description will be cut after %s characters when published on ricardo.ch for store ""%s""","
|
133 |
-
"Custom Options are not supported. Those won\'t be synchronized into ricardo.ch.","
|
134 |
-
"The product or its associated products is/are not in stock or doesn\'t have enough quantity in stock.","
|
135 |
-
"
|
136 |
-
"
|
137 |
-
"
|
138 |
-
"
|
139 |
-
"
|
140 |
-
"
|
141 |
-
"
|
142 |
-
"
|
143 |
-
"
|
144 |
-
"
|
145 |
-
"
|
146 |
-
"
|
147 |
-
"
|
148 |
-
"
|
149 |
-
"
|
150 |
-
"
|
151 |
-
"
|
152 |
-
"
|
153 |
-
"
|
154 |
-
"
|
155 |
-
"
|
156 |
-
"
|
157 |
-
"
|
158 |
-
"
|
159 |
-
"
|
160 |
-
"
|
161 |
-
"
|
162 |
-
"%d products
|
163 |
-
"
|
164 |
-
"
|
165 |
-
"
|
166 |
-
"
|
167 |
-
"
|
168 |
-
"
|
169 |
-
"
|
170 |
-
"There is no product
|
171 |
-
"
|
172 |
-
"
|
173 |
-
"
|
174 |
-
"
|
175 |
-
"
|
176 |
-
"
|
177 |
-
"
|
178 |
-
"
|
179 |
-
"
|
180 |
-
"
|
181 |
-
"
|
182 |
-
"
|
183 |
-
"
|
184 |
-
"
|
185 |
-
"
|
186 |
-
"
|
187 |
-
"
|
188 |
-
"An error occurred while trying to delete the job(s). Please, check your exception log.","An error occurred while trying to delete the job(s). Please, check your exception log."
|
189 |
"ricardo.ch API Signup","ricardo.ch API Signup"
|
190 |
"API Signup","API Signup"
|
191 |
-
"ricardo.ch Assistant Portal","ricardo.ch Assistant
|
192 |
-
"Assistant Portal","Assistant
|
193 |
-
"Only Ajax call is allowed here.","
|
194 |
-
"The website code returned from ricardo.ch is not correct! Your authorization has not been saved on our side.","
|
195 |
-
"Your ricardo.ch account has been authorized to get access to the API.","
|
196 |
-
"An error occurred while saving the token. Please, check your log files.","
|
197 |
-
"Authorization was not successful on ricardo.ch side. Please, contact ricardo.ch to find out the reason.","
|
198 |
"Sign Up to ricardo.ch API","Sign Up to ricardo.ch API"
|
199 |
-
"API Authorization","API
|
200 |
-
"No Selection","
|
201 |
-
"Open ricardo.ch Category Window","
|
202 |
-
"Add products from selected categories","
|
203 |
-
"Only product types supported, enabled and not listed in other products listing will be added.","
|
204 |
-
"Be aware, you have also to select the sub-categories, otherwise selecting only a top category won\'t allow to add products of its subcategories.","
|
205 |
-
"Create new listing","
|
206 |
-
"Show Synchronization Jobs","
|
207 |
-
"General","
|
208 |
-
"Products","
|
209 |
-
"Sales Options","
|
210 |
-
"Rules","
|
211 |
-
"Product ID","
|
212 |
-
"Name","
|
213 |
-
"Price","
|
214 |
"Type","Type"
|
215 |
"SKU","SKU"
|
216 |
-
"Inventory","
|
217 |
"Status","Status"
|
218 |
"Action","Action"
|
219 |
-
"Preview","
|
220 |
-
"Configure","
|
221 |
-
"Remove","
|
222 |
-
"Are you sure to remove this/these product(s)?","
|
223 |
-
"Remove from list","
|
224 |
-
"the sales options","
|
225 |
-
"the shipping and payment rules","
|
226 |
-
"This product has been configured for %s %s","
|
227 |
-
"The product has custom options, those will not be added to ricardo.ch!","
|
228 |
"ID","ID"
|
229 |
-
"Add selected product(s)","
|
230 |
-
"Title","
|
231 |
-
"Website","
|
232 |
-
"Language","
|
233 |
-
"Product languages to synchronize to ricardo.ch
|
234 |
-
"ricardo.ch
|
235 |
-
"Default language to publish","
|
236 |
-
"Which language to publish by default to ricardo.ch
|
237 |
-
"Store View for
|
238 |
-
"Payment Methods","
|
239 |
-
"Payment Description German","
|
240 |
-
"Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other""","
|
241 |
-
"Payment Description French","
|
242 |
-
"Shipping Methods","
|
243 |
-
"Shipping Price","
|
244 |
-
"Free shipping","
|
245 |
-
"Is Shipping fee cumulative","
|
246 |
-
"If you select this option, the shipping fee will be calculate for each sold product.","
|
247 |
-
"e.g. an article is sold with a quantity of 3 to one customer and the shipping fee is 15 CHF. Total Shipping fee is 45 CHF. Let it empty if you don't such an option.","
|
248 |
-
"Shipping Availability","
|
249 |
-
"Shipping Description German","
|
250 |
-
"Characters: %s. Max. 5 000 characters","
|
251 |
-
"Shipping Description French","
|
252 |
-
"
|
253 |
-
"Category","
|
254 |
-
"ricardo.ch Category","ricardo.ch
|
255 |
-
"
|
256 |
-
"Select
|
257 |
-
"
|
258 |
-
"
|
259 |
-
"
|
260 |
-
"
|
261 |
-
"
|
262 |
-
"
|
263 |
-
"
|
264 |
-
"Fill in the fieldset ""Buy now"" below to define the direct price settings. <strong>Note</strong>: if set to ""Yes"", the stock management will be set to ""Custom Qty"" with a value of 1.","Fill in the fieldset ""Buy now"" below to define the direct price settings. <strong>Note</strong>: if set to ""Yes"", the stock management will be set to ""Custom Qty"" with a value of 1."
|
265 |
"Source","Source"
|
266 |
-
"Price Change","
|
267 |
-
"For Fixed Price articles, the minimum price is Fr. 0.05 and maximum Fr. 2 999.95 if the Credit Card payment method is used.","
|
268 |
-
"For Auction articles, the minimum amount is Fr. 0.1 and must be greater than the Start Price.","
|
269 |
-
"If not correctly defined, the minimum and maximum values will be automatically set.","
|
270 |
-
"Schedule","
|
271 |
-
"Start","
|
272 |
-
"Starting date must start minimum in one hour and maximum 30 days in the future.","
|
273 |
-
"Start immediately","
|
274 |
-
"Start from","
|
275 |
-
"End","
|
276 |
-
"Ending date must finish at the minimum in 24 hours and maximum 10 days from the starting date.","
|
277 |
-
"End after %s days","
|
278 |
-
"End on","
|
279 |
-
"Reactivation","
|
280 |
"Cycle","Cycle"
|
281 |
-
"Cycle to publish multiple products %s minutes after the first publish","Cycle
|
282 |
-
"Randomly published","
|
283 |
-
"Overwrite all products starting date","
|
284 |
-
"Product Condition","
|
285 |
-
"Default Condition","
|
286 |
-
"Condition Product Source","
|
287 |
-
"Do you want to define the condition source from the ricardo.ch Condition Attribute if you defined it on product basis? Otherwise, if not found or you set here to ""No"", the default condition set above will be defined.","
|
288 |
-
"Warranty","
|
289 |
-
"Warranty description German","
|
290 |
-
"Characters %s. Max. 5 000 characters","
|
291 |
-
"Warranty description French","
|
292 |
-
"Stock Management","
|
293 |
-
"Range 1...999. If you use the product inventory option, the amount of items will be taken from the field ""Qty"" defined in the product inventory and limited to 999 if you have a quantity above this value.","
|
294 |
-
"Use product inventory","
|
295 |
-
"Use custom qty","
|
296 |
-
"Customization","
|
297 |
-
"Template","
|
298 |
-
"To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales"".","
|
299 |
"Promotion","Promotion"
|
300 |
-
"Privilege Space","
|
301 |
-
"
|
302 |
-
"
|
303 |
-
"Privilege
|
304 |
-
"
|
305 |
-
"
|
306 |
-
"
|
307 |
-
"
|
308 |
-
"
|
309 |
-
"
|
310 |
-
"Configure
|
311 |
-
"
|
312 |
-
"
|
313 |
-
"
|
314 |
-
"
|
315 |
-
"
|
316 |
-
"
|
317 |
-
"
|
318 |
-
"
|
319 |
-
"Add Product(s)","
|
320 |
-
"
|
321 |
-
"
|
322 |
-
"
|
323 |
-
"Check &
|
324 |
-
"
|
325 |
-
"List
|
326 |
-
"
|
327 |
-
"
|
328 |
-
"
|
|
|
329 |
"Total","Total"
|
330 |
-
"Edit","
|
331 |
-
"Relist","
|
332 |
-
"Stop List","
|
333 |
-
"View Logs","
|
334 |
-
"Change status","
|
335 |
-
"Delete","
|
336 |
-
"Are you sure that you want to delete this/these products listing(s)? Be aware it\'s
|
337 |
-
"Products Listing Log ""%s""","
|
338 |
-
"Edit ""%s""","
|
339 |
"Job ID","Job ID"
|
340 |
-
"Listing ID","
|
341 |
-
"Listing Title","
|
342 |
-
"Product title","
|
343 |
"Message","Message"
|
344 |
-
"Created at","
|
345 |
-
"Are you sure that you want to delete this/these log(s)?","
|
346 |
-
"Job Type","
|
347 |
-
"Job Message","
|
348 |
-
"Current Progress","
|
349 |
-
"Started at","
|
350 |
-
"Ended at","
|
351 |
-
"Are you sure that you want to delete this/these job(s)?","
|
352 |
-
"Show Products Listing","
|
353 |
-
"Listing","
|
354 |
-
"Synchronization","
|
355 |
-
"Orders","
|
356 |
"Transactions %s","Transactions %s"
|
357 |
-
"You may also access to the %s content of this page</a> in a new window.","
|
358 |
-
"Your ricardo.ch API token credentials are going to expire in %s days for the website ""%s"".","
|
359 |
-
"No ricardo.ch API Authorization have been found for the website ""%s"".","
|
360 |
-
"You have to authorize your account to get access to the ricardo.ch API thanks to the <a href=""%s"">ricardo.ch Authorization Page</a>. If you don't do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked.","
|
361 |
-
"To hide this message, you have to <a href=""%s"">disable the extension</a>.","
|
362 |
-
"The Official ricardo.ch Extension has been installed.","
|
363 |
-
"Please, click <a href=""%s"">here to configure</a> the access to the ricardo.ch API.","
|
364 |
-
"Latest message for the selected job","
|
365 |
-
"<a href=""%s"">Edit</a> your products listing if needed","<a href=""%s"">
|
366 |
-
"No message found.","
|
367 |
-
"Confirm","
|
368 |
-
"More Views","
|
369 |
-
"%s days 0:0:0","%s
|
370 |
-
"Starting price","
|
371 |
-
"Place a bit","
|
372 |
-
"Quantity","
|
373 |
-
"of %s","
|
374 |
-
"Details","
|
375 |
-
"Ending date:","
|
376 |
-
"Availability:","
|
377 |
-
"Product condition:","
|
378 |
-
"Payment information:","
|
379 |
-
"Shipping Method (CH):","
|
380 |
"Description","Description"
|
381 |
-
"Payment, Shipping, Warranty","
|
382 |
-
"Payment information","
|
383 |
-
"Payment Methods:","
|
384 |
-
"Payment Description:","
|
385 |
-
"Shipping","
|
386 |
-
"Shipping Price:","
|
387 |
-
"Shipping Availability:","
|
388 |
-
"Shipping Description (CH):","
|
389 |
-
"You must select a ricardo.ch Category if you set this option","
|
390 |
-
"The task will start few minutes","
|
391 |
-
"No progress","
|
392 |
-
"The product list has been stopped.","
|
393 |
-
|
394 |
-
"
|
395 |
-
"
|
396 |
-
"
|
397 |
-
"
|
398 |
-
"Product Name","Produktname"
|
399 |
"SKU","SKU"
|
400 |
-
"Price","
|
401 |
-
"Your ricardo.ch API Token","
|
402 |
-
|
403 |
-
"
|
404 |
-
"
|
405 |
-
"
|
406 |
-
|
407 |
-
"
|
408 |
-
"
|
409 |
-
"
|
410 |
-
"
|
411 |
-
|
412 |
-
"
|
413 |
-
"
|
414 |
-
"
|
415 |
-
"CHECKPASSWORDBLACKLISTEDIP","The CheckPassword is used with a blacklisted IP "
|
416 |
-
"CHECKPASSWORDBANNEDCUSTOMER","The CheckPassword is used with a bannished Customer, additional info contains the date since when the user is bannished as Datetime "
|
417 |
-
"CHECKPASSWORDCLOSEDCUSTOMER","The CheckPassword is used with a closed customer, additional info contains the date since when the user is closed as Datetime "
|
418 |
"LOGADMINFAILED","Admin login failed "
|
419 |
"TOKENERROR","Token error for API "
|
420 |
"TOKENEXPIRED","Token expired for API "
|
@@ -431,7 +420,6 @@
|
|
431 |
"ACCOUNTCLOSED","The account linked to the customer has been closed"
|
432 |
"METHODNOTALLOWED","The Partnership used is not allowed to use this method"
|
433 |
"TOKEN_AUTHORIZATION","The authorization of the token must be again requested"
|
434 |
-
|
435 |
"CLOSEAUCTIONFAILED","Failed to close the auction"
|
436 |
"CLOSECLASSIFIEDFAILED","Failed to close a classified article"
|
437 |
"DELETEPLANNEDFAILED","Failed to delete planned article"
|
@@ -445,7 +433,6 @@
|
|
445 |
"ARTICLESAMOUNTLIMIT","Limit for amount of articles per 1 push is 100 "
|
446 |
"LISTOFARTICLESEMPTY","list of article empty"
|
447 |
"UNKNOWNCATEGORYNAME","Category name specified is unknown"
|
448 |
-
|
449 |
"EMPTYCOUNTRYID","EMPTYCOUNTRYID"
|
450 |
"EMPTYPARTNERID","EMPTYPARTNERID"
|
451 |
"EMPTYCATEGORY","EMPTYCATEGORY"
|
@@ -581,7 +568,6 @@
|
|
581 |
"PAYMENTMETHODNEEDALTERNATEONE","PAYMENTMETHODNEEDALTERNATEONE"
|
582 |
"WRONGPAYMENTMETHODS","WRONGPAYMENTMETHODS"
|
583 |
"CUMULATIVESHIPPINGNOTALLOWED","CUMULATIVESHIPPINGNOTALLOWED"
|
584 |
-
|
585 |
"MAXPICTURESCOUNTREACHED","MAXPICTURESCOUNTREACHED"
|
586 |
"MAXPICTURESIZEREACHED","MAXPICTURESIZEREACHED"
|
587 |
"ERRORRESIZINGPICTURE","ERRORRESIZINGPICTURE"
|
@@ -591,8 +577,7 @@
|
|
591 |
"INVALIDPICTUREINDEX","INVALIDPICTUREINDEX"
|
592 |
"MAXLOGOPICTURESIZEREACHED","MAXLOGOPICTURESIZEREACHED"
|
593 |
"ERRORRESIZINGLOGOPICTURE","ERRORRESIZINGLOGOPICTURE"
|
594 |
-
|
595 |
-
"NOTALLOWEDTOSELL","Produit non autorisé à la vente"
|
596 |
"BILLINGERROR","BILLINGERROR"
|
597 |
"GETCUSTOMERERROR","GETCUSTOMERERROR"
|
598 |
"NEEDTOCHANGEPASSWORDERROR","NEEDTOCHANGEPASSWORDERROR"
|
@@ -654,15 +639,40 @@
|
|
654 |
"EMPTYMEMBERPREFERENCES","EMPTYMEMBERPREFERENCES"
|
655 |
"EMPTYADDRESSES","EMPTYADDRESSES"
|
656 |
"UNABLETOINSERT","UNABLETOINSERT"
|
657 |
-
"CREDITLIMITEXCEEDED","
|
658 |
"ACTIVATIONCODESTATUSMANUALLYBLOCKED","ACTIVATIONCODESTATUSMANUALLYBLOCKED"
|
659 |
-
|
660 |
-
"No Options because API
|
661 |
-
"
|
662 |
-
"Security error occurred with the ricardo API. Please, check your log files
|
663 |
-
"
|
664 |
-
"
|
665 |
-
"
|
666 |
-
"
|
667 |
-
"
|
668 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
"ricardo.ch","ricardo.ch"
|
2 |
+
"Dashboard","Tableau de bord"
|
3 |
+
"Products Listing","Liste de produits"
|
4 |
+
"Logs","Journaux"
|
5 |
+
"ricardo.ch Assistant","Assistant ricardo.ch"
|
6 |
"Configuration","Configuration"
|
7 |
+
"Ricento by Diglin GmbH","Ricento par Diglin GmbH"
|
8 |
+
"Log","Journal"
|
9 |
+
"ricardo.ch Payment Methods","Méthodes de paiement ricardo.ch"
|
10 |
+
"ricardo.ch Shipping","Livraison ricardo.ch"
|
11 |
+
"Admin Email Notification","Email de notification Admininistrateur "
|
12 |
+
"Private message","Message privé"
|
13 |
+
"Global Configuration","Configuration Global"
|
14 |
+
"Merge Order","Combiner les commandes"
|
15 |
+
"If a customer order several products in a period of 30 minutes, do you want to merge the ricardo transaction in one order?","Si un client commande plusieurs produits dans une période de 30 minutes, voulez-vous combiner les transactions de ricardo.ch en une seule commande ?"
|
16 |
+
"Shipping Calculation","Calculation des frais de livraison"
|
17 |
+
"You can decide how do you want to calculate the shipping cost when an order merge several bought products by a customer.<br>""Highest Price"": it will find which product has the highest cost for the shipping and will take only this one for the calculation.<br>""Cumulative"": it will calculate the shipping cost based on the configuration you did in the products listing for each article and will combine them.","Vous pouvez décider comment calculer les frais de livraisons lorsqu'une commande combine plusieurs produits d'un même client. <br>""Prix le plus haut"": le prix sera déterminé par rapport au produit qui a les frais de livraison les plus élevés. Seulement ce prix sera utilisé pour le calcul.<br>""Cumulatif"": les frais seront calculé en fonction de ce que vous aurez configuré pour les frais de livraison dans la liste de produits pour chaque article et calculera la somme totale."
|
18 |
+
"Send Account Creation Confirmation Email","Envoyer un email de création de compte"
|
19 |
+
"Do you want to send a confirmation email to a customer when his account is created thanks to the ricardo.ch API?","Voulez-vous envoyer un email de confirmation de création de compte à vos clients lorsuq'ils sont importés depuis ricardo.ch ?"
|
20 |
+
"Send Email for new order","Envoyer un email pour les nouvelles commandes"
|
21 |
+
"Do you want to send the newly order created by email to a customer when the order is created thanks to the ricardo.ch API?","Voulez-vous envoyer un email de confirmation de création de commande à vos clients lorsuq'ils sont importés depuis ricardo.ch ?"
|
22 |
+
"API Token Configuration","Configuration du Token"
|
23 |
+
"General API Config","Configuration générale de l'API"
|
24 |
+
"ricardo.ch Extension enabled","Extension ricardo.ch activé"
|
25 |
+
"Development Mode","Mode Dévelopeur"
|
26 |
+
"If you enable this configuration, all API requests will be send to the ricardo.ch Sandbox instead to use the production servers. Be aware, you have to provide others partner Keys and Passwords specific for dev environment below.","Si vous activez cette configuration, toutes les requêtes vers l'API de ricardo.ch seront envoyées vers l'environnement de test de ricardo.ch au lieu d'utiliser les serveurs de production. A utiliser en cas de nouvelle installation."
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
"Debug","Debug"
|
28 |
+
"Write into the var/log/ricento.log file all requests sent to the ricardo.ch API. Enable it to help us to support you and send this file to us if you have an issue. Your passwords will be anonymized. Attention: the file size can grow quite fast.","Ecrit dans le fichier var/log/ricento.log toutes les requêtes envoyées à ricardo.ch. Activez cette option pour nous aider à vous assister et envoyez nous le fichier si vous avez un problème. Vos mots de passe seront anonymes. Attention, ce fichier peut devenir très lourd. "
|
29 |
+
"German API Token","Token API Allemand"
|
30 |
+
"PROD German Partner Key","PROD Partner Key Allemand"
|
31 |
+
"Partner Key has the following format '0F12345-1234-1234-1234-1234567890'. You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Le Partner Key a le format suivant '0F12345-1234-1234-1234-1234567890'. Vous devez contacter ricardo.ch pour obtenir cette information. Veuillez cliquer sur le bouton orange "Obtenir une clé API" en haut de cette page pour contacter ricardo.ch."
|
32 |
+
"PROD German Partner Password","PROD Partner Password Allemand"
|
33 |
+
"You have to sign up to the ricardo.ch API to get this information. Click on the button at the top of this page","Le Partner Key a le format suivant '0F12345-1234-1234-1234-1234567890'. Vous devez contacter ricardo.ch pour obtenir cette information. Veuillez cliquer sur le bouton orange "Obtenir une clé API" en haut de cette page pour contacter ricardo.ch."
|
34 |
+
"DEV German Partner Key","DEV Partner Key Allemand"
|
35 |
+
"DEV German Partner Password","DEV Partner Password Allemand"
|
36 |
+
"French API Token","API Token Français"
|
37 |
+
"PROD French Partner Key","PROD Partner Key Français"
|
38 |
+
"PROD French Partner Password","PROD Partner Password Français"
|
39 |
+
"DEV French Partner Key","DEV Partner Key Français"
|
40 |
+
"DEV French Partner Password","DEV Partner Password Français"
|
41 |
+
"Cleanup Synchronization Jobs Log","Nettoyage des journaux de synchronization"
|
42 |
+
"Enabled","Activé"
|
43 |
+
"Keep for X days","Garder X jours"
|
44 |
+
"Cleanup Listings Log","Nettoyage des journaux des ""Listings"""
|
45 |
+
"ricardo.ch API Payment Methods","Méthodes de paiement de l'API ricardo.ch"
|
46 |
+
"Bank Transfer Instructions","Instructions pour les tranferts bancaires"
|
47 |
+
"Accepted Currency","Monnaies acceptées"
|
48 |
+
"Stock quantity set to 1 because auction sales type with direct buy option does not allow more than one article to be sold","La quantité de l'inventaire est mis à 1 car le type de vente par enchère avec vente directe n'autorise la vente que d'un article à la fois."
|
49 |
+
"Invalid start date.","Date de début invalide."
|
50 |
+
"The end date must be in the future.","La date de fin doit être dans le future."
|
51 |
+
"Listed listings cannot be modified. Stop the listing first to make changes.","Les listings déjà listé ne peuvent être modifiées. Veuillez arrêter le listing avant de pouvoir faire des changements."
|
52 |
+
"An error occurred while saving the configuration.","Une erreur s'est déroulée lors de la sauvegarde de la configuration."
|
53 |
+
"ricardo.ch Service Model doesn\'t exists.","ricardo.ch Service Model n'existe pas."
|
54 |
+
"ricardo.ch API Credentials are not configured. Please, configure the extension before to proceed.","Les informations de connexion à l'API de ricardo.ch ne sont pas configurées. Veuillez configurer l'extension avant de continuer."
|
55 |
"API language provided for the Service Manager is not supported.","API language provided for the Service Manager is not supported."
|
56 |
+
"Error while trying to connect to the ricardo.ch API. Please, check your log files.","Une erreur s'est déroulée lors de la connexion à l'API de ricardo.ch. Veuillez vérifier vos fichiers de journalisation."
|
57 |
+
"The format of the token is invalid","Le format du token est invalide."
|
58 |
+
"The dispatcher of type '%s' is not found at %s.","Le dispatcher du type '%s' n'a pas été trouvé à %s."
|
59 |
"Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract.","Dispatcher Class %s doesn't implements Diglin_Ricento_Model_Dispatcher_Abstract."
|
60 |
+
"The product has been sold","Le produit a été vendu."
|
61 |
+
"Customer creation failed! ricardo.ch transaction cannot be added.","La création du compte client a échoué! La transaction ricardo.ch ne peut être ajouté."
|
62 |
+
"Order automatically generated by the ricardo.ch Extension.","Commande automatiquement créé par l'extension ricardo.ch."
|
63 |
+
"Payment is pending","Le paiement est en attente."
|
64 |
+
"Payment has been completed on ricardo.ch side","Le paiement a été terminée du côté de ricardo.ch"
|
65 |
+
"Order canceled on ricardo.ch side","La commande a été annulée du côté de ricardo.ch"
|
66 |
+
"Country Code is not available. Please contact the author of this extension or support.","Le code pays n'est pas disponible. Veuillez contacter l'auteur de l'extension pour obtenir de l'aide."
|
67 |
+
"Report: %d success, %d warning(s), %d error(s)","Rapport: %d réussi(s), %d avertissements(s), %d erreur(s)"
|
68 |
+
"Successful products checked are going to be listed. To force to list products having a warning, please <a href=""%s"">clicking here</a>. Products with an error won't be synchronized, you have to fix the problem first.","Les produits vérifiés avec succès vont être listé. Pour forcer à lister les produits ayant reçu un avertissement, veuillez <a href=""%s"">cliquer ici</a>. Les produits ayant une erreur ne seront pas envoyés à ricardo.ch, vous devez tout d'abord corrigé le problème."
|
69 |
+
"The product is now live on ricardo.ch","Le produit est maintenant publié sur ricardo.ch"
|
70 |
+
"Sorry, the product has not been sold","Désolé, le produit n'a pas été vendu"
|
71 |
+
"This item is already listed or has already a ricardo article Id. No insert done to ricardo.ch","Cet élément est déjà listé ou a déjà un ricardi article ID. Aucune insertion pour cet élément vers ricrdo.ch"
|
72 |
+
"The product has been removed from ricardo.ch","Le produit a été retiré de ricardo.ch"
|
73 |
+
"The product has not been removed from ricardo.ch. Probably because someone bid the product or bought it.","Le produit n'a pu être retiré de ricardo.ch. Probablement à cause d'une enchère déjà faite ou que le produit a été vendu."
|
74 |
+
"Report: %d success, %d error(s)","Rapport: %d réussi(s), %d erreur(s)"
|
75 |
+
"errors","erreur"
|
76 |
+
"warnings","avertissement"
|
77 |
+
"success","réussi"
|
78 |
+
"The Job has finished with %s.","Le Job s'est terminé avec %s."
|
79 |
+
"Please, view the <a href=""%s"">log</a> for details.","Veuillez afficher le <a href=""%s"">journal</a> pour plus de détails."
|
80 |
+
"No item is ready for this job. No action has been done.","Aucun élément n'est prêt pour ce job. Aucune action n'a été entrepris."
|
81 |
+
"Error Code: %d","Code erreur: %d"
|
82 |
"Notice","Notice"
|
83 |
+
"Success","Réussi"
|
84 |
+
"Error","Erreur"
|
85 |
+
"Warning","Avertissement"
|
86 |
+
"Product item checks","Vérification des produits"
|
87 |
+
"List product item to ricardo.ch","Lister les produits vers ricardo.ch"
|
88 |
+
"Stop product item to ricardo.ch","Stopper les produits de ricardo.ch"
|
89 |
+
"Default Values","Valeurs par défault"
|
90 |
+
"No package","Aucun paquet"
|
91 |
+
"-- Select Product Attribute --","-- Sélectionner l'attribut de produit--"
|
92 |
+
"-- Select Method --","-- Sélectionner la méthode --"
|
93 |
+
"No change","Aucun changement"
|
94 |
+
"Relative increase (+ %)","Augmentation relative (+ %)"
|
95 |
+
"Relative decrease (- %)","Dimuntion relative (- %)"
|
96 |
+
"Absolute increase (+)","Augmentation absolue (+)"
|
97 |
+
"Absolute decrease (-)","Diminution absolue (+)"
|
98 |
+
"None","Aucun"
|
99 |
+
"ricardo.ch Condition","Condition ricardo.ch"
|
100 |
+
"-- Please Select --","-- Veuillez sélectionner --"
|
101 |
+
"Auction","Enchère"
|
102 |
+
"Buy now","Vente directe"
|
103 |
+
"Highest Price","Prix le plus haut"
|
104 |
+
"Cumulative","Cumulatif"
|
105 |
+
"Pending","En attente"
|
106 |
+
"Running","En cours"
|
107 |
+
"Ready","Prêt"
|
108 |
+
"Completed","Terminé"
|
109 |
"Products Check Job","Products Check Job"
|
110 |
"List Job","List Job"
|
111 |
"Stop List Job","Stop List Job"
|
113 |
"Relist Job","Relist Job"
|
114 |
"Update Job","Update Job"
|
115 |
"Sync List Job","Sync List Job"
|
116 |
+
"-- Please select --","-- Veuillez sélectionner --"
|
117 |
+
"All languages","Toutes les langues"
|
118 |
+
"Listed","Listé"
|
119 |
+
"Stopped","Arrêté"
|
120 |
+
"Ready to list","Prêt à être listé"
|
121 |
+
"Check in progress...","Vérification en cours..."
|
122 |
+
"List in progress...","Listage en cours..."
|
123 |
+
"Job in progress...","Job en cours..."
|
124 |
+
"Product Title will be cut after %s characters when published on ricardo.ch for store ""%s""","Le titre du produit seraa coupè après %s caractères une fois publié sur ricardo.ch pour le magasin ""%s"""
|
125 |
+
"Product Subtitle will be cut after %s characters when published on ricardo.ch for store ""%s""","Le sous-titre du produit seraa coupè après %s caractères une fois publié sur ricardo.ch pour le magasin ""%s"""
|
126 |
+
"Product Description will be cut after %s characters when published on ricardo.ch for store ""%s""","La description du produit seraa coupè après %s caractères une fois publié sur ricardo.ch pour le magasin ""%s"""
|
127 |
+
"Custom Options are not supported. Those won\'t be synchronized into ricardo.ch.","Les options individuels ne sont pas supporté. Ils ne seront pas synchronisé vers ricardo.ch."
|
128 |
+
"The product or its associated products is/are not in stock or doesn\'t have enough quantity in stock.","Le produit ou ses produits associées ne sont pas suffisemment en stock."
|
129 |
+
"You MUST define a ricardo category for this product. Check that you set it at products listing level or at Magento category level.","vous DEVEZ définir une catégorie ricardo.ch pour ce produit. Veuillez vérifier au niveau de la liste de produit ou au niveau des catégories de Magento (consulter la documentation pour plus d'information)"
|
130 |
+
"Payment and/or Shipping combination are not correct.","La combinaison paiement et/ou livraison ne sont pas corrects."
|
131 |
+
"You cannot have a starting price for an auction of %2$s when you set a direct sales with a product price of %1$s.","Vous ne pouvez avoir un prix de départ pour une enchère de %2$s quand vous définissez un prix de vente de %1$s."
|
132 |
+
"Product Price of %s CHF is incorrect for a direct sales with credit card. Price must be between %s and %s.","Le prix du produit de %s CHF est incorrecte pour une vente directe. Le prix doit être entre %s et %s."
|
133 |
+
"The ending date is too early or too late. Minimum period allowed: %s days - Maximum period allowed: %s days","La date de fin se termine trop tôt ou trop tard. La période minimum autorisée est: %s jours - La période maximum autorisée est: %s jours"
|
134 |
+
"You cannot use the privilege spaces as you do not have any pictures for this product.","Vous ne pouvez bénéficier de l'offre privilège étant donné qu'aucune image n'a été trouové pour ce produit."
|
135 |
+
"This increment value is not possible for this start price.","La valeur d'incrémentation n'est pas possible pour ce prix de départ."
|
136 |
+
"Only the following combinations are possible:","Seul les combinaisons suivantes sont possibles:"
|
137 |
+
"Start price is between","Le prix de départ est entre"
|
138 |
+
"Increment must be between","L'incrément doit être"
|
139 |
+
"This payment method combination is not possible.","La combinaison de ces modes de paiement n'est pas possible."
|
140 |
+
"The following combinations are possible:","Les combinaisons suivantes sont possibles:"
|
141 |
+
"It is not possible to combine ""Other"" shipping method with ""Credit Card"" payment method","Il n'est pas possible de combiner le mode de livraison ""Autre"" avec le mode de paiement ""Carte de crédit""."
|
142 |
+
"No category will be displayed, the products listing doesn\'t exists. Please, close the window.","Aucune catégorie ne sera affiché, la liste de produits n'existe pas. Veuillez fermer cette fenêtre."
|
143 |
+
"You are not allowed to save the products listing, so you cannot add products from a category. Please, close the window.","Vous n'êtes pas autorisé de sauvegardé la liste de produits, et ne pouvez donc ajouté de produits de cette catégorie. Veuillez fermer cette fenêtre."
|
144 |
+
"Product(s) from the selected categories cannot be saved. The products listing doesn\'t exists.","Les produit(s) de la catégorie sélectionnée ne peuvent être sauvegardé. La liste de produits n'existent pas."
|
145 |
+
"You are not allowed to save the products listing, so you cannot add products from a category.","Vous n'êtes pas autorisé de sauvegardé la liste de produits, et ne pouvez donc ajouté de produits de cette catégorie."
|
146 |
+
"%d product(s) added to the listing","%d produit(s) ajouté à la liste"
|
147 |
+
"Error occurred while saving the product(s) from the selected categories. Please check your exception log.","Une erreur s'est déroulée lors de la sauvegarde des produit(s) des catégories sélectionnées. Veuillez vérifier vos fichiers de journalisation."
|
148 |
+
"The action you try to do, is not possible. You must authorize the API token. Please, go the <a href=""%s"">ricardo.ch Authorization</a> page to do the authorization process","L'action que vous essayez de faire, n'est pas autorisée. Vous devez autoriser le token de l'API Veuillez visiter la page <a href=""%s"">d'autorisation de ricardo.ch </a> pour effectuer le processus d'autorisation."
|
149 |
+
"Listing name and website must be specified.","Le nom de la liste de produits et le site web doivent être définis."
|
150 |
+
"We have detected and set for you the language configuration. Please, review it before to go further.","Nous avons détecté et mis en place la configuration pour les langues de votre site. Veuillez les vérifier avant de continuer le reste de la configuration."
|
151 |
+
"The listing has been saved.","La liste des produits a été sauvegardée"
|
152 |
+
"An error occurred while saving the listing.","Une erreur s'est déroulée lors de la sauvegarde de la liste des produits"
|
153 |
+
"Listed listings cannot be deleted. Stop the listing first.","Les listings déjà listé ne peuvent être effacés. Veuillez arrêter tout d'abord le listing."
|
154 |
+
"Listing deleted","Liste de produit effacée"
|
155 |
+
"%d products removed from listing","%d produits supprimés de la liste de produits"
|
156 |
+
"%d products are listed and could not be removed","%d produits sont listé et ne peuvent être supprimés"
|
157 |
+
"The API token and configuration are not ready to allow this action. Please, check that your token is enabled and not going to expire.","Le token de l'API and la configuration ne sont pas prêt pour autoriser cette action. Veuillez vérifier que le token est activé et qu'il ne va pas expiré."
|
158 |
+
"A similar job is already running. This job won\'t be executed.","Un job est en cours d'exécution. Ce job ne peut être lancé pour le moment."
|
159 |
+
"It\'s s not possible to start this job. You must authorize the API token. Please, go the <a href=""%s"">ricardo.ch Authorization</a> page to do the authorization process","Il n'est pas possible de démarrer ce job. Vous devez autoriser le token de l'API Veuillez visiter la page <a href=""%s"">d'autorisation de ricardo.ch </a> pour effectuer le processus d'autorisation."
|
160 |
+
"An error occurred while starting this job. Please check your log file.","Une erreur s'est déroulée lors du démarrage du job. Veuillez vérifier vos fichiers de journalisation."
|
161 |
+
"The job to check your products listing will start in few minutes. You can check the progression below.","Le job pour vérifier votre liste de produits démarrera dans quelques minutes. Vous pouvez vérifier la progression dessous."
|
162 |
+
"If it finishes with success, your products will be listed automatically otherwise you will have to choose if you want to keep going to list or fix potential issues.","Si cela se termine avec succès, les produits seront automatiquement publiés sinon vous devrez décider si vous souhaitez continuer à lister les produits ou corriger les problèmes éventuels."
|
163 |
+
"There is no product ready to be listed. Please, add products to your products listing ""%s"".","Il n'y a aucun produit prêt à être listé. Veuillez ajouté des produits à votre liste de produit ""%s""."
|
164 |
+
"There is no pending product to check.","Il n'y a aucun produit en attente à vérifier."
|
165 |
+
"The job to list your products listing will start in few minutes.","Le job pour lister votre liste de produits démarrera dans quelques minutes."
|
166 |
+
"You can check the progression below.","Vous pouvez vérifier la progression ci-dessous."
|
167 |
+
"There is no item to relist. Only products who have been sold on ricardo.ch can be relisted for the products listing %d.","Il n'y a aucun élément à relister. Seuls les produits qui ont été vendu sur ricardo.ch peuvent être relistés pour la liste des produits %d."
|
168 |
+
"Only listed product items can be stopped.","Seul les produits listés peuvent être arrêté."
|
169 |
+
"The job to stop to list your products will start in few minutes.","Le job pour arrêter votre liste de produits démarrera dans quelques minutes."
|
170 |
+
"Products listing(s) is/are successfully deleted.","La ou les liste(s) de produits a/ont été supprimé(s) avec succès."
|
171 |
+
"The following products listings IDs have not been deleted because they are still listed on ricardo.ch: %s","La ou les ID(s) de liste(s) de produit(s) suivante(s) n'ont pas été supprimés car ils sont encore listés sur ricardo.ch."
|
172 |
+
"An error occurred while trying to delete the products listing(s). Please, check your exception log.","Une erreur s'est déroulée lors de la suppression de la liste des produits. Veuillez vérifier vos fichiers de journalisation."
|
173 |
+
"No products selected.","Aucun produit séelctionné."
|
174 |
+
"The configuration has been saved successfully.","La configuration a été sauvegardée avec succès."
|
175 |
+
"An error occurred while saving the configuration. Please, check your log files for more details.","Une erreur s'est déroulée lors de la sauvegarde de la configuration. Veuillez vérifier vos fichiers de journalisation."
|
176 |
+
"It\'s just a preview. Please, be aware that the display on ricardo.ch might be slightly different.","C'est seulement une prévisualisatoin. L'affichage sur ricardo.ch sera probablement différent."
|
177 |
+
"Log(s) is/are successfully deleted.","Le ou les journaux (s) a/ont été supprimés avec succès."
|
178 |
+
"An error occurred while trying to delete the listing log(s). Please, check your exception log.","Une erreur s'est déroulée lors de la suppression de la ou les journaux des listes de produits. Veuillez vérifier vos fichiers de journalisation."
|
179 |
+
"Job(s) is/are successfully deleted.","Le ou les job(s) a/ont été supprimés avec succès."
|
180 |
+
"The following job IDs have not been deleted because they are still running: %s","La ou les ID(s) de job(s) n'ont pas été supprimés car ils sont en cours d'exécution."
|
181 |
+
"An error occurred while trying to delete the job(s). Please, check your exception log.","Une erreur s'est déroulée lors de la suppression de la ou les job(s). Veuillez vérifier vos fichiers de journalisation."
|
|
|
182 |
"ricardo.ch API Signup","ricardo.ch API Signup"
|
183 |
"API Signup","API Signup"
|
184 |
+
"ricardo.ch Assistant Portal","Portail ricardo.ch Assistant"
|
185 |
+
"Assistant Portal","Portail Assistant"
|
186 |
+
"Only Ajax call is allowed here.","Seul les appels ajax sont autorisés ici."
|
187 |
+
"The website code returned from ricardo.ch is not correct! Your authorization has not been saved on our side.","Le code du site web retourné par ricardo.ch est incorrect. Votre autorisation n'a pas été sauvegardé."
|
188 |
+
"Your ricardo.ch account has been authorized to get access to the API.","Votre compte ricardo.ch a été autorisé d'accès à l'API."
|
189 |
+
"An error occurred while saving the token. Please, check your log files.","Une erreur s'est déroulée lors de la sauvegarde du token. Veuillez vérifier vos fichiers de journalisation."
|
190 |
+
"Authorization was not successful on ricardo.ch side. Please, contact ricardo.ch to find out the reason.","L'autorisation ne s'est pas déroulé correctement du côté de ricardo.ch. Veuillez contacter ricardo.ch pour plus d'informations."
|
191 |
"Sign Up to ricardo.ch API","Sign Up to ricardo.ch API"
|
192 |
+
"API Authorization","Autorisation API"
|
193 |
+
"No Selection","Aucune sélection"
|
194 |
+
"Open ricardo.ch Category Window","Ouvrir la fenêtre des catégories de ricardo.ch"
|
195 |
+
"Add products from selected categories","Ajouter des produits depuis les catégories sélectionnées."
|
196 |
+
"Only product types supported, enabled and not listed in other products listing will be added.","Les types de produits supportés, activés et non listés dans d'autres liste de produits seront ajoutés."
|
197 |
+
"Be aware, you have also to select the sub-categories, otherwise selecting only a top category won\'t allow to add products of its subcategories.","Veuillez sélectioner aussi les sous-catégories dont les produits appartiennent, sinon seuls les produits qui appartiennent à la catàégorie principale seront ajoutés, pas ceux des sous-catégories."
|
198 |
+
"Create new listing","Créer unen liste de produits"
|
199 |
+
"Show Synchronization Jobs","Afficher les Jobs de synchronization "
|
200 |
+
"General","Général"
|
201 |
+
"Products","Produits"
|
202 |
+
"Sales Options","Options de vente"
|
203 |
+
"Rules","Règles"
|
204 |
+
"Product ID","ID de produit"
|
205 |
+
"Name","Nom"
|
206 |
+
"Price","Prix"
|
207 |
"Type","Type"
|
208 |
"SKU","SKU"
|
209 |
+
"Inventory","Inventaire"
|
210 |
"Status","Status"
|
211 |
"Action","Action"
|
212 |
+
"Preview","Prévisualisation"
|
213 |
+
"Configure","Configurer"
|
214 |
+
"Remove","Supprimer"
|
215 |
+
"Are you sure to remove this/these product(s)?","Etes-vous sûr de vouloir supprimer ce/ces produit(s) ?"
|
216 |
+
"Remove from list","Supprimer de la liste"
|
217 |
+
"the sales options","Les options de vente"
|
218 |
+
"the shipping and payment rules","les règles de paiement et de livraison"
|
219 |
+
"This product has been configured for %s %s","Le produit a été configuré pour %s %s"
|
220 |
+
"The product has custom options, those will not be added to ricardo.ch!","Le produit a des options individuels, ceux-ci ne seront pas envoyées vers ricardo.ch"
|
221 |
"ID","ID"
|
222 |
+
"Add selected product(s)","Ajouter le/les produit(s) sélectionné(s)"
|
223 |
+
"Title","Titre"
|
224 |
+
"Website","Site web"
|
225 |
+
"Language","Langue"
|
226 |
+
"Product languages to synchronize to ricardo.ch","Langues de produit à synchroniser vers ricardo.ch"
|
227 |
+
"ricardo.ch supports only two languages at the moment: German and French. You can set in which language you want to publish your product content (title, subtitle, description, etc).","ricardo.ch supporte que deux langues: Allemand et Français. Vous pouvez définir dans quelle langue vous souhaitez publier les informations de vos produits (tire, sous titre et description)"
|
228 |
+
"Default language to publish","Langue par défaut à publier"
|
229 |
+
"Which language to publish by default to ricardo.ch when the product content is not available in a language","Dans quelle langue publier vers ricardo.ch lorsque le contenu d'un produit n'est pas disponible dans une langue."
|
230 |
+
"Store View for %s","Vue magasin pour %s"
|
231 |
+
"Payment Methods","Mode de paiement"
|
232 |
+
"Payment Description German","Description de paiement Allemand"
|
233 |
+
"Characters: %s. Max. 5 000 characters. Payment information to display to customers. Will be send to ricardo only if you select the method ""Other""","Caractères: %s Max. 5000 caractères. Information de paiement à afficher aux clients. Sera envoyé vers ricardo.ch seulement si vous sélectionnez la méthode ""Autre"""
|
234 |
+
"Payment Description French","Description du paiement Français"
|
235 |
+
"Shipping Methods","Mode de livraison"
|
236 |
+
"Shipping Price","Frais de livraison"
|
237 |
+
"Free shipping","Livraison gratuite"
|
238 |
+
"Is Shipping fee cumulative","Est-ce que les frais de livraison sont cumulatifs ?"
|
239 |
+
"If you select this option, the shipping fee will be calculate for each sold product.","Si vous sélectionnez cette option, les frais de livraison seront calculés pour chaque produit vendu."
|
240 |
+
"e.g. an article is sold with a quantity of 3 to one customer and the shipping fee is 15 CHF. Total Shipping fee is 45 CHF. Let it empty if you don't such an option.","ex. un article est vendu dans une quantité de 3 pour un seul client and les frais de livraison sont de 15 CHF. Les frais de livraisons totaux seront de 45 CHF."
|
241 |
+
"Shipping Availability","Disponibilité"
|
242 |
+
"Shipping Description German","Description de la livraison Allemand"
|
243 |
+
"Characters: %s. Max. 5 000 characters","Caractères: %s. Max. 5 000 caractères"
|
244 |
+
"Shipping Description French","Description de la livraison Français"
|
245 |
+
"Category","Catégorie"
|
246 |
+
"ricardo.ch Category","Catégorie ricardo.ch"
|
247 |
+
"Use Magento / ricardo.ch Category mapping (if mapping does not exist, an error message will be triggered while preparing the synchronization to ricardo.ch)","Utiliser la foncitonnalité de mapping des catégories Magento / ricardo.ch (si le mapping n'existe pas, un message d'erreur sera affiché lors de la synchrnoisation vers ricardo.ch)"
|
248 |
+
"Select ricardo.ch Category","Sélectionnez la catégorie ricardo.ch"
|
249 |
+
"Select the category","Sélectionnez la catégorie"
|
250 |
+
"Type of sales","Type de vente"
|
251 |
+
"Start price","Prix de départ"
|
252 |
+
"Range from Fr. 0.05 to Fr. 1 000 000. If Credit card payment method available and enabled, the range is from Fr. 0.05 to Fr. 2 999.95.","Tranche de Fr. 0.05 à Fr. 1 000 000. Si le mode de paiement par carte de crédit est disponible et sélectionné, la tranche sera de Fr. 0.05 à Fr. 2 999.95."
|
253 |
+
"Increment","Incrément"
|
254 |
+
"Currency","Monnaie"
|
255 |
+
"Allow Direct Buy","Autoriser la vente directe"
|
256 |
+
"Fill in the fieldset ""Buy now"" below to define the direct price settings. <strong>Note</strong>: if set to ""Yes"", the stock management will be set to ""Custom Qty"" with a value of 1.","Remplissez l'ensemble des champs ""Vente directe"" ci-dessous pour définir les réglages des prix de vente. <strong>Note</strong>: Si défini sur ""Oui"", le nombre d'article autorisé à la mise en vente sera mise automatiquement à 1."
|
|
|
257 |
"Source","Source"
|
258 |
+
"Price Change","Variation de prix"
|
259 |
+
"For Fixed Price articles, the minimum price is Fr. 0.05 and maximum Fr. 2 999.95 if the Credit Card payment method is used.","Pour les articles vendus en vente directe, le prix minimum est de Fr. 0.05 et maximum est de Fr. 2 999.95 si le mode de paiement par carte bancaire est utilisé."
|
260 |
+
"For Auction articles, the minimum amount is Fr. 0.1 and must be greater than the Start Price.","Pour les articles en vente par enchère, le montant minimum est de Fr. 0.1 et doit être supérieur au montant défini dans le ""Prix de départ"""
|
261 |
+
"If not correctly defined, the minimum and maximum values will be automatically set.","SI cela n'est pas définii correctement, les valeurs minimales et maximales seront définies automatiquement."
|
262 |
+
"Schedule","Plannification"
|
263 |
+
"Start","Début"
|
264 |
+
"Starting date must start minimum in one hour and maximum 30 days in the future.","La date de début doit être au minimum une heure et maxium 30 jours dans le future."
|
265 |
+
"Start immediately","Démarrer imméditatement"
|
266 |
+
"Start from","Démarrer à partir de"
|
267 |
+
"End","Terminer"
|
268 |
+
"Ending date must finish at the minimum in 24 hours and maximum 10 days from the starting date.","La date de fin doit être définie au minimum 24 heures et maximum 10 jours à partir de la date de départ."
|
269 |
+
"End after %s days","Terminé après %s jours"
|
270 |
+
"End on","Terminé le"
|
271 |
+
"Reactivation","Réactivation"
|
272 |
"Cycle","Cycle"
|
273 |
+
"Cycle to publish multiple products %s minutes after the first publish","Cycle pour publier multiple products %s minutes après la première publication"
|
274 |
+
"Randomly published","Publié de manière aléatoire"
|
275 |
+
"Overwrite all products starting date","Surchager toutes les dates de début des produits."
|
276 |
+
"Product Condition","Condition du produit"
|
277 |
+
"Default Condition","Condition par défaut"
|
278 |
+
"Condition Product Source","Source des conditions des produits"
|
279 |
+
"Do you want to define the condition source from the ricardo.ch Condition Attribute if you defined it on product basis? Otherwise, if not found or you set here to ""No"", the default condition set above will be defined.","Voulez-vous définir la source des conditions depuis l'attribut de Condition de ricardo.ch que vous aurez préalablement défini dans votre catalogue de produit Magento? Si elle est vide ou non définie dans votre catalogue, la condition par défaut de vos produits sera celle indiquée ci-dessus."
|
280 |
+
"Warranty","Garrantie"
|
281 |
+
"Warranty description German","Description de la garantie Allemand"
|
282 |
+
"Characters %s. Max. 5 000 characters","Caractères: %s. Max. 5 000 caractères"
|
283 |
+
"Warranty description French","Description de la garantie Français"
|
284 |
+
"Stock Management","Gestion des stocks"
|
285 |
+
"Range 1...999. If you use the product inventory option, the amount of items will be taken from the field ""Qty"" defined in the product inventory and limited to 999 if you have a quantity above this value.","Tranche de 1...999. Si vous utilisez l'option "Inventaire du produit", la quantité d'articles sera pris depuis le champ ""Quantité"" définie dans l'inventaire du produit et limité à 999 si la quantité est au-delà de la valeur autorisée."
|
286 |
+
"Use product inventory","Utilisez l'inventaire du produit"
|
287 |
+
"Use custom qty","Utilisez une quantité personnalisée"
|
288 |
+
"Customization","Personnalisation"
|
289 |
+
"Template","Modèle"
|
290 |
+
"To create one go to your <a onclick=""window.open(\'%s\')"">ricardo.ch account</a> into ""My Sales"".","Pour créer un modèle, visiter votre <a onclick=""window.open(\'%s\')"">compte ricardo.ch</a> et ""Mes ventes""."
|
291 |
"Promotion","Promotion"
|
292 |
+
"Privilege Space","Espace privilège"
|
293 |
+
"PREMIUMHOMEPAGE","Espace privilège"
|
294 |
+
"Privilege space on main category page and search results. More information about this feature <a onclick=\"window.open('%s');\">here</a>","Espace privilégié sur la page catégorie principale et des résultats de recherche. Plus d'informations<a onclick=\"window.open('%s');\">ici</a>"
|
295 |
+
"Home Privilege Space","Espace privilège sur la page d'accueil"
|
296 |
+
"Privilege space on the homepage. More information about this feature <a onclick=\"window.open('%s');\">here</a>","Espace privilégié sur la page sur la page d'accueil. Plus d'informations <a onclick=\"window.open('%s');\">ici</a>"
|
297 |
+
"Home Space","Espace privilège Accueil"
|
298 |
+
"These options will not be activated for products having no picture.","Ces options ne seront pas activés pour les produits n'ayant pas d'image."
|
299 |
+
"Until sold","Jusqu'à la vente"
|
300 |
+
"Listed items cannot be modified. Stop the listing first to make changes.","Les produits déjà listés ne peuvent être modifiés. Vous devez arrêter la liste avant de pouvoir faire des changements."
|
301 |
+
"Back to the list ""%s""","Retour vers la liste ""%s"""
|
302 |
+
"Configure product '%s'","Configurer le produit '%s'"
|
303 |
+
"Configure all %s selected products","Configurer tous les %s produits sélectionnés"
|
304 |
+
"No ricardo.ch category found","Aucune catégorie ricardo.ch"
|
305 |
+
"Give a name","Donner un nom"
|
306 |
+
"Select a website","Sélectionner un site web"
|
307 |
+
"The website(s) must be configured and enabled for this extension. If this field is empty or some are missing please <a href=""%s"">configure</a> the extension.","Le site web doit être configuré et activé pour cette extension. Si ce champ est vide ou certains sont manquants, veuillez <a href=""%s"">configurer</a> l'extension"
|
308 |
+
"Cancel","Annuler"
|
309 |
+
"Listed products:","Porduit listés:"
|
310 |
+
"Not listed products:","Produits non listés:"
|
311 |
+
"Add Product(s) from category","Ajouter des produits depuis une catégorie"
|
312 |
+
"Add Product(s)","Ajouter les produits"
|
313 |
+
"Stop","Arrêter"
|
314 |
+
"Remove article listed on ricardo.ch","Arrêter les articles listés sur ricardo.ch"
|
315 |
+
"Check & List","Vérifier et lister"
|
316 |
+
"Check & list only pending & error items","Vérifier et lister seulement les articles ayant des avertissements ou des erreurs"
|
317 |
+
"List","Lister"
|
318 |
+
"List only ""Ready to list"" items","Lister seulement les articles ""Prêt à être listé"""
|
319 |
+
"Edit Products Listing '%s'","Editer la liste de produits '%s'"
|
320 |
+
"New Products Listing","Nouvelle liste de produits"
|
321 |
+
"Websites","Site web"
|
322 |
"Total","Total"
|
323 |
+
"Edit","Editer"
|
324 |
+
"Relist","Relister"
|
325 |
+
"Stop List","Arrêter la liste"
|
326 |
+
"View Logs","Voir les journaux"
|
327 |
+
"Change status","Changer le status"
|
328 |
+
"Delete","Supprimer"
|
329 |
+
"Are you sure that you want to delete this/these products listing(s)? Be aware it\'s not possible when the listing is ""Listed""","Etes-vous sûr de vouloir supprimer cette/ces liste(s) de produit? Il n'est pas possible de supprimé une liste déjà listé"
|
330 |
+
"Products Listing Log ""%s""","Journal de la liste de produits ""%s"""
|
331 |
+
"Edit ""%s""","Editer ""%s"""
|
332 |
"Job ID","Job ID"
|
333 |
+
"Listing ID","ID de la liste"
|
334 |
+
"Listing Title","Titre de la liste"
|
335 |
+
"Product title","Titre du produit"
|
336 |
"Message","Message"
|
337 |
+
"Created at","Créé le"
|
338 |
+
"Are you sure that you want to delete this/these log(s)?","Ets-vous sûr de vouloir effacer ces journaux?"
|
339 |
+
"Job Type","Type de job"
|
340 |
+
"Job Message","Message du job"
|
341 |
+
"Current Progress","Progression en cours"
|
342 |
+
"Started at","Démarré le"
|
343 |
+
"Ended at","Terminé le"
|
344 |
+
"Are you sure that you want to delete this/these job(s)?","Ets-vous sûr de vouloir effacer ces jobs?"
|
345 |
+
"Show Products Listing","Afficher la liste de produits"
|
346 |
+
"Listing","Liste"
|
347 |
+
"Synchronization","Synchronisation"
|
348 |
+
"Orders","Commandes"
|
349 |
"Transactions %s","Transactions %s"
|
350 |
+
"You may also access to the %s content of this page</a> in a new window.","Vous pouvez avoir accès au contenu %s de cette page</a> dans une nouvelle fenêtre"
|
351 |
+
"Your ricardo.ch API token credentials are going to expire in %s days for the website ""%s"".","Votre ricardo.ch token API va expiré dans %s jours pour le site web ""%s""."
|
352 |
+
"No ricardo.ch API Authorization have been found for the website ""%s"".","Aucune autorisation pour l'API de ricardo.ch n'a été trouvé pour le site web ""%s""."
|
353 |
+
"You have to authorize your account to get access to the ricardo.ch API thanks to the <a href=""%s"">ricardo.ch Authorization Page</a>. If you don't do it, your ricardo.ch extension and all related transactions with ricardo.ch will be blocked."," Vous devez autoriser votre compte pour pouvoir avoir accès à l'API de ricardo.ch grâce à la page d'<a href=""%s"">Authorization </a>. Si vous ne le faites pas, votre extension ricardo.ch et toutes les transactions en cours seront blockés."
|
354 |
+
"To hide this message, you have to <a href=""%s"">disable the extension</a>.","Pour cacher ce message, vous devez <a href=""%s"">désactiver l'extension</a>."
|
355 |
+
"The Official ricardo.ch Extension has been installed.","L'extension officielle ricardo.ch a été installée."
|
356 |
+
"Please, click <a href=""%s"">here to configure</a> the access to the ricardo.ch API.","Veuillez cliquer <a href=""%s"">ici pour configurer</a> l'accès à l'API de ricardo.ch"
|
357 |
+
"Latest message for the selected job","Dernier message du job sélectionné."
|
358 |
+
"<a href=""%s"">Edit</a> your products listing if needed","<a href=""%s"">Editer</a> votre liste de produits si besoin."
|
359 |
+
"No message found.","Aucun message trouvé"
|
360 |
+
"Confirm","Confirmer"
|
361 |
+
"More Views","Plus de vues"
|
362 |
+
"%s days 0:0:0","%s jours 0:0:0"
|
363 |
+
"Starting price","Prix de départ"
|
364 |
+
"Place a bit","Faire une offre"
|
365 |
+
"Quantity","Quantité"
|
366 |
+
"of %s","de %s"
|
367 |
+
"Details","Détails"
|
368 |
+
"Ending date:","Date de fin :"
|
369 |
+
"Availability:","Disponibilité :"
|
370 |
+
"Product condition:","Condition du produit :"
|
371 |
+
"Payment information:","Information de paiement :"
|
372 |
+
"Shipping Method (CH):","Mode de livraison (CH) :"
|
373 |
"Description","Description"
|
374 |
+
"Payment, Shipping, Warranty","Paiement, Livraison, Garrantie"
|
375 |
+
"Payment information","Information de paiement"
|
376 |
+
"Payment Methods:","Mode de paiement"
|
377 |
+
"Payment Description:","Description du paiement:"
|
378 |
+
"Shipping","Livraison"
|
379 |
+
"Shipping Price:","Frais de livraison:"
|
380 |
+
"Shipping Availability:","Disponiblité:"
|
381 |
+
"Shipping Description (CH):","Description de la livraison(CH):"
|
382 |
+
"You must select a ricardo.ch Category if you set this option","Vous devez sélectionner une catégorie ricardo.ch si vous sélectionnez cette option"
|
383 |
+
"The task will start few minutes","La tâche commencera dans quelques minutes"
|
384 |
+
"No progress","Aucune progression"
|
385 |
+
"The product list has been stopped.","La liste des produits a été arrêtée"
|
386 |
+
"ricardo.ch Lifetime Sales","Ventes totales sur ricardo.ch"
|
387 |
+
"Turnover per month","Chiffre d'affaire par mois"
|
388 |
+
"Best Sellers","Meilleurs ventes"
|
389 |
+
"Qty sold","Qte vendues"
|
390 |
+
"Product Name","Nom du produit"
|
|
|
391 |
"SKU","SKU"
|
392 |
+
"Price","Prix"
|
393 |
+
"Your ricardo.ch API Token","Votre token API ricardo.ch"
|
394 |
+
"PREMIUMCATEGORYBRONZE","Petite"
|
395 |
+
"PREMIUMCATEGORYSILVER","Moyenne"
|
396 |
+
"PREMIUMCATEGORYGOLD","Grande"
|
397 |
+
"TYPE_BANK_TRANSFER","Virement"
|
398 |
+
"TYPE_CASH","Cash"
|
399 |
+
"TYPE_CREDIT_CARD","Carte de crédit via ricardo.ch"
|
400 |
+
"TYPE_OTHER","Autre mode de paiement"
|
401 |
+
"UNKNOWNPROPERTY","Propriété inconnue"
|
402 |
+
"CUSTOMERNOTARTICLEOWNER","Le client courant ne peut agir sur l'article car il n'est pas le propriétaire "
|
403 |
+
"CHECKPASSWORDWRONGPASSWORD","Le CheckPassword est utilisé avec un mauvais mot de passe "
|
404 |
+
"CHECKPASSWORDBLACKLISTEDIP","Le CheckPassword est utilisé avec une IP blacklisté "
|
405 |
+
"CHECKPASSWORDBANNEDCUSTOMER","Le CheckPassword est utilisé avec un client banni, les informations additionnelles contiennent la date à partir de laquelle celui-ci a été banni. "
|
406 |
+
"CHECKPASSWORDCLOSEDCUSTOMER","Le CheckPassword est utilisé avec un client clôturé, les informations additionnelles contiennent la date à partir de laquelle celui-ci a été clôturé. "
|
|
|
|
|
|
|
407 |
"LOGADMINFAILED","Admin login failed "
|
408 |
"TOKENERROR","Token error for API "
|
409 |
"TOKENEXPIRED","Token expired for API "
|
420 |
"ACCOUNTCLOSED","The account linked to the customer has been closed"
|
421 |
"METHODNOTALLOWED","The Partnership used is not allowed to use this method"
|
422 |
"TOKEN_AUTHORIZATION","The authorization of the token must be again requested"
|
|
|
423 |
"CLOSEAUCTIONFAILED","Failed to close the auction"
|
424 |
"CLOSECLASSIFIEDFAILED","Failed to close a classified article"
|
425 |
"DELETEPLANNEDFAILED","Failed to delete planned article"
|
433 |
"ARTICLESAMOUNTLIMIT","Limit for amount of articles per 1 push is 100 "
|
434 |
"LISTOFARTICLESEMPTY","list of article empty"
|
435 |
"UNKNOWNCATEGORYNAME","Category name specified is unknown"
|
|
|
436 |
"EMPTYCOUNTRYID","EMPTYCOUNTRYID"
|
437 |
"EMPTYPARTNERID","EMPTYPARTNERID"
|
438 |
"EMPTYCATEGORY","EMPTYCATEGORY"
|
568 |
"PAYMENTMETHODNEEDALTERNATEONE","PAYMENTMETHODNEEDALTERNATEONE"
|
569 |
"WRONGPAYMENTMETHODS","WRONGPAYMENTMETHODS"
|
570 |
"CUMULATIVESHIPPINGNOTALLOWED","CUMULATIVESHIPPINGNOTALLOWED"
|
|
|
571 |
"MAXPICTURESCOUNTREACHED","MAXPICTURESCOUNTREACHED"
|
572 |
"MAXPICTURESIZEREACHED","MAXPICTURESIZEREACHED"
|
573 |
"ERRORRESIZINGPICTURE","ERRORRESIZINGPICTURE"
|
577 |
"INVALIDPICTUREINDEX","INVALIDPICTUREINDEX"
|
578 |
"MAXLOGOPICTURESIZEREACHED","MAXLOGOPICTURESIZEREACHED"
|
579 |
"ERRORRESIZINGLOGOPICTURE","ERRORRESIZINGLOGOPICTURE"
|
580 |
+
"NOTALLOWEDTOSELL","Product Not allowed to be sold"
|
|
|
581 |
"BILLINGERROR","BILLINGERROR"
|
582 |
"GETCUSTOMERERROR","GETCUSTOMERERROR"
|
583 |
"NEEDTOCHANGEPASSWORDERROR","NEEDTOCHANGEPASSWORDERROR"
|
639 |
"EMPTYMEMBERPREFERENCES","EMPTYMEMBERPREFERENCES"
|
640 |
"EMPTYADDRESSES","EMPTYADDRESSES"
|
641 |
"UNABLETOINSERT","UNABLETOINSERT"
|
642 |
+
"CREDITLIMITEXCEEDED","Limite de crédit excédé. Veuillez contacter ricardo.ch"
|
643 |
"ACTIVATIONCODESTATUSMANUALLYBLOCKED","ACTIVATIONCODESTATUSMANUALLYBLOCKED"
|
644 |
+
"No Options because API is not configured","Aucune option car l'API n'est pas configuré."
|
645 |
+
"No Options because API has a problem","Aucune option car l'API a un problème"
|
646 |
+
"Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>.","Security error occurred with the ricardo API. Please, check your log files and your <a href=""%s"">API configuration</a>."
|
647 |
+
"Security error occurred with the ricardo API. Please, check your log files.","Security error occurred with the ricardo API. Please, check your log files."
|
648 |
+
"Error occurred with the API. Check if the API is correctly configured: %s","Une erreur s'est déroulée avec l'API. Vérifier is l'API est correctement configuré: %s"
|
649 |
+
"Product Price of %s CHF is incorrect. Minimum price is %s.","Le prix du produit de %s CHF est incorrect. Prix minimu est %s."
|
650 |
+
"You cannot reactivate a product until sold out when doing an auction sales type.","Vous ne pouvez réactiver un produit juqu'à sa vente si vous avez configuré le type de vente par enchère."
|
651 |
+
"Following error(s) appeared:","Les erreurs suivantes sont apparues:"
|
652 |
+
"<strong>Attention:</strong> you cannot use the option ""Until sold"" if you select the Sales Type ""Auction""","<strong>Attention:</strong> vous ne pouvez pas utiliser l'option ""Jusqu'à la vente"" si vous sélectionnez le type de vente par ""Enchère"""
|
653 |
+
"The authorization of the ricardo.ch API Token can be done only %s before the expiration. You will receive automatically an email when it will be possible.","Le renouvellement de l'autorisation de l'API ricardo.ch ne peut être fait que %s jours avant l'expiration. Vous recevrez automatiquement un email lorsque cela sera possible."
|
654 |
+
"Merge Descriptions","Combiner les descriptions"
|
655 |
+
"Merge short and normal descriptions as one content for ricardo product description. The short description will be the first part and the normal description will be the second part of the ricardo article description.","Combiner la description courte et normale en tant qu'un seul contenu pour les descriptions de produits sur ricardo.ch. La description courte sera dans la première partie de la descripton, ensuite la description normale du produit sera placé à la suite. dans la description du produit sur ricardo.ch"
|
656 |
+
"Only 10 pictures maximum allowed.","Seulement 10 images maximum sont autorisées."
|
657 |
+
"The starting date must start one hour in future. It will be automatically updated to list on ricardo.","La date de début doit démarrer dans une heure dans le futur. Il sera mis à jour automatiquement lorsqu'il sera listé sur ricardo.ch"
|
658 |
+
"Enter product name: e.g. iphone","Entrer un nom de produit: exple: iphone"
|
659 |
+
"Sorry, no product found for fees calculation.","Désolé aucun produit trouvé pour effectuer le calcul des frais"
|
660 |
+
"Please, close this popup window and fix the errors before to be allowed to list your products on ricardo.ch.","Veuillez fermer cette fenêtre et corriger les erreurs avant de pouvoir lister les produits sur ricardo.ch"
|
661 |
+
"Product Listing Configuration","Configuration de la liste de produits"
|
662 |
+
"Currency Conversion","Conversion de la monnaie"
|
663 |
+
"The store's base currency is %2$s. Only %1$s is allowed as currency on ricardo.ch. Be aware that your product will be converted into %1$s. Check the documentation for more explanation.","La monnaie de base de la boutique est %2$s. Seul la monnaie %1$s est autorisée sur ricardo.ch. Sachez que les prix de vos produits seront convertis %1$s. Vérifier la documentation pour plus d'explication."
|
664 |
+
"Currency Rate not configured","Le cours des devises n'est pas configuré"
|
665 |
+
"Currency Rate not defined for CHF currency. Please configure your currency rate before to proceed.","Le cours n'est pas défini pour la monnaie CHF. Veuillez vérifier le cours de vos devises avant de continuer."
|
666 |
+
"Replace Carriage Return with br HTML Tag","Remplacer les retours charriots par le tag HTML <br>"
|
667 |
+
"Do you want to replace into the description the carriage return with <br> HTML Tag?","Voulez-vous remplacer dans la description des produits, les retours charriots par le tag HTML <br> ?"
|
668 |
+
"Product listing & promotion","Liste de produits & Promotions"
|
669 |
+
"Total price","Coût total"
|
670 |
+
"Important","Important"
|
671 |
+
"Listing Fees","Frais de listing"
|
672 |
+
"ricardo.ch does invoices in %s","ricardo.ch facture en %s"
|
673 |
+
"Sales Fee (following the <a href=""%s"" target=""_blank"">fees rules from 01.07.2014</a>)","Frais de vente (correspondant aux <a href=""%s"" target=""_blank"">conditions de frais du 01.07.2014</a>)"
|
674 |
+
"With the confirmation of the publication, you accept the <a href=""%s"" target=""_blank"">terms and conditions</a> and <a href=""%s"" target=""_blank"">privacy policy</a>","En confirmant la publication, vous acceptez les <a href=""%s"" target=""_blank"">termes et conditions</a> et <a href=""%s"" target=""_blank"">la politique de confidentialité</a>"
|
675 |
+
"Confirm, check and List","Confirmer, vérifier et lister"
|
676 |
+
"Send us your configuration","Envoyez nous votre configuration"
|
677 |
+
"Export your configuration","Exporter votre configuration"
|
678 |
+
"Receive email notification in case of error? Email are sent to the main shop contact and are related to API errors, Token expiration, etc...","Voulez-vous recevoir un email de notification en cas d'erreur? Les emails sont envoyés au contact principal de la boutique en cas d'erreur avec l'API ou que le token expire, etc..."
|
@@ -182,6 +182,37 @@ Ricento.progressPopup = function(url) {
|
|
182 |
}
|
183 |
});
|
184 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
Ricento.closePopup = function() {
|
186 |
Windows.close('ricento_popup');
|
187 |
};
|
@@ -294,7 +325,6 @@ Ricento.salesOptionsForm.prototype = {
|
|
294 |
Countable.live($(this.htmlIdPrefix + 'product_warranty_description_fr'), function (counter){
|
295 |
$(self.htmlIdPrefix + 'product_warranty_description_fr_result__all').update(counter.characters);
|
296 |
});
|
297 |
-
|
298 |
},
|
299 |
toggleRequired : function(field, required, label) {
|
300 |
field = $(field);
|
@@ -363,15 +393,18 @@ Ricento.salesOptionsForm.prototype = {
|
|
363 |
warrantyDescriptionLabel = $$('label[for='+ this.htmlIdPrefix + 'product_warranty_description_' + this.langs[i] + ']')[0];
|
364 |
|
365 |
required = (field.value == '0') ? 1 : 0;
|
366 |
-
currentLang = $('product_listing_publish_languages').value;
|
367 |
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
|
|
|
|
|
|
|
|
375 |
}
|
376 |
|
377 |
warrantyDescription.disabled = !required;
|
@@ -429,15 +462,18 @@ Ricento.RulesForm = Class.create (Ricento.salesOptionsForm, {
|
|
429 |
paymentDescriptionLabel = $$('label[for='+ this.htmlIdPrefix + 'payment_description_' + this.langs[i] + ']')[0];
|
430 |
|
431 |
required = field.checked;
|
432 |
-
currentLang = $('product_listing_publish_languages').value;
|
433 |
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
|
|
|
|
|
|
|
|
441 |
}
|
442 |
|
443 |
paymentDescription.disabled = !required;
|
@@ -450,17 +486,20 @@ Ricento.RulesForm = Class.create (Ricento.salesOptionsForm, {
|
|
450 |
shippingDescriptionLabel = $$('label[for='+ this.htmlIdPrefix + 'shipping_description_' + this.langs[i] + ']')[0];
|
451 |
|
452 |
required = (field.value == '0') ? 1 : 0;
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
|
|
|
|
462 |
}
|
463 |
|
|
|
464 |
shippingDescription.disabled = !required;
|
465 |
this.toggleRequired(shippingDescription, required, shippingDescriptionLabel);
|
466 |
}
|
@@ -497,7 +536,7 @@ Ricento.RulesForm = Class.create (Ricento.salesOptionsForm, {
|
|
497 |
this._changePrice(packageShipping);
|
498 |
select.addClassName('hidden');
|
499 |
} else {
|
500 |
-
this._changePrice(
|
501 |
select.addClassName('hidden');
|
502 |
}
|
503 |
},
|
@@ -608,6 +647,71 @@ Ricento.CategoryMappper.prototype = {
|
|
608 |
Ricento.categoryMappingTargetInput.value = formSerialized['ricardo_category_id'];
|
609 |
Ricento.categoryMappingTargetTitle.innerHTML = formSerialized['ricardo_category_selected_title'];
|
610 |
Ricento.closePopup();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
611 |
}
|
612 |
};
|
613 |
Ricento.GeneralForm = Class.create();
|
182 |
}
|
183 |
});
|
184 |
};
|
185 |
+
|
186 |
+
Ricento.confirmationPopup = function(url) {
|
187 |
+
if ($('ricento_popup') && typeof(Windows) != 'undefined') {
|
188 |
+
Windows.focus('ricento_popup');
|
189 |
+
return;
|
190 |
+
}
|
191 |
+
|
192 |
+
var parameters = $('edit_form').serialize(true);
|
193 |
+
Dialog.info({url:url, options: {parameters: parameters}}, {
|
194 |
+
closable:true,
|
195 |
+
resizable:true,
|
196 |
+
maximizable:true,
|
197 |
+
draggable:true,
|
198 |
+
className:'magento',
|
199 |
+
windowClassName:'confirmation-popup-window',
|
200 |
+
title: Translator.translate('List the products on ricardo.ch'),
|
201 |
+
top:50,
|
202 |
+
width:640,
|
203 |
+
height:480,
|
204 |
+
zIndex:1000,
|
205 |
+
recenterAuto:false,
|
206 |
+
hideEffect:Element.hide,
|
207 |
+
showEffect:Element.show,
|
208 |
+
id:'ricento_popup_confirmation',
|
209 |
+
showProgress:true,
|
210 |
+
onShow:function(dialog) {
|
211 |
+
dialog.element.innerHTML.evalScripts();
|
212 |
+
}
|
213 |
+
});
|
214 |
+
};
|
215 |
+
|
216 |
Ricento.closePopup = function() {
|
217 |
Windows.close('ricento_popup');
|
218 |
};
|
325 |
Countable.live($(this.htmlIdPrefix + 'product_warranty_description_fr'), function (counter){
|
326 |
$(self.htmlIdPrefix + 'product_warranty_description_fr_result__all').update(counter.characters);
|
327 |
});
|
|
|
328 |
},
|
329 |
toggleRequired : function(field, required, label) {
|
330 |
field = $(field);
|
393 |
warrantyDescriptionLabel = $$('label[for='+ this.htmlIdPrefix + 'product_warranty_description_' + this.langs[i] + ']')[0];
|
394 |
|
395 |
required = (field.value == '0') ? 1 : 0;
|
|
|
396 |
|
397 |
+
if ($('product_listing_publish_languages')) {
|
398 |
+
currentLang = $('product_listing_publish_languages').value;
|
399 |
+
|
400 |
+
switch (currentLang) {
|
401 |
+
case 'de':
|
402 |
+
case 'fr':
|
403 |
+
if (this.langs[i] != currentLang) {
|
404 |
+
required = false;
|
405 |
+
}
|
406 |
+
break;
|
407 |
+
}
|
408 |
}
|
409 |
|
410 |
warrantyDescription.disabled = !required;
|
462 |
paymentDescriptionLabel = $$('label[for='+ this.htmlIdPrefix + 'payment_description_' + this.langs[i] + ']')[0];
|
463 |
|
464 |
required = field.checked;
|
|
|
465 |
|
466 |
+
if ($('product_listing_publish_languages')) {
|
467 |
+
currentLang = $('product_listing_publish_languages').value;
|
468 |
+
|
469 |
+
switch (currentLang) {
|
470 |
+
case 'de':
|
471 |
+
case 'fr':
|
472 |
+
if (this.langs[i] != currentLang) {
|
473 |
+
required = false;
|
474 |
+
}
|
475 |
+
break;
|
476 |
+
}
|
477 |
}
|
478 |
|
479 |
paymentDescription.disabled = !required;
|
486 |
shippingDescriptionLabel = $$('label[for='+ this.htmlIdPrefix + 'shipping_description_' + this.langs[i] + ']')[0];
|
487 |
|
488 |
required = (field.value == '0') ? 1 : 0;
|
489 |
+
if ($('product_listing_publish_languages')) {
|
490 |
+
currentLang = $('product_listing_publish_languages').value;
|
491 |
+
|
492 |
+
switch (currentLang) {
|
493 |
+
case 'de':
|
494 |
+
case 'fr':
|
495 |
+
if (this.langs[i] != currentLang) {
|
496 |
+
required = false;
|
497 |
+
}
|
498 |
+
break;
|
499 |
+
}
|
500 |
}
|
501 |
|
502 |
+
|
503 |
shippingDescription.disabled = !required;
|
504 |
this.toggleRequired(shippingDescription, required, shippingDescriptionLabel);
|
505 |
}
|
536 |
this._changePrice(packageShipping);
|
537 |
select.addClassName('hidden');
|
538 |
} else {
|
539 |
+
this._changePrice($(this.htmlIdPrefix + 'shipping_price').value);
|
540 |
select.addClassName('hidden');
|
541 |
}
|
542 |
},
|
647 |
Ricento.categoryMappingTargetInput.value = formSerialized['ricardo_category_id'];
|
648 |
Ricento.categoryMappingTargetTitle.innerHTML = formSerialized['ricardo_category_selected_title'];
|
649 |
Ricento.closePopup();
|
650 |
+
},
|
651 |
+
initAutocomplete : function(url, destinationElement, defaultText){
|
652 |
+
|
653 |
+
var suggest = $('ricardo_categories_suggest');
|
654 |
+
var clearTimeout = 0;
|
655 |
+
var delay = 1000;
|
656 |
+
|
657 |
+
Event.observe(suggest, 'click', function () {
|
658 |
+
if (defaultText == suggest.value) {
|
659 |
+
suggest.value = '';
|
660 |
+
}
|
661 |
+
});
|
662 |
+
|
663 |
+
Event.observe(suggest, 'keydown', function () {
|
664 |
+
if (suggest.value.length >= 2 && !clearTimeout) {
|
665 |
+
clearTimeout = setTimeout(function(){
|
666 |
+
new Ajax.Request(
|
667 |
+
url,
|
668 |
+
{
|
669 |
+
method: 'get',
|
670 |
+
parameters: {sentence: $F('ricardo_categories_suggest')},
|
671 |
+
onComplete: function (transport) {
|
672 |
+
if (!transport.responseText.isJSON()) {
|
673 |
+
return;
|
674 |
+
}
|
675 |
+
|
676 |
+
var json = transport.responseText.evalJSON();
|
677 |
+
//var suggestions = '';
|
678 |
+
|
679 |
+
Element.hide('loading-mask');
|
680 |
+
clearTimeout = 0;
|
681 |
+
|
682 |
+
if (json.levels >= 5) {
|
683 |
+
$('ricardo_categories').addClassName('ricardo_categories_resized');
|
684 |
+
}
|
685 |
+
|
686 |
+
if (!json.error) {
|
687 |
+
$('messages').innerHTML = '';
|
688 |
+
$('category-tree').innerHTML = json.content;
|
689 |
+
$('ricardo_category_selected_title').value = json.category_id;
|
690 |
+
|
691 |
+
// To trigger event and reload some behavior after
|
692 |
+
categoryMapper = new Ricento.CategoryMappper({
|
693 |
+
wrapperElement : 'ricardo_categories',
|
694 |
+
loadChildrenUrl : json.children_url
|
695 |
+
});
|
696 |
+
|
697 |
+
//if (json.other_suggestions.length > 0) {
|
698 |
+
// json.other_suggestions.each(function(suggestion){
|
699 |
+
// suggestions += '<button type="button" class="button suggestion" onclick="alert(\''+ suggestion['CategoryId'] +'\')"><span><span>'+ suggestion['CategoryName'] +'</span></span></button>';
|
700 |
+
// });
|
701 |
+
//}
|
702 |
+
} else {
|
703 |
+
$('messages').innerHTML = json.error;
|
704 |
+
$('ricardo_categories').select('li').each(function(item) {
|
705 |
+
item.removeClassName('suggested');
|
706 |
+
});
|
707 |
+
}
|
708 |
+
//$('other-suggestions').innerHTML = suggestions;
|
709 |
+
}
|
710 |
+
}
|
711 |
+
)
|
712 |
+
}, delay);
|
713 |
+
}
|
714 |
+
});
|
715 |
}
|
716 |
};
|
717 |
Ricento.GeneralForm = Class.create();
|
Binary file
|
@@ -95,8 +95,7 @@ class Api implements ApiInterface
|
|
95 |
CURLOPT_POSTFIELDS => $this->jsonEncode($params),
|
96 |
CURLOPT_HTTPHEADER => $this->_addHeaders(),
|
97 |
CURLOPT_RETURNTRANSFER => true,
|
98 |
-
CURLOPT_SSLVERSION => 0
|
99 |
-
CURLOPT_SSL_CIPHER_LIST => 'TLSv1'
|
100 |
);
|
101 |
|
102 |
$ch = curl_init();
|
@@ -130,7 +129,7 @@ class Api implements ApiInterface
|
|
130 |
$dir = dirname($this->getConfig()->getLogFilePath());
|
131 |
@mkdir($dir, 0775);
|
132 |
if (is_writable($dir . DIRECTORY_SEPARATOR)) {
|
133 |
-
file_put_contents($this->getConfig()->getLogFilePath(), print_r($this->_lastDebug, true), FILE_APPEND);
|
134 |
}
|
135 |
}
|
136 |
}
|
95 |
CURLOPT_POSTFIELDS => $this->jsonEncode($params),
|
96 |
CURLOPT_HTTPHEADER => $this->_addHeaders(),
|
97 |
CURLOPT_RETURNTRANSFER => true,
|
98 |
+
CURLOPT_SSLVERSION => 0
|
|
|
99 |
);
|
100 |
|
101 |
$ch = curl_init();
|
129 |
$dir = dirname($this->getConfig()->getLogFilePath());
|
130 |
@mkdir($dir, 0775);
|
131 |
if (is_writable($dir . DIRECTORY_SEPARATOR)) {
|
132 |
+
file_put_contents($this->getConfig()->getLogFilePath(), print_r($this->_lastDebug, true) . "\n", FILE_APPEND);
|
133 |
}
|
134 |
}
|
135 |
}
|
@@ -93,4 +93,16 @@ class Helper
|
|
93 |
|
94 |
return $return;
|
95 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
93 |
|
94 |
return $return;
|
95 |
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* @return string
|
99 |
+
*/
|
100 |
+
public static function guid()
|
101 |
+
{
|
102 |
+
if (function_exists('com_create_guid') === true) {
|
103 |
+
return strtolower(trim(com_create_guid(), '{}'));
|
104 |
+
}
|
105 |
+
|
106 |
+
return strtolower(sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535)));
|
107 |
+
}
|
108 |
}
|
Binary file
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
|
22 |
+
namespace Diglin\Ricardo\Enums;
|
23 |
+
|
24 |
+
class SearchErrors extends AbstractEnums
|
25 |
+
{
|
26 |
+
|
27 |
+
const EMPTYSENTENCE = 1; // The search text is empty
|
28 |
+
const NOCATEGORYFOUND = 2; // The no category found
|
29 |
+
const BASESEARCHPARAMETERSEMPTY = 3; // The Base Search Parameters Empty
|
30 |
+
const PAGENUMBERTOOSMALL = 4; // The page number is too small need start from 1
|
31 |
+
const PAGESIZETOOSMALL = 5; // The Page Size is too small need start from 1
|
32 |
+
const NORESULTFOUND = 6; // No result found
|
33 |
+
const SITENUMBERISNOTSET = 7; // The site number is not selected default = 1
|
34 |
+
const UNIVERSEMISS = 8; // The universe id is not selected
|
35 |
+
const NUMBEROFARTICLESINCORECT = 9; // The Number Of Articles incorrect
|
36 |
+
const NOTACCESSORYCATEGORY = 10; // Not accessory category
|
37 |
+
const INCORRECTSELLERID = 11; // The incorrect seller identifier
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @return array
|
41 |
+
*/
|
42 |
+
public static function getEnums()
|
43 |
+
{
|
44 |
+
return array(
|
45 |
+
array('label' => 'The search text is empty', 'value' => self::EMPTYSENTENCE),
|
46 |
+
array('label' => 'No category found', 'value' => self::NOCATEGORYFOUND),
|
47 |
+
array('label' => 'The Base Search Parameters Empty', 'value' => self::BASESEARCHPARAMETERSEMPTY),
|
48 |
+
array('label' => 'The page number is too small need start from 1', 'value' => self::PAGENUMBERTOOSMALL),
|
49 |
+
array('label' => 'The Page Size is too small need start from 1', 'value' => self::PAGESIZETOOSMALL),
|
50 |
+
array('label' => 'No result found', 'value' => self::NORESULTFOUND),
|
51 |
+
array('label' => 'The site number is not selected default = 1', 'value' => self::SITENUMBERISNOTSET),
|
52 |
+
array('label' => 'The universe id is not selected', 'value' => self::UNIVERSEMISS),
|
53 |
+
array('label' => 'The Number Of Articles incorrect', 'value' => self::NUMBEROFARTICLESINCORECT),
|
54 |
+
array('label' => 'Not accessory category', 'value' => self::NOTACCESSORYCATEGORY),
|
55 |
+
array('label' => 'The incorrect seller identifier', 'value' => self::INCORRECTSELLERID),
|
56 |
+
);
|
57 |
+
}
|
58 |
+
}
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
namespace Diglin\Ricardo\Exceptions;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Class SearchException
|
25 |
+
* @package Diglin\Ricardo\Exceptions
|
26 |
+
*/
|
27 |
+
class SearchException extends ExceptionAbstract
|
28 |
+
{
|
29 |
+
|
30 |
+
}
|
Binary file
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
|
22 |
+
namespace Diglin\Ricardo\Managers;
|
23 |
+
|
24 |
+
use Diglin\Ricardo\Managers\Search\Parameter\GetCategoryBestMatchParameter;
|
25 |
+
|
26 |
+
class Search extends ManagerAbstract
|
27 |
+
{
|
28 |
+
/**
|
29 |
+
* @var string
|
30 |
+
*/
|
31 |
+
protected $_serviceName = 'search';
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @param GetCategoryBestMatchParameter $parameter
|
35 |
+
* @return array
|
36 |
+
*/
|
37 |
+
public function getCategoryBestMatch(GetCategoryBestMatchParameter $parameter)
|
38 |
+
{
|
39 |
+
return $this->_proceed('CategoryBestMatch', $parameter);
|
40 |
+
}
|
41 |
+
}
|
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
namespace Diglin\Ricardo\Managers\Search\Parameter;
|
22 |
+
|
23 |
+
use Diglin\Ricardo\Enums\System\LanguageId;
|
24 |
+
use Diglin\Ricardo\Managers\ParameterAbstract;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Class GetCategoryBestMatchParameter
|
28 |
+
* @package Diglin\Ricardo\Managers\Search\Parameter
|
29 |
+
*/
|
30 |
+
class GetCategoryBestMatchParameter extends ParameterAbstract
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* @var int
|
34 |
+
*/
|
35 |
+
protected $_languageId = LanguageId::GERMAN;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @var int
|
39 |
+
*/
|
40 |
+
protected $_numberMaxOfResult = 1;
|
41 |
+
|
42 |
+
/**
|
43 |
+
* @var bool
|
44 |
+
*/
|
45 |
+
protected $_onlyAllowToSell = true;
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @var string
|
49 |
+
*/
|
50 |
+
protected $_sentence = '';
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @var array
|
54 |
+
*/
|
55 |
+
protected $_requiredProperties = array(
|
56 |
+
'languageId',
|
57 |
+
'numberMaxOfResult',
|
58 |
+
'onlyAllowToSell',
|
59 |
+
'sentence'
|
60 |
+
);
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @return int
|
64 |
+
*/
|
65 |
+
public function getLanguageId()
|
66 |
+
{
|
67 |
+
return (int) $this->_languageId;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* @param int $languageId
|
72 |
+
* @return $this
|
73 |
+
*/
|
74 |
+
public function setLanguageId($languageId)
|
75 |
+
{
|
76 |
+
$this->_languageId = $languageId;
|
77 |
+
return $this;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @return int
|
82 |
+
*/
|
83 |
+
public function getNumberMaxOfResult()
|
84 |
+
{
|
85 |
+
return (int) $this->_numberMaxOfResult;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @param int $numberMaxOfResult
|
90 |
+
* @return $this
|
91 |
+
*/
|
92 |
+
public function setNumberMaxOfResult($numberMaxOfResult)
|
93 |
+
{
|
94 |
+
$this->_numberMaxOfResult = $numberMaxOfResult;
|
95 |
+
return $this;
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* @return boolean
|
100 |
+
*/
|
101 |
+
public function getOnlyAllowToSell()
|
102 |
+
{
|
103 |
+
return (bool) $this->_onlyAllowToSell;
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* @param boolean $onlyAllowToSell
|
108 |
+
* @return $this
|
109 |
+
*/
|
110 |
+
public function setOnlyAllowToSell($onlyAllowToSell)
|
111 |
+
{
|
112 |
+
$this->_onlyAllowToSell = $onlyAllowToSell;
|
113 |
+
return $this;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* @return string
|
118 |
+
*/
|
119 |
+
public function getSentence()
|
120 |
+
{
|
121 |
+
return (string) $this->_sentence;
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* @param string $sentence
|
126 |
+
* @return $this
|
127 |
+
*/
|
128 |
+
public function setSentence($sentence)
|
129 |
+
{
|
130 |
+
$this->_sentence = $sentence;
|
131 |
+
return $this;
|
132 |
+
}
|
133 |
+
}
|
@@ -27,6 +27,7 @@ use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticleParameter;
|
|
27 |
use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticlesParameter;
|
28 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
29 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticlesParameter;
|
|
|
30 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticleParameter;
|
31 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticlesParameter;
|
32 |
use Diglin\Ricardo\Managers\Sell\Parameter\UpdateArticleParameter;
|
@@ -148,13 +149,30 @@ class Sell extends ManagerAbstract
|
|
148 |
return $result['ArticleFee'];
|
149 |
}
|
150 |
|
|
|
151 |
/**
|
152 |
* @param UpdateArticlePicturesParameter $parameter
|
153 |
* @return $this
|
|
|
|
|
|
|
154 |
*/
|
155 |
public function updateArticlePictures(UpdateArticlePicturesParameter $parameter)
|
156 |
{
|
157 |
$this->_proceed('UpdateArticlePictures', $parameter); // no value returned
|
158 |
return $this;
|
159 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
}
|
27 |
use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticlesParameter;
|
28 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
29 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticlesParameter;
|
30 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\GetArticlesFeeParameter;
|
31 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticleParameter;
|
32 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticlesParameter;
|
33 |
use Diglin\Ricardo\Managers\Sell\Parameter\UpdateArticleParameter;
|
149 |
return $result['ArticleFee'];
|
150 |
}
|
151 |
|
152 |
+
|
153 |
/**
|
154 |
* @param UpdateArticlePicturesParameter $parameter
|
155 |
* @return $this
|
156 |
+
* @throws \Diglin\Ricardo\Exceptions\ExceptionAbstract
|
157 |
+
* @throws \Diglin\Ricardo\Exceptions\SecurityException
|
158 |
+
* @throws \Exception
|
159 |
*/
|
160 |
public function updateArticlePictures(UpdateArticlePicturesParameter $parameter)
|
161 |
{
|
162 |
$this->_proceed('UpdateArticlePictures', $parameter); // no value returned
|
163 |
return $this;
|
164 |
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
* @param GetArticlesFeeParameter $parameter
|
168 |
+
* @return $this
|
169 |
+
* @throws \Diglin\Ricardo\Exceptions\ExceptionAbstract
|
170 |
+
* @throws \Diglin\Ricardo\Exceptions\SecurityException
|
171 |
+
* @throws \Exception
|
172 |
+
* @return array
|
173 |
+
*/
|
174 |
+
public function getArticlesFee(GetArticlesFeeParameter $parameter)
|
175 |
+
{
|
176 |
+
return $this->_proceed('ArticlesFee', $parameter);
|
177 |
+
}
|
178 |
}
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
namespace Diglin\Ricardo\Managers\Sell\Parameter;
|
22 |
+
|
23 |
+
use Diglin\Ricardo\Managers\ParameterAbstract;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Class BaseInsertArticleWithTrackingParameter
|
27 |
+
* @package Diglin\Ricardo\Managers\Sell\Parameter
|
28 |
+
*/
|
29 |
+
class BaseInsertArticleWithTrackingParameter extends InsertArticleParameter
|
30 |
+
{
|
31 |
+
/**
|
32 |
+
* @var string
|
33 |
+
*/
|
34 |
+
protected $_correlationKey = '';
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @var array
|
38 |
+
*/
|
39 |
+
protected $_requiredProperties = array(
|
40 |
+
'articleInformation',
|
41 |
+
'descriptions',
|
42 |
+
'pictures',
|
43 |
+
);
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @var array
|
47 |
+
*/
|
48 |
+
protected $_optionalProperties = array(
|
49 |
+
'brandingArticleDetails',
|
50 |
+
'isUpdateArticle',
|
51 |
+
'carDealerArticleId',
|
52 |
+
'correlationKey'
|
53 |
+
);
|
54 |
+
|
55 |
+
/**
|
56 |
+
* @return string
|
57 |
+
*/
|
58 |
+
public function getCorrelationKey()
|
59 |
+
{
|
60 |
+
return $this->_correlationKey;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* @param string $correlationKey
|
65 |
+
* @return $this
|
66 |
+
*/
|
67 |
+
public function setCorrelationKey($correlationKey)
|
68 |
+
{
|
69 |
+
$this->_correlationKey = $correlationKey;
|
70 |
+
return $this;
|
71 |
+
}
|
72 |
+
}
|
@@ -65,11 +65,11 @@ class CloseArticlesParameter extends ParameterAbstract
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
* @param
|
69 |
* @param bool $clear
|
70 |
* @return $this
|
71 |
*/
|
72 |
-
public function setArticleIds(
|
73 |
{
|
74 |
if ($clear) {
|
75 |
$this->_articleIds = array();
|
@@ -79,7 +79,12 @@ class CloseArticlesParameter extends ParameterAbstract
|
|
79 |
return $this;
|
80 |
}
|
81 |
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
83 |
return $this;
|
84 |
}
|
85 |
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* @param int|array $articleIds
|
69 |
* @param bool $clear
|
70 |
* @return $this
|
71 |
*/
|
72 |
+
public function setArticleIds($articleIds = null, $clear = false)
|
73 |
{
|
74 |
if ($clear) {
|
75 |
$this->_articleIds = array();
|
79 |
return $this;
|
80 |
}
|
81 |
|
82 |
+
if (is_numeric($articleIds)) {
|
83 |
+
$this->_articleIds[] = $articleIds;
|
84 |
+
} else if (is_array($articleIds)) {
|
85 |
+
$this->_articleIds += $articleIds;
|
86 |
+
}
|
87 |
+
|
88 |
return $this;
|
89 |
}
|
90 |
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
namespace Diglin\Ricardo\Managers\Sell\Parameter;
|
22 |
+
|
23 |
+
use \Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Class ClosePlannedArticleParameter
|
27 |
+
* @package Diglin\Ricardo\Managers\Sell\Parameter
|
28 |
+
*/
|
29 |
+
class ClosePlannedArticleParameter extends DeletePlannedArticleParameter
|
30 |
+
{
|
31 |
+
/**
|
32 |
+
* @var array
|
33 |
+
*/
|
34 |
+
protected $_requiredProperties = array(
|
35 |
+
'plannedArticleId',
|
36 |
+
);
|
37 |
+
}
|
@@ -51,6 +51,13 @@ class DeletePlannedArticleParameter extends ParameterAbstract
|
|
51 |
'plannedArticleId',
|
52 |
);
|
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
/**
|
55 |
* @param string $antiforgeryToken
|
56 |
* @return $this
|
51 |
'plannedArticleId',
|
52 |
);
|
53 |
|
54 |
+
/**
|
55 |
+
* @var array
|
56 |
+
*/
|
57 |
+
protected $_optionalProperties = array(
|
58 |
+
'plannedIndex'
|
59 |
+
);
|
60 |
+
|
61 |
/**
|
62 |
* @param string $antiforgeryToken
|
63 |
* @return $this
|
@@ -65,11 +65,11 @@ class DeletePlannedArticlesParameter extends ParameterAbstract
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
* @param
|
69 |
* @param bool $clear
|
70 |
* @return $this
|
71 |
*/
|
72 |
-
public function setArticles(
|
73 |
{
|
74 |
if ($clear) {
|
75 |
$this->_articles = array();
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* @param ClosePlannedArticleParameter $plannedArticle
|
69 |
* @param bool $clear
|
70 |
* @return $this
|
71 |
*/
|
72 |
+
public function setArticles(ClosePlannedArticleParameter $plannedArticle = null, $clear = false)
|
73 |
{
|
74 |
if ($clear) {
|
75 |
$this->_articles = array();
|
@@ -0,0 +1,253 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
namespace Diglin\Ricardo\Managers\Sell\Parameter;
|
22 |
+
|
23 |
+
use Diglin\Ricardo\Managers\ParameterAbstract;
|
24 |
+
use Diglin\Ricardo\Enums\Article\PromotionCode;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Class GetArticleFeeParameter
|
28 |
+
* @package Diglin\Ricardo\Managers\Sell\Parameter
|
29 |
+
*/
|
30 |
+
class GetArticleFeeParameter extends ParameterAbstract
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* @var string
|
34 |
+
*/
|
35 |
+
protected $_articleCondition; // required
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @var float
|
39 |
+
*/
|
40 |
+
protected $_buyNowPrice; // optional
|
41 |
+
|
42 |
+
/**
|
43 |
+
* @var int
|
44 |
+
*/
|
45 |
+
protected $_categoryId; // required
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @var bool
|
49 |
+
*/
|
50 |
+
protected $_excludeListingFees; // required
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @var int
|
54 |
+
*/
|
55 |
+
protected $_initialQuantity; // required
|
56 |
+
|
57 |
+
/**
|
58 |
+
* @var int
|
59 |
+
*/
|
60 |
+
protected $_pictureCount; // required
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @var array PromotionCode
|
64 |
+
*/
|
65 |
+
protected $_promotionIds; // required
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @var string
|
69 |
+
*/
|
70 |
+
protected $_startDate; // required
|
71 |
+
|
72 |
+
/**
|
73 |
+
* @var float
|
74 |
+
*/
|
75 |
+
protected $_startPrice; // optional
|
76 |
+
|
77 |
+
protected $_requiredProperties = array(
|
78 |
+
'articleCondition',
|
79 |
+
'categoryId',
|
80 |
+
'excludeListingFees',
|
81 |
+
'initialQuantity',
|
82 |
+
'pictureCount',
|
83 |
+
'promotionIds',
|
84 |
+
'startDate',
|
85 |
+
);
|
86 |
+
|
87 |
+
protected $_optionalProperties = array(
|
88 |
+
'buyNowPrice',
|
89 |
+
'startPrice'
|
90 |
+
);
|
91 |
+
|
92 |
+
/**
|
93 |
+
* @return string
|
94 |
+
*/
|
95 |
+
public function getArticleCondition()
|
96 |
+
{
|
97 |
+
return $this->_articleCondition;
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* @param string $articleCondition
|
102 |
+
* @return $this
|
103 |
+
*/
|
104 |
+
public function setArticleCondition($articleCondition)
|
105 |
+
{
|
106 |
+
$this->_articleCondition = $articleCondition;
|
107 |
+
return $this;
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* @return float
|
112 |
+
*/
|
113 |
+
public function getBuyNowPrice()
|
114 |
+
{
|
115 |
+
return $this->_buyNowPrice;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* @param float $buyNowPrice
|
120 |
+
* @return $this
|
121 |
+
*/
|
122 |
+
public function setBuyNowPrice($buyNowPrice)
|
123 |
+
{
|
124 |
+
$this->_buyNowPrice = (float) $buyNowPrice;
|
125 |
+
return $this;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* @return int
|
130 |
+
*/
|
131 |
+
public function getCategoryId()
|
132 |
+
{
|
133 |
+
return $this->_categoryId;
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* @param int $categoryId
|
138 |
+
* @return $this
|
139 |
+
*/
|
140 |
+
public function setCategoryId($categoryId)
|
141 |
+
{
|
142 |
+
$this->_categoryId = (int) $categoryId;
|
143 |
+
return $this;
|
144 |
+
}
|
145 |
+
|
146 |
+
/**
|
147 |
+
* @return boolean
|
148 |
+
*/
|
149 |
+
public function getExcludeListingFees()
|
150 |
+
{
|
151 |
+
return ($this->_excludeListingFees) ? 1 : 0;
|
152 |
+
}
|
153 |
+
|
154 |
+
/**
|
155 |
+
* @param boolean $excludeListingFees
|
156 |
+
* @return $this
|
157 |
+
*/
|
158 |
+
public function setExcludeListingFees($excludeListingFees)
|
159 |
+
{
|
160 |
+
$this->_excludeListingFees = (bool) $excludeListingFees;
|
161 |
+
return $this;
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* @return int
|
166 |
+
*/
|
167 |
+
public function getInitialQuantity()
|
168 |
+
{
|
169 |
+
return $this->_initialQuantity;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* @param int $initialQuantity
|
174 |
+
* @return $this
|
175 |
+
*/
|
176 |
+
public function setInitialQuantity($initialQuantity)
|
177 |
+
{
|
178 |
+
$this->_initialQuantity = (int) $initialQuantity;
|
179 |
+
return $this;
|
180 |
+
}
|
181 |
+
|
182 |
+
/**
|
183 |
+
* @return int
|
184 |
+
*/
|
185 |
+
public function getPictureCount()
|
186 |
+
{
|
187 |
+
return (int) $this->_pictureCount;
|
188 |
+
}
|
189 |
+
|
190 |
+
/**
|
191 |
+
* @param int $pictureCount
|
192 |
+
* @return $this
|
193 |
+
*/
|
194 |
+
public function setPictureCount($pictureCount)
|
195 |
+
{
|
196 |
+
$this->_pictureCount = $pictureCount;
|
197 |
+
return $this;
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* @return array
|
202 |
+
*/
|
203 |
+
public function getPromotionIds()
|
204 |
+
{
|
205 |
+
return $this->_promotionIds;
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* @param array $promotionIds
|
210 |
+
* @return $this
|
211 |
+
*/
|
212 |
+
public function setPromotionIds($promotionIds)
|
213 |
+
{
|
214 |
+
$this->_promotionIds = (array) $promotionIds;
|
215 |
+
return $this;
|
216 |
+
}
|
217 |
+
|
218 |
+
/**
|
219 |
+
* @return string
|
220 |
+
*/
|
221 |
+
public function getStartDate()
|
222 |
+
{
|
223 |
+
return $this->_startDate;
|
224 |
+
}
|
225 |
+
|
226 |
+
/**
|
227 |
+
* @param string $startDate
|
228 |
+
* @return $this
|
229 |
+
*/
|
230 |
+
public function setStartDate($startDate)
|
231 |
+
{
|
232 |
+
$this->_startDate = $startDate;
|
233 |
+
return $this;
|
234 |
+
}
|
235 |
+
|
236 |
+
/**
|
237 |
+
* @return float
|
238 |
+
*/
|
239 |
+
public function getStartPrice()
|
240 |
+
{
|
241 |
+
return $this->_startPrice;
|
242 |
+
}
|
243 |
+
|
244 |
+
/**
|
245 |
+
* @param float $startPrice
|
246 |
+
* @return $this
|
247 |
+
*/
|
248 |
+
public function setStartPrice($startPrice)
|
249 |
+
{
|
250 |
+
$this->_startPrice = (float) $startPrice;
|
251 |
+
return $this;
|
252 |
+
}
|
253 |
+
}
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
namespace Diglin\Ricardo\Managers\Sell\Parameter;
|
22 |
+
|
23 |
+
use Diglin\Ricardo\Managers\ParameterAbstract;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Class ArticlesDetails
|
27 |
+
* @package Diglin\Ricardo\Managers\Sell\Parameter
|
28 |
+
*/
|
29 |
+
class GetArticlesFeeParameter extends ParameterAbstract
|
30 |
+
{
|
31 |
+
/**
|
32 |
+
* @var string
|
33 |
+
*/
|
34 |
+
protected $_articlesDetails; // required
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @var array
|
38 |
+
*/
|
39 |
+
protected $_requiredProperties = array(
|
40 |
+
'articlesDetails'
|
41 |
+
);
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @param GetArticleFeeParameter $articleDetail
|
45 |
+
* @param bool $clear
|
46 |
+
* @return $this
|
47 |
+
*/
|
48 |
+
public function setArticlesDetails(GetArticleFeeParameter $articleDetail = null, $clear = false)
|
49 |
+
{
|
50 |
+
if ($clear) {
|
51 |
+
$this->_articlesDetails = array();
|
52 |
+
}
|
53 |
+
|
54 |
+
if (is_null($articleDetail)) {
|
55 |
+
return $this;
|
56 |
+
}
|
57 |
+
|
58 |
+
$this->_articlesDetails [] = $articleDetail;
|
59 |
+
return $this;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @return array
|
64 |
+
*/
|
65 |
+
public function getArticlesDetails()
|
66 |
+
{
|
67 |
+
return $this->_articlesDetails ;
|
68 |
+
}
|
69 |
+
}
|
@@ -36,13 +36,14 @@ class InsertArticlesParameter extends ParameterAbstract
|
|
36 |
/**
|
37 |
* @var array
|
38 |
*/
|
39 |
-
protected $
|
40 |
|
41 |
/**
|
42 |
* @var array
|
43 |
*/
|
44 |
protected $_requiredProperties = array(
|
45 |
-
'
|
|
|
46 |
);
|
47 |
|
48 |
/**
|
@@ -64,24 +65,47 @@ class InsertArticlesParameter extends ParameterAbstract
|
|
64 |
}
|
65 |
|
66 |
/**
|
|
|
|
|
67 |
* @param InsertArticleParameter $articles
|
68 |
* @param bool $clear
|
69 |
* @return $this
|
70 |
*/
|
71 |
public function setArticles(InsertArticleParameter $articles, $clear = false)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
{
|
73 |
if ($clear) {
|
74 |
-
$this->
|
75 |
}
|
76 |
-
$this->
|
77 |
return $this;
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
* @return array
|
82 |
*/
|
83 |
-
public function
|
84 |
{
|
85 |
-
return $this->
|
86 |
}
|
87 |
}
|
36 |
/**
|
37 |
* @var array
|
38 |
*/
|
39 |
+
protected $_articlesToInsert = array(); // required
|
40 |
|
41 |
/**
|
42 |
* @var array
|
43 |
*/
|
44 |
protected $_requiredProperties = array(
|
45 |
+
'antiforgeryToken',
|
46 |
+
'articlesToInsert'
|
47 |
);
|
48 |
|
49 |
/**
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* @deprecated
|
69 |
+
*
|
70 |
* @param InsertArticleParameter $articles
|
71 |
* @param bool $clear
|
72 |
* @return $this
|
73 |
*/
|
74 |
public function setArticles(InsertArticleParameter $articles, $clear = false)
|
75 |
+
{
|
76 |
+
$this->setArticlesToInsert($articles, $clear);
|
77 |
+
return $this;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @deprected
|
82 |
+
*
|
83 |
+
* @return array
|
84 |
+
*/
|
85 |
+
public function getArticles()
|
86 |
+
{
|
87 |
+
return $this->getArticlesToInsert();
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* @param InsertArticleParameter $articles
|
92 |
+
* @param bool $clear
|
93 |
+
* @return $this
|
94 |
+
*/
|
95 |
+
public function setArticlesToInsert(InsertArticleParameter $articles, $clear = false)
|
96 |
{
|
97 |
if ($clear) {
|
98 |
+
$this->_articlesToInsert = array();
|
99 |
}
|
100 |
+
$this->_articlesToInsert[] = $articles;
|
101 |
return $this;
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
* @return array
|
106 |
*/
|
107 |
+
public function getArticlesToInsert()
|
108 |
{
|
109 |
+
return $this->_articlesToInsert;
|
110 |
}
|
111 |
}
|
@@ -147,6 +147,16 @@ class SoldArticlesParameter extends ParameterAbstract
|
|
147 |
*/
|
148 |
protected $_shippedStatusFilter = ShippedStatusFilter::ANY;
|
149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
/**
|
151 |
* @var array
|
152 |
*/
|
@@ -170,6 +180,8 @@ class SoldArticlesParameter extends ParameterAbstract
|
|
170 |
'minimumEndDate',
|
171 |
'paidStatusFilter',
|
172 |
'shippedStatusFilter',
|
|
|
|
|
173 |
);
|
174 |
|
175 |
/**
|
@@ -473,4 +485,40 @@ class SoldArticlesParameter extends ParameterAbstract
|
|
473 |
{
|
474 |
return (int) $this->_shippedStatusFilter;
|
475 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
476 |
}
|
147 |
*/
|
148 |
protected $_shippedStatusFilter = ShippedStatusFilter::ANY;
|
149 |
|
150 |
+
/**
|
151 |
+
* @var array
|
152 |
+
*/
|
153 |
+
protected $_excludedTransactionIdsFilter = array();
|
154 |
+
|
155 |
+
/**
|
156 |
+
* @var array
|
157 |
+
*/
|
158 |
+
protected $_transactionIdsFilter = array();
|
159 |
+
|
160 |
/**
|
161 |
* @var array
|
162 |
*/
|
180 |
'minimumEndDate',
|
181 |
'paidStatusFilter',
|
182 |
'shippedStatusFilter',
|
183 |
+
'excludedTransactionIdsFilter',
|
184 |
+
'transactionIdsFilter'
|
185 |
);
|
186 |
|
187 |
/**
|
485 |
{
|
486 |
return (int) $this->_shippedStatusFilter;
|
487 |
}
|
488 |
+
|
489 |
+
/**
|
490 |
+
* @return array
|
491 |
+
*/
|
492 |
+
public function getTransactionIdsFilter()
|
493 |
+
{
|
494 |
+
return $this->_transactionIdsFilter;
|
495 |
+
}
|
496 |
+
|
497 |
+
/**
|
498 |
+
* @param array $transactionIdsFilter
|
499 |
+
* @return $this
|
500 |
+
*/
|
501 |
+
public function setTransactionIdsFilter($transactionIdsFilter)
|
502 |
+
{
|
503 |
+
$this->_transactionIdsFilter = $transactionIdsFilter;
|
504 |
+
return $this;
|
505 |
+
}
|
506 |
+
|
507 |
+
/**
|
508 |
+
* @return array
|
509 |
+
*/
|
510 |
+
public function getExcludedTransactionIdsFilter()
|
511 |
+
{
|
512 |
+
return $this->_excludedTransactionIdsFilter;
|
513 |
+
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* @param array $excludedTransactionIdsFilter
|
517 |
+
* @return $this
|
518 |
+
*/
|
519 |
+
public function setExcludedTransactionIdsFilter($excludedTransactionIdsFilter)
|
520 |
+
{
|
521 |
+
$this->_excludedTransactionIdsFilter = $excludedTransactionIdsFilter;
|
522 |
+
return $this;
|
523 |
+
}
|
524 |
}
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Diglin GmbH - Switzerland
|
4 |
+
*
|
5 |
+
* This file is part of a Diglin GmbH module.
|
6 |
+
*
|
7 |
+
* This Diglin GmbH module is free software; you can redistribute it and/or
|
8 |
+
* modify it under the terms of the GNU General Public License version 3 as
|
9 |
+
* published by the Free Software Foundation.
|
10 |
+
*
|
11 |
+
* This script is distributed in the hope that it will be useful, but WITHOUT
|
12 |
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13 |
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14 |
+
*
|
15 |
+
* @author Sylvain Rayé <support at diglin.com>
|
16 |
+
* @category Diglin
|
17 |
+
* @package Diglin_Ricardo
|
18 |
+
* @copyright Copyright (c) 2011-2015 Diglin (http://www.diglin.com)
|
19 |
+
* @license http://opensource.org/licenses/gpl-3.0 GNU General Public License, version 3 (GPLv3)
|
20 |
+
*/
|
21 |
+
|
22 |
+
namespace Diglin\Ricardo\Services;
|
23 |
+
|
24 |
+
use Diglin\Ricardo\Managers\Search\Parameter\GetCategoryBestMatchParameter;
|
25 |
+
|
26 |
+
class Search extends ServiceAbstract
|
27 |
+
{
|
28 |
+
/**
|
29 |
+
* @var string
|
30 |
+
*/
|
31 |
+
protected $_service = 'SearchService';
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @var string
|
35 |
+
*/
|
36 |
+
protected $_typeOfToken = self::TOKEN_TYPE_ANONYMOUS;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @param GetCategoryBestMatchParameter $getCategoryBestMatchParameter
|
40 |
+
* @return array
|
41 |
+
*/
|
42 |
+
public function getCategoryBestMatch(GetCategoryBestMatchParameter $getCategoryBestMatchParameter)
|
43 |
+
{
|
44 |
+
// there is a typo error into the documentation for "getCategoryBestMatchParamter", keep it here too
|
45 |
+
return array(
|
46 |
+
'method' => 'GetCategoryBestMatch',
|
47 |
+
'params' => array('getCategoryBestMatchParamter' => $getCategoryBestMatchParameter->getDataProperties())
|
48 |
+
);
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Get the best category result
|
53 |
+
*
|
54 |
+
* The Ricardo API returns:
|
55 |
+
* <pre>
|
56 |
+
* {
|
57 |
+
* "GetCategoryBestMatchResult": {
|
58 |
+
* "CategoriesBestMatch": [
|
59 |
+
* "CategoryId": "int",
|
60 |
+
* "CategoryName": "string",
|
61 |
+
* ],[],...
|
62 |
+
* }
|
63 |
+
* }
|
64 |
+
* </pre>
|
65 |
+
*
|
66 |
+
* @param array $data
|
67 |
+
* @return bool|array
|
68 |
+
*/
|
69 |
+
public function getCategoryBestMatchResult($data)
|
70 |
+
{
|
71 |
+
if (isset($data['GetCategoryBestMatchResult']) && isset($data['GetCategoryBestMatchResult']['CategoriesBestMatch'])) {
|
72 |
+
return $data['GetCategoryBestMatchResult']['CategoriesBestMatch'];
|
73 |
+
}
|
74 |
+
return false;
|
75 |
+
}
|
76 |
+
}
|
@@ -26,6 +26,7 @@ use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticleParameter;
|
|
26 |
use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticlesParameter;
|
27 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
28 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticlesParameter;
|
|
|
29 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticleParameter;
|
30 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticlesParameter;
|
31 |
use Diglin\Ricardo\Managers\Sell\Parameter\UpdateArticleParameter;
|
@@ -266,7 +267,6 @@ class Sell extends ServiceAbstract
|
|
266 |
'method' => 'DeletePlannedArticles',
|
267 |
'params' => array('deletePlannedArticlesParameter' => $deletePlannedArticleParameter->getDataProperties())
|
268 |
);
|
269 |
-
|
270 |
}
|
271 |
|
272 |
/**
|
@@ -299,11 +299,64 @@ class Sell extends ServiceAbstract
|
|
299 |
* Gets the article fee.
|
300 |
*
|
301 |
* @param $getArticleFeeParameter
|
|
|
302 |
*/
|
303 |
public function getArticleFee($getArticleFeeParameter)
|
304 |
{
|
305 |
}
|
306 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
/**
|
308 |
* Gets the update article fee.
|
309 |
*
|
@@ -395,7 +448,9 @@ class Sell extends ServiceAbstract
|
|
395 |
* "ArticleFee": "float"
|
396 |
* "ArticleId": "int"
|
397 |
* "CarDealerArticleId": "int"
|
|
|
398 |
* "ErrorCodes": "int" ArticleErrors
|
|
|
399 |
* "PlannedArticleId": "int"
|
400 |
* }]
|
401 |
* }
|
26 |
use Diglin\Ricardo\Managers\Sell\Parameter\CloseArticlesParameter;
|
27 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticleParameter;
|
28 |
use Diglin\Ricardo\Managers\Sell\Parameter\DeletePlannedArticlesParameter;
|
29 |
+
use Diglin\Ricardo\Managers\Sell\Parameter\GetArticlesFeeParameter;
|
30 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticleParameter;
|
31 |
use Diglin\Ricardo\Managers\Sell\Parameter\InsertArticlesParameter;
|
32 |
use Diglin\Ricardo\Managers\Sell\Parameter\UpdateArticleParameter;
|
267 |
'method' => 'DeletePlannedArticles',
|
268 |
'params' => array('deletePlannedArticlesParameter' => $deletePlannedArticleParameter->getDataProperties())
|
269 |
);
|
|
|
270 |
}
|
271 |
|
272 |
/**
|
299 |
* Gets the article fee.
|
300 |
*
|
301 |
* @param $getArticleFeeParameter
|
302 |
+
* @return array
|
303 |
*/
|
304 |
public function getArticleFee($getArticleFeeParameter)
|
305 |
{
|
306 |
}
|
307 |
|
308 |
+
public function getArticleFeeResult($getArticleFeeParameter)
|
309 |
+
{
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* @param GetArticlesFeeParameter $getArticlesFeeParameter
|
314 |
+
* @return array
|
315 |
+
*/
|
316 |
+
public function getArticlesFee(GetArticlesFeeParameter $getArticlesFeeParameter)
|
317 |
+
{
|
318 |
+
return array(
|
319 |
+
'method' => 'GetArticlesFee',
|
320 |
+
'params' => array('getArticlesFeeParameter' => $getArticlesFeeParameter->getDataProperties())
|
321 |
+
);
|
322 |
+
}
|
323 |
+
|
324 |
+
/**
|
325 |
+
* @param array $data
|
326 |
+
* @return bool
|
327 |
+
*
|
328 |
+
* [0] => Array
|
329 |
+
(
|
330 |
+
[CoveredByPLP] =>
|
331 |
+
[ListingFee] => 0
|
332 |
+
[PromotionFees] => Array
|
333 |
+
(
|
334 |
+
[0] => Array
|
335 |
+
(
|
336 |
+
[PromotionFee] => 0
|
337 |
+
[PromotionId] => 4194304
|
338 |
+
)
|
339 |
+
|
340 |
+
[1] => Array
|
341 |
+
(
|
342 |
+
[PromotionFee] => 0
|
343 |
+
[PromotionId] => 8388608
|
344 |
+
)
|
345 |
+
[...] => ...
|
346 |
+
|
347 |
+
)
|
348 |
+
|
349 |
+
[TotalFee] => 5
|
350 |
+
)
|
351 |
+
*/
|
352 |
+
public function getArticlesFeeResult(array $data)
|
353 |
+
{
|
354 |
+
if (isset($data['GetArticlesFeeResult']) && isset($data['GetArticlesFeeResult']['ArticlesFee'])) {
|
355 |
+
return $data['GetArticlesFeeResult']['ArticlesFee'];
|
356 |
+
}
|
357 |
+
return false;
|
358 |
+
}
|
359 |
+
|
360 |
/**
|
361 |
* Gets the update article fee.
|
362 |
*
|
448 |
* "ArticleFee": "float"
|
449 |
* "ArticleId": "int"
|
450 |
* "CarDealerArticleId": "int"
|
451 |
+
* "CorrelationKey": "int"
|
452 |
* "ErrorCodes": "int" ArticleErrors
|
453 |
+
* "ErrorCodesType": "int" @see https://ws.ricardo.ch/RicardoApi/documentation/html/T_Ricardo_Enums_Errors_ErrorList.htm
|
454 |
* "PlannedArticleId": "int"
|
455 |
* }]
|
456 |
* }
|
@@ -454,7 +454,7 @@ class SellerAccount extends ServiceAbstract
|
|
454 |
public function getSoldArticlesResult(array $data)
|
455 |
{
|
456 |
if (isset($data['GetSoldArticlesResult']) && isset($data['GetSoldArticlesResult']['SoldArticles'])) {
|
457 |
-
return $data['GetSoldArticlesResult']
|
458 |
}
|
459 |
return array();
|
460 |
}
|
454 |
public function getSoldArticlesResult(array $data)
|
455 |
{
|
456 |
if (isset($data['GetSoldArticlesResult']) && isset($data['GetSoldArticlesResult']['SoldArticles'])) {
|
457 |
+
return $data['GetSoldArticlesResult'];
|
458 |
}
|
459 |
return array();
|
460 |
}
|
@@ -1,9 +1,9 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>diglin_ricento</name>
|
4 |
-
<version>1.0
|
5 |
<stability>stable</stability>
|
6 |
-
<license
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Sell your products from Magento to ricardo.ch and sync your order back into your shop to treat them.</summary>
|
@@ -38,7 +38,34 @@
|
|
38 |
<p>With around 700,000 current offers (auctions and fixed price), 2.5 million brand-name articles on <a href="http://www.ricardoshops">ricardoshops</a>.ch, around 100,000 vehicles plus 35,000 parts and accessories on <a href="http://www.autoricardo.ch">autoricardo.ch</a> and over 2.3 million members, ricardo.ch is the largest online marketplace in Switzerland. Every three minutes somebody buys an article on <a href="http://www.ricardo.ch">ricardo.ch</a> using a mobile device. ricardo.ch AG employs over 140 people in Switzerland and is headquartered in Zug.</p>
|
39 |
<h2>About Diglin</h2>
|
40 |
<p><a href="http://www.diglin.com">Diglin</a> 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. </p></description>
|
41 |
-
<notes>## Version 1.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
- Add improvements brought by the ricardo library
|
43 |

|
44 |
## Version 1.0.17
|
@@ -170,9 +197,9 @@
|
|
170 |
- be2b77a Update readme file
|
171 |
- 9384e3c Update doc</notes>
|
172 |
<authors><author><name>diglin</name><user>diglin</user><email>sly@diglin.com</email></author></authors>
|
173 |
-
<date>2015-
|
174 |
-
<time>
|
175 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Diglin_Ricento.xml" hash="0400f55950fe9fd6c4782d6a25096efd"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="ricento.xml" hash="79e497f5579ce1502bfa7ba4c17f703f"/></dir><dir name="template"><dir name="ricento"><dir name="dashboard"><file name="account.phtml" hash="721e0700d0727abfd334e0d7261125c0"/><file name="bestsellers.phtml" hash="dbf7e986a70570fbd93b00c8b94c8768"/><file name="lifeturnover.phtml" hash="afdb1473c032c29315d907c0fb9e23c3"/><file name="news.phtml" hash="8abeac40e6a1950dce9a458d5a24e03f"/><file name="toolbar.phtml" hash="bb8cdc414fcbad9e7111d925a4bb0337"/><dir name="turnover"><file name="graph.phtml" hash="9f020c65b6076f53768236aec5cb7488"/></dir><file name="turnover.phtml" hash="8a2f2f81bf24087f65f72714ff246f6a"/></dir><file name="dashboard.phtml" hash="40515120ea2e2d113d7b64ec8079a33d"/><file name="iframe.phtml" hash="ceff9c6473bc99059858f0059c70433a"/><dir name="js"><dir name="rules"><dir name="validate"><file name="paymentshipping.phtml" hash="03dd071f6cd33e8ccbadb6576cfe761a"/></dir></dir><dir name="salesoptions"><dir name="validate"><file name="increment.phtml" hash="2f8fd684a6db6578f3874b712c3f997b"/></dir></dir><dir name="sync"><file name="progress.phtml" hash="e3c9f623598415e5ccdf45e55f0c1be0"/></dir></dir><file name="log.phtml" hash="0fc1c53f6579e4028fbbff693c3dbdea"/><dir name="notifications"><file name="configured.phtml" hash="fd2df9a93f5d614ee13e61355310af5f"/><file name="expiration.phtml" hash="e1d6af0637c730a92270c20b080dc701"/></dir><dir name="payment"><dir name="info"><file name="default.phtml" hash="9691b579210d12fb88ba5cdd2d9f5df4"/><dir name="pdf"><file name="default.phtml" hash="7c0d2d0d4c2a02f19b0e86e379ebc7fd"/></dir></dir></dir><dir name="products"><dir name="category"><file name="children.phtml" hash="5d56d655a093f383e6cd39a62f51253a"/><file name="mapping.phtml" hash="3aa90c2a05663ae1a95b91020c3d2d05"/></dir><dir name="listing"><dir name="item"><dir name="edit"><file name="form.phtml" hash="cffc18c1f5a97d3a356ca66cd7ad22c1"/></dir><file name="preview.phtml" hash="5c666dd6960484d8032bd6ad19cd997b"/></dir></dir></dir><file name="support.phtml" hash="833a47ebeabb9f68e801db149925f274"/><dir name="sync"><dir name="check"><file name="popup.phtml" hash="43026d5a13b3cd152d4503c455396d6c"/></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="c1d4e98ba0bf30f501116b923d6d1d01"/></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="c714e583ec2cca702f1d660258351c74"/></dir><dir name="images"><file name="KB.png" hash="187e953f8ebf9fe5829ec31427ff853b"/><file name="contact.png" hash="85ed8d8113a897128ab1263e23b69dbb"/><file name="diglin.png" hash="cb24b7fec64fd8f906375d497b7e5e0f"/><file name="diglin@2x.png" hash="0e834d7839f61e789db16c028100b6ff"/><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="magecommunity"><dir name="Diglin"><dir name="Ricento"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Source"><file name="Heading.php" hash="1b9e577a0bfe5a42aa56df6a8ebd1435"/><file name="Hint.php" hash="92c6544c580f5b6be1074a0b934ac1a8"/></dir></dir><dir name="Dashboard"><file name="Account.php" hash="831f9df909aad24915521c9878662796"/><file name="Bestsellers.php" hash="8bf0788c2aef1826bfa5b669c7656225"/><file name="Lifetime.php" hash="20812f8bb25ced84a74130fb94192789"/><file name="News.php" hash="6ee052d661649e532b9d1ca4678a572a"/><file name="Turnover.php" hash="44aa47c73689a4f5a8ee40402d858412"/></dir><dir name="Form"><dir name="Element"><dir name="Checkboxes"><file name="Extensible.php" hash="5b783bffcb8e2188fd2f52debde69cb3"/></dir><dir name="Fieldset"><file name="Inline.php" hash="f221c017193c30e6efea30e8f624fae8"/></dir><dir name="Radios"><file name="Extensible.php" hash="5c785e8774051e7139d2dd1f7aeba177"/></dir></dir></dir><dir name="Log"><file name="Tabs.php" hash="c7b7b5e96a7074327b69674b1099cdfd"/></dir><file name="Log.php" hash="60c3d1c8cea9e7cf9325758e0940dc58"/><dir name="Notifications"><file name="Default.php" hash="690c878a7542619cd553650b9c9937c2"/><file name="Expiration.php" hash="c2fb100eae64a44ce6ddd920ebc85993"/></dir><dir name="Page"><file name="Menu.php" hash="ebc522d7ec049ae74f8d875e966d5b30"/></dir><dir name="Products"><dir name="Category"><file name="Children.php" hash="2647a27a377c0b0e0932a3e7913c33c3"/><dir name="Form"><dir name="Renderer"><file name="Categories.php" hash="4c04c74824999ea37d3da78b62cfa4aa"/><file name="Mapping.php" hash="f3b9e760f121e12945379dcbfce6bb7f"/></dir></dir><file name="Mapping.php" hash="9363eabd982500f7dc94a0cde4b616cb"/><dir name="Tree"><file name="Categories.php" hash="880c01a733b66e8b9a498614e4d84155"/><file name="Form.php" hash="f1d65d2f0f93ba25d64395e927c59ddd"/></dir><file name="Tree.php" hash="fee8a88acf8b75ad9bffc0ebb42977a9"/></dir><dir name="Listing"><dir name="Edit"><file name="Form.php" hash="09d66313ce5d3d1971466f727fa54d98"/><dir name="Tabs"><file name="General.php" hash="4a4f0f32f345abb8e8f241019de9894c"/><dir name="Products"><file name="Add.php" hash="78ad0df36727802683604f424be733fd"/><file name="Massaction.php" hash="43ff8b5fe06da98e2a2245438b5b20e2"/><dir name="Renderer"><file name="Article.php" hash="57729949e2e36a6aca34efac2c9f9acb"/><file name="Configured.php" hash="38d3f8f1fd15089bd9cce0387e995bfe"/><file name="Customoptions.php" hash="54d951895000a930bb10aa51f29252e0"/><file name="Inventory.php" hash="eb93eeabdef7e1ed8549ca3ef5108111"/><file name="Name.php" hash="bb228542b56e4efd561c60880f82af9c"/><file name="Status.php" hash="04bd3a30129fa6edf47d2b45da85a30f"/></dir></dir><file name="Products.php" hash="e3d22c2b6539fe4b157b9bd8c9eb3515"/><file name="Rules.php" hash="0bd7d32068353bc964ad55a1d0be5ec6"/><file name="Selloptions.php" hash="14ef094147aac68b831aa60987e893a2"/></dir><file name="Tabs.php" hash="3bda2bae74655bee0098d9565f8540af"/></dir><file name="Edit.php" hash="28619f80fd7749ed149a99a58211505d"/><dir name="Form"><file name="Abstract.php" hash="c6c96222f6e97f7dcbeb739d9d7f9e9d"/></dir><dir name="Grid"><dir name="Renderer"><file name="Status.php" hash="7afd093267066a6b64f1b8aa0ef10a77"/><file name="Total.php" hash="3cef3bc818d142112074b98b2ea147dd"/></dir></dir><file name="Grid.php" hash="9fe5406d144cc378eacc7fd765fdfb44"/><dir name="Item"><dir name="Edit"><file name="Form.php" hash="1bea95f9828ddd7cfcb263d9ae7bb2ad"/><dir name="Tabs"><file name="Rules.php" hash="2c4deaefc77a26046f8ee61369418f6c"/><file name="Selloptions.php" hash="4203741455961ba6bd69c9c3de4374b5"/></dir><file name="Tabs.php" hash="da6d63859701c0190d1d29e7ced2ba02"/></dir><file name="Edit.php" hash="553d68c6477a9506b9fdb40f10c1cc70"/><file name="Preview.php" hash="41707e3549037213eb4c4776499f6528"/></dir><dir name="Log"><file name="Grid.php" hash="d63e0781210dadbb734a685d5e45a662"/></dir><file name="Log.php" hash="16325d1d0d5c15fde9129bbc5ad20de7"/><dir name="New"><file name="Form.php" hash="bdf6634e3f98ed173e017ec35a458d48"/></dir><file name="New.php" hash="56a927670c10977b38642ac83c6aba9f"/></dir><file name="Listing.php" hash="55130512f435a7038c8699dcfed7ca74"/></dir><dir name="Sync"><dir name="Log"><dir name="Grid"><dir name="Renderer"><file name="Progress.php" hash="ac7a88d269f5f6d9defcccd45f529f24"/><file name="Title.php" hash="41a018d4e8bb2e85ca8f79306ef6a922"/></dir></dir><file name="Grid.php" hash="81485cfa9f270c635b9b46e483115778"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Button.php" hash="53e5128befe7c5f3be2208676fab5019"/></dir></dir></dir></dir></dir><dir name="Payment"><file name="Info.php" hash="8e8d94437f9ef871b74c1040feeb7994"/></dir><file name=".DS_Store" hash="e06a4f2ff746369d1a5e06571b602c51"/></dir><dir name="Controller"><dir name="Adminhtml"><file name="Action.php" hash="d36ba0aade286fead4dc53994d9a84df"/><dir name="Products"><file name="Listing.php" hash="30891082a88f2f255a2c6f03ceb83f2d"/></dir></dir><file name=".DS_Store" hash="40d57ae8429c64fd49076cb87e836d56"/></dir><file name="Exception.php" hash="9e256dfaf217890f0decb2af39d76f1d"/><dir name="Helper"><file name="Api.php" hash="b3684a0400ae9906f8c5d349c3dd6f2c"/><dir name="Dashboard"><file name="Turnover.php" hash="f4ddfb6a7913727ea0f7f449685fac9e"/></dir><file name="Data.php" hash="0e23344560d5c893a819355df330797e"/><file name="Price.php" hash="09d1f3d33a86a53b39f644a0a839a467"/><file name="Tools.php" hash="117ef7c674770a45f169a8e68308c6a6"/></dir><dir name="Model"><dir name="Api"><dir name="Services"><file name="Abstract.php" hash="d2dc819066eab94bd126ece5295442e7"/><file name="Customer.php" hash="260d1eb0945b5695a629a4f88f3a3d1f"/><file name="Security.php" hash="3f13d3760ef6c23bc3572b4938cae0a1"/><file name="Sell.php" hash="f8b5b8a4dce7b28abae7ebea7b25a7b3"/><file name="Selleraccount.php" hash="f4f61a851ae586707716600161ba9d5c"/><file name="System.php" hash="10e29653705a17bece5754b718eb0dee"/></dir><file name="Token.php" hash="8673292ac89b012fc65687b1b3c4247f"/></dir><dir name="Config"><dir name="Source"><file name="Abstract.php" hash="695504f1b3515b6654b85c40b73e64e6"/><file name="Categories.php" hash="0af5fa83a313d3484fb36d2923f7d2c4"/><file name="Languages.php" hash="a5e14b0b61472dfcd549a46b4a796f75"/><dir name="Products"><dir name="Listing"><file name="Log.php" hash="8c0d89ee2dc9de58516ff90117f6be4d"/><file name="Status.php" hash="ffcfa94866f587c8f1312c235ab2bc9b"/></dir></dir><dir name="Rules"><file name="Payment.php" hash="755f2df78cfadef0289c2fc0bd7692dc"/><dir name="Shipping"><file name="Availability.php" hash="4317e445dcf1fe6aa3a3b78e0b3a5838"/><file name="Calculation.php" hash="634ea9354bbb7b8ea3d9c2aca3d262a5"/><file name="Packages.php" hash="61dff0d789aa1f03d06dbaca140d2fbb"/></dir><file name="Shipping.php" hash="d56bb5e5046176de881cfc614adf1c62"/></dir><dir name="Sales"><file name="Currency.php" hash="602f4a298855b2256fb33ec13e798962"/><file name="Days.php" hash="77404c8275a1fa56b1cbe09851d7fad0"/><dir name="Order"><file name="Status.php" hash="3140356e10661527a56903f7571b07ac"/></dir><dir name="Price"><file name="Method.php" hash="c4d961d0072167cd519e0784ec2c37b2"/><file name="Source.php" hash="aceb75016e63a4ac3f2de5a159d9987e"/></dir><dir name="Product"><dir name="Condition"><file name="Source.php" hash="c5854341ad66b09ecd5859d99430a032"/></dir><file name="Condition.php" hash="2577a4471e8df64beb87fc562ef24cd1"/></dir><file name="Promotion.php" hash="cff96346acb628215d864e4c9747a109"/><file name="Reactivation.php" hash="7175d66961547741fa1f6d18999a32cc"/><file name="Template.php" hash="109e5c6b8b0226cb0a6191a60fc4f364"/><file name="Type.php" hash="cf87da8e22708e912e330dad295078c2"/><file name="Warranty.php" hash="9f5f9822b26c2686094f01e91b99c6e8"/></dir><file name="Status.php" hash="2eef5b7122745b8e20ae3d5f1777919a"/><file name="Store.php" hash="67de35f42ee609fd5d47943544e2322d"/><dir name="Sync"><file name="Progress.php" hash="6c3f7a92c29bf9ee03d6de06472ed362"/><file name="Status.php" hash="5116bc6be1dc24d617ca81afa38559b6"/><file name="Type.php" hash="f59219f8b71f70bceac16ceee93067b7"/></dir><file name="Website.php" hash="378c7811be82c2a4759f97959ea66fbc"/></dir></dir><file name="Cron.php" hash="1dc130b0d84e01942c1296cf7f09cd53"/><dir name="Dispatcher"><file name="Abstract.php" hash="4e30ed63a0658678baa8d4c50c976fea"/><dir name="Check"><file name="List.php" hash="4774e5e2f52eb8951aa284640e78b48a"/></dir><file name="List.php" hash="b62f45dafbe4a242e4a44cfc5b0facf7"/><file name="Order.php" hash="38ca60ffa178ce3e17be26ff2d0564a5"/><file name="Relist.php" hash="2f76ae0f4e9b4475f3f9ff3eb6338ba7"/><file name="Stop.php" hash="82c0eec0ce1b768efdb7686ee1f8c222"/><dir name="Sync"><file name="List.php" hash="99a85e111c41b2b35ec29b58d672f909"/></dir></dir><file name="Dispatcher.php" hash="fb333ae13b19be43e04f5232637447de"/><dir name="Entity"><dir name="Attribute"><dir name="Source"><file name="Conditions.php" hash="f98bec0d57f61e1581f2b36936238338"/></dir></dir><file name=".DS_Store" hash="fe83316145ece365c6a0215405354801"/></dir><file name="Filter.php" hash="ae801fa0c3ed9172d3fb315d56777016"/><file name="Observer.php" hash="9483ce7c59d0b6d787f12d9e4bb820c8"/><dir name="Products"><dir name="Category"><file name="Mapping.php" hash="e5bd2e98f1c99153ce4fce12860af0f4"/></dir><file name="Category.php" hash="8262bfa487a79371fed1f4490e5211ef"/><dir name="Listing"><dir name="Item"><file name="Product.php" hash="1145e3054fa84448a1a0fc26c0950e5f"/></dir><file name="Item.php" hash="3cd6f71ef013255e00d7cacd41dd69f7"/><file name="Log.php" hash="503a113e7706aa4543423550ad192a38"/><file name=".DS_Store" hash="575220a7c4e08b15c60e4631b4986261"/></dir><file name="Listing.php" hash="f7999c9c315fe18b5b5e016176690c90"/><file name=".DS_Store" hash="878470ebfba5923e0c52147480052eda"/></dir><dir name="Resource"><dir name="Api"><dir name="Token"><file name="Collection.php" hash="965d69a03fd52793bb0ed4fdd07e1e09"/></dir><file name="Token.php" hash="2bf10158192d05a91ea95cc0f559a311"/></dir><dir name="Products"><dir name="Listing"><file name="Collection.php" hash="6cd9b5139e54434c8772728e73bbceaa"/><dir name="Item"><file name="Collection.php" hash="b2df2fdddc04d289d7a9ec3799551818"/></dir><file name="Item.php" hash="b18e8d39c661feec667b5ec9baa73d47"/><dir name="Log"><file name="Collection.php" hash="667cb38ab5f87e64952be6d5a3252e22"/></dir><file name="Log.php" hash="5f93d44c88263c1826f26b7044c68aa7"/></dir><file name="Listing.php" hash="2e46ff304a0059337bce505854b1f418"/></dir><dir name="Rule"><file name="Collection.php" hash="2ff51b66463e1e198a9a48e7c923cf19"/></dir><file name="Rule.php" hash="2a247c0dae1372bbb8035aeab6e78c55"/><dir name="Sales"><dir name="Options"><file name="Collection.php" hash="ee8f2d85c57e717e91125cf61f4ec274"/></dir><file name="Options.php" hash="f05ba7087b4cf72c9e419ac74c83d90f"/><dir name="Transaction"><file name="Collection.php" hash="79e8c31484050541c9f67c6bac0ad654"/></dir><file name="Transaction.php" hash="8fd26b31b122a238d862b5052f532c78"/></dir><dir name="Sync"><file name="Abstract.php" hash="385639551762ab46c4b93f43957e703b"/><dir name="Job"><file name="Collection.php" hash="008d006934d0f2cef9f5e92a609df550"/><dir name="Listing"><file name="Collection.php" hash="8fc712c8e19d52b609f920f037b48604"/></dir><file name="Listing.php" hash="4d1843b200eb7821c120ac9aff7dbd6f"/></dir><file name="Job.php" hash="1de0a5f2531d91184d3e751c40ea0145"/></dir></dir><file name="Rule.php" hash="5dee4613b128ff66230e52d6fe84c4ff"/><dir name="Sales"><dir name="Method"><file name="Payment.php" hash="1955c942bcd2e829451567a18d4a117a"/><file name="Shipping.php" hash="06dcef5eafcd7cdf1b66b711dbe642b6"/></dir><file name="Options.php" hash="19f65cfdf285f67c183e214f2779b84a"/><file name="Transaction.php" hash="40d924c032daf8b579a31c1e3945423c"/><file name=".DS_Store" hash="fc3f9eaffb36b68be6d5f78dd42aa4de"/></dir><file name="SplAutoloader.php" hash="5c3aa48d6c93900c10625b8e92279672"/><dir name="Sync"><file name="Abstract.php" hash="bc6bded1af4c1e2b731c17816a0c763e"/><dir name="Job"><file name="Listing.php" hash="d9ac0120516bc17824de1110565d20e7"/></dir><file name="Job.php" hash="f769dbadc38b970a232b7e28ecc7744f"/></dir><dir name="Validate"><dir name="Products"><file name="Item.php" hash="d435b609eac7e7769046506106629462"/></dir><dir name="Rules"><file name="Methods.php" hash="a9ab692003c0870b39b1576c3d5bf800"/></dir><dir name="Sales"><file name="Increment.php" hash="c8e3fc17c8d92a6164c9924880b6de48"/></dir></dir><file name=".DS_Store" hash="4b9de9ebd62222444a1aa7a41016fa50"/></dir><dir name="Test"><dir name="Model"><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="a9f4d3dcaa3614c049e8fdfdd1a68f44"/></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="fdad60d6adb7d4a365d2c5610f3fb2ae"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="AccountController.php" hash="fa0950bcfe644646b1a3a7314439ba89"/><file name="ApiController.php" hash="1d819f728e0176762b5f452d10213225"/><file name="DashboardController.php" hash="c8c0c9b082c15cc6a47beb29e85509e4"/><file name="IndexController.php" hash="f31e3da1a8b1cb4182ef25bb0d0d7edd"/><file name="LogController.php" hash="c6b922c45fad66a2d9ffa47f8774ebd2"/><dir name="Products"><file name="CategoryController.php" hash="34a122f678feeccb7aeec69386687aec"/><dir name="Listing"><file name="ItemController.php" hash="8eed99fb352357e39386887ce0997813"/></dir><file name="ListingController.php" hash="46ee9f56d63c5ba372711565c80d40f9"/></dir><file name="SupportController.php" hash="e2de494551ad62f034bab728bab7b726"/><file name="SyncController.php" hash="56d00095f40cae50055d9b10199a7c38"/></dir><file name=".DS_Store" hash="df6bc97f898d348cf05b8fdaf6f86f94"/></dir><dir name="data"><dir name="ricento_setup"><file name="data-install-1.0.0.php" hash="60ef0aefde5dd27f7cdf367cdbf38897"/></dir><file name=".DS_Store" hash="5617a58254bcd0775ce28c476de08b69"/></dir><dir name="etc"><file name="adminhtml.xml" hash="25ff4203e40e3e2586e0c791034b8d14"/><file name="config.xml" hash="1c6001bbc5c576e2b583dc4db185aeda"/><file name="jstranslator.xml" hash="83ae42ac65b5a018683363946c39e4b3"/><file name="system.xml" hash="c95ee7c701b124e33f74d3cf3113155a"/><file name="uninstall.txt" hash="660b44580246f818f8e22f4c5a530c9b"/></dir><dir name="sql"><dir name="ricento_setup"><file name="install-1.0.0.php" hash="482b11fe5d2955e765dad8091ceaaca1"/><file name="uninstall.php" hash="db8ca6cd93e8bad1a5ee79853b3c21c3"/><file name="upgrade-1.0.8-1.0.9.php" hash="a00b2e8c48683d6d7760f2324067701f"/></dir></dir><file name=".DS_Store" hash="e14e8f677dad63148ad3e2b670cfbbe2"/></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Diglin_Ricento.csv" hash="7388da66396006f87fafd92aaf3a6675"/><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><dir name="fr_FR"><file name="Diglin_Ricento.csv" hash="dec7fd7d5e5425ca6a4dcdf71fbe1008"/><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><dir name="de_DE"><file name="Diglin_Ricento.csv" hash="d7a4795c886690ddefbd06a4e9767bde"/><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><dir name="de_CH"><file name="Diglin_Ricento.csv" hash="5c537c6e959d10516788d402b39afe18"/><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><target name="mageweb"><dir name="js"><dir name="ricento"><file name="Countable.js" hash="dc66f2e57b917e39f897f254bcc8ec1b"/><file name="adminhtml.js" hash="b5a3228d2800817041948c16d6c2f7b5"/><dir name="livepipe-ui"><file name="livepipe.js" hash="d15a0747cdc197a7f7081d5be4f20d01"/><file name="progressbar.js" hash="2153c666af9b91c65111124665cb57f7"/></dir></dir></dir></target><target name="magelib"><dir name="Diglin"><dir name="Ricardo"><file name="Api.php" hash="73f8e9d05239745c615caa9bba75ec78"/><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="689f24e1a6d2c51ebf09d5fb869a8238"/></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"/></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="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="8c868ba9a1a200aae3b59240b01faa70"/><file name="GeneralException.php" hash="18d42b47fd69a9b427cb4427a5d56e56"/><file name="PictureException.php" hash="ba3f6cc087f6b0103ecc96b4357ab0ac"/><file name="SecurityException.php" hash="b4b500a3f2abdc3bc957284d5fbc42a9"/></dir><dir name="Managers"><file name="Customer.php" hash="e2b3241594fecb5ef944466b34c8fbfe"/><file name="ManagerAbstract.php" hash="13dca083592bd0651f06a03fe9dd589a"/><file name="ParameterAbstract.php" hash="e9725c5915f48d375bef33f377247083"/><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="538e9e573bc7b81083e3febc8e325cf5"/><file name="ArticleDescriptionParameter.php" hash="98fef4f221b9f3a11ee9078bfd5116f0"/><file name="ArticleInformationParameter.php" hash="9900793d70875a80ca47d5d3e98691a9"/><file name="ArticleInternalReferenceParameter.php" hash="84cf8bcf50e6dda593b4f9570e1f6ed9"/><file name="ArticlePictureParameter.php" hash="aa7c36ccb2144513a9ea7b27966d2f3b"/><file name="CloseArticleParameter.php" hash="7f0a426ba4b277d9c02be87b5725cc45"/><file name="CloseArticlesParameter.php" hash="0f1e83fa7f9e9122b5f13f82769da8d1"/><file name="DeletePlannedArticleParameter.php" hash="f8a5b891046dd6b8ad4cf3d5e9f61cf2"/><file name="DeletePlannedArticlesParameter.php" hash="af2ec04803bb457b070fd73db749a72d"/><file name="InsertArticleParameter.php" hash="23707dad2636f8e0dda5423769f9e175"/><file name="InsertArticlesParameter.php" hash="0296ac97bd1ae645a5d88bc8b8df9558"/><file name="UpdateArticleParameter.php" hash="d9291f525d389cc2c45be6ad2d5213ea"/><file name="UpdateArticlePicturesParameter.php" hash="33962ef42331f70924399e6ddfcad2fc"/></dir></dir><file name="Sell.php" hash="6b76a8cd8402ba592ed9cb9ffd8a0538"/><dir name="SellerAccount"><dir name="Parameter"><file name="ArticlesParameter.php" hash="45b41edc80da0abca182528299e6013c"/><file name="ClosedArticlesParameter.php" hash="b45eb7085da6129b1b91218865016dcb"/><file name="OpenArticlesParameter.php" hash="601558abc262ec42d9d00f7ea7c0b044"/><file name="PlannedArticleParameter.php" hash="95c671b72c8b31a4dd396271bc5d13a2"/><file name="PlannedArticlesParameter.php" hash="f68737054ccda8cd5893f2448cbed2ee"/><file name="SoldArticlesParameter.php" hash="62c5d14074574da1e6d8b9d021ac8274"/><file name="UnsoldArticlesParameter.php" hash="75e878f0d7fb1b9ed5a72278fb433d78"/></dir></dir><file name="SellerAccount.php" hash="0b85ab146483730609c1ab6ecd7ba974"/><file name="System.php" hash="c2b865dcfc0875cd417ec902dc759f69"/></dir><file name="Service.php" hash="697c4d014f6d70f223c21b7e90bbb82f"/><dir name="Services"><file name="Customer.php" hash="465b82a364b820d53312e57973abb6f4"/><file name="Security.php" hash="3e82163587f9f61ea52c24f706335251"/><file name="Sell.php" hash="6f5a11fe96b20a6232207083abab9d16"/><file name="SellerAccount.php" hash="b946dd59b1e21a7ec23216406eb8a9af"/><file name="ServiceAbstract.php" hash="41b0fcbaff2a2df4baa925c58028a39b"/><file name="System.php" hash="ed174d4b1b1113fe512a6e0d5c4c5164"/></dir><file name=".DS_Store" hash="0cf3c0ae770601c1d2d9857aac981f36"/></dir></dir></target></contents>
|
176 |
<compatible/>
|
177 |
<dependencies><required><php><min>5.3.2</min><max>5.6.0</max></php></required></dependencies>
|
178 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>diglin_ricento</name>
|
4 |
+
<version>1.1.0</version>
|
5 |
<stability>stable</stability>
|
6 |
+
<license>OSL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Sell your products from Magento to ricardo.ch and sync your order back into your shop to treat them.</summary>
|
38 |
<p>With around 700,000 current offers (auctions and fixed price), 2.5 million brand-name articles on <a href="http://www.ricardoshops">ricardoshops</a>.ch, around 100,000 vehicles plus 35,000 parts and accessories on <a href="http://www.autoricardo.ch">autoricardo.ch</a> and over 2.3 million members, ricardo.ch is the largest online marketplace in Switzerland. Every three minutes somebody buys an article on <a href="http://www.ricardo.ch">ricardo.ch</a> using a mobile device. ricardo.ch AG employs over 140 people in Switzerland and is headquartered in Zug.</p>
|
39 |
<h2>About Diglin</h2>
|
40 |
<p><a href="http://www.diglin.com">Diglin</a> 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. </p></description>
|
41 |
+
<notes>## Version 1.1.0
|
42 |
+
- 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.
|
43 |
+
- 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.
|
44 |
+
- NEW: while selecting a ricardo category, you can now provide the product name to get a suggestion of the category/ies you may use
|
45 |
+
- 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
|
46 |
+
- 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"
|
47 |
+
- NEW: support Magento Watermark Pictures
|
48 |
+
- NEW: add ricardo banner in the dashboard of the extension
|
49 |
+
- ENHANCEMENT: make description with carriage return to <br> HTML Tag configurable - default is 0
|
50 |
+
- ENHANCEMENT: refactor order import process to reduce potential issues
|
51 |
+
- ENHANCEMENT: add a new dispatcher to close articles properly for those which are not anymore available on ricardo.ch
|
52 |
+
- ENHANCEMENT: global performance improvement with the ricardo API and product pictures (> X MB - image attribute and media gallery)
|
53 |
+
- ENHANCEMENT: configurable products and their options having price are computed differently, it fixes some issues with price calculation but also allow Fees calculation
|
54 |
+
- ENHANCEMENT: links of the backend user interface depending on the user language are correctly defined (french or german)
|
55 |
+
- 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
|
56 |
+
- ENHANCEMENT: cleanup, factorize and perform code related to configurable products
|
57 |
+
- ENHANCEMENT: set auto increment value of auction sales type to 1 per default
|
58 |
+
- 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.
|
59 |
+
- FIX: issue with price calculation when price scope is per website instead global
|
60 |
+
- FIX: issue with grouped product quantity - default is 1 if related products don't have quantity defined
|
61 |
+
- FIX: issue with order synchronization on Magento 1.7 and the ricardo payment method
|
62 |
+
- FIX: issue with Internet Explorer when configuring a product and using defaults values are not expected
|
63 |
+
- FIX: some translations issue
|
64 |
+
- FIX: issue with shipping description while editing the configuration at product level into a products listing
|
65 |
+
- FIX: memory issue due to pictures too big and API requirements (bytes array)
|
66 |
+
- FIX: issue with MagentoConnect install
|
67 |
+

|
68 |
+
## Version 1.0.18
|
69 |
- Add improvements brought by the ricardo library
|
70 |

|
71 |
## Version 1.0.17
|
197 |
- be2b77a Update readme file
|
198 |
- 9384e3c Update doc</notes>
|
199 |
<authors><author><name>diglin</name><user>diglin</user><email>sly@diglin.com</email></author></authors>
|
200 |
+
<date>2015-04-19</date>
|
201 |
+
<time>17:58:33</time>
|
202 |
+
<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="b7a7ba331d22590f59bfe8281241a4f0"/></dir></dir><dir name="Dashboard"><file name="Account.php" hash="8724a08f3683b47aaa2f72496cc70b6e"/><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><file name=".DS_Store" hash="3005ca0f8e620e6556f5b6dd53202170"/></dir><file name=".DS_Store" hash="ceb8d57fd395cb333d8dc1f85dfcc856"/></dir><dir name="Log"><dir name="Listing"><file name="Grid.php" hash="6d8bf3d0cbeb07df6698ce5e3cc6da61"/></dir><dir name="Sync"><dir name="Grid"><dir name="Renderer"><file name="Progress.php" hash="2c641830c3db9983ea8e43251f72e907"/><file name="Title.php" hash="329af6b8bede66748d82b85524ceae52"/></dir></dir><file name="Grid.php" hash="ed1b6b85b7d94acf4327e2975a953742"/></dir><file name="Tabs.php" hash="e08d00e946c5007c767757d060f2cc6d"/></dir><file name="Log.php" hash="f08554f883e53cc040248edd7118bd4f"/><dir name="Notifications"><file name="Default.php" hash="167bfaa55e28c709dbf3697d7830a71a"/><file name="Expiration.php" hash="df67759b72214cd362b0db736b585859"/></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="577e4fc684f8939deba30eb67dbd174c"/></dir></dir><dir name="Mapping"><file name="Tree.php" hash="524d1d3387fbaa130552aca4e0591598"/></dir><file name="Mapping.php" hash="cc5b960ad5aa5a25380435eccb157856"/><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="d31d8c271abb1a78f3699064aaa506dc"/><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="e698b88441f5b94cf1680d13668f0b3f"/><dir name="Products"><file name="Add.php" hash="13e1ebc227ba3518b9ec3bb600acd83c"/><file name="Massaction.php" hash="e9abc1d73fee5e1bb85569a80f37b9e5"/></dir><file name="Products.php" hash="33ffa7e18f36d06801bda306a477f563"/><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="3218bc52a42c197113e595e09bf15623"/><dir name="Form"><file name="Abstract.php" hash="aa96a74bc83b7dae21a982812eb6fd90"/></dir><dir name="Grid"><dir name="Renderer"><file name="Status.php" hash="2ca46572afce5bf098489430a33c8592"/><file name="Total.php" hash="9570d3f5b50c043c0444d5fb3411f6f2"/></dir></dir><file name="Grid.php" hash="1d5c9ccc35e37b036754f41e950deda1"/><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="b6ee4c68d4cd7732cfe0cdb3c488409f"/><file name="Preview.php" hash="ae9a2130c8488a90a17f9f86ab41e569"/></dir><file name="Log.php" hash="039a8bce6ee15ad9c49eb0d427c55c83"/><dir name="New"><file name="Form.php" hash="38ab04ded807490619a0e3b1cb75c9e0"/></dir><file name="New.php" hash="59eea06c9b8ec22162c3fcaeba2933e1"/></dir><file name="Listing.php" hash="8d604c1f0dab741cef0a06cb9065cdbc"/></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="d7a2be9199a341b8ef1d7deab1c4d4f9"/></dir><dir name="Payment"><file name="Info.php" hash="c63a717a400752ec569657d2cd418195"/></dir><file name=".DS_Store" hash="743561b5031e5615f3d8b6bf7ed70f10"/></dir><dir name="Controller"><dir name="Adminhtml"><file name="Action.php" hash="cc992630b53816a388b8294775d27265"/><dir name="Products"><file name="Listing.php" hash="4d8ff57f2ec9e1f95253a4c577528816"/></dir></dir><file name=".DS_Store" hash="c32a70b9223330120d51e6eab360718f"/></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="9c65b0fb26089c707b3b65cece769bc5"/><file name="Image.php" hash="3a17e2215d96cf984b7c1409235de722"/><file name="Price.php" hash="616caafbcf1a171a9f773fedf9f62579"/><file name="Support.php" hash="6dd92c1efce7e3a25e51f6e92a34cee5"/><file name="Tools.php" hash="06e065102587129195f0d9fc02ea01b1"/></dir><dir name="Model"><dir name="Api"><dir name="Services"><file name="Abstract.php" hash="d0c76c198a2c69c199e726da03abc7a6"/><file name="Customer.php" hash="d500e9e9035ffd8500407611f6796ad9"/><file name="Search.php" hash="d40fd404bfb3a2d5de9d6020df14b483"/><file name="Security.php" hash="d5f1d425155e4749344850e7b09feb22"/><file name="Sell.php" hash="8b4476223aa515032bf311da5c4c548f"/><file name="Selleraccount.php" hash="c0d31d32fee8b7c6347b81202a1ba0e5"/><file name="System.php" hash="7c20e49754e5e93503fc3ef7e4918dc8"/></dir><file name="Token.php" hash="c470fe45490bccbeb5cce657a9c28488"/></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="c617e9ada56a3d41cabdea79695db149"/><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="bafd71290733c7c480595fb61ec81227"/></dir><file name="Website.php" hash="c0168510dc5252a0689416959882136b"/></dir></dir><file name="Cron.php" hash="2716340fd92fb30add28d7e89071540f"/><dir name="Dispatcher"><file name="Abstract.php" hash="592b07850f6760c9d4b0accfffa40672"/><dir name="Check"><file name="List.php" hash="6b9eef4d652debf6be1b333b73b737a0"/></dir><file name="Closed.php" hash="52464c4e48c494569354f6cc5b53ecaf"/><file name="List.php" hash="6e98480008fe6cc4e2c83602f8b9476c"/><file name="Order.php" hash="62543dafe93a6e98d1eed1c09c128a1f"/><file name="Stop.php" hash="e055d0a3ecd0fbb3605cb3b36a7a5bd4"/><dir name="Sync"><file name="List.php" hash="4d76f0768aef50bffa82cef89e7fe08a"/></dir></dir><file name="Dispatcher.php" hash="d00fda597c8a294d6d133aceb0f7c922"/><dir name="Entity"><dir name="Attribute"><dir name="Source"><file name="Conditions.php" hash="1223272c226b7bf7d1c6c61f27ef687e"/></dir></dir><file name=".DS_Store" hash="fe83316145ece365c6a0215405354801"/></dir><file name="Filter.php" hash="ec774cc9129c39ca4b1daf39eff0e59d"/><file name="Observer.php" hash="3ecec681ab0b48833e48b49487886432"/><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="2d69a177203ea4f15f08738ce8c10de1"/></dir><file name="Item.php" hash="18c861715a1c9980b8a9c01b73417b09"/><file name="Log.php" hash="992e843bdfd54aeac481cf6b2c678dbc"/><file name=".DS_Store" hash="575220a7c4e08b15c60e4631b4986261"/></dir><file name="Listing.php" hash="8877ce70cb6ddb612e2f25ccfc3092c3"/><file name=".DS_Store" hash="878470ebfba5923e0c52147480052eda"/></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="afc905d5ba69ba5ddb7ee5fd946a8c2f"/></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="9f470328bb93cfbeec0de6c5b09e5e55"/></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"/><file name=".DS_Store" hash="fc3f9eaffb36b68be6d5f78dd42aa4de"/></dir><file name="SplAutoloader.php" hash="5c3aa48d6c93900c10625b8e92279672"/><dir name="Sync"><file name="Abstract.php" hash="fc6ac3f307ea104c66fe4e758dd3a4a9"/><dir name="Job"><file name="Listing.php" hash="593875bf5d4d5588b684e39d833779b7"/></dir><file name="Job.php" hash="2374eb34968c83e0dde1b8aa684419f2"/></dir><dir name="Validate"><dir name="Products"><file name="Item.php" hash="97885da628dd972c058a4892873ad132"/></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="553e418160037f4cbfb052e5441a987a"/></dir><dir name="Test"><dir name="Model"><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></dir><dir name="controllers"><dir name="Adminhtml"><file name="AccountController.php" hash="384f2a7243924800fec9c10fcd9c912d"/><file name="ApiController.php" hash="9a1c834f6089fc6a027e470a915e5bbd"/><file name="DashboardController.php" hash="7f8935c4ca61e3b06181eec134d4649a"/><file name="IndexController.php" hash="e54b2a0a6e0e6ef898a22840683825dc"/><file name="LogController.php" hash="2102931b5793049ca3878b5767898e6a"/><dir name="Products"><file name="CategoryController.php" hash="a17f3bb5a8b0e1aec601d3d0e264fc2f"/><dir name="Listing"><file name="ItemController.php" hash="a7552ac3d1b36bd524b9a841c85e88ef"/></dir><file name="ListingController.php" hash="56caa8820ace97ff3bf0560e1be87e35"/></dir><file name="SupportController.php" hash="3bfca97a48b6f81fddd30518ef241962"/><file name="SyncController.php" hash="77315fd98363dab57a60bdd7b2e85c87"/></dir><file name=".DS_Store" hash="65204f7675cda0c4f9d7fd5069370de7"/></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"/></dir><file name=".DS_Store" hash="5617a58254bcd0775ce28c476de08b69"/></dir><dir name="etc"><file name="adminhtml.xml" hash="df9b5bfd9a38768a8e45d0ffe50d26a3"/><file name="config.xml" hash="751f8c9d7de3cc9fa65a1f00cf91fa55"/><file name="jstranslator.xml" hash="3a4a6307012f9660f925863659b38a2f"/><file name="system.xml" hash="0f0ff91da43aeeff664effde11cc68ec"/><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"/></dir></dir><file name=".DS_Store" hash="ff79823aee2df60e6912aa0d1cd5b071"/></dir></dir></target><target name="magelib"><dir name="Diglin"><dir name="Ricardo"><file name="Api.php" hash="dd24e52c73e1d8fcc4659c773418fa4c"/><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="2485c9b90faaacf30dfd989adc0961f0"/></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"/></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><file name=".DS_Store" hash="cb1fb86d332d6cf020d9991723302c24"/></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="8c868ba9a1a200aae3b59240b01faa70"/><file name="GeneralException.php" hash="18d42b47fd69a9b427cb4427a5d56e56"/><file name="PictureException.php" hash="ba3f6cc087f6b0103ecc96b4357ab0ac"/><file name="SearchException.php" hash="ecd9902786eecb50414d3dd7e01b3492"/><file name="SecurityException.php" hash="b4b500a3f2abdc3bc957284d5fbc42a9"/></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="3c8d6d52031bf00a9eeb672b291f43ae"/><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="538e9e573bc7b81083e3febc8e325cf5"/><file name="ArticleDescriptionParameter.php" hash="98fef4f221b9f3a11ee9078bfd5116f0"/><file name="ArticleInformationParameter.php" hash="9900793d70875a80ca47d5d3e98691a9"/><file name="ArticleInternalReferenceParameter.php" hash="84cf8bcf50e6dda593b4f9570e1f6ed9"/><file name="ArticlePictureParameter.php" hash="aa7c36ccb2144513a9ea7b27966d2f3b"/><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="5b094b5537aad744945877c2885cde3f"/><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="UpdateArticleParameter.php" hash="d9291f525d389cc2c45be6ad2d5213ea"/><file name="UpdateArticlePicturesParameter.php" hash="33962ef42331f70924399e6ddfcad2fc"/></dir></dir><file name="Sell.php" hash="988998c316defb953db0c1a673ad7c52"/><dir name="SellerAccount"><dir name="Parameter"><file name="ArticlesParameter.php" hash="45b41edc80da0abca182528299e6013c"/><file name="ClosedArticlesParameter.php" hash="b45eb7085da6129b1b91218865016dcb"/><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="0b85ab146483730609c1ab6ecd7ba974"/><file name="System.php" hash="c2b865dcfc0875cd417ec902dc759f69"/><file name=".DS_Store" hash="3f55d6d43043ccddf4ea7c5fc66d8c7d"/></dir><file name="Service.php" hash="697c4d014f6d70f223c21b7e90bbb82f"/><dir name="Services"><file name="Customer.php" hash="465b82a364b820d53312e57973abb6f4"/><file name="Search.php" hash="33f94a39029c57289a76bb85e2e05e13"/><file name="Security.php" hash="3e82163587f9f61ea52c24f706335251"/><file name="Sell.php" hash="e2b5c21046de7dc4c1822c94072f9449"/><file name="SellerAccount.php" hash="f01153d60678c43470a873fa83d6ae20"/><file name="ServiceAbstract.php" hash="41b0fcbaff2a2df4baa925c58028a39b"/><file name="System.php" hash="ed174d4b1b1113fe512a6e0d5c4c5164"/></dir><file name=".DS_Store" hash="427aa215b493870e633d065d3e546b86"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Diglin_Ricento.xml" hash="0400f55950fe9fd6c4782d6a25096efd"/></dir></target><target name="mageweb"><dir name="js"><dir name="ricento"><file name="Countable.js" hash="dc66f2e57b917e39f897f254bcc8ec1b"/><file name="adminhtml.js" hash="bee0f33367405c89f93a86512dbd8b22"/><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="47215c6d724221414017e391ec0f692b"/></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="49f2571e6545ca3cebfb027904381b56"/><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="d02bd6d4d642131f6aa845a230bbf658"/><dir name="pdf"><file name="default.phtml" hash="1ce97c0aead8d91b70f9bd4c8b03ee5e"/></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="25edee745a8baddd81556292976ec368"/></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="a2d523de72ac055fe9b85f923d2e7910"/><file name="support.phtml" hash="421232ce2c120b8e0aa1f4828a228fc8"/><dir name="sync"><dir name="check"><file name="popup.phtml" hash="4acc891d7ae7cb4cb07bc51ced5b438b"/></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="c1d4e98ba0bf30f501116b923d6d1d01"/></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="8e7a0eddc9ee5855043f2da3915fcbc5"/></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="9fd6942f75642cabd8e443b40301a616"/><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="271be12c233d047c0551794db4923a30"/><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><dir name="de_DE"><file name="Diglin_Ricento.csv" hash="e34d2f9e90763c182abf716a1af67961"/><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="e34d2f9e90763c182abf716a1af67961"/><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>
|
203 |
<compatible/>
|
204 |
<dependencies><required><php><min>5.3.2</min><max>5.6.0</max></php></required></dependencies>
|
205 |
</package>
|
@@ -57,9 +57,6 @@ input[type="radio"] {
|
|
57 |
font-weight: bold;
|
58 |
color: red;
|
59 |
}
|
60 |
-
#sales_options_price_change_type {
|
61 |
-
width: auto;
|
62 |
-
}
|
63 |
#diglin_ricento_price_change {
|
64 |
width: 30px;
|
65 |
}
|
@@ -93,6 +90,13 @@ input[type="radio"] {
|
|
93 |
|
94 |
/********** Category Mapping views **********/
|
95 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
#ricardo_categories {}
|
97 |
#ricardo_categories nav {
|
98 |
width: 200px;
|
@@ -153,6 +157,20 @@ input[type="radio"] {
|
|
153 |
font-weight: bold;
|
154 |
}
|
155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
/********** Add missing Magento core pictures **********/
|
157 |
|
158 |
.magento_minimize { background:url('images/window_minimize.png') 0 0 no-repeat !important;}
|
@@ -164,7 +182,9 @@ input[type="radio"] {
|
|
164 |
.ricento-products-listing-item-configure .form-list {
|
165 |
}
|
166 |
.ricento-products-listing-edit .form-list td.value,
|
167 |
-
.ricento-products-listing-item-configure .form-list td.value
|
|
|
|
|
168 |
width: auto !important;
|
169 |
}
|
170 |
|
@@ -420,6 +440,9 @@ table.allowed-combinations td {width: 50%; padding: 5px;}
|
|
420 |
.ricento_dashboard .right {
|
421 |
width: 66%;
|
422 |
}
|
|
|
|
|
|
|
423 |
|
424 |
.ricento_toolbar {
|
425 |
margin-bottom: 20px;
|
@@ -537,6 +560,7 @@ table.allowed-combinations td {width: 50%; padding: 5px;}
|
|
537 |
}
|
538 |
.ricento_news_description img {width:30%}
|
539 |
|
|
|
540 |
.ricardo-support div img{
|
541 |
width: 31%;
|
542 |
margin: 1%;
|
@@ -562,4 +586,35 @@ table.allowed-combinations td {width: 50%; padding: 5px;}
|
|
562 |
|
563 |
.ricardo-diglin .ricardo-imprint, .ricardo-diglin .diglin-imprint {width: 200px; height: 150px;}
|
564 |
.ricardo-diglin .ricardo-imprint {float: left; margin-right: 50px}
|
565 |
-
.ricardo-diglin .diglin-imprint {margin-left: 200px}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
font-weight: bold;
|
58 |
color: red;
|
59 |
}
|
|
|
|
|
|
|
60 |
#diglin_ricento_price_change {
|
61 |
width: 30px;
|
62 |
}
|
90 |
|
91 |
/********** Category Mapping views **********/
|
92 |
|
93 |
+
#ricento_popup_content .error-msg {
|
94 |
+
width: 100%;
|
95 |
+
text-indent: 40px;
|
96 |
+
line-height: 36px;
|
97 |
+
margin-bottom: 10px;
|
98 |
+
}
|
99 |
+
|
100 |
#ricardo_categories {}
|
101 |
#ricardo_categories nav {
|
102 |
width: 200px;
|
157 |
font-weight: bold;
|
158 |
}
|
159 |
|
160 |
+
.category-suggestion input {
|
161 |
+
line-height: 20px;
|
162 |
+
width: 300px;
|
163 |
+
margin-bottom:20px;
|
164 |
+
padding: 0 4px;
|
165 |
+
}
|
166 |
+
|
167 |
+
#ricardo_categories .suggested a {
|
168 |
+
color: #FFA500;
|
169 |
+
}
|
170 |
+
#ricardo_categories .selected a,
|
171 |
+
#ricardo_categories .suggested a:hover {
|
172 |
+
color: #000;
|
173 |
+
}
|
174 |
/********** Add missing Magento core pictures **********/
|
175 |
|
176 |
.magento_minimize { background:url('images/window_minimize.png') 0 0 no-repeat !important;}
|
182 |
.ricento-products-listing-item-configure .form-list {
|
183 |
}
|
184 |
.ricento-products-listing-edit .form-list td.value,
|
185 |
+
.ricento-products-listing-item-configure .form-list td.value,
|
186 |
+
.ricento-products-listing-edit .form-list .product-listing-select,
|
187 |
+
.ricento-products-listing-item-configure .product-listing-select {
|
188 |
width: auto !important;
|
189 |
}
|
190 |
|
440 |
.ricento_dashboard .right {
|
441 |
width: 66%;
|
442 |
}
|
443 |
+
.ricento_dashboard .right .banner {
|
444 |
+
width: 100%;
|
445 |
+
}
|
446 |
|
447 |
.ricento_toolbar {
|
448 |
margin-bottom: 20px;
|
560 |
}
|
561 |
.ricento_news_description img {width:30%}
|
562 |
|
563 |
+
/*********** Product Page ***********/
|
564 |
.ricardo-support div img{
|
565 |
width: 31%;
|
566 |
margin: 1%;
|
586 |
|
587 |
.ricardo-diglin .ricardo-imprint, .ricardo-diglin .diglin-imprint {width: 200px; height: 150px;}
|
588 |
.ricardo-diglin .ricardo-imprint {float: left; margin-right: 50px}
|
589 |
+
.ricardo-diglin .diglin-imprint {margin-left: 200px}
|
590 |
+
|
591 |
+
|
592 |
+
/*********** Confirmation Popup ***********/
|
593 |
+
|
594 |
+
#ricento_popup_confirmation_content table {
|
595 |
+
width: 100%;
|
596 |
+
padding: 5px;
|
597 |
+
}
|
598 |
+
|
599 |
+
#ricento_popup_confirmation_content table thead tr {
|
600 |
+
background-color: #f1f1f1;
|
601 |
+
}
|
602 |
+
#ricento_popup_confirmation_content table th,
|
603 |
+
#ricento_popup_confirmation_content table td {
|
604 |
+
padding: 5px;
|
605 |
+
}
|
606 |
+
|
607 |
+
#ricento_popup_confirmation_content table tfoot td {
|
608 |
+
font-weight: bold;
|
609 |
+
}
|
610 |
+
|
611 |
+
#ricento_popup_confirmation_content .terms {
|
612 |
+
padding: 10px;
|
613 |
+
margin-bottom: 15px;
|
614 |
+
}
|
615 |
+
#ricento_popup_confirmation_content button {
|
616 |
+
float: right;
|
617 |
+
margin-right: 20px;
|
618 |
+
}
|
619 |
+
|
620 |
+
|
Binary file
|
Binary file
|