Totally Zenned
- Join Date:
- Jan 2004
- Location:
- N of San Antonio TX
- Posts:
- 9,806
- Plugin Contributions:
- 15
Plugins Library is writing the wrong Plugin ID into downloaded zips
I want to flag two related problems with the Plugin ID that the Plugins Library writes into manifest.phpbecause together they mean that Plugin Manager can't provide accurate update notices for most of my encapsulated plugins when they're installed from the Library.
1. Correct Plugin IDs are being replaced with wrong ones. For three of my listings, the ZIP the Library serves has a different Plugin ID from the one I uploaded, with nothing else changed. The IDs I uploaded are the ones the listings show, and the version server at ping.zen-cart.com answers each of them with the right plugin. The replacements belong to other people's plugins:
- Scheduled Events v2.0.1: uploaded 860, Library zip says 849 (Recycle Sidebox)
- Trademark v2.0.0: uploaded 2378, Library zip says 2183 (bidorbuy Store Integrator)
- Multiple Ship-To Addresses v3.0.0: uploaded 1823, Library zip says 1723 (Require Phone at Checkout for Specific Countries)
Admin Add Customer v1.2.2 was changed too, from 2445 to 2247, but the server happens to answer both numbers with Admin Add Customer, so that one still works.
2. New submissions get Plugin IDs that already belong to legacy records. The version server still answers these with the migrated plugin:
- Dashboard Boxes is 2263 (server answers with BitPay)
- Authorize.Net Accept.js Payments is 2261 (Audit)
- Attribute Pricing Manager is 2258 (Bank Transfer Indonesia)
- Automatic LLMs.txt Generator is 2257 (Finnish Language pack)
I uploaded the first three with the Plugin ID set to 0 so they wouldn't ask the server anything, and the Library wrote the colliding ID into each zip.
Why it matters. As of today (September 29), nothing is broken for store owners, but only by luck. In every case, Plugin Manager either sees the other plugin's version as older or drops the notice because that plugin's record lists only Zen Cart 1.3.x to 1.5.7. Those legacy records are still being updated, several of them in the last week, and if any of them get a newer Zen Cart version added to their compatible list, stores running my plugins will be told a new version is available and pointed to somebody else's download. It also works the other way: a real update to any of these seven plugins will never appear in Plugin Manager for anyone who installed it from the Library.
A caution for the fix. On Zen Cart 2.0.x and 2.1.x, Plugin Manager crashes with a PHP 8 error if the version server answers an ID with an empty result, because those versions don't check for one before reading the first record (2.2.2 and later do). A user on 2.1.0 hit exactly that in September with a build that mistakenly carried a release ID. So if IDs are reassigned, please make sure each new one is live on the version server before the Library writes it into zips.
Separately, 2.0.1 is missing from the version checkboxes. The 2.x options on a listing are 2.0.0, 2.1.0, 2.2.0, 2.2.1, 2.2.2 and 2.3.0. Plugin Manager matches the store's version exactly against that list, so a store running 2.0.1 can never be notified of an update to any Library plugin, and authors can't fix that on their end.
Could the Library write the listing's own Plugin ID into the zip, or leave the manifest alone when it already carries one, and could new submissions get IDs outside the legacy range? If any of my IDs change, let me know the new numbers and I'll re-cut my releases to match.
Thanks
dbltoe
A little help with colors.
myZenCartHost.com - Zen Cart Certified, PCI Compatible Hosting by JEANDRET
Free SSL & Domain with semi-annual and longer hosting. Updating 1.5.2 and Up.