EasyPopulate V4 (LATEST)
EasyPopulate 4.0 (EP4) Can also download from Github as minor modifications are made: Click the Github button on the right, then click on the green Code button and click Download Zip. To install, upload all files to your admin directory maintaining directory structure. Also upload the additional files for your version of Zencart - be sure to put these in their correct folder. Plainly stated, EasyPopulate 4 (EP4) offers a means to access database information for products in a mass method rather than manipulating product information one screen at a time. Generally speaking it still follows the same sequence of adding product information as is necessary to manually add a product, but there are no timeouts with which to contend, information can be edited/updated/modified in a single place for multiple products. The code offers flexibility to add additional filtered groups for download including other database tables. See the applicable readme/install files and forum for further information. Plugin originally modified from earlier versions of EasyPopulate by ZenCart user chadderuski and further/later maintained by other ZC members. Search tags: Easy Populate, EZ Populate, Easypopulate |
Zen Cart® Versions | v1.3.9, v1.5.0, v1.5.1, v1.5.3, v1.5.4, v1.5.5, v1.5.6, v1.5.7 |
Original Author | mc12345678, chadderuski |
Last Updated by | mc12345678 - 4 May 2021 |
Downloads | 5,991 |
Version History
EasyPopulate V4 (LATEST) - Version: 4.0.37.13 | |||||||||||||
4.0.37 - Product now can be exported by master_categories_id such that the product appears only one time in the export file. The category assigned to the product in this export is the category that is identified as the master category. Modified the ep_supported_mods functionality and collection to compress the overall collection of associated data for supported modification display. Existing variables remain in this version; however, will be deprecated in the future. Added additional variable unset commands to continue to minimize the amount of memory used by EP4. Improved custom field usage by ignoring spaces that might exist in the custom field, began development of incorporating fields from other tables in the export. Generated an array to capture maximum field length instead of individual variables. Existing variables remain assigned at this time, but are to be deprecated in the future. Improved the implementation of the update function based on internal and ZC site version checking to properly implement the conditions when the Update Database option is presented. Added a check for an empty file to have been uploaded and associated error message. Removed pre-assignment of variables ($chosen_key) that will be assigned regardless. Improved the reporting of the product update to include identifying the $chosen_key that was used to update or try to update a product during import. Modified alignment of some code for readability and consistency. Added a csv delimiter selector. This will generate the export file with the selected delimiter (comma, semi-colon, tab, or space character). As part of this also created a function to roughly identify the delimiter of a file being used to import. This same function is used to display the delimiter of each import file that is present in the EP4 directory. If it doesn't resolve correctly there, it will not on import either. Moved the code to initiate the ZC load of information higher up in the sequence of loading so that EP4 could have more control over the processing of information. Modified the value of $price_with_tax to that of a number (1 for true and 0 for false). This way the value can be used in numerical calculations as a known value rather than an assumed/expected value. Ran EP4 through strict mode identifying areas of programming that may have been incorrectly considered. (I.e testing if a value is first set to null then to see if it is set which is first of all backwards and second unnecessarily duplicates the test.) This further reduces NOTICES generated to be ignored. Corrected a long standing test/check for the condition of a default language being defined. Reviewed/modified the code for PHP 7.2 known changes or potentially expected changes. Added a feature to set the exported filename such that a list of filenames will sort by calendar date by numeric year-mo-day . Added a timer reset as well as data to be pushed to the browser to try to prevent import and export failures. Code should work provided that the site is not operating in safe mode. Added an import and export option to use the language code (ie. en for english, de for german, etc...). Such a field will take priority over the historical number reference. Moved portions of the import code to a separate file to remove the code from the core. Relocated some code to reduce duplication. Incorporated the use of the AdminRequest Sanitizer class for data import. Modified/updated the add date for product so that will not store a value less than 0001-01-01. Incorporated a test for the datatype sanitizer that would replace an entire string with the value of null if it contained NULL without affecting historical compatibility. Added the ability to delete specials from the database based on admin panel settings instead of keeping them disabled. Renamed the language folder deutsche to german to directly support the standard installation of ZC and expectation that the language directory be that of the English equivalent. Reworked the detailed attributes import to support omitting columns when importing data. 4.0.37.6 - Realign code in the export file. Support import of categories_names using both language_code and default language_id. Add a default categories_description when adding a new product. Correct SQL error where multiple fields in a query. Incorporate use of $chosen_key into attribute import. Corrected use of a constant in a define test. Further address PHP notices (during strict mode) and incorporate some general PHP improvements. Support import with language_code instead of language_id but use language_code as default if both are provided. Added a cron file to try to feed initial conditions to support cron operation. Added version file to make version tracking/testing easier from outside of the base file. 4.0.37.7 - Moved version information from the main file to a sub-file. Updated database check to possibly expect utf8mb4 as a collation. Added the name of the language to $epdlanguage_query. Adjust formatting of plugin's admin screen for Zen Cart 1.5.6. Provide corrections for more stricter php processing. Added primary key operations to attribute processing. Added import of language dependent columns by language code (DE, EN, Etc...) Changed process of identifying maximum values to ensure result always was greater than 0. Add ability to export only one instance of each product by master category instead of including linked items. Added a default category description value to account for stricter php requirements and that Zen Cart did not have a default. Removed excess trim when using Zen Cart's zen_not_null. Further incorporated the Zen Cart admin sanitizer. Corrected handling of some missing columns. Corrected sequence of query statements for handling music fields. Corrected output messaging to generically support alternate primary keys. Added a function to identify if a field was loaded from the file to reduce code duplication. 4.0.37.8 - Added product code override for category and product import. 4.0.37.9 - Update import record company with ability to process language_code. 4.0.37.10 - Added language constant for when a category_id is not found. Prevent looping through the file if it does not have the primary key. Go to the next file record if the current record does not have appropriate data. Allow auto-expansion of fields that have lengths that are tracked. Provide a minor correction for display of German characters and some words. 4.0.37.11 - corrected the define of EP4_DB_FILTER_KEY if it had not been obtained from the database. - moved `$messageStack` messaging from within the easypopulate_4_import.php file to after the file. This was to further improve the possibility of running cron tasks. - addressed PHP 7.3+ system warning as a result of using a function's result within the php function `end()`. - In the basic attribute import file, changed from the typically hard coded value for an option type select (dropdown) to the variable/constant that actually represents an option type of select, `PRODUCTS_OPTIONS_TYPE_SELECT`. - Added an error message to the basic attributes import file if primary_key is not present in the import file. - Standardized sql statements (added table alias) to improve predefined variable use that can work in each instance without further modification. - Further removed hard coded text content and placed for a constant. - Improved basic import to possibly support not including the v_products_options_type column. - In the basic attributes import, revised the sort order for products_options_values so that it did not always start at 1, but would continue to be incremented. - On export of price, value is now rounded to the number of digits set within the configuration, or if not defined then to the default of 2 decimals. - Added notifiers to support using an alternate primary key (default primary keys are products_model, products_id, or if on import and the products_id is empty then to create a new product with that record). - Began implementing a new function for testing the presence of data (ep4_field_in_file) - Refactored import code to move repetitive code up to centralize the operation. - Removed some commented out code that has been incorporated into admin/includes/modules files. This helps clean up the import file a little more. - Corrected product description and url assignment when using the language code instead of the default language id. - Updated admin/ep4_cron.php to further address more stringent PHP requirements to eliminate notices and to prevent errrors associated with attempting to push the messageStack to the cron task. - Updated discount export operation to ensure that a minimum number of columns are included in the export; however, to auto-identify the number of columns expected. This removes the need to know or to try to discover the maximum number of discounts. A significant difference is that the number of discount columns is no longer limited to the value entered so there may be those that wish to delete columns from their file. - Improved the import of the category meta data to allow the omission of some of the columns. - Added import recognition of language related fields to use the language code (e.g., en, de, es, etc..) instead of the language id and provide override capability if both are included in the import file. - Further incorporated data sanitization in the category meta data import file to work like when using manual operation in the admin. 4.0.37.12 Add default settings for variables (constants) that may not be defined. Reduce code necessary for logic. Move the install error notification (need to run install) up in front of the notification that the directory needs to be assigned based on user feedback during initial installation. Address notifications that occur with increased PHP versions and/or stricter notification. Prevent attempt providing a list of files if the directory folder hasn't been defined. Update ep4_cron to include the changes above. Provide support for utf8mb4 database collation. Add notification that an uploaded file was too large. Correct issues with category meta imports of data using the language code. 4.0.37.13 Move logging of all actions to an admin controlled option by expanding the options of debug logging. Simplified the use of mysql_ and mysqli_ commands to up front single use instead of throughout the core code. The functions file was not at this time modified to support this. Refactored deep if statements to provide early escape or improved/simplified logic. Provide user file evaluation information of newly uploaded file to prevent attempting to import a problematic file. This was added based on user feedback of attempting to import a file that would be prohibited if attempted from the selection list. Added additional setting information to the main EP4 screen such as the primary key filter and the import filter for language dependent fields. Added a dropdown option for exporting product that do not have a manufacturer assigned. This is expected to reduce the effort needed to obtain the same information by exporting all product and then removing those from the exported list that do not have a manufacturer assigned. Corrected a typo associated with exporting Stock By Attributes (SBA) records sorted in ascending order. Refactored code to reduce code duplication. Flushed out the remainder of importing by language code (e.g. en, de, es) Expanded the options of selecting the language dependent field to consider only fields of the selected type instead of the preference of the selected type. Enforcement occurs only when the selected import language identifier ends with the word 'only', otherwise if a field with both the language id and language code is present in the file, the code will choose from the one that is present. If the selected language identifier is not present but the other one is present, then it will select from what is available. E.g. if set to language_code, then a file that has a single version of the field and it has the language identifier ending _1, then that field will be used. If both _en and _1 are present then _en will be used. If only _en is present, then that will be used. Replaced previous sanitization code segments with a single function to handle the processing instead of the repeated code necessary to sanitize each item. Modified product type designation to assign a value of 1 only if the product type doesn't have a product type assigned and it is a new product. This is expected to support product retaining the product type originally assigned and/or assigning a new product type if so desired. Added display output information for when artist name, category meta, music genre or record company name is empty/not being processed. Resequenced code for artist name, music genre and record company name to support resizing the database field to support import of longer data than what was originally supported. Previously this would skip the imported item, make the size change and then require the data to be imported again. Corrected the use of exiting externally addressed file processing such as record company name information by use of return instead of the previous use of continue. This will allow processing to continue beyond the call to such external file where previously processing would stop and the next record would be attempted. |
|||||||||||||
|
|||||||||||||
EasyPopulate V4 (LATEST) - Version: 4.0.36.ZC | |||||||||||||
With Easy Populate Version 4, it is still possible to upload your CSV file and then import it. In this version, there are unfortunately a number of corrections made. Unfortunate, because there should not have been these issues. For those that have used a version of thi issued on or after January 2015, manufacturer information may have not been fully populated as desired/expected. This is now corrected. The expectation of not requiring all columns in the import file has been addressed to the best of the testing performed, The standard use of an alternate primary key has been expanded, there are improved instructions as well as a few improvements in the user interface based on comment review in the forum. There has been an improvement to the database installation/upgrade process to not require removing the existing database settings to performed the upgrade. Please post identified issues to the forum so that they may be corrected. |
|||||||||||||
|
|||||||||||||
EasyPopulate V4 (LATEST) - Version: 4.0.35.ZC | |||||||||||||
Full upgrade requires remove/install of the configuration settings, otherwise this version added a default to activate featured product that have an expiration date that is "blank" (0001-01-01) Added a notifier to follow loading the admin header.php file to support adding jquery related loads in a logical location rather than forcing the use of an alternative notifier. Modified the import of featured product to expand the capability and use of featured product management. Incorporated data cleaning on import of basic attributes. Modified import file to fallback to strlen comparison if mb_strlen is not installed/active on a site. Expanded the use of the code with systems that do not have mb_ Added language fallback to english capability if the SESSION['language'] folder does not exist for EP4 menus. Modified one import bitwise operator to a comparison operator (& to &&). |
|||||||||||||
|
|||||||||||||
EasyPopulate V4 (LATEST) - Version: 4.0.34.a | |||||||||||||
The delimiter for categories is now centralized to the main EP4 file and it is now possible to centrally control what that delimiter so that it is the same for export and import. The code arrangement continues to support the possibility of having two different delimiters for those that use an interim process between export from ZC and import back into ZC. | |||||||||||||
|
|||||||||||||
EasyPopulate V4 (LATEST) - Version: 4.0.34 | |||||||||||||
1. Reworked the download paths to support changes to admin/includes/configure.php in ZC 1.5.5 to maintain backwards compatibility. 2. Updated reference point for notification of updated version of EP4. 3. Corrected issue with attempting to update information when no products_description related fields provided in import file. |
|||||||||||||
|
|||||||||||||
EasyPopulate V4 (LATEST) - Version: 4.0.33 | |||||||||||||
EasyPopulate 4.0 (EP4) Beta For Zencart 1.39/1.5 Can also download from Github as minor modifications are made: https://github.com/chaddro/EasyPopulate-4.0 Look for the "ZIP" button to download. To install, upload all files to your admin directory maintaining directory structure. Also upload the additional files for your version of Zencart - be sure to put these in their correct folder. Plainly stated, EasyPopulate 4 (EP4) offers a means to access database information for products in a mass method rather than manipulating product information one screen at a time. Generally speaking it still follows the same sequence of adding product information as is necessary to manually add a product, but there are no timeouts with which to contend, information can be edited/updated/modified in a single place for multiple products. The code offers flexibility to add additional filtered groups for download including other database tables. See the applicable readme/install files and forum for further information. Plugin originally modified from earlier versions of EasyPopulate by ZenCart user chadderuski and further/later maintained by other ZC members. |
|||||||||||||
|
|||||||||||||