Acme XML Import module
- 1 Introduction
- 2 Licensing
- 3 Requirements for using this extension
- 4 Systematic changes to Magento when installing this module
- 5 Installation
- 6 License registration process
- 7 Configuration variables
- 7.1 Current State
- 7.2 Enabled
- 7.3 Create actions
- 7.4 Remove actions
- 7.5 Acme ACC License key
- 7.6 Currency
- 7.7 Tax Class
- 7.8 Acme Acc Product Specification language
- 7.9 Add VAT to imported products
- 7.10 VAT rate to be added
- 7.11 Margin amount
- 7.12 Margin Type
- 7.13 Recalculate margin on each product update
- 7.14 Product enabled by default
- 7.15 Default attribute set for new products
- 7.16 Missed category
- 7.17 Parent Category
- 7.18 Import all products from the warehouse
- 7.19 Choose product classes to import
- 7.20 Use category layout from the warehouse
- 7.21 Enable attribute mapping
- 7.22 Product save handler
- 7.23 Filters applied before product import
- 7.24 Filters applied during product import
- 7.25 Filters applied after product import
- 7.26 Filters applied before price update
- 7.27 Filters applied during price update
- 7.28 Filters applied after price update
- 7.29 Filters applied before product update
- 7.30 Filters applied during product update
- 7.31 Filters applied after product update
- 7.32 Filters applied before removing products deleted from remote server
- 7.33 Filters applied during removing products deleted from remote server
- 7.34 Filters applied after removing products deleted from remote server
Current end user guide is about the module for Magento, which adds the following functionality to Magento webshop:
- Imports products to Your Magento e-shop from Acme Acc Warehouse
- Updates product prices and stock levels at pre-defined regular intervals or by user initiation
- Allows Magento administrator to replicate the category structure from remote warehouse very easily
- Allows to import all products or import products from certain categories only
- Allows to monitor what is currently going on, as each time a procedure is run, it is shown at the configuration panel
- Allows to create external modules, which can affect the import process for each product. This way if you want a product to be imported differently, module can be written for this task
This software is Licensed by Aktsiamaailm LLC and contains one time online activation. Software itself is open source and contains the licensing logic. Removal or alteration of such logic is prohibited and may cause software not to function correctly and removes the right for technical support. License is tied to the following components (which are also sent to the Aktsiamaailm LLC-s server):
- Magento's base directory
- Modules to be licensed
Each time when Magento is moved to a different host of to a different directory, software should be re-licensed. License terms can be found here: E-Abi License terms
Requirements for using this extension
- Contractual relationship with Acme Acc (without it, only test account is available)
- Magento Community Edition 1.3 or greater (Magento 1.5 or greater is recommended)
- Soap Extension must be enabled
- Ability for the PHP script to raise memory limit up to 512M
- Magento Cron should be configured
Systematic changes to Magento when installing this module
- New added attribute set with name Eabi_EE, which is based on Default attribute set and adds under General tab the following attributes:
- eabi_mpn - Holds Manufacturers product number
- eabi_manufacturer - Holds the Manufacturer name as drop-down menu
- eabi_warranty - Holds the product warranty lenth information in months
- eabi_dateExpected - If product is out of stock, then the expected date, when product should be in stock
- eabi_disableRemoteUpdate - When this field is filled, automatic updates for the product are disabled
- eabi_margin - Holds the Margin amount to be added on top of the warehouse product price
- eabi_marginType - Defines whether the margin amount is represented as absolute or as percent
- New category attribute with code
- remoteId - Holds the warehouse ID of the imported category
- Uses class prefix of Eabi_Acmew
- Uses Model prefix of eabi_acme
- Uses Helper prefix of eabi_acme
- Uses the following Eabi_Components
If your system is using any of the namespaces or components, which are not manufactured by Aktsiamaailm LLC, then the current module may not install correctly to your system. Contact developer if you have any doubts.
Before installation prepare yourself with the following information:
- FTP login details
- Magento admin login details
Unzip the module to find the following zip files in install directory:
Unzip each file, one at a time, in the specified order. Each time file is unzipped, navigate in a way, that the contents would display the "app" folder. Copy the contents to Magento's root directory in way that unzipped app folder would match Magento's app folder and directory contents must be merged, not replaced. No file should be overwritten, if you are installing the extension for the first time.
When successful, delete the temporary unzipped files and repeat the procedure until all the listed zip file contents are installed. If you have installed any of the E-Abi.ee's XML import modules earlier, then you may find that you already have installed some of the zip files. In that case you only need to install the last zip file in the list.
After copying the files, log to Magento's admin and clear the Magento's cache. Log out of Magento and in again, this is required to re-load the newly defined permissions. Navigate to Admin -> System -> Configuration -> E-Abi Acme Acc Product Import
License your copy
License registration process
Before registering your license, you should prepare yourself with the following data:
- Order number
- e-mail address, that was used to place an order
Click on the © icon on top right of the "Show Current status" label to display the license registration link, if not already displayed You are redirected to E-Abi.ee page, where you need to enter the Order Number and email address. After successful entry you are asked which product to license - check all the ordered products you wish to license If you are licensing for second or greater time, then you also need to provide a reason for re-licensing. For example "Change of server" or "Magento reinstall" are adequate reasons.
When successful, you are automatically redirected back to E-Abi Remote Product importer with success message. If not, then click on the button to enter the license data. By default license registration link should not be displayed any more.
Extension settings can be found at: Admin -> System -> Configuration -> E-Abi Acme Acc Product Import Each field is defined separetely below
Displays information about the currently running process, which is initiated by E-Abi XML Import module. Click on the "Show current status" header, and additional information should be displayed, which is refreshed in every couple of seconds.
- Operation name - Displays name of the module and name of the process that is currently running. Any process from a module that extends Eabi_Synchronizer can be run
- Operation status - State of the most recent process, possible values are:
- Running - Process is currently running and no other process is not allowed to run
- Finished - Process has successfully finished, and new process may be run
- Failed - Process encountered an Exception during the run and last error may also be shown
- Completion - Displays number of units the process has to complete along with the already completed units
- Last activity - Displays the date and time process last responded. Process is considered dead when it last responded more than 3 hours ago and is still marked as running. At this point process may be marked as failed or it may be tried to be restarted. Refer to Eabi_Synchronizer for more information
- Operation started - Displays the date and time the most recent operation was started
- Memory used - Displays the used memory during the time most recent running process responded
- Last error - If there was an error during the process run, then the stact trace is displayed
- Halt running process - If the process is currently running, then it is possible to stop it by clicking on this button. Process can be stopped only between the completed units and only when it is responding
If you want to use this module, then the extension should be enabled. If extension is not enabled, then any attempt to run any process will cause an exception
Displays a list of buttons, which are related to a process, which creates something in your Magento installation. If there is not anything running at the moment and the module is enabled, then clicking on the button causes new process to be run asynchronously. Process can be run directly via HTTP or to be scheduled to be run by Magento's cron. Refer to Eabi_Synchronizer "Clicking on the action button schedules process to be run with Cron instead of direct run" for more information. Possible create actions are:
- Create suitable attribute set with name Eabi_EE - If this is the first Eabi_Synchronizer module, then you need to create a suitable attribute set to import products in. Otherwise there is no need to use this action
- Import categories from warehouse - If you do not have the Category mapper for XML Import modules then you need to import warehouse category tree to your Magento installation. Before that you need to assign the Parent Category under where the remote category tree will be imported
- Import new products from warehouse - Imports all the remote products from the warehouse, which are not already imported. You may need to create attribute set and import remote categories before you can import products
- Update product prices and stock levels - Updates prices and stock levels for all the imported products. It is very fast operation and updates are applied for the products which have been changed
- Update all product attributes - Updates all of the imported product, by re-setting their names, descriptions, attributes, etc... Usually it is not recommended to run this operation, since Importing new products and updating their stock and price levels after that is considered sufficient
- Turn on Price and Stock indexes and perform reindex - After price and stock update, it is recommended to run this operation
- Turn on all indexes and perform reindex - After importing new products or performing full update of imported products it is recommended to run this operation
Displays a list of buttons, which are related to a process which removes or disables something in your Magento installation. This button behaves the same as the buttons listed under Create actions Possible remove actions are:
- Turn off Price and Stock indexes - It is recommended to turn off before doing price and stock level updates, since the process is faster.
- Turn off all indexes - It is recommended to turn off all the indexes if the amount of new Products to be imported is large, because whole process is then much faster
- Delete products which have been deleted from the remote server - If product gets removed from the remote warehouse, then this process helps to identify such imported products and deletes them from your Magento installation
- Delete imported products - Deletes all the products which have been imported using this module
- Delete imported categories - Deletes all the categories which have been imported using this module
Acme ACC License key
You should receive this key, when you form contractual relationship with Acme ACC. By default module comes bundled with test license key
Since Acme ACC does not supply the information about the currency used in the XML feed, then you need to apply it here. Default is EUR
Applies the tax class to every imported product
Acme Acc Product Specification language
Possible values are English and Lithuanian. Product descriptions and attributes are imported with the selected language.
Add VAT to imported products
By default products in Acme XML feed are priced without VAT. If you have configured your store to display prices with VAT in the Administration, then you need to enable this setting.
VAT rate to be added
Works only if Add VAT to imported products is enabled. If you want to add 20% VAT on top of the import price, then you need to enter 0.2
Only numeric values work here. Amount entered here will be added on top of the product price that is coming from the XML feed. Can also be negative number. If you need to set percentage based price margin depending on the remote category and product cost, then Price mapper for XML Import modules is up for the job.
Select whether the Margin amount behaves as absolute value or as percentage value
Recalculate margin on each product update
When this setting is enabled and product price update process is run, then product margin amount will be overwritten. When this setting is disabled and product price update process is run, then product margin amount will not be overwritten, thus enabling to import the products at first and set custom margin to some of the products
Product enabled by default
Defines whether new imported product is imported in enabled or disabled state
Default attribute set for new products
Select from the list of possible attribute sets, which can be applied to newly imported products. If this list is empty, then you need to "Create suitable attribute set with name Eabi_EE" under Create actions
When new product is imported and module is unable to assign a category for the remote product, then it will be assigned to a category selected here. If no category is selected, then imported product may have no categories and thus visitors may not find the product from the frontend
When importing remote category copy from the warehouse, then under this category the tree will be copied In order to copy the remote category tree, you need to click on the "Import categories from warehouse" under Create actions
Import all products from the warehouse
If you want to import products from certain categories, then set this to "No" and choose categories to import from Choose product classes to import
Choose product classes to import
Allows to choose, which remote categories should be imported to your Magento store. In order to use this control, click on the "Choose categories to import" header and from now all the remote categories from the remote warehouse should be fetched via ajax call. There may be some delay, when the categories appear, especially when there are lot of categories available. From the opened view simply check the categories which you would like to import. Checking the parent category also imports all the products, which are belonging to the child categories of the selected parent category. On the screen yellow color indicates that you have some selected categories under the collapsed parent category. Currently this control does not work with Internet Explorer.
Use category layout from the warehouse
If you want to assign your own categories to the imported products, then you need the Category mapper for XML Import modules. If you have that module, then simply set this setting to "No" and read how to map remote categories to your categories from the Category mapper for XML Import modules
Enable attribute mapping
If you want to import remote product attributes into your defined product attributes, then you need the Attribute mapper for XML Import modules. If you do not have that module, then all the imported attributes will be displayed as table in the Product's long description field, otherwise only unmapped attributes are displayed here. IF you have the module and want to map remote attributes to your product attributes or if you want to assign a different attribute set for the imported product depending on the remote category, then read more information from the Attribute mapper for XML Import modules
Product save handler
Each time imported product is saved, it is done thru the handler, which implements Eabi_Synchronizer_Model_Handler_Interface interface. Defaults to eabi_synchronizer/handler_product_save and simply calls $product->save() method. It is possible to declare your own product save handler, which may for example save imported products once every 100 iterations or be faster than the default one.
=== Handler for deleting products which are removed from the remote server Each time imported product is deleted, it is done thru the handler, which implements Eabi_Synchronizer_Model_Handler_Interface interface. Defaults to eabi_synchronizer/handler_product_delete and deletes products at batches of 100. It is possible to declare your own product delete handler.
Filters applied before product import
List of filters, where each filter implements the Eabi_Synchronizer_Model_Filter_Soap_Interface interface. These filters are called right after loading the remote products but before importing them. If the remote product should be excluded from the import process, then the filter's handleItem method must return false. You can read more about filter at the Creating your own XML Import filters Default bundled filters are:
- eabi_synchronizer/filter_soap_new - Excludes all the remote products, which are already imported
- eabi_synchronizer/filter_soap_category - Excludes all the remote products, which fall outside Choose product classes to import criteria
- eabi_synchronizer/filter_soap_exists - Excludes all the remote products, which are not imported
- eabi_synchronizer/filter_soap_instock - Excludes all the remote products, which are out of stock
- eabi_synchronizer/filter_soap_notinstock - Excludes all the remote products, which are in stock
Depending on the applied filters you can limit the amount of products imported.
Filters applied during product import
List of filters, where each filter implements the Eabi_Synchronizer_Model_Filter_Interface interface. These filters are called at the import of new products from the warehouse. Each time remote product is imported or updated, it is passed thru the declared filters at the specified order, each filter is responsible for setting some attribute of imported product.
Default bundled filters are:
- eabi_synchronizer/filter_allow - disables all the filters that are supposed to be executed right after this filter, when eabi_disableRemoteUpdate attribute is set to true for imported product
- eabi_synchronizer/filter_arrival - sets the eabi_dateExpected attribute for the imported product
- eabi_synchronizer/filter_category - sets the categories for the imported product, if using category layout from the warehouse
- eabi_synchronizer/filter_description - sets the product short and long description for the imported product
- eabi_synchronizer/filter_image - sets the images for the imported product
- eabi_synchronizer/filter_init - Loads the images and attribtues for the remote product and sets the following attributes for the imported product:
- sku - format is: module specific SKU prefix + remote ID of the imported product
- visibility - defaults to "visible in both"
- eabi_synchronizer/filter_price - sets the price, special_price, special_price_from, eabi_margin, eabi_marginType attributes for the imported product
- eabi_synchronizer/filter_stock - sets the stock data for the imported product
After all the filters are executed in the declared order, the imported product is saved thro the Product save handler
Filters applied after product import
When product is successfully saved, then list of filters, which implement the Eabi_Synchronizer_Model_Filter_Interface interface, are called. In this example product stock level is set. These filters are called at the import of new products from the warehouse, right after each imported product is saved.
Filters applied before price update
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Soap_Interface interface right after loading the remote products, but before updating Magento products during the Price and stock level update process.
Filters applied during price update
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Interface interface for each product to be updated during the Price and stock level update process.
Filters applied after price update
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Interface interface for each product to be updated right after save during the Price and stock level update process.
Filters applied before product update
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Soap_Interface interface right after loading the remote products, but before updating Magento products during the full product update process.
Filters applied during product update
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Interface interface for each product to be updated during the full product update process.
Filters applied after product update
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Interface interface for each product to be updated right after save during the full product update process.
Filters applied before removing products deleted from remote server
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Soap_Interface interface right after loading the remote products, but before updating Magento products during the removal of remote server deleted products process.
Filters applied during removing products deleted from remote server
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Interface interface for each product to be updated during removal of remote server deleted products process.
Filters applied after removing products deleted from remote server
Calls out list of classes, which implement the Eabi_Synchronizer_Model_Filter_Interface interface for each product to be updated right after save during removal of remote server deleted products process.