forked from chaddro/EasyPopulate-4.0
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
285 lines (283 loc) · 26.6 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
1.3.00 - 02-19-09 - Performed much code cleaning.
1.3.01 - 03-30-09 - BUG FIX - when uploading FULL file. If v_status column is left out, would re-activate deactivated items.
1.3.02 - 03-30-09 - BUG FIX - fixed blank manufactuers import where empty v_manufacturers_name when blank was not reset correctly
1.3.03 - 09-08-09 - Begins Major Code Revisions
1.3.03 Notes:
- Simplified ?langer=install and ?langer=remove "langer" to "epinstaller", removed ?langer=installnew
- removed paypal request for donations!!
- no longer creates first export file
- changed logic of function ep_chmod_check() ... it now ONLY checks to see if the directory exist and is writeable and fails if either is not true.
Also removed automatic attemps to chmod() throught this script - this is not secure.
09-15-09 - Decided to also split this mod off properly by adding TAB (like CSV and OSC)
09-29-09 - Created multiple exports for product attributes, option names, and option values
09-29-09 - updates Price/Qty/Breaks export code to use while statement. Now allow for unlimited in number of price breaks!
10-01-09 - phazie's array definitions for filelayouts are more efficient and also more code readible and mod-able. array_merger() if very inefficient
this required some tweaking in other places
- found some places in the download code that I replace with exclusion code to speed up downloads. No sense executing code that wasn't needed.
- export time in now in 24-hour:minute:second which makes better sense to me
10-02-09 - added metatags for products as in phazie's csv version - so far testing is good
10-05-09 - it is VERY important to have the correct delimiter set or the import of information will fail
1.3.04 - 10-13-09 - Fixed function call errors and added filtering check for UPC and UOM mods when downloading files
1.3.05 - 10-14-09 - Auto switching for file extention fixed dependant on delimitor <tab> or <comma>
- Somehow when adding a new item with empty manufacturer, it was being assigned the previously imported manufactures id. Spelling error in code!
4.0.00 - 12-21-09 - Begin Move to 4.0.000 beta
4.0.01 - 12-22-09 - Ha! Manufacturers weren't being created because I left off the "s" in manufacturers!
4.0.02 - 06-03-10 - changed all price_as to price_uom for unit of measure. This is a logical correction. Databases updated
ALTER TABLE products ADD products_upc VARCHAR(32) AFTER products_model;
ALTER TABLE products ADD products_price_uom VARCHAR(2) AFTER products_price;
4.0.03 - 11-19-2010 Fixed bug where v_date_avail (products_date_available) wasn't being set to NULL correctly.
4.0.04 - 11-22-2010 worked on quantity discount import code. now removes old discounts when discount type or number of discounts changes
4.0.05 - 11-23-2010 more work on quantity breaks. Eliminated the v_discount_id column since all discounts are entered at once fresh i'm just using loop index
11-23-2010 added products_status to the Model/Price/Qty and Model/Price/Breaks
4.0.06 - 12-02-2010 added uninstall button on form page, removed unnecessary tables from form page
12-02-2010 removed 'v_discount_id_' from export file layout - no longer needed
12-02-2010 add EASYPOPULATE_4_CONFIG_MAX_QTY_DISCOUNTS variable to configuration page
4.0.07 - 12-02-2010 adding categories image, description and metadata export/import
12-03-2010 completing Categories image/description/metadata export/import feature!
4.0.08 - 12-07-2010 found error: when uploading Model/Price/Qty to set Specials Pricing, quantity discounts are being wiped
4.0.09 - 12-10-2010 time to start breaking this down and using more functional design (and hopefully lead toward an OO based design)
12-10-2010 move all file layout to functions now using $filelayout = ep_4_set_filelayout();
12-11-2010 broke out all export code into easypopulate_4_export.php - This is included with a require_once() statement.
I am doing this so I can start to break this mod into more functional sections.
12-13-2010 broke out all import code into easypopulate_4_import.php
12-13-2010 moved these notes to easypopulate_4_changelog.php
12-13-2010 changing the way categories are imported and exported. now using single column for categories where categories are separated
by a delimeter. Should allow "unlimited" category depth, but still a practical limit of 256 character for excel although
OpenOffice is not restricted. Multi-lingual categories should be achievable now.
12-14-2010 beginning work on category import using single delimeted column
12-15-2010 export of mult-lingual categories is now working. Export/Import of "categorymeta" works correctly to assing multi-lingual values
Have not tested "full" import with multi-lingual categories. Must look closely at code. I may have to make the "full" import
only work with default language, and use 'categorymeta' for updating other languages.
Why? Because error checking on import may become to onerous.
12-16-2010 fixed small error in configuration keys where key was misspelled; removed all references to now defunct $max_categories
4.0.10 - 12-16-2010 Simple single-line attribute import code merged into EP4. Initial testing is good.
12-21-2010 Auto checking of installed mods by checking if table columns exist, new fuction for checking table column, old one didn't work
4.0.11 - 03-09-2011 Removed EOREOR from export files, updated README with info about attribute importing, included example of Attrib-EP-xxx.CSV file.
04-04-2011 Updated README.txt, added GPL license.txt file, added INSTALL.txt file. Replaced easypopulate_4_changelog.php with changelog.txt to avoid confusion.
4.0.12 - 11-04-2011 Fixed issue with export and import where legacy data may have NULL values set for manufacturers_id in the products table. This should be 0, but NULL was set in some earlier versions of EP.
4.0.13 - 11-08-2011 Fixed bug where meta tags statuses were being changed when doing an import such at PriceQty-EP. Needed to add meta tags statuses to $default_these[] in the import file.
Added support for custom products field products_gpc for google product category. For use with custom version of google merchant feeder.
4.0.14 - 11-09-2011 Some code enhancements and clean up.
11-10-2011 Tentative fixes for multi-lingual stores. This codes builds entries in TABLE_CATEGORIES_DESCRIPTION for each language defined in the store, not just what's in the import file.
Have yet to properly process the additional languages at import. CategoryMeta does work, but the FULL import is not complete. Main issue: if the default language isn't "1" then the import script for
categories fails. This instead needs to cycle through each installed category, not start at "1".
11-14-2011 BUG Fix: when importing a new manufacturer, the entry for each installed language for TABLE_MANUFACTURERS_INFO was not being created. If not created, this field is not editable within the admin.
4.0.15 - 11-15-2011 Performance Boost: Added a quick fix for better performance on Import by adding a boolean variable $ep_feedback. If set to false, EP4 will skip most
reporting of new and updated products at end of script. This really saves on memory and execution time. All errors are still reported.
11-23-2011 More testing on performance of script. Export has been modified to ONLY export to the installed EP directory. This way I can write directly
to the export file rather than building a massive string to stream to client machine. This also conserves a great deal of memory.
This same "fix" should be implemented into the Import code which would require you to first upload the file, then execute the import from the
remote directory.
12-05-2011 Some major changes. Changing the work flow per the note above. Added code to manage the CSV file on the remote machine.
You now must first upload your EP file, then click the Import link to import. You can save exported file by right-clicking
their link and selecting "save-as". Is there another way to do this? This code needs a lot of clean-up and testing before
submitting to github.
4.0.16 - 12-07-2011 Basic file management completed. Adding Split function for large data files. This will be executed first after uploading a large file.
Once file has been split, it can then be imported. This will also work for large files that have been exported... If you are using old ver
of Excel (with 65,000 rows limit) you can split your export file into smaller chunks. Langer had good forsight for file spitting, I just didn't
agree with his approach.
12-08-2011 Split function seems to be working well. Need to add configuration variables to set the # of records to split on.
I finally identified the problem with sites with MASSIVE data (like 100,000 on up products). It has to do with updating the price sorter:
After each import, Langer would call an update_prices script, and then also call zen_expire_specials if any specials were detected. However,
these scripts will time out on a server with very large databases. I am wondering what I am missing on import that I have to update ALL the pricing
in one go instead of it being correct on each update.
12-09-2011 Bug Fixed: manaufacturers_name length exceeds database field size
Bug Fixed: wasn't checking length of category names. Now aborts that product's line if a category_name is too long
Updated: products_model length exceeds database file size (cleaned code related to this)
Added warnings to product_names and products_url lengths exceeded, but permitted adding/importing to catalog
I suppose mata-tags should also have this code (these are varchar 255).
12-11-2011 More minor code clean-up. Will I ever finish? The import flow logic needs to be revisited... it's very "duck tape and bailing wire"
Pushing current code to github.
4.0.17 - 12-15-2011 Added support for installing on Zencart 1.5.
12-16-2011 BUG Fix: When importing multi-lingual file with missing language columns on a NEW product, additional laguage entries were not being created
in the TABLE_PRODUCTS_DESCRIPTION table.
12-20-2011 BUG Fix: Multi-lingual category import was not working correctly. I believe I NOW have correctly solved this issue! (whoot!! whoot!!)
I wasn't sure I'd figure it out, and perhaps my solution is not the most efficient, but creating all entries at import for
all your defined languages is working and quite an accomplishment. I do need to add some additional error trapping.
12-21-2011 Error Trapping. So far, you MUST have a v_categories_name_1 to function correctly. Subsequent v_categories_?? definitions may be omitted. If omitted,
the missing column will be defaulted to v_categories_name_1.
12-22-2011 Actually, v_categories_name_1 is not exact. You must have your lowest defined language. This is used as a "pivot" for adding other language entries.
This means that if you have more than one language define, and you add a new product (you need a category to do this) but do not define your additional
Language entries, that you have something to default to.
NOTE: Zencart "bug"? If you add a language, then later remove that language, the language entries are left in the databases!
12-23-2011 Added rudimentary language support to Attributes Import. Basically, all languages are defaulted to the values
entered. No effort is made yet to define which is the default, they are just set the same. This step is being take to ensure that the
required entries are properly being created so further updates or editing can be done.
4.0.18 - 01-27-2012 Added Improved handling for UTF8 Multi-Byte Characters for languages such as Greek. Should work for others but no data yet for testing Russian or Simplified Chineese
Added Configuration Variable EASYPOPULATE_4_CONFIG_CURLY_QUOTES with 3 options. 0-Don't Convert, 1-Convert to Basic Symbols, 2-Convert to HTML codes
Added support for products_msrp mod.
4.0.19 - 01-28-2012 Fixed bug in file splitting where subseqent splits appended to previously split files instead of overwritting them.
4.0.20 - 04-10-2012 Significant work on attributes import. Two Attribute Import/Export files are now available. Attrib-Basic-EP and Attrib-Detailed-EP.
Attrib-Basic-EP is used to create your products_options_name and products_options_values_name with a given product_options_type and assign
this attribute set to a products_model. Multiple languages are supported. Important: You must have language id 1 (English by default install).
The Basic sheet can only create new attributes or update (add to) attributes for a given products_model. There is no provision yet for removing attributes
so this must be done from within the admin.
Attrib-Detailed-EP is used After you have imported your Basic attributes. The Detailed sheet can be used to update all vital settings for an attribute on a
given products_model. Note that the Detailed sheet does NOT create products_options_name or products_options_values_name entries. NOR does the Detailed sheet
add or remove entries.
The examples/ directory contains a new sample CSV file for importing attributes.
04-12-2012 Added option to deal with character 0x92 (a right single quote) that appears to come from Western Europe (window 1252) encoding. This can also be corrected when
saving your CSV file and selecting either utf-8 or iso-8859-1. Added settings info on right side of screen.
NOTE: If \"" (which looks like an escape sequence) is in your input file, it will break the import.
04-13-2012 Expanded the filterable downloads to allow Complete Products, Model/Price/Qty, and Model/Price Breaks. Some minor changes to EP4 page.
04-23-2012 Added configuration variables for MetaTags and Music Exports. If enabled, they allow for the additional columns to be exported.
04-24-2012 Completed import/export for products_type = 2, Music (Artist, Record Company, Genre)
04-25-2012 Concept for alternate column header names added to the import code. Needs fleshing out and a way for user interaction.
04-30-2012 Added products_priced_by_attribute and product_is_always_free_shipping to the main products export/import file layout
05-01-2012 Added NEW file to support Featured Items export/import
05-03-2012 Added "curly quotes" check for categories names import
05-08-2012 More "curly quotes" checks added
4.0.21 06-01-2012 Fix to v_products_type on import.
Added new solution for checking database collation... this makes a difference when using 1.38/139 as the functions do not return field lengths correctly.
Fixed "security" issue with zencart 1.5
4.0.22 03-01-2014 SBA_Stock: Added functionality to manage total stock of items when Stock By Attributes (SBA) is installed and items are or are not tracked by SBA.
Files modified: admin/easypopulate_4.php, easypopulate_4_import.php, easypopulate_4_export.php and admin/includes/functions/extra_functions/easypopulate_4_functions.php.
4.0.23 07-13-2014 Upgrade to ZC 1.5.3. Incorporated usage of mysqli_ related functions where mysql_ functions were used to continue functionality in older versions but allow
continued operation in newer ZC versions. Also added
additional SBA functionality for import and export. SBA is
still tied to an older version of SBA and
needs to be updated to reflect Potterhouse's version. Also
modified the basic attribute process of updating the sort order
to use a factor of 10 instead of a factor of 1 when importing
basic attributes. Ideally, the sort order would remain as
previously assigned if the product existed and be adjusted as
necessary to remain in the desired sort order; however, at
least this way room is provided between EP4 updates to add
additional options between existing options.
In admin/easypopulate_4_attrib.php is a variable
$products_sort_order_increment that is currently set to 10
so that options will be added first at the value of 1 as
assigned in the same file, then will increment to
10, 20, 30, etc... for each subsequent option upon import
of the basic file.
4.0.24 07-15-2014 Fixed typo in attribute import (missing $ on variable name), and also corrected the way index increment was
calculated.
4.0.25 10-10-2014 Added capability of using EP4 with modifications shown
in potteryhouse's version of SBA. (Recognizes customid column).
This may also open EP4 to other versions of SBA; however,
this code has not been tested on other versions of SBA that
use the customid field. The detailed export was updated;
however, removal of old SBA records still needs to be
addressed. Updated the README text a little.
4.0.26 10-19-2014 Added the sort_id associated with categories. Import and Export are
through the Categories Only (with Metatags) file(s). If column is present
then the sort_id will be modified accordingly. If the column is absent
there will be no change of the category's sort_order.
4.0.26a 10-25-2014 Corrected the display of the SBA options. Previously SBA menu options
displayed for all users not just those that had SBA installed. This was
the only modification made to this version.
4.0.26b 10-26-2014 Added a menu display of the status of SBA being installed similar to other
options previously incorporated by chadderruski (such as products short
descriptions, product unit of measure, etc...) Also updated some of the
html formatting.
4.0.27 10-27-2014 Provided export of product and category URIs as generated from the admin
function zen_catalog_href_link. If CEON URI Mapping is installed, then
the active uri is provided by that code. Other URI rewriters may provide
the same functionality when installed and active; however, that has not
been tested.
4.0.28 01-03-2015 Added bypass to mb_internal_string and notification.
Also modified version check to support ZC 1.5.4 and above.
Future versions of ZC may still require this to be revised, but at least
this program will not need to be updated merely to support a version check.
Incorporated admin logging of database inserts and updates similar (and beyond)
those contained in ZC 1.5.4. Deletions were not incorporated.
4.0.29 04-03-2015 Added support for products_map modification (Manufacturer's Advertised Price)
Added MSRP export to areas where previously begun but not fully incorporated.
Modified import of customid for SBA-detailed-attributes to treat as a string.
Began incorporating language overrides, specifically with German as the first alternate language.
Added support for the plugin dual pricing.
4.0.30 06-27-2015 Added a new way of displaying files on the EP4 screen to show
more information such as the prefix to the file types that are
processed. This is to reduce the questions related to not
reading the instructions and understanding that certain files
are processed only by their name prefix. Everything else is
processed as if it was a full update file. Also addressed a
warning received in PHP 5.4+ related to testing a variable not
initialized. Previously 'if (!$error)' was sufficient, which
it is if $error has been assigned; however, if not assigned,
this results in a warning message in the logs folder. So,
instead to maintain consistent usage/functionality will check
if it is set and if it is set to verify that it is not an
error, and if it never was set then that would need to be
known as well. end result: if (!$error) { has been changed to
if ((isset($error) && !$error) || !isset($error)) {.
4.0.31 08-01-2015 Corrected how dates are imported for specials in PHP 5.5 - 5.6 to match
how ZC has to prevent dates converting from 0001-01-01 to 1970-01-01.
Added ability to import using products_id.
Modified method of handling the storage directory. Previous versions
if the admin directory was desired had to be entered and
would be stored in the database. There is no other default
ZC function that stores the admin directory in the database.
This could become a security issue if access to the database
is somehow inappropriately obtained.
Modified how some of the queries are handled to ensure
continued compatibility with ZC.
Modified the output links to account for files being
stored in different locations on the server based on
catalog/admin selections.
4.0.32 02-08-2016 Updated for PHP 7.0 compatibility.
Corrected use of verifying that constant is in use and needs to be defined.
Completed incorporation of the German Language version of EP4 which allows for
EP4 to now be translated to other languages. Assistance always welcome!
Converted from storing web page data via $_GET to $_POST operations. Retrieval of files
is still by $_GET when selecting the download link(s) as well as links to generate
new files to modify unless the dropdowns at the top of the screen are used. This
also was a change away from using $_REQUEST to $_POST offering stricter
control of data transport.
Added checks in files that are "required" to validate that the file is being run from within
ZC by verification of a constant being defined.
Incorporated numerous notifiers to support expandability. (A BookX addon is in development by a
third party and will be looked at for easy incorporation to minimize the effort of it
and other plugins being incorporated.)
Transitioned import queries to using bindVars to minimize errors that introduced by adding to the
code and to better handle the data being imported. This is also in support of packaging
EP4 as a downloadable plugin on the zen cart site.
Revised the Product Description table modification process for updates allowing any of the fields
or a combination of any of the fields to not be included in the update file, though the
base fields necessary would be the products_id (internally identified if not directly
provided), and the language_id which is identified off of the languages installed to ZC.
This also made improvements to the use of the short product description that was added
by chadd.
Added ep4_curly_quotes operations to several of the import fields.
Updated the sql install to clarify the areas affected by some of the settings.
Modified how categories were updated somewhat similar to how products/products Description
were affected; however, it does appear that additional work is necessary with that section
unfortunately as absence of the categories_description with the categories_name in place
will cause a SQL error because of an extra comma before the WHERE statement. :/
Similar process for category metatags was incorporated and has the same issue as categories and needs
to incorporate the processing added to product description updating to prevent a SQL error
if metatags_description is not included in the import.
Corrected an existing issue with short description for products that did not properly account for
a language identifier.
Moved additional file for ZC 1.5.x into the main file path instead of being an additional file/folder
with which to contend. Software remains functional on pre-1.5.x with appropriate action taken
to install that version's needed file(s).
Generated a module file to support the filelayout instead of having it within an additional function
file as a function. This was to support adequate incorporation of notifiers without making
the functions file a class of its own and other work arounds.
4.0.33 02-29-2016 Added a filter to prevent custom field entries from being overwritten on import if
the import file doesn't include the field. If the field is in the import file,
but the data for the row is blank, then the data for that field will be cleared. If
the field is not present, then any data that exists for that field will remain
intact whether the admin->configuration->Easy Populate 4->User Defined Fields is
populated or blank.
Added some "folder" functionality to force the selection of the import file being in the
admin directory if catalog was selected and the entered path really points to
the admin directory. This functionality occurs in the configuration window as
well as when accessing EP4 for any operation.
Removed the bypassed code in admin/includes/functions/extra_functions that previously
was used for export formatting. This code was incorporated into a module file
in 4.0.32.
Added notifiers throughout to support extending the code to support other bulk related
data. Specifically targeted bookx.
Corrected the use of importing date_available and date_added as this had been affected
by use of bindVars without consideration of potential values.
Added a .htaccess file that only includes permission for .csv and .txt files based off
of the admin/.htaccess file available from ZC 1.5.4.
Updated instructions to add some additional considerations.
EP4 had been submitted for download, download from ZC is available from:
https://www.zen-cart.com/downloads.php?do=file&id=2068
4.0.33a 03/17/2016 Updated version check location to reflect the final submission/accepted download location of:
https://www.zen-cart.com/downloads.php?do=file&id=2069
4.0.34 03/19/2016 After report of an issue with EP4.0.33 being used on ZC 1.5.5, a change was made to how paths are
generated for admin side related code.