File: //home/retile.ru/public_html/admin/language/english/module/universal_import.php
<?php
// Heading
$_['heading_title'] = 'Universal Import/Export Pro 3.6.1';
// Text
$_['text_module'] = 'Modules';
$_['text_browse'] = 'Browse';
$_['text_continue'] = 'Next step';
$_['text_add_sub'] = 'Add';
$_['text_add_cat'] = 'Add category';
$_['text_add_subcat'] = 'Add subcategory';
$_['text_add_column'] = 'Add column';
$_['text_remove_column'] = 'Remove column';
$_['not_found'] = 'Not found';
$_['new'] = 'new';
$_['text_add_condition'] = 'Add condition';
$_['text_success'] = 'Success: You have modified settings!';
$_['text_store_select'] = 'Store:';
$_['text_import'] = 'import';
$_['text_source_upload'] = 'FILE UPLOAD - upload your file here';
$_['text_source_ftp'] = 'FTP - get file from remote FTP or SFTP server';
$_['text_source_url'] = 'URL - get a file from an url or dropbox, google drive, etc.';
$_['text_source_api'] = 'API - connect to remote api';
$_['text_source_path'] = 'LOCAL PATH - set path to a file on your server';
$_['text_type_product'] = 'Product';
$_['text_type_product_update'] = 'Product quick update';
$_['text_type_order'] = 'Order';
$_['text_type_order_status_update'] = 'Order status update';
$_['text_type_review'] = 'Review';
$_['text_type_category'] = 'Category';
$_['text_type_information'] = 'Information';
$_['text_type_manufacturer'] = 'Manufacturer';
$_['text_type_customer'] = 'Customer';
$_['text_subtype_order_info'] = 'Order information';
$_['text_subtype_order_item'] = 'Order item';
$_['text_type_attribute'] = 'Attribute';
$_['text_type_filter'] = 'Filter';
$_['text_type_restore'] = 'Restore a backup';
$_['text_type_backup'] = 'Database backup';
$_['text_product'] = 'Products';
$_['text_category'] = 'Categories';
$_['text_information'] = 'Informations';
$_['text_manufacturer'] = 'Manufacturers';
$_['text_review'] = 'Review';
$_['text_customer'] = 'Customers';
$_['text_customer_group'] = 'Customer group';
$_['text_order'] = 'Orders';
$_['text_order_status'] = 'Order statuses';
$_['text_ignore'] = '';
$_['text_column'] = 'column';
$_['text_next_step'] = 'Validate and continue';
$_['text_start_process'] = 'Start import processing';
$_['text_pausing_process'] = 'Pausing, please wait until last batch terminate...';
$_['text_resume_process'] = 'Resume process';
$_['text_start_simu_process'] = 'Start full simulation';
$_['text_pause_process'] = 'Import in progress - Click to pause';
$_['text_pause_simu_process'] = 'Simulation in progress - Click to pause';
$_['text_previous_step'] = 'Previous step';
$_['text_data_preview'] = 'Data preview';
$_['text_row'] = 'Row';
$_['text_row_xml'] = 'Item';
$_['text_status'] = 'Status';
$_['text_message'] = 'Message';
$_['text_howto'] = 'How to use';
$_['text_action_update'] = 'Update - replace';
$_['text_action_soft_update'] = 'Update - preserve';
$_['text_action_insert'] = 'Insert';
$_['text_action_skip'] = 'Skip';
$_['text_action_option'] = 'Add option';
$_['text_action_update_option'] = 'Update first then add option';
$_['text_action_delete'] = 'Delete';
$_['text_action_overwrite'] = 'Overwrite';
$_['text_action_rename'] = 'Rename';
$_['text_img_action_keep'] = 'Keep actual image';
$_['text_img_action_rename'] = 'Rename new image';
$_['text_img_action_overwrite'] = 'Overwrite with new image';
$_['text_img_action_continue'] = 'Show warning and continue to import';
$_['text_img_action_skip'] = 'Skip the import of current item';
// Tabs
$_['text_tab_0'] = 'Import';
$_['text_import_step1'] = '<b>Step 1</b> - File selection';
$_['text_import_step2'] = '<b>Step 2</b> - Import settings';
$_['text_import_step3'] = '<b>Step 3</b> - Column mapping';
$_['text_import_step4'] = '<b>Step 4</b> - Data verification';
$_['text_import_step5'] = '<b>Step 5</b> - Start process';
// Profile manager
$_['text_profile_dir_not_writable'] = 'Profile folder not writable, make sure you have write rights on folder (and subfolders):';
$_['text_profile_name'] = 'Profile name';
$_['text_new_profile'] = '- Save as new profile -';
$_['text_save_profile'] = 'Save profile';
$_['text_delete_profile'] = 'Delete profile';
$_['text_really_delete'] = 'Are you sure you want to delete this profile?';
$_['text_save_profile_i'] = 'Save your current settings set in order to use it on further imports.<br/>You can select existing profile to overwrite it or create a new one.';
$_['text_profile_saved'] = 'Your profile has been correctly saved';
// Step 1
$_['entry_name'] = 'Name';
$_['entry_demo_file'] = 'Load demo file';
$_['entry_demo_file_i'] = 'Use the pre-loaded files to test the behaviour of the module. If you want to upload your own leave that field blank and upload a file in the previous field.';
$_['entry_type'] = 'Import type';
$_['entry_update_type'] = 'Update type';
$_['entry_subtype'] = 'Import subtype';
$_['entry_type_i'] = 'What kind of data are you about to import ?';
$_['entry_profile'] = 'Settings profile';
$_['text_select_profile'] = 'Select a setting profile';
$_['entry_profile_i'] = 'Profile contains all settings you can set in steps 2 and 3. You can save a new profile in step 4';
$_['entry_profile_export_i'] = 'Profile contains all settings you have set, save a profile for easy loading of your parameters.';
$_['entry_file'] = 'Select file source';
$_['entry_file_i'] = 'Select your file here.<br/>Unlimited size is supported.<br/>Compatible formats : CSV, XML, XLS, XLSX, JSON, ODS';
$_['source_ftp'] = 'FTP connexion';
$_['source_ftp_i'] = 'Connect to a FTP to get the file, don\'t forget the initial ftp://';
$_['source_ftp_path'] = 'FTP file path';
$_['source_url'] = 'File link';
$_['source_url_i'] = 'Get a file from an external url, if the file is password protected set the url like this http://user:password@website.tld/...';
$_['source_api_url'] = 'API';
$_['source_api_url_i'] = 'Insert here the url of your API as described into your API documentation';
$_['source_api_auth'] = 'Login or API key';
$_['source_api_auth_i'] = 'Insert the authentication login to your API, if user and password insert them separated by colon (user:password), if your API works only with an API key or token just insert it here, you can also use HEAD| to set specific header, or POST|key:val GET|key:val to set specific parameters';
$_['source_api_auth_url'] = 'Authentication URL';
$_['source_api_auth_url_i'] = '(Optional) If your API is requiring to connect to an authentication url before accessing the specific url to get some data then use this field to set up the authentication URL, and put final url in API URL field just above';
$_['source_api_field'] = 'Data field';
$_['source_api_field_i'] = 'Generally the data of each item will be contained into a specific field, it is necessary to put the name of that field here in order to correctly loop through each item. If you don\'t know what it is you will have to open your file in order to find what is the container field name.';
$_['source_path'] = 'Local file path';
$_['source_path_i'] = 'This is referring to a file that is on your server';
$_['entry_preprocessor'] = 'Pre-processor';
$_['entry_preprocessor_i'] = 'Use a pre-processor tranform your file or do specific operations that could not be possible in the rest of the module';
$_['text_extension_auto'] = 'Auto detect extension';
$_['text_compression_auto'] = 'Auto detect compression';
$_['text_dropzone'] = 'Drop file here or click to upload';
$_['text_file_loaded'] = 'File loaded:';
$_['text_profile_loaded'] = 'Profile:';
$_['text_cron_complete'] = '%s completed:';
$_['text_file_error'] = 'Error:';
// Step 2
$_['text_common_settings'] = 'Common settings';
$_['entry_xml_node'] = 'XML item node';
$_['entry_xml_node_i'] = 'Set the xml node for each item in your file for example <product> or <item> (set value without brackets). The system will try to auto-detect it, just change it if incorrect value';
$_['entry_xml_processor'] = 'XML processor';
$_['entry_xml_processor_i'] = 'This the engine that will process the XML file, try another if default one is not working for you';
$_['text_xml_processor_'] = 'DEFAULT - Fast XML processing';
$_['text_xml_processor_xri'] = 'ADVANCED - Possibility to use xpath in XML node, slower';
$_['entry_csv_separator'] = 'CSV field separator';
$_['entry_csv_separator_i'] = 'What is the field delimiter character in your CSV file?';
$_['entry_csv_enclosure'] = 'CSV field enclosure';
$_['entry_csv_enclosure_i'] = 'What is the field enclosure character in your CSV file?';
$_['entry_encoding'] = 'Character encoding';
$_['entry_encoding_i'] = 'If your data is not displayed correctly try to set the good character encoding here, if you don\'t know what it is try first with Auto-detect or common encodings';
$_['entry_multiple_separator'] = 'Multiple value separator';
$_['entry_multiple_separator_i'] = 'If the field contains multiple values define the character used to separate these';
$_['entry_xls_sheet'] = 'Work sheet';
$_['entry_xls_sheet_i'] = 'If your file contains various sheets you can choose the one to work with';
$_['entry_csv_header'] = 'First row is header';
$_['entry_item_identifier'] = 'Existing item identifier';
$_['entry_item_identifier_i'] = 'Detect if the item you are about to insert exists if it match this field';
$_['entry_identifier_mode'] = 'Identifier condition';
$_['entry_identifier_mode_i'] = 'Generally use equal method, the contains method is for very specific use, keep in mind if used incorrectly it could match more items than it should';
$_['text_identifier_mode_'] = 'Equal - match on exact value (ID123 = ID123)';
$_['text_identifier_mode_%'] = 'Contains - match on part of the value (ID123 is part of ID123456)';
$_['entry_item_exists'] = 'Existing item action';
$_['entry_item_exists_i'] = 'Replace mode: all values will be updated, blank column mapping means any actual value will be removed (this is using the default opencart method, and includes any modification applied to it) - Preserve mode (if available): will update only the fields set in column mapping, blank field means no change of actual value (not opencart method, custom values may not be applied here)';
$_['entry_item_not_exists'] = 'New item action';
$_['text_image_settings'] = 'Image settings';
$_['entry_image_download'] = 'Download images';
$_['entry_image_download_i'] = 'If image is external url, automatically download it to your server, to link existing images use the path relative to /image/ folder, e.g.: catalog/test.jpg';
$_['entry_image_exists'] = 'Image exists action';
$_['entry_image_exists_i'] = 'What to do if image with same name already exists ?';
$_['entry_image_not_exists'] = 'Image not found';
$_['entry_image_not_exists_i'] = 'What to do if image the remote image is not found or failed to be downloaded?';
$_['entry_image_location'] = 'Image location';
$_['entry_image_location_i'] = 'In case of image download, put them in some specific directory (ex: products/). This parameter is not used in case of existing images';
$_['entry_image_location_ph'] = 'new_folder/';
$_['entry_image_keep_path'] = 'Replicate url path';
$_['entry_image_keep_path_i'] = 'Keep same structure as on current location. For example if url is myshop.com/dir/subdir/image.jpg the image will be saved in dir/subdir/image.jpg.';
$_['entry_image_name_param'] = 'Image name url param';
$_['entry_image_name_param_i'] = 'If the image name is in an url parameter instead of main filename you can use this setting to get the correct image name, for example an url like this http://website/getimage.php?img=product, in such case put img in this field';
$_['entry_image_name_param_ph'] = 'src';
$_['entry_image_remove_path'] = 'Remove part of path';
$_['entry_image_remove_path_i'] = 'If there is a part of the image path you don\'t want to keep just write it here, e.g. http://website/image/catalog/product/asus/image.jpg, theere is you want to keep only the path asus/image.jpg then put image/catalog/product/ in this field';
$_['entry_image_remove_path_ph'] = 'image/catalog/';
$_['entry_image_sanitize'] = 'Sanitize filename';
$_['entry_image_sanitize_i'] = 'Choose how you want your image path to be saved, file safe will remove any character that can potentially generate issue to retrieve your image (special chars, spaces, etc.)';
$_['text_img_sanitize_default'] = 'Default - File safe filename, lowercase';
$_['text_img_sanitize_safe'] = 'File Safe - File safe filename, no case change';
$_['text_img_sanitize_lcase'] = 'Lowercase - No file safe, lowercase';
$_['text_img_sanitize_off'] = 'Off - No file safe, no case change';
$_['entry_image_http_auth'] = 'HTTP authentication';
$_['entry_image_http_auth_i'] = 'If the image server requires http authentication set in this field separated by a colon like this username:password';
$_['entry_image_http_auth_ph'] = 'username:password';
$_['entry_image_width'] = 'Resize image width';
$_['entry_image_width_ph'] = '1000';
$_['entry_image_height'] = 'Resize image height';
$_['entry_image_height_ph'] = '750';
$_['text_delete_settings'] = 'Remove or disable items';
$_['entry_delete'] = 'Mode';
$_['entry_delete_action'] = 'Action';
$_['entry_delete_batch'] = 'Import label';
$_['entry_delete_condition'] = 'Condition';
$_['text_no_condition'] = 'No condition';
$_['entry_no_delete_skipped'] = 'Skipped';
$_['text_no_delete_skipped_off'] = 'Remove also skipped items';
$_['text_no_delete_skipped_on'] = 'Do not remove skipped items';
$_['text_delete_nothing'] = 'Do not remove anything';
$_['text_delete_all'] = 'For all items before import';
$_['text_delete_batch'] = 'For all items of a specific import label';
$_['text_delete_missing'] = 'For non-updated items only';
$_['text_delete_missing_brand'] = 'For non-updated items but only in updated brands';
$_['text_delete_zero'] = 'Set quantity to zero';
$_['batch_delete_everything'] = 'Any import label';
$_['batch_delete_empty'] = 'No import label';
$_['batch_delete_defined'] = 'Existing import label';
$_['batch_group_general'] = 'Delete items with:';
$_['batch_group_specific'] = 'Or only with specific import label:';
$_['warning_delete'] = 'Warning: Items will be removed from database, make sure this is what you want';
$_['text_deleted'] = 'Deleted item: ';
$_['text_nothing_deleted'] = 'nothing to delete';
$_['text_disabled_all'] = 'Set all items to disabled';
$_['text_delete_delete'] = 'Delete (remove from database)';
$_['text_delete_disable'] = 'Disable (set status to disabled)';
$_['text_category_settings'] = 'Category settings';
$_['entry_category_create'] = 'Create if not exists';
$_['entry_include_subcat'] = 'Include product in parents';
$_['entry_include_subcat_i'] = 'If you have a category defined like this Desktop > PC > Keyboards, then by default product will go into Keyboards, if you set parent mode it will go into Keyboards and PC, and if you set to all it will go in all these 3 categories';
$_['entry_filter_identifier'] = 'Identify filters by';
$_['entry_filter_identifier_i'] = 'How to detect existing filters.';
$_['entry_filter_identifier_'] = 'Filter name';
$_['entry_filter_identifier_1'] = 'Filter ID';
$_['entry_filter_to_category'] = 'Auto create filters';
$_['entry_filter_to_category_i'] = 'Automatically add the filters of imported products to their corresponding categories';
$_['text_include_subcat_none'] = 'Put the product only in defined category';
$_['text_include_subcat_parent'] = 'Put the product also in parent category';
$_['text_include_subcat_all'] = 'Put the product in all parent categories';
$_['text_manufacturer_settings'] = 'Manufacturer settings';
$_['entry_manufacturer_create'] = 'Create if not exists';
$_['text_product_settings'] = 'Product settings';
$_['entry_preserve_attribute'] = 'Preserve attributes';
$_['entry_preserve_attribute_i'] = 'If enabled attributes won\'t be reseted when importing, this is working only in update preserve mode!';
$_['entry_auto_qty'] = 'Auto calculate quantity';
$_['entry_auto_qty_i'] = 'Automatically calculate product quantity based on the options quantities';
$_['entry_auto_qty_'] = '';
$_['entry_auto_qty_1'] = 'Product quantity = summed options quantities';
$_['entry_auto_qty_2'] = 'Product quantity = product quantity + summed options quantities';
$_['entry_filter_generate'] = 'Generate filters from';
$_['entry_filter_generate_i'] = 'Check these options to automatically generate the product filters based on the following fields';
$_['entry_limit'] = 'Limit import';
$_['entry_limit_i'] = 'Limit the number of items to import Start: begin from this item row - End: stop at this item row - To get only last 50 lines from your file put -50 in start';
$_['entry_limit_start'] = 'Start row';
$_['entry_limit_max'] = 'Max items';
$_['text_extra_forced'] = 'Forced';
$_['text_existing_fields'] = 'Import file fields';
$_['text_extra_fields'] = 'Extra fields';
$_['entry_extra_fields'] = 'Extra fields';
$_['entry_extra_fields_i'] = 'Comma separated, add as much as extra fields you need for further use with extra functions, for example you can do some operation on an existing field of your feed and then save the result into an extra field';
$_['text_extra_xpath'] = 'XPath queries';
$_['entry_extra_xpath'] = 'XPath queries';
$_['entry_extra_xpath_i'] = 'Insert here your XPath queries, one by line';
$_['entry_extra_xpath_eg'] = '<b>Example:</b><br>node[@lang=\'EN\']/value<br>node/subnode[2]<br>node/subnode[last()]';
$_['entry_extra_xpath_ph'] = 'XPath queries (one by line)';
$_['info_extra_xpath_title'] = 'How to use xpath queries?';
$_['info_extra_xpath'] = 'XPath is a query language for selecting nodes from an XML document.<br/>If the module does not manage to auto-detect some data in your xml you will be able to get it with an XPath query.<br/><br/><b>Important:</b> the xpath query is relative to the current item node, the one defined in Common settings > XML item node, so it is not necessary to include the item node name in your query, for example if the node you want to get is /products/product/attr/name and you have defined product as the item node then put your path relative to product, in this case just put attr/name<br/><br/>You will find below some examples of what you can do with XPath. All results retrieved by the XPath queries will be named like this <b>[your_xpath_query]result</b>
<table class="table" style="margin-top:15px">
<thead><tr><th>Xpath query</th><th>Result</th></tr></thead>
<tbody>
<tr><td><code>attributes/width</code></td><td>Basic node/subnode selection</td></tr>
<tr><td><code>attributes/attribute[1]</code></td><td>First attribute node</td></tr>
<tr><td><code>attributes/attribute[last()]</code></td><td>Last attribute node</td></tr>
<tr><td><code>attributes/attribute[@width]</code></td><td>Select a node based on its parameter</td></tr>
<tr><td><code>attributes/attribute[@name=\'width\']</code></td><td>Select a node based on its parameter value</td></tr>
<tr><td><code>attributes/attribute[@name=\'info\']/value[@lang=\'EN\']</code></td><td>Parameter value for subnode</td></tr>
<tr><td><code>attributes[price>20]/price</code></td><td>Get price if it is superior to 20</td></tr>
<tr><td><code>attributes/*/name</code></td><td>All name node which is contained in any subnode of attributes</td></tr>
</tbody>
</table>
';
$_['text_limit_settings'] = 'Limit data set';
$_['entry_limit_batch_status'] = 'Limit import label';
$_['entry_limit_field_status'] = 'Limit on DB field';
$_['entry_limit_field'] = 'Limit DB field if';
$_['import_all_attribute'] = 'Import all attributes';
$_['import_product_review'] = 'Import product reviews';
$_['text_import_product_review'] = 'Please select the product identifier';
$_['text_identify_option_type'] = 'Identify by option value';
$_['text_identify_option_field'] = 'Identify by extra option field';
$_['import_product_attribute'] = 'Import product attributes';
$_['text_import_product_attributes'] = 'Import attributes directly to your products, you need to select the identifier of the product where the attribute will be added.';
$_['entry_delete_attributes'] = 'Clear attributes';
$_['entry_delete_attributes_i'] = 'Enable this option if you want current product attributes to be cleared before import';
$_['entry_attribute_id'] = 'Attribute ID';
$_['entry_attribute_name'] = 'Attribute name';
$_['import_all_filter'] = 'Import all filters';
$_['import_product_filter'] = 'Import product filters';
$_['text_import_product_filters'] = 'Import filters directly to your products, you need to select the identifier of the product where the filter will be added.';
$_['import_category_filter'] = 'Import category filters';
$_['text_import_category_filters'] = 'Import filters directly to your categories, you need to select the identifier of the product where the filter will be added.';
$_['entry_delete_filter'] = 'Clear attributes';
$_['entry_delete_filter_i'] = 'Enable this option if you want current product filters to be cleared before import';
$_['entry_filter_id'] = 'Filter ID';
$_['entry_filter_name'] = 'Filter name';
$_['entry_sort_order'] = 'Sort order';
$_['entry_delete_filters'] = 'Delete current filters';
// Step 3
$_['tab_order'] = 'Order';
$_['tab_info'] = 'Extra info';
$_['tab_extra'] = 'Custom Fields';
$_['tab_seo'] = 'SEO';
$_['entry_extra'] = 'Custom Field';
$_['entry_extra_ml'] = 'Description Custom Field';
$_['entry_disable_config'] = 'Disable config';
$_['placeholder_disable_config'] = 'config_module_option, config_extra_option';
$_['placeholder_extra_col'] = 'Field name';
$_['tab_disable_cfg'] = 'Disable config options';
$_['info_disable_cfg'] = 'Just like the previous option this could be useful in case some third party module wants to insert data on item creation/edition.<br/>If you don\'t have corresponding data in your import file and the import fails because of the missing extra data you can either use the extra field option with empty value, or in some case it is even easier to just disable the corresponding config option.<br/><br/>For example if you have in your model something like that:<br/><code>if ($this->config->get(\'superfilter_status\')) {<br/> // insert module data...<br/> }</code><br/><br/>Then if this code part is making the import to fail you can just put in the field below "superfilter_status", it will temporary set this parameter to false so you can avoid related errors during import.<br/>Use comma as separator if you need to put various values.';
$_['info_extra_field'] = 'Here you can define your own custom fields, this is useful in case you have some module that is adding data into your tables.<br/>If the custom field is multilingual, then it is stored in description part so you have to use Description custom field, can be useful for seo module for example which are adding SEO H1 and other data, find out which is the name used by this module and put "meta_h1" or "seo_h1" into Field name, and in right selector just select to which column it will take the data.<br/><br/>If during the import you have some undefined index errors it is many time because you have custom fields added by modules, so you have to use this section to add them for the import process, the error will tell you what is the exact name required.<br/><br/>The custom field name must be set as it appears into your database.<br/><br/><b>Forced</b><br/>If you select this option the module will update the value in database independently from what your opencart is expecting, you must use it only if your product model is not modified to handle the custom value you are about to update. So if you have a custom module that is handling the data you must not check the forced box, and you need to set the field name not as it is in database but as it is in your product form (you can do an inspect element on form field to know what is the name of your element).';
$_['text_remove_extra_col'] = 'Remove custom field';
$_['text_add_extra_field'] = 'Add new custom field';
$_['text_add_extra_field_ml'] = 'Add new description custom field';
$_['text_add_advanced_fields'] = 'Add new advanced fields';
$_['tab_functions'] = 'Extra Functions';
$_['text_add_function'] = 'Add function';
$_['text_function_type'] = 'Type';
$_['text_function_action'] = 'Action';
$_['text_function_target'] = 'Save result in';
$_['text_function_same_field'] = 'Current field';
$_['text_function_extra_field'] = 'Extra field';
$_['text_remove_function'] = 'Remove function';
$_['info_identifier_title'] = 'Item identifier';
$_['info_identifier'] = 'The field below is mandatory as it is the one used to identify the item to update.';
$_['tab_quick_update'] = 'Quick update';
$_['entry_option_identifier'] = 'Option identifier';
$_['entry_option_identifier_i'] = 'Leave empty to update main product';
$_['entry_option_identifier_value'] = 'Option value';
$_['text_quick_update_identifier'] = 'Here you can update your items quickly with most common updated values.<br/>The field below is mandatory as it is the one used to identify the item to update.';
$_['text_quick_update_option_identifier'] = '<h4>Update a product option</h4>If you want to update only a product option quantity you have to identify your product option with the next fields, select the option and what correspond to this option in your import feed.<br/>For example Option identifier as "Color" and in Option value select the field where you have the color inside.';
$_['entry_product_id'] = 'Product ID';
$_['entry_attribute_group_id'] = 'Attribute group ID';
$_['help_field_attribute_group_id'] = 'Leave empty for auto-generate';
$_['entry_title'] = 'Title';
$_['entry_fax'] = 'Fax';
$_['entry_total'] = 'Total';
$_['entry_shipping_code'] = 'Shipping code';
$_['entry_payment_code'] = 'Payment code';
$_['entry_payment_code'] = 'Payment code';
$_['entry_order_status_id'] = 'Order status ID';
$_['entry_payment_method_name'] = 'Payment method name';
$_['entry_payment_method_code'] = 'Payment method code';
$_['help_field_payment_method_name'] = 'Name of payment method as it will appear on order, you can set only this one, if code is not set it will just not be pre-selected when editing order';
$_['help_field_payment_method_code'] = 'Here is expected code in opencart format, for example bank_transfer, cod, paypal, free_checkout';
$_['entry_shipping_method_name'] = 'Shipping method name';
$_['entry_shipping_method_code'] = 'Shipping method code';
$_['help_field_shipping_method_name'] = 'Name of shipping method as it will appear on order, you can set only this one, if code is not set it will just not be pre-selected when editing order';
$_['help_field_shipping_method_code'] = 'Here is expected code in opencart format, for example free, flat, fedex, weight';
$_['entry_total_code'] = 'Total code';
$_['help_field_code'] = 'The total code in opencart format, for example total, sub_total, shipping, tax';
$_['entry_advanced_discount'] = 'Advanced discount';
$_['entry_advanced_discount_i'] = 'Set data for each customer group';
$_['entry_advanced_special'] = 'Advanced special price';
$_['entry_advanced_special_i'] = 'Set data for each customer group';
$_['entry_description'] = 'Description';
$_['entry_model'] = 'Model';
$_['entry_price'] = 'Price';
$_['entry_tax'] = 'Tax';
$_['entry_order_id'] = 'Order ID';
$_['entry_order_id_user'] = 'Random Order ID';
$_['entry_create_order_total'] = 'Auto create total item';
$_['entry_notify'] = 'Notify';
$_['entry_tracking_no'] = 'Tracking number';
$_['entry_tracking_url'] = 'Tracking URL';
$_['entry_order_status_comment'] = 'Comment';
$_['entry_order_status'] = 'Order status';
$_['help_field_order_status'] = 'All order will be updated with given order status, can be order status ID or name, you can also let empty and force the order status with the Default field';
$_['entry_seo_keyword'] = 'SEO keyword';
$_['entry_seo_h1'] = 'SEO H1';
$_['entry_seo_h2'] = 'SEO H2';
$_['entry_seo_h3'] = 'SEO H3';
$_['entry_seo_canonical'] = 'Canonical path';
$_['entry_seo_canonical_i'] = 'This is extra field from Complete SEO Package, enter here the category to apply a specific canonical path, if nothing set the default setting will be used.';
$_['entry_meta_title'] = 'Meta Tag Title';
$_['entry_meta_description'] = 'Meta Tag Description';
$_['entry_meta_keyword'] = 'Meta Tag Keywords';
$_['entry_img_title'] = 'Image title';
$_['entry_img_alt'] = 'Image alt';
$_['entry_separator'] = 'Separator';
$_['entry_category_separator'] = 'Multiple values separator';
$_['entry_category_separator_i'] = 'If the field contains multiple values define the character used to separate these';
$_['entry_subcat_separator'] = 'Subcategory separator';
$_['entry_subcat_separator_i'] = 'For example cat1 > subcat1 ; cat2 > subcat2';
$_['entry_dimension_l'] = 'Length';
$_['entry_dimension_w'] = 'Width';
$_['entry_dimension_h'] = 'Height';
$_['entry_category_id'] = 'Category ID';
$_['entry_information_id'] = 'Information ID';
$_['entry_manufacturer_id'] = 'Manufacturer ID';
$_['entry_customer_id'] = 'Customer ID';
$_['entry_code'] = 'Category code';
$_['entry_value_modifier'] = 'Mode';
$_['entry_value_modifier_i'] = 'Replace: replace the actual value with the new one - Add: add new value to actual one - Subtract: subtract new value to actual one';
$_['entry_email'] = 'Email';
$_['import_default_value'] = 'Default';
$_['entry_default'] = 'Default';
$_['entry_default_i'] = 'Insert here a default value for this field, if the field is empty or not mapped to any value the default value will be used';
$_['help_field_category'] = 'If multiple categories defined in this field, use the multiple value separator, for example: Cat1 > subcat1 ; Cat2 > subcat2';
$_['help_field_related_id'] = 'Use multiple separator to insert multiple values, value can be product ID or item identifier set in step 2';
$_['help_field_image'] = 'In case of multiple values, first one is chosen';
$_['help_field_product_image'] = 'To import various images you can use one field with multiple separator or click add columns to take the images from various fields';
$_['help_field_product_option_xml__'] = 'Use this format: <option> <optionType>type</optionType> <optionNameEn>Name english</optionNameEn> <optionValueEn>Value english</optionValueEn> <optionPrice>Price</optionPrice> <optionRequired>Required</optionRequired> </option> - The options and options values are created automatically if they doesn\'t exist.';
$_['help_field_product_option__'] = 'Can be formatted in various ways - 1: <name>:<value> (type is automatically set to select if the option not exists) - 2: <type>:<name>:<value> 3: <type>:<name>:<value>:<price> - 4: <type>:<name>:<value>:<price>:<qty> - 5: <type>:<name>:<value>:<price>:<qty>:<subtract> - 6: <type>:<name>:<value>:<price>:<qty>:<subtract>:<weight> - 7: <type>:<name>:<value>:<price>:<qty>:<subtract>:<weight>:<required> - The options and options values are created automatically if they doesn\'t exist.';
$_['help_field_product_attribute__'] = 'Can be formatted in various ways - 1: <attribute_group_name>:<attribute_name>:<value> - 2: <attribute_name>:<value> 3: <value> (header is used as attribute name) - 4: <ul><li>Group name: value</li></ul>The group and attribute are created automatically if they doesn\'t exists. In cases 2 and 3, if attribute not exist it is assigned to group `Default`';
//$_['help_field_product_discount'] = 'Must be formatted like this: <price> - or <price>:<date_end> - or <price>:<date_start>:<date_end> - or <qty>:<price>:<date_start>:<date_end> - or <customer_group_id>:<qty>:<price>:<date_start>:<date_end> - or <customer_group_id>:<qty>:<priority>:<price>:<date_start>:<date_end>';
$_['help_field_product_id'] = 'Use this if you want to force product ID';
$_['help_field_manufacturer_id'] = 'Use either manufacturer ID or manufacturer name';
$_['help_field_product_category'] = 'Use either category ID or category name. You can add as many subcategories as necessary they will follow the order set here';
$_['help_field_product_filter'] = 'Format your filters like this: filter_group:filter_name';
$_['help_field_product_related'] = 'The related product will be detected based on its ID, name, model, sku, ean, or upc';
$_['help_field_stock_status_id'] = 'Works with stock name or ID, if name not exists it will be created';
$_['help_field_status'] = $_['help_field_notify'] = $_['help_field_newsletter'] = $_['help_field_safe'] = $_['help_field_approved'] = 'It works with these values: 1/0, on/off, true/false, enabled/disabled, yes/no, active/inactive';
$_['help_field_order_status_comment'] = 'You can use these tags: {tracking_no} {tracking_url}';
$_['help_field_parent_id'] = 'If more than 2 levels this field should be formatted with subcategory separator: Cat1 > Subcat1 > Subcat2';
$_['entry_children'] = 'Children';
$_['help_field_children'] = 'Use this field to set the childs of this category';
$_['entry_children_id'] = 'Children ID';
$_['help_field_children_id'] = 'Set IDs here if you need to import categories with their corresponding IDs';
$_['entry_date_start'] = 'Start date';
$_['entry_date_end'] = 'End date';
$_['entry_salt'] = 'salt';
$_['help_field_password'] = '';
$_['help_field_salt'] = 'Salt is additional protection for the password, if you are about to import an encrypted password that uses salt then you must also fill the salt in order to be able to login, if the encrypted password does not use salt (basic MD5 for example), then leave this field blank';
$_['entry_pwd_hash'] = 'Encryption';
$_['entry_pwd_hash_i'] = 'If your password is encrypted check the corresponding value here and fill the salt field which is necessary for the customer to login';
$_['text_pwd_clear'] = 'Clear password';
$_['text_pwd_hash'] = 'Encrypted password';
$_['entry_invoice_no'] = 'Invoice No';
$_['entry_invoice_prefix'] = 'Invoice prefix';
$_['entry_user_agent'] = 'User agent';
$_['entry_accept_language'] = 'Accept language';
$_['entry_option_price_mode'] = 'Option price mode';
$_['entry_option_price_mode_i'] = 'How is defined your option price?';
$_['text_option_price_mode_rel'] = 'Option price is relative to product price (e.g. +10, -5)';
$_['text_option_price_mode_abs'] = 'Option price is final option price (e.g. 110, 95)';
$_['entry_option_quantity_mode'] = 'Option quantity mode';
$_['entry_option_quantity_mode_i'] = 'Do you want the product quantity to be summed with options quantity?';
$_['text_option_qty_mode_default'] = 'Do not sum options quantity to product quantity';
$_['text_option_qty_mode_sum'] = 'Sum options quantity to product quantity';
$_['entry_option_format'] = 'String format';
$_['entry_option_format_i'] = 'Choose specific format of a string containing options separated by colon, if separated by other character use extra function to set the corresponding separator';
$_['entry_include_option'] = 'Include specific options';
$_['entry_include_option_i'] = 'If the data you are collecting have more options than you would like to import then you can use this field to limit import of the option names you want, for example if you have options Size, Color and Weight and you would like to get only Size and Color then put Size|Color in this field, use tube | as separator.';
$_['entry_insert_method'] = 'Update mode';
$_['entry_insert_method_i'] = 'Choose if you want to preserve current values or replace them';
$_['entry_insert_method_'] = 'Replace - all values replaced';
$_['entry_insert_method_update'] = 'Update - current values are updated - add new ones';
$_['entry_insert_method_add'] = 'Add - add values even if they already exist';
$_['entry_insert_method_rm_add'] = 'Remove on first import and add for next ones';
$_['entry_product_name'] = 'Product name';
$_['entry_customer'] = 'Customer';
$_['entry_author'] = 'Author';
$_['entry_text'] = 'Text';
$_['entry_rating'] = 'Rating';
$_['entry_date_added'] = 'Date added';
$_['entry_date_modified'] = 'Date modified';
// extra functions
$_['xfn_group_string'] = 'Text operations';
$_['xfn_group_regex'] = 'Regex text operations';
$_['xfn_group_number'] = 'Number operations';
$_['xfn_group_html'] = 'HTML';
$_['xfn_group_product'] = 'Product';
$_['xfn_group_web'] = 'Remote content';
$_['xfn_group_other'] = 'Special functions';
$_['xfn_group_currency'] = 'Currency';
$_['xfn_manual_value'] = 'Manual value ->';
$_['xfn_append'] = '<i class="fa fa-fw"></i> Append';
$_['xfn_append_i'] = 'Append something after a field';
$_['xfn_prepend'] = '<i class="fa fa-fw"></i> Prepend';
$_['xfn_prepend_i'] = 'Prepend something before a field';
$_['xfn_combine'] = '<i class="fa fa-fw"></i> Combine';
$_['xfn_combine_i'] = 'Combine multiple field into one string, choose a separator that will be inserted between each field, empty fields will be ignored, if your field is an array then each value of the array will be combined too';
$_['xfn_uppercase'] = '<i class="fa fa-fw"></i> Uppercase';
$_['xfn_uppercase_i'] = 'Example: LUKE, I AM YOUR FATHER';
$_['xfn_lowercase'] = '<i class="fa fa-fw"></i> Lowercase';
$_['xfn_lowercase_i'] = 'Example: luke, i am your father';
$_['xfn_ucfirst'] = '<i class="fa fa-fw"></i> Uppercase on first letter';
$_['xfn_ucfirst_i'] = 'Example: Luke, I am your father';
$_['xfn_ucwords'] = '<i class="fa fa-fw"></i> Uppercase on first word letters';
$_['xfn_ucwords_i'] = 'Example: Luke, I Am Your Father';
$_['xfn_substr'] = '<i class="fa fa-fw"></i> Truncate string';
$_['xfn_substr_i'] = 'Get x first chars of a field';
$_['xfn_strlen'] = '<i class="fa fa-fw"></i> Count chars or array';
$_['xfn_strlen_i'] = 'Count number of characters in a string, or number of items in an array';
$_['xfn_urlify'] = '<i class="fa fa-fw"></i> Format for url';
$_['xfn_urlify_i'] = 'Format a string for use in seo keyword, apply lowercase and replace whitespaces by dashes, if translit is applied all accentuated chars will be transformed to their ascii equivalent';
$_['xfn_substr_set'] = 'Truncate chars number';
$_['xfn_substr_of'] = 'From';
$_['xfn_nl2br'] = '<i class="fa fa-fw"></i> Convert line breaks to HTML';
$_['xfn_nl2br_i'] = 'Line breaks will be converted to html format with a br tag';
$_['xfn_strip_tags'] = '<i class="fa fa-fw"></i> Strip HTML tags';
$_['xfn_strip_tags_i'] = 'Remove any HTML tag to get a clean text';
$_['xfn_html_encode'] = '<i class="fa fa-fw"></i> Encode HTML entities';
$_['xfn_html_encode_i'] = 'Convert special characters to HTML entities';
$_['xfn_urlencode'] = '<i class="fa fa-fw"></i> Encode URL';
$_['xfn_urldecode'] = '<i class="fa fa-fw"></i> Decode URL';
$_['xfn_html_decode'] = '<i class="fa fa-fw"></i> Decode HTML entities';
$_['xfn_html_decode_i'] = 'Convert all HTML entities to their applicable characters - can be useful if you have some html content not correctly imported';
$_['xfn_date_convert'] = '<i class="fa fa-fw"></i> Date converter';
$_['xfn_date_convert_i'] = 'Convert a date to specific format, choose the current format of your date field to get it correctly converted';
$_['xfn_field_replace_set'] = 'If';
$_['xfn_field_replace'] = '<i class="fa fa-fw"></i> Field replace';
$_['xfn_field_replace_i'] = 'Replace a field by another depending based on a condition of your choice';
$_['xfn_if_table'] = '<i class="fa fa-fw"></i> Conditional values';
$_['xfn_if_table_i'] = 'Set final values depending on your actual value, use an operator to compare to the field value, and choose the final value. Example: ~(wheels):Car means if current field contains the word wheels then set Car as the output.';
$_['xfn_replace'] = '<i class="fa fa-fw"></i> Replace text';
$_['xfn_tag'] = '<i class="fa fa-fw"></i> Insert special value';
$_['xfn_tag_i'] = 'Use an available tag to get it replaced by the value you want';
$_['text_xfn_tag_available'] = '[current_row] Current import row number<br/>
[unique_id] Generate unique random string<br/>';
$_['xfn_replace_set'] = 'Replace';
$_['xfn_regex_replace'] = '<i class="fa fa-fw"></i> Regex replace';
$_['xfn_regex_replace_i'] = 'Replace a part of a string using regex, for example if you want to change a field like brand:Sony|type:Laptop to put MyBrand instead of any other brand, following regex search: brand:(.+)| replace: brand:MyBrand|';
$_['xfn_regex'] = '<i class="fa fa-fw"></i> Regex extract';
$_['xfn_regex_i'] = 'Extract a part of a string using regex, use the () to define the part you want to extract, for example if you have a field like brand:Sony|type:Laptop, and you want to extract Sony for inserting in brands apply the following regex: brand:(.+)|';
$_['xfn_regex_remove'] = '<i class="fa fa-fw"></i> Regex remove';
$_['xfn_regex_remove_i'] = 'Remove text with regex, for example remove any special char from a string: [^0-9a-zA-Z]';
$_['xfn_remove'] = '<i class="fa fa-fw"></i> Remove text';
$_['xfn_remove_set'] = 'Remove';
$_['xfn_remote_content_set'] = 'Get content from url of field';
$_['xfn_remote_api'] = '<i class="fa fa-fw"></i> Get data from remote API';
$_['xfn_remote_content'] = '<i class="fa fa-fw"></i> Remote HTML content';
$_['xfn_remote_content_i'] = 'Get the content of the page contained in an url, can be useful if only a link is provided in feed to get description or other data.';
$_['xfn_add'] = '<i class="fa fa-fw"></i> Add';
$_['xfn_subtract'] = '<i class="fa fa-fw"></i> Subtract';
$_['xfn_multiply'] = '<i class="fa fa-fw"></i> Multiply';
$_['xfn_random'] = '<i class="fa fa-fw"></i> Random number';
$_['xfn_random_i'] = 'Generate a random number, set min and max values to get a number between this range, if you want decimal number put numbers with decimals in min and max';
$_['xfn_percentage'] = '<i class="fa fa-fw"></i> Percentage';
$_['xfn_percentage_i'] = 'Apply a percentage to a number, use negative number to deduce, for example 20 means add 20% and -20 means deduce 20%';
$_['xfn_percentage_set'] = 'Apply percentage';
$_['xfn_divide'] = '<i class="fa fa-fw"></i> Divide';
$_['xfn_round'] = '<i class="fa fa-fw"></i> Round';
$_['xfn_to_float'] = '<i class="fa fa-fw"></i> Convert number with comma';
$_['xfn_to_float_i'] = 'If you have a number with comma as decimal separator it may not be correctly inserted (decimal striped), apply this function in order to convert it to correct float value';
$_['placeholder_xfn_if_table'] = '~(search_value):final_value (one per line)';
$_['placeholder_xfn_wholesale'] = 'max_price:multiplier (one per line)';
$_['xfn_wholesale'] = '<i class="fa fa-fw"></i> Wholesale price calculator';
$_['xfn_wholesale_i'] = 'Multiply the current price by different factor depending on the value, for example if you want all price below 10 to be multiplied by 2 just write 10:2, then if you want all price below 50 to be multiplied by 1.5 add new row and write 50:1.5, you can use percentage and negative percentage too, 10% to add 10%, -20% to deduce 20%';
$_['xfn_skip_set'] = 'Skip current item if';
$_['xfn_skip_db_set'] = 'Skip current item if';
$_['xfn_option'] = '<i class="fa fa-fw"></i> Product option';
$_['xfn_option_set'] = 'Current row is product option if';
$_['xfn_skip'] = '<i class="fa fa-fw"></i> Skip on import value';
$_['xfn_skip_i'] = 'Skip current import item if value a value in your import file matches another value (import file value or manual value)';
$_['xfn_skip_db_i'] = 'Skip current import item if value a value of your store item matches another value (import file value or manual value)';
$_['xfn_skip_db'] = '<i class="fa fa-fw"></i> Skip on existing value';
$_['xfn_delete_item'] = '<i class="fa fa-fw"></i> Remove or disable item';
$_['xfn_multiple_separator'] = '<i class="fa fa-fw"></i> Multiple values separator';
$_['xfn_multiple_separator_i'] = 'You can use these tags: [\n] for line break and [\t] for tab';
$_['xfn_multiple_separator_set'] = 'Set multiple values separator as';
$_['xfn_oc_currency'] = '<i class="fa fa-fw"></i> Convert to OC currency';
$_['xfn_oc_currency_i'] = 'Convert to your default opencart currency using the rates stored in your opencart';
$_['xfn_currency_from'] = 'Convert from';
$_['xfn_for_column'] = 'For column';
$_['xfn_source_field'] = 'Source field';
$_['xfn_target_field'] = 'Target field';
$_['text_if_table_table'] = '<div style="cursor:text;font-size:12px">Conditional table<br/><span style="color:#888"><b>Is equal</b><br/>=(test):final_value<br/>!=(test):final_value<br/><b>Contains</b><br/>~(test):final_value<br/>!~(test):final_value<br/><b>Is greater</b><br/>>(test):final_value<br/><(test):final_value<br/>Use {current} for current value<br/>Use & for multiple</span></div>';
$_['text_wholesale_table'] = 'Wholesale table<div style="color:#888;font-size:11px"><b>Example:</b><br/>50:-4%<br/>100:*2<br/>500:20%<br/>1000:+30<br/><b>Means:</b><br/>0 to 50: deduce 4%<br/>50 to 100: multiply by 2<br/>100 to 500: add 20%<br/>500 to 1000: add 30</div>';
$_['text_round'] = 'Round';
$_['text_replace_by'] = 'Replace by';
$_['xfn_if'] = 'If';
$_['xfn_of'] = 'Of';
$_['xfn_to'] = 'To';
$_['xfn_by'] = 'By';
$_['xfn_in'] = 'In';
$_['xfn_for'] = 'For';
$_['xfn_from'] = 'From';
$_['xfn_after'] = 'After';
$_['xfn_before'] = 'Before';
$_['xfn_is_equal'] = 'is equal to';
$_['xfn_is_equal_list'] = 'is equal to (list separated by |)';
$_['xfn_is_not_equal'] = 'is not equal to';
$_['xfn_is_not_equal_list'] = 'is not equal to (list separated by |)';
$_['xfn_contain'] = 'contains';
$_['xfn_not_contain'] = 'do not contain';
$_['xfn_is_greater'] = 'is greater than';
$_['xfn_is_lower'] = 'is lower than';
$_['xfn_mode'] = 'Mode';
$_['xfn_precision'] = 'With a precision of';
$_['xfn_precision_'] = 'No round';
$_['xfn_precision_0'] = 'Integer (1)';
$_['xfn_precision_1'] = '1 decimal (1.2)';
$_['xfn_precision_2'] = '2 decimals (1.23)';
$_['xfn_precision_3'] = '3 decimals (1.234)';
$_['xfn_precision_4'] = '4 decimals (1.2345)';
$_['text_combine_fields'] = 'Combine fields';
$_['text_delete_if'] = 'Delete if';
$_['text_value_is'] = 'Is equal to';
$_['text_urlify_basic'] = 'Basic';
$_['text_urlify_default'] = 'Basic formatting';
$_['text_urlify_ascii'] = 'Translit to ascii';
$_['text_translit'] = 'Translit';
$_['info_extra_functions'] = 'With extra functions you can make some specific operations on your source data, like for example multiply a number, or put a string in uppercase, etc.<br/><br/>Usage:<ol><li>Select the function you want in the box below</li><li>Click on "Add function"</li><li>Select the source field on which to apply the function</li><li>Define other parameters if any</li><li>Select the target field in which you want to save the result</li></ol>You can apply multiple operation on a same field, they will be applied in the order they are defined.<br/><br/>If you want to save some data in extra fields don\'t forget to add your extra fields in step 2.';
$_['text_date_format_eu'] = 'EU: DD/MM/YYYY';
$_['text_date_format_us'] = 'US: MM/DD/YYYY';
$_['text_date_format_sql'] = 'SQL: YYYY-MM-DD';
$_['text_date_format_xls'] = 'Excel: date is integer';
$_['text_convert_from'] = 'Convert from';
$_['text_convert_to'] = 'Convert to';
$_['text_convert_to_i'] = 'Let empty to convert to sql date format which is convenient for opencart dates, to convert to other format see available formatting for date() function of PHP, for example d-m-Y';
$_['text_col_set_to_default'] = 'Set default value ->';
// option bindings
$_['text_optbinding_name'] = 'Type';
$_['text_optbinding_bind_to'] = 'Field';
$_['text_get_optbinding'] = 'Get advanced option fields';
// category bindings
$_['tab_cat_binding'] = 'Category Bindings';
$_['entry_cat_binding_mode'] = 'Binding mode';
$_['text_cat_binding_default'] = 'Mixed - insert bound categories and not bound ones with the field value';
$_['text_cat_binding_exclusive'] = 'Exclusive - insert bound categories only, category field value is ignored';
$_['text_cat_binding_exclusive_skip'] = 'Exclusive, skip empty - insert bound categories only, category field value is ignored, skip item if no category';
$_['text_cat_binding_skip'] = 'Skip unbound - insert bound categories only, items with at least one unbound category will be skipped';
$_['text_catbinding_name'] = 'Source category';
$_['text_catbinding_bind_to'] = 'Bind to';
$_['text_get_bindings'] = 'Refresh category list';
$_['text_no_bindings'] = 'No category binding defined, push the refresh button to see all categories in your actual import file.';
$_['text_no_binding'] = '- none -';
$_['info_cat_binding_title'] = 'Category Bindings';
$_['info_cat_binding'] = '<p>If in your source data you have category names that are not corresponding to yours you can use this feature to define a binding for each category in your source file.<br/><br/>Usage:<ul><li>If not done yet select your category field in "Links" tab</li><li>Click on "Refresh category list" to get the list of all categories existing in your source file</li><li>Select to which opencart category you want to transfer each source category</li></ul>It is not mandatory to set all categories, just delete the ones that do not require binding, for these ones default behaviour will be applied (check if category exists and try to create it if not).<br/>If you want to have your categories to be inserted only based on bound values select the exclisve binding mode.</p><h4>Binding modes example</h4><p>
<b>Example categories:</b><br/>
- In your opencart : COMPUTERS, ACCESSORIES<br/>
- In your import file: PC, MAC, PARTS<br/><br/>
<b>Configuration:</b><br/>
PC and MAC are binded to your OC category COMPUTERS<br/>
PARTS is not binded to any of your OC categories<br/><br/>
<b>Result:</b>
<ul>
<li><b>Mixed</b>: Products from PC and MAC go to COMPUTERS category, PARTS category is created because it is not binded</li>
<li><b>Exclusive</b>: Products from PC and MAC go to COMPUTERS category, products with PARTS will be created but won\'t have any category assigned</li>
<li><b>Exclusive, skip empty</b>: Products from PC and MAC go to COMPUTERS category, products with PARTS won\'t be created</li>
<li><b>Skip unbound</b>: Products from PC and MAC go to COMPUTERS category, if a product has 2 categories defined like PARTS and PC then the item won\'t be created because one of its categories is not bounded (PARTS)</li>
</ul></p>';
$_['info_col_binding_skip'] = 'Item skipped because no category binding as been found for some category';
$_['info_col_binding_skip_empty'] = 'Item skipped because no category as been binded to this product';
// Step 4
$_['text_simu_summary'] = 'Simulation summary (10 rows):';
$_['text_full_simu_summary'] = 'Full simulation report:';
$_['text_item_to_update'] = 'Item to update';
$_['entry_row_status'] = 'Action';
$_['text_simu_inserted'] = 'Insert';
$_['text_simu_updated'] = 'Update';
$_['text_simu_disabled'] = 'Disable';
$_['text_simu_qtyzero'] = 'Set qty to zero';
$_['text_simu_deleted'] = 'Delete';
$_['text_simu_skipped'] = 'Skip';
$_['text_simu_error'] = 'Error';
$_['text_nav_start'] = 'Start of file';
$_['text_nav_prev'] = 'Previous 10 rows';
$_['text_nav_next'] = 'Next 10 rows';
$_['text_nav_end'] = 'End of file';
$_['text_nav_custom'] = 'Set start row and press enter';
// Step 5
$_['text_import_label'] = 'Import label';
$_['text_import_label_i'] = 'Give a name to this import session, then in product list you will be able to filter the products that have been imported this time. Leave empty to not change the import label if exists.';
$_['text_process_summary'] = 'Process summary';
$_['text_rows_csv'] = 'Total rows in file';
$_['text_rows_process'] = 'Total rows to process';
$_['text_rows_insert'] = 'Total rows to insert';
$_['text_rows_update'] = 'Total rows to update';
$_['text_process_done'] = 'Process status';
$_['text_rows_processed'] = 'Processed';
$_['text_rows_inserted'] = 'Inserted';
$_['text_rows_updated'] = 'Updated';
$_['text_rows_disabled'] = 'Disabled';
$_['text_rows_qtyzero'] = 'Set qty to zero';
$_['text_rows_deleted'] = 'Deleted';
$_['text_rows_skipped'] = 'Skipped';
$_['text_rows_error'] = 'Error';
$_['text_empty_line_skip'] = 'Empty row';
$_['entry_color_scheme'] = 'Color scheme:<span class="help">Quick access to some color schemes, edit them in design tab</span>';
$_['entry_logo'] = 'Logo:';
$_['entry_feed_title'] = 'Name:';
$_['entry_cache_delay'] = 'Cache Delay:<span class="help">How many time to display generated file until re-generation ?</span>';
$_['entry_language'] = 'Language:<span class="help"></span>';
$_['entry_feed_url'] = 'Data Feed Url:<span class="help">Give this url to the destination service</span>';
$_['entry_additional_image'] = 'Additionnal images';
$_['text_no_change'] = '- No change -';
$_['text_on'] = 'On';
$_['text_off'] = 'Off';
// File format
$_['text_format_csv'] = 'CSV';
$_['text_format_xml'] = 'XML';
$_['text_format_xls'] = 'XLS';
$_['text_format_xlsx'] = 'XLSX';
$_['text_format_sql'] = 'SQL';
$_['text_format_odt'] = 'ODT';
$_['text_format_ods'] = 'ODS';
$_['text_format_json'] = 'JSON';
$_['text_format_pdf'] = 'PDF';
$_['text_format_html'] = 'HTML';
$_['text_format_txt'] = 'TXT';
$_['text_format_tsv'] = 'TSV';
// Export
$_['text_tab_1'] = 'Export';
$_['entry_export_type'] = 'Export type';
$_['entry_backup_tables'] = 'Database tables to export';
$_['entry_truncate'] = 'Clear table before insert';
$_['entry_truncate_i'] = 'This will add a truncate instrunction to clear any data in your table before inserting new items, if disabled the data will be added to existing one';
$_['entry_sql_prefix'] = 'Change table prefix';
$_['entry_sql_prefix_i'] = 'If the target database have other prefix then you can change it here, or set empty if not using prefix';
$_['entry_export_type_i'] = 'What kind of data do you want to export ?';
$_['entry_export_format'] = 'Export format';
$_['entry_export_format_i'] = 'Choose the output file format';
$_['text_start_export'] = 'Generate export file';
$_['export_all'] = '- All -';
$_['export_all_filters'] = 'All filters';
$_['export_product_filters'] = 'Product filters';
$_['export_all_attributes'] = 'All attributes';
$_['export_product_attributes'] = 'Product attributes';
$_['text_csv_settings'] = 'CSV settings';
$_['mode'] = 'Mode';
$_['entry_export_condition'] = 'Condition';
$_['entry_export_condition_i'] = 'Only export the data that will match the following conditions, the first field is the name of the field as it is in database, if a table does not contains such field then it will be ignored';
// Export filters
$_['export_filters'] = 'Filters';
$_['total_export_items'] = 'Total items to export:';
$_['filter_name'] = 'Name';
$_['filter_model'] = 'Model';
$_['filter_model_i'] = 'Set various using | tube sign';
$_['filter_tag'] = 'Tag';
$_['filter_tag_i'] = 'This is working only when selecting a language to export';
$_['filter_language'] = 'Language';
$_['filter_manufacturer'] = 'Manufacturer';
$_['filter_manufacturer_i'] = 'You can select multiple manufacturers, start to type text to find quickly your manufacturer';
$_['filter_label'] = 'Import label';
$_['filter_category'] = 'Category';
$_['filter_category_i'] = 'You can select multiple categories, start to type text to find quickly your category, the sub-categories are automatically included';
$_['filter_interval'] = 'Time interval';
$_['filter_interval_i'] = 'Export only items which date is within time interval from now, click on the icon below to see more information about available formats';
$_['filter_store'] = 'Store';
$_['filter_status'] = 'Status';
$_['filter_price'] = 'Price';
$_['filter_quantity'] = 'Quantity';
$_['filter_quantity_i'] = 'Minimal quantity to export the product';
$_['filter_limit'] = 'Limit';
$_['filter_limit_i'] = 'Limit the number of items to export Start: begin export from this item - Limit: how many items to export';
$_['filter_order_id'] = 'Order ID';
$_['filter_order_status'] = 'Order status';
$_['filter_order_status_i'] = 'If none selected it will export all order statuses except missing orders';
$_['filter_customer'] = 'Customer';
$_['filter_customer_group'] = 'Customer group';
$_['filter_date_added'] = 'Date added';
$_['filter_date_modified'] = 'Date modified';
$_['filter_total'] = 'Total';
$_['filter_limit_start'] = 'Start';
$_['filter_limit_limit'] = 'Limit';
$_['filter_start'] = 'Start';
$_['filter_end'] = 'End';
$_['filter_min'] = 'Min';
$_['filter_max'] = 'Max';
$_['text_missing_orders'] = 'Missing orders';
// Export options
$_['export_options'] = 'Options';
$_['export_fields'] = 'Export fields';
$_['export_fields_i'] = 'Choose which fields you want to have in your export file';
$_['param_price_multiplier'] = 'Price multiplier';
$_['param_price_multiplier_i'] = 'Change the price displayed on export file, for example set 1.12 to add 12% to original price';
$_['param_date_format'] = 'Date format';
$_['param_date_format_i'] = 'Export your date in a specific format of your choice, check php date function to see all available formats';
$_['param_image_inline'] = 'Image display';
$_['param_image_inline_i'] = 'How do you want the image fields to be displayed in the output file?';
$_['param_image_path'] = 'Image path mode';
$_['param_image_path_i'] = 'Use full url to get the complete url to your image - Opencart relative path is to use only if you will use this export on same website';
$_['image_path_relative'] = 'Opencart relative path';
$_['image_path_absolute'] = 'Full url';
$_['param_option_row'] = 'Item rows';
$_['param_option_row_i'] = 'If you choose per product then you can use the export field product_option, if using per option mode then use each option_x fields';
$_['text_option_row_default'] = 'Per product - each product generate one row';
$_['text_option_row_option'] = 'Per option - each option generate one row';
$_['text_image_inline'] = 'All in one field';
$_['text_image_inline_cols'] = 'Each one in separate field (image_1, image_2, ...)';
// Configuration
$_['text_tab_2'] = 'Options';
$_['tab_option_1'] = 'Performance';
$_['tab_option_2'] = 'Cron jobs';
$_['tab_option_3'] = 'Main options';
$_['entry_default_import_label'] = 'Default import label';
$_['default_label_i'] = 'Set here the default label for your import session, this will help you to easily filter products imported in a specific session in product list.<br/><br/>You can use these tags : <code>[profile] [day] [month] [year]</code>';
$_['entry_batch_import'] = 'Import batch number';
$_['entry_batch_export'] = 'Export batch number';
$_['entry_sleep'] = 'Process delay';
$_['batch_import_i'] = '<h4>Batch Number</h4><p>Choose the number of items processed on each request, adjust this setting to improve import/export performance.<br/>High number may speed up the process time but too large number may result in failure depending your server ressources.</p><p>This <b>is not</b> the max number of item you can import, it is just the number of items processed in one request, but the module keep sending requests until all your feed has been processed. Do not set here values higher than 1000, recommended is 50 to 300 (default is 200).</p><p><b>Login page appears during import</b><br/>If you have the login page appearing during import it my be caused by too high import batch number, try to set a lower number to make sure to avoid this issue.</p><h4 style="margin-top:20px">Process delay</h4><p>Importing and exporting are using very high amount of ressources from server, on shared host or low-profile server it may use almost all ressources and then your website can be unaccessible during the process.<br/>The delay parameter allows you to wait a few time before each item processing, this time will free up some ressource to let the server breath a while and process other requests.<br/>The number is in milliseconds, which means 1000 ms = 1 second, recommended setting is from 5 to 50 (default is 0).<br/>Keep in mind a big value on this setting will increase a lot the import process time.</p>';
// Car Shop
$_['entry_carshop_method_'] = 'Update by direct data';
$_['entry_carshop_method_by_id'] = 'Update by importing data from the the parts list table';
$_['entry_carshop_type'] = 'Type';
$_['entry_carshop_year_start'] = 'Year start';
$_['entry_carshop_year_end'] = 'Year end';
$_['entry_carshop_make'] = 'Make';
$_['entry_carshop_model'] = 'Model';
$_['entry_carshop_engine'] = 'Engine';
$_['import_carshop'] = 'Car Parts import';
$_['text_type_carshop'] = 'Car Parts';
$_['text_type_car_shop'] = 'Car Parts';
$_['import_all_car_shop'] = 'Import into parts list (optionnal)';
$_['import_product_car_shop'] = 'Import into products';
$_['text_import_carshop_product'] = 'Import car parts into your products';
$_['text_import_carshop_list'] = 'Import car parts into the car parts list, you can then use this list as source for importing car part data into your products just by selecting the Car Part List ID.<br/>Use this only in case you have import file without all the data inside, if you already have all the part data choose in step 2 > Existing item identifier a product identifier to directly import car part data into your products.';
$_['entry_carshop_list_id'] = 'Car Part List ID';
// Cron
$_['text_tab_cron_config'] = 'Configuration';
$_['text_tab_cron_import'] = 'Import';
$_['text_tab_cron_export'] = 'Export';
$_['text_tab_cron_report'] = 'Report';
$_['text_cli_log_save'] = 'Save log file';
$_['text_cli_clear_logs'] = 'Clear logs';
$_['entry_cron_key'] = 'Secure key';
$_['entry_cron_key_i'] = 'Define your own secure key, this must be included in the cron command';
$_['entry_report_email'] = 'Import report email';
$_['entry_report_email_i'] = 'Send a summary of import process to administrator email, if you want to change target email set in cron command the email= parameter';
$_['entry_cron_command'] = 'Cron command';
$_['text_cron_label'] = 'Set an import label (will use profile label or default label if not defined):';
$_['text_cron_export_filename'] = 'Export filename (if not set it will as export type and date):';
$_['text_cron_export_email'] = 'Send export file to an email (this will work only for files not too big):';
$_['text_cron_import_email'] = 'Send import summary to an email (override admin email if report email is enabled):';
$_['entry_cron_params'] = 'Extra parameters';
$_['entry_cron_command_i'] = 'This is the command you will have to enter in your cron jobs (if the path to php is not correctly detected ask to your server administrator what is the path to php, generally it is /usr/bin/php, /usr/local/bin/php, /usr/local/cpanel/3rdparty/bin/php, ...)';
$_['entry_cron_params_i'] = 'These parameters are optional, you can add a parameter after the main command, add space between each parameter';
$_['cron_jobs_i'] = 'You can automatically run your predefined profiles by using cron jobs.<br/><br/>All you have to do is to define a profile by adjusting all the settings in first tab, then save it in step 4. Put the exact name of your profile at the end of the command.<br/>A report will be generated so you can consult here if all gone well.<br/><br/>Please note the cron jobs do work only with files from URL, FTP or Local path, not with uploaded files which are for instant use.<br/><br/><b>Set up your cron jobs:</b><ol><li>Go into import tab and choose the file to work with you must use a file in URL, FTP, or Local path</li><li>Set up your feed with the parameters you need, go until step 4</li><li>In step 4 save your profile</li><li>Go into your cPanel or server administration to set up a cron job</li><li>Copy the command you need below (don\'t forget to change the profile name to yours)</li><li>That\'s done, your cron will run based on your parameters and you can check if all is going well into the report tab.</li></ol><p><b>How to set up cron in your server admin:</b></p><ul><li>cPanel: <a target="_blank" href="https://blog.cpanel.com/how-to-configure-a-cron-job/">Documentation</a> - <a target="_blank" href="https://www.youtube.com/watch?v=YwpUjz1tMbA">Video tutorial</a></li><li>Plesk: <a target="_blank" href="https://support.plesk.com/hc/en-us/articles/115003121073-How-to-add-a-scheduled-task-in-Plesk-UI-using-crontab-syntax-">Documentation</a> - <a target="_blank" href="https://www.youtube.com/watch?v=ur1_ua9TMXs">Video tutorial</a></li></ul>';
$_['text_process_time'] = 'Total process time:';
$_['text_hours'] = 'hours';
$_['text_minutes'] = 'minutes';
$_['text_secondes'] = 'seconds';
$_['entry_cron_log'] = 'Report type';
$_['entry_cron_log_i'] = 'Choose how do you want the report.';
$_['text_log_all'] = 'Full - Log all data about imported items';
$_['text_log_error'] = 'Error - Insert a log only when there is an error';
$_['text_log_off'] = 'Disabled - Do not log anything';
$_['text_cron_command_format'] = 'Some servers does not like the double quotes " in cron command, if the command is not working try to replace by single quotes \'';
$_['text_tab_about'] = 'About';
// Warnings
$_['warning'] = 'Warning';
$_['warning_category_id'] = 'Category ID not found.';
$_['warning_discount_format'] = 'Incorrect discount format, format must be: <b><customer_group_id>:<quantity>:<priority>:<price>:<date_start>:<date_end></b>, this discount won\'t be added to the product';
$_['warning_discount_not_numeric'] = 'Incorrect discount format, the price is not numerical, this discount won\'t be added to the product';
$_['warning_remote_image_not_found'] = 'Remote image not found: ';
$_['warning_store_not_found'] = 'Store not found: <b>%s</b>, make sure that store name exists';
$_['warning_layout_not_found'] = 'Layout not found: <b>%s</b>, make sure that layout type exists';
// Entry
$_['entry_status'] = 'Status:';
// Message
$_['text_skip_insert'] = 'New item action is set to skip new items';
$_['text_skip_update'] = 'Existing item action is set to skip existing items';
$_['text_skip_quick_update'] = 'The identifier has not been found in your database';
$_['text_skip_delete'] = 'Item to delete does not exists';
$_['text_insert_option'] = 'Add option';
$_['text_skip_option_not_found'] = 'Skipped because option has not been found';
$_['text_skip_product_not_found'] = 'Skipped because corresponding product not found';
$_['text_skip_option_no_product'] = 'Option row skipped because corresponding product not found';
$_['text_skip_option_no_option'] = 'Option row skipped because no option found';
// Info
$_['info_title_default'] = 'Help';
$_['info_msg_default'] = 'Help section for this topic not found';
$_['info_soft_update_mode'] = 'Update preserve mode: only the displayed fields will be updated.';
$_['current_server_path'] = 'This is the path to your opencart root directory: ';
$_['text_filter_group'] = 'Filter group';
$_['text_filter_name'] = 'Filter name';
$_['info_filter_title'] = 'Advanced filter import';
$_['info_filter_xml'] = '
<p>For example you have an array like:<br/>
<code style="white-space:pre">'.print_r(array('0'=> array('groupEn' => 'Filter group', 'nameEn' => 'Filter name')), true).'</code></p>
<p>In such case define main filter to match the field containing the array of values, and in specific parameters below set Filter group to <b>groupEn</b> and Filter name to <b>nameEn</b>.</p>';
$_['entry_attr_mode'] = 'Detect mode';
$_['entry_attr_mode_i'] = 'Choose how to detect the attributes in case you have multiple colons.';
$_['text_attr_mode_default'] = 'Default';
$_['text_attr_mode_1'] = '2 values - if a:b:c detect name a, value b:c';
$_['text_attr_mode_2'] = '3 values - if a:b:c:d detect group a, name b, value c:d';
$_['text_download_value'] = 'Download value';
$_['text_attribute'] = 'Attribute';
$_['text_attribute_group'] = 'Attribute group';
$_['text_attribute_name'] = 'Attribute name';
$_['text_attribute_value'] = 'Attribute value';
$_['info_attributes_title'] = 'Attribute import';
$_['info_downloads_xml_title'] = 'Advanced parameters for array of values';
$_['info_downloads_xml'] = '
<h4>Case 1</h4>
<p>For example you have an array like:<br/>
<code style="white-space:pre">'.print_r(array('0'=> array('name' => 'some-file.pdf', 'value' => array('url' => 'http://remote/some-file.pdf'))), true).'</code></p>
<p>In such case define main Downlads to match the field containing the array of values, and in specific parameters below set Download value to <b>value/url</b>.</p>
';
$_['info_attributes_xml_title'] = 'Advanced parameters for array of values';
$_['info_attributes'] = '
<p>Can be formatted in various ways:
<ul><li>attribute_group_name:attribute_name:value</li>
<li>attribute_name:value</li>
<li>value (header is used as attribute name)</li>
<li><ul><li>group name: value</li></ul></li>
<li><table><tr><td>group name</td><td>value</td></tr></table></li></ul></p>
<p>The group and attribute are created automatically if they doesn\'t exists. If attribute not exist and group not defined it is automatically assigned to group "Default".</p>';
$_['info_attributes_xml'] = '
<h4>Case 1</h4>
<p>For example you have an array like:<br/>
<code style="white-space:pre">'.print_r(array('0'=> array('name' => 'Attribute name', 'value' => array('val' => 'Attribute value'))), true).'</code></p>
<p>In such case define main attribute to match the field containing the array of values, and in specific parameters below set Attribute name to <b>name</b> and Attribute value to <b>value/val</b>.</p>
<h4>Case 2</h4>
<p>XML formatted like:<br/>
<code style="white-space:pre"><attributes attribute_name_1="attribute_value_1" attribute_name_2="attribute_value_2"></attribute></code></p>
<p>Set Attribute to <b>attributes</b> and put the keyword [attributes] into <b>Attribute name</b></p>
<h4>Case 3</h4>
<p>XML formatted like:<br/>
<code style="white-space:pre"> <param name="Attribute name 1">Attribute value 1</param>
<param name="Attribute name 2">Attribute value 2</param>
</code></p>
<ul>
<li>Set Attribute to <b>param</b></li>
<li>Set Attribute name to <b>param@name</b></li>
<li>Set Attribute value to <b>[current]</b> (this get the current value set in main Attribute)</li>
</ul>
';
$_['info_options_title'] = 'Option import';
$_['info_special_title'] = 'Special price import';
$_['info_discount_title'] = 'Discount price import';
$_['info_special_advanced_title'] = 'Advanced special price import';
$_['info_options_advanced_title'] = 'Advanced parameters for option import';
$_['info_discount_advanced_title'] = 'Advanced parameters for discount import';
$_['info_options_xml_title'] = 'Advanced parameters for array of values (XML import)';
$_['info_options'] = '
<p>Can be formatted in various ways:
<ul>
<li>value (name is the name of header or node, type is automatically set to select if the option not exists)</li>
<li>name : value (type is automatically set to select if the option not exists)</li>
<li>type : name : value</li>
<li>type : name : value : price</li>
<li>type : name : value : price : qty</li>
<li>type : name : value : price : qty : subtract</li>
<li>type : name : value : price : qty : subtract : weight</li>
<li>type : name : value : price : qty : subtract : weight : required</li></ul></p>
<p><b>Specific format</b><br/>If your option is not formatted in one of the previous formats you can use the option "Option string format" to choose the order of your options, for example if you have like this value:quantity then select in string format value and quantity.<br/>If your values are separated by other character than colon then you can use the extra function "multiple values separator" to set good separator.<br/><br/>You can also set some default values in advanced option fields in case you don\'t have all values available.</p>
<p>The options and options values are created automatically if they doesn\'t exist.</p>
';
$_['info_options_advanced'] = '
<p><b>Separate fields for options</b><br/>If your options are located in separate fields, leave the main option field empty and click on "Get advanced option fields" to be able set them separatly.</p>
<p><b>Your import file have the options set as a new row</b><br/>Then configure the advanced option fields as described here, and go to "Extra Functions" tab to add the function "Product option" to specify how to identify an option row.';
$_['info_options_xml'] = '
<p>For example you have an array like:<br/>
<code style="white-space:pre">'.print_r(array('0'=> array('name' => 'Option name', 'value' => array('val' => 'Option value'))), true).'</code></p>
<p>In such case define main option to match the field containing the array of values, and in specific parameters below set Option name to <b>name</b> and Option value to <b>value/val</b>.<br/>
If you have multiple value fields and the values can be in one or the other field then you can define to check in both fields using the | to separate them, like this: field1|field2</p>
<p><b>SKU and UPC fields</b><br/>These fields will work only if you have a custom extension installed to handle them. Depending the extension this setting may work only in "Update replace" mode, and not in "Update preserve".</p>';
$_['info_special'] = '
<p>Can be formatted in various ways:
<ul>
<li>price</li>
<li>customer_group_id : price</li>
<li>customer_group_id : priority : price</li>
<li>customer_group_id : priority : price : date_end</li>
<li>customer_group_id : priority : price : date_start : date_end</li>
</ul></p>
<p>Default end date is unlimited.</p>';
$_['info_discount'] = '
<p>Can be formatted in various ways:
<ul>
<li>price</li>
<li>price : date_end</li>
<li>price : date_start : date_end</li>
<li>qty : price : date_start : date_end</li>
<li>customer_group_id : qty : price : date_start : date_end</li>
<li>customer_group_id : priority : qty : price : date_start : date_end</li>
</ul></p>
<p>Default end date is unlimited.</p>';
$_['info_discount_advanced'] = '
<p><b>Separate fields for discount</b><br/>If your options are located in separate fields, leave the main option field empty and click on fill the fields below to set each one separatly.</p>';
$_['info_special_advanced'] = '
<h5>Work with separated fields</h5>
<p>If your options are located in separate fields, leave the main option field empty and click on fill the fields below to set each one separatly.</p>
<h5>Set up default dates</h5>
If the start/end dates are not specified in your file you can set some default dates here. You can set various entries to get some specific result, refer to table below for some examples.</p>
<p><b>Date format examples</b></p>
<table class="table">
<tr><td><b>12/10/2020</b></td><td>specific date in US format (10 December 2020)</td></tr>
<tr><td><b>10-12-2020</b></td><td>specific date in EU format (10 December 2020)</td></tr>
<tr><td><b>2020-12-10</b></td><td>specific date in SQL format (10 December 2020)</td></tr>
<tr><td><b>10 December 2020</b></td><td>specific date in text format</td></tr>
<tr><td><b>+3 days</b></td><td>3 days from current date</td></tr>
<tr><td><b>+1 month</b></td><td>1 month from current date</td></tr>
<tr><td><b>next week</b></td><td>next week from current date</td></tr>
<tr><td><b>next sunday</b></td><td>next sunday from current date</td></tr>
<tr><td><b>first day of next month</b></td><td>first day of next month</td></tr>
</table>';
// info
$_['info_help'] = 'Contextual help: click on section to get more information';
$_['info_data_source_title'] = 'Data source';
$_['info_data_source'] = '<h4>Data source</h4>
<p>In this step you select the type of data you want to import and your source of data, there is various ways to get your data.</p>
<table class="table">
<tr><td style="border:0"><b>File Upload</b></td><td style="border:0">Use this to upload a file you have on your computer, just drag and drop your file into the dropzone or click on it to select a file to upload.</td></tr>
<tr><td><b>URL</b></td><td>If the file is on remote server accessible by url then use this mode, this works also for dropbox, google drive and most of the cloud storage services.</td></tr>
<tr><td><b>API</b></td><td>Connect to APIs, please refer to dedicated help section for usage.</td></tr>
<tr><td><b>FTP</b></td><td>Get a file over an FTP or SFTP, put in "connexion" the composed ftp url with protocol (ftp:// or sftp://), user and password separated by a colon, and @ server url. In file path parameter set the exact path to your file.</td></tr>
<tr><td><b>Local Path</b></td><td>If the file is available on your own server you can use this mode, prefer this mode in such case over ftp or url because so the module will directly use the file instead of downloading it.</td></tr>
</table>
<h4>Compression and Extension</h4>
<p>The module will try to auto-detect the file compression and extension, in case it fails to do so you can force these parameters, just select the corresponding one in the list.</p>
';
$_['info_profiles_title'] = 'How to use profiles?';
$_['info_profiles'] = '<h4>How to use profiles?</h4>
<p>Profiles are allowing you to save an import configuration so you don\'t need to set up everything each time you want to important, it also allows you to set up a cron job to automatically run your import profile periodically.</p>
<h5>Create a profile</h5>
<ul>
<li>Load your file and set all necessary settings</li>
<li>Go until step 4 to control if all is ok</li>
<li>In step 4 click on <span class="gkd-badge"><i class="fa fa-save"></i> Save profile</span> button</li>
<li>Give a name for your profile and save it</li>
</ul>
<h5>Load a profile</h5>
<p>Once you have saved a profile you will be able to load it in step 1, to do so just select it, you will see that your file source settings will automatically be updated with what you saved into your profile, then just continue through next steps.</p>
<p>If you have selected file upload mode then you will have to re-upload your file, all other import modes will get the file automatically.</p>
<h5>Edit a profile</h5>
<ul>
<li>To edit a profile just load your profile normally</li>
<li>Change any desired setting in steps 1 to 3</li>
<li>In step 4 click on <span class="gkd-badge"><i class="fa fa-save"></i> Save profile</span> button to update your current profile</li>
</ul>
<h5>Create a new profile based on settings from other profile</h5>
<ul>
<li>Load the source profile in step 1</li>
<li>Change any desired setting in steps 1 to 3</li>
<li>In step 4 click on <span class="gkd-badge"><i class="fa fa-save"></i> Save profile</span> button</li>
<li>Change the name of the profile to save into a new profile</li>
</ul>
<h5>Delete a profile</h5>
<ul>
<li>Select the profile in step 1</li>
<li>Click on <span class="gkd-badge"><i class="fa fa-minus-circle"></i></span> button to delete it</li>
</ul>
<h5>Backup your profiles</h5>
<ul>
<li>To backup your profile you just need to save folder /admin/view/universal_import/profiles/ on the FTP</li>
<li>You can restore them in same folder</li>
</ul>
';
$_['info_api_title'] = 'Import by API';
$_['info_api'] = '<h4>Import by API</h4>
<p>API import is powerful, but also a bit complex to set up, also du to complexity of some APIs it may require some adaptations of the module in order to make the module to work with them, if you have a complex API that you don\'t manage to handle you can contact us, we can make the configuration as custom work.</p>
<h5>Login or API key</h5>
<p>Set in this field the data you need to connect on your API, please refer to table below for different possibilities:</p>
<table class="table">
<tr><td style="border:0"><b>user:password</b></td><td style="border:0">Basic login</td></tr>
<tr><td><b>POST|user:user|pass:pass</b></td><td>Login in POST mode with parameters user and pass</td></tr>
<tr><td><b>GET|user:user|pass:pass</b></td><td>Login in GET mode with parameters user and pass</td></tr>
<tr><td><b>HEAD|key</b></td><td>Set API key into request headers</td></tr>
</table>
<h5>Authentication URL (Optional)</h5>
<p>If your API is requiring to connect to an authentication url before accessing the specific url to get some data then use this field to set up the authentication URL, the login data to connect to this url is what is set in <i>Login or API key</i> field</p>
<h5>API</h5>
<p>Set here the url that is getting the import data. Note that when using APIs it is generally necessary to set the specific file format instead of using auto-detect mode, the format in APIs is generally XML or JSON.</p>
<h5>Example</h5>
<table class="table">
<tr><td style="border:0"><b>Login or API key:</b></td><td style="border:0">POST|user:test|pass:123456</td></tr>
<tr><td><b>Authentication URL: </b></td><td>https://api/v1/login</td></tr>
<tr><td><b>API:</b></td><td>https://api/v1/product&format=xml</td></tr>
</table>
';
$_['info_identifier_title'] = 'Identify your data';
$_['info_identifier'] = '<h4>Identify your items</h4>
<p>When importing data it is important to be able to correctly identify any existing item so the module can know if it must insert a new item or just update an existing one, the module will do that based on the settings in this section.</p>
<h5>Existing item identifier</h5>
<p>Set in this setting which field you want to use to identify your item, you must have an unique identifier, generally it is fine with model, but in some import data this field is maybe not available, so if you have an SKU or EAN then you can use this one accordingly with your actual import data.</p>
<h5>New item action</h5>
<p>If the identifier does not match with an actual item in your opencart then the module will execute the action of this setting</p>
<table class="table">
<tr><td style="border:0"><b>Insert</b></td><td style="border:0">Item does not exists so create a new item</td></tr>
<tr><td><b>Skip</b></td><td>Item does not exists but do not create a new item, can be useful if you want to only update items</td></tr>
</table>
<h5>Existing item action</h5>
<p>If the identifier matches with an actual item in your opencart then the module will execute the action of this setting</p>
<table class="table">
<tr><td style="border:0"><b>Update - preserve</b></td><td style="border:0">Item exists, update it with selected field in step 3, fields left blank will remain unchanged</td></tr>
<tr><td><b>Update - replace</b></td><td>Item exists, update it by replacing all item data, the item will be completly reset so all blank field will be wiped out<br/>Note that this option is using default opencart update method, so if you have any custom module adding operations on item update they will still be working in this mode</td></tr>
<tr><td><b>Skip</b></td><td>Item exists but do not update it, can be useful if you want to only create new items</td></tr>
<tr><td><b>Add option</b></td><td>For product option import, just add an option to the item, do not change anything else</td></tr>
<tr><td><b>Update first then add option</b></td><td>Same as previous except the first one found will update the item, and next rows will add an option</td></tr>
</table>
';
$_['info_csv_settings_title'] = 'CSV settings';
$_['info_csv_settings'] = '<h4>CSV settings</h4>
<p>Specific parameters for CSV import.</p>
<h5>CSV field separator</h5>
<p>Choose which is the field delimiter character in your CSV file, if you don\'t set it correctly you will see in step3 all the data is in one column, in this case just come back set the correct separator.</p>
<h5>CSV field enclosure</h5>
<p>Choose the enclosure character of your CSV file, it is what encloses the text of each cell.</p>
<h5>Character encoding</h5>
<p>If your data is not displayed correctly try to set the good character encoding here, if you don\'t know what it is try first with Auto-detect or common encodings.</p>
<h5>First row is header</h5>
<p>If the first row of your CSV file is containing column names then set it to yes.</p>
<h5>Multiple value separator</h5>
<p>If you have some fields that can contain multiple values then you can set what is the separator character here, this will be the default one for the file but if you have different separators then you can also set a specific one for a field in Step 3 > Extra functions</p>
';
$_['info_xls_settings_title'] = 'Excel settings';
$_['info_xls_settings'] = '<h4>Excel settings</h4>
<p>Specific parameters for Excel import.</p>
<h5>Work sheet</h5>
<p>In case you have data in multiple excel work sheet you can use this parameter to choose in which one you want to get your data, the first sheet is selected by default.</p>
<h5>First row is header</h5>
<p>If the first row of your file is containing column names then set it to yes.</p>
<h5>Multiple value separator</h5>
<p>If you have some fields that can contain multiple values then you can set what is the separator character here, this will be the default one for the file but if you have different separators then you can also set a specific one for a field in Step 3 > Extra functions</p>
';
$_['info_xml_settings_title'] = 'XML settings';
$_['info_xml_settings'] = '<h4>XML settings</h4>
<h5>Character encoding</h5>
<p>If your data is not displayed correctly try to set the good character encoding here, if you don\'t know what it is try first with Auto-detect or common encodings.</p>
<h5>XML item node</h5>
<p>There you must set the name of the XML node that is containing your data, for example if you have data like this:</p>
<p><pre style="white-space:pre"><products>
<<b>product</b>>
<name>Azerty Keyboard</name>
<price>39</price>
[...]
</<b>product</b>>
</products>
</pre></p>
<p>Then the item node is <b>product</b>.</p>
<p>The module will try to auto-detect it so it is generally fine directly, but in case it does not work check in your file to set the correct node name.</p>
';
// Error
$_['warning_incorrect_image_format'] = 'Image format is not correct:';
$_['error_curl'] = 'There was an error when trying to download the file, can be because of file not exists or forbidden access to server.<br/>Detail: <b>%s</b><br/>URL: <b>%s</b>';
$_['error_curl_api'] = 'There was an error when trying to connect to API, can be because of wrong url or forbidden access to server, make sure to use correct url and login.<br/>Detail: <b>%s</b><br/>URL: <b>%s</b>';
$_['error_extension'] = 'The file type has not been found or is not compatible for import: <b>%s</b>, allowed import types: csv, xml, xls, xlsx, json, txt, tsv, odt. Try to force file extension.';
$_['error_zip_file_not_found'] = 'The file in zip archive has not been found, make sure the archive name is the exact filename + .zip extension, for example my_feed.csv.zip with inside fila named my_feed.csv<br/>Current expected filename: <b>%s</b>';
$_['error_file_not_found'] = 'Warning: The file cannot be opened, please check if path is correct';
$_['error_ftp_login_incorrect'] = 'Warning: Cannot connect to FTP with current username password';
$_['error_ftp_copy_failed'] = 'Error: Unable to download ftp file, ftp connexion is ok and file exists but the download failed, please contact your host to ask them to check why ftp_get() is not working on your website';
$_['error_api_no_data'] = 'Warning: No data has been found in <b>%s</b>, make sure to use correct path.';
$_['error_xml_no_data'] = 'Warning: No data has been found with given xml node, make sure you set correctly the node name containing your data set';
$_['error_permission'] = 'Warning: You do not have permission to modify this module!';
$_['error_permission_demo'] = 'Demo mode, saving is not allowed';
$_['warning_demo_file_limitation'] = 'Demo mode: only file upload or demo files are allowed and filesize limited to 2MB max';