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 return false on failure instead of continuing with null configuration objects. Updated getFeed(), 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 like bullet_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 in getValueFromProfile() 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' to OPERATION_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.