Improvements
- JSON Delete Feeds: Replaced legacy CSV delete feeds with modern JSON delete feed format. When deleting listings, the plugin now generates properly structured JSON feeds with explicit DELETE operations instead of CSV feeds with “add-delete” columns. Provides better error handling, clearer validation messages, and improved reliability when removing products from Amazon.
Bug Fixes
API and Core Functionality
- API Initialization Validation: Added comprehensive checks to
initAPI()
method to returnfalse
on failure instead of continuing with null configuration objects. UpdatedgetFeed()
,putListingsItem()
,getListingsItem()
, and related methods to validate API initialization before proceeding, preventing fatal errors with clear error messages (Error code: INIT_API_FAILED) - Configuration Object Validation: Added validation to ensure the Configuration object is properly instantiated before use, preventing “call to a member function getSchema() on null” errors
- Catalog Search Type Handling: Fixed
searchCatalogItems()
to ensure the$identifiers
argument is always a string, preventing search failures when matching products by EAN, UPC, or ASIN
Feed Generation and Processing
- Array Index Gaps: Implemented
reindexArrays()
method to ensure arrays likebullet_point
have consecutive indices without gaps (0, 1, 2…) before inclusion in JSON feeds, preventing Amazon validation errors - Data Escaping: Added proper escaping for all values before adding them to JSON feeds to handle special characters, quotes, and backslashes correctly
- Sale Price Inclusion: Fixed InventoryLoader feeds to include sale price information, ensuring promotional pricing syncs correctly to Amazon
- Feeds Page Search: Restored search functionality on the Feeds page that was broken in 2.8.1, allowing merchants to find feeds by ID and other criteria
Profile Management
- External Product ID Mapping: Fixed profile converter to properly map External Product ID field when converting legacy profiles to JSON format, preserving EAN/UPC/manufacturer identifiers
- Custom Field Mapping: Manually added mappings for product properties not included in Amazon’s CSV map file, expanding compatibility with specialized product types
- Undefined Array Key Warning: Added
isset()
checks ingetValueFromProfile()
method to prevent “Undefined array key” warnings when loading profile fields on the Edit Profile page
Order Processing
- Double-Click Prevention: Implemented client-side button disabling for Update Orders buttons to prevent duplicate API calls and potential duplicate WooCommerce order creation
- Custom Tracking Link: Fixed “Undefined array key ‘custom_tracking_link'” error by checking if the field exists before attempting to access it during order processing
- Last Order Updated Timestamp: Normalized the setting of “Last Order Updated” values to ensure consistent tracking across different order update scenarios
Listings Management
- Check for Listing Errors Enhancement: The “Check for Listing Errors” bulk action now automatically marks listings as online if no issues are found, eliminating a manual verification step
Technical Changes
- Added
buildDeleteListingsJson()
method to JsonFeedDataBuilder class for generating JSON delete feeds - Changed delete operation constant from
OPERATION_DELETE = 'PARTIAL_DELETE'
toOPERATION_DELETE = 'DELETE'
to match Amazon’s current API requirements - Enhanced error handling throughout API interaction layer with specific error codes and messages
- Improved type safety in catalog search operations
- Added array reindexing utility for feed data preparation
Files Changed
- classes/core/WPLA_Amazon_SP_API.php
- classes/helper/AmazonSchemaFormGenerator.php
- classes/helper/JsonFeedDataBuilder.php
- classes/helper/ProfileProductTypeConverter.php
- classes/helper/WPLA_FeedDataBuilder.php
- classes/model/AmazonFeed.php
- classes/page/ListingsPage.php
- classes/table/ListingsTable.php
- views/orders_page.php
- readme.txt
- wp-lister-amazon.php
Compatibility
This release maintains full compatibility with:
- WordPress 5.0 and higher
- WooCommerce 6.0 and higher (tested up to 9.8)
- PHP 7.4 and higher
- Amazon SP-API (Selling Partner API)
Developer Notes
The transition from CSV to JSON delete feeds represents an important architectural improvement. Developers extending the plugin should note that delete operations now use the buildDeleteListingsJson()
method rather than CSV generation. The new system provides better structure for error handling and aligns with Amazon’s modern API requirements.
API initialization validation is now mandatory—always check the return value of initAPI()
before proceeding with API operations. Methods that previously assumed successful initialization now return error objects when initialization fails.