Version 2.8.4 brings a significant new feature for merchants with complex product catalogs, along with dozens of improvements to the profile conversion system and listing management. This release addresses edge cases discovered during the transition to Amazon’s new Product Type API, particularly around boolean fields, sale pricing, and feed generation.

New Feature: Multi-Value Attribute Support

Amazon’s Product Type API often requires merchants to submit multiple values for a single attribute. For example, a clothing item might have colors “Red, Blue, Green” or a vehicle part might be compatible with multiple models. Previously, WP-Lister could only send the first value from multi-value attributes.

Version 2.8.4 introduces indexed attribute shortcodes that let you specify exactly which value to use:

  • [attribute_color] – Returns the first value only (backward compatible)
  • [attribute_color][0] – First value (“Red”)
  • [attribute_color][1] – Second value (“Blue”)
  • [attribute_color][2] – Third value (“Green”)

This works with both global attributes stored as taxonomy terms and custom product-level attributes. For custom attributes with comma-separated values, the system automatically parses and indexes them for easy access.

Who benefits: Merchants selling products with multiple color options, vehicle compatibility lists, size variations, or any attribute where Amazon’s schema expects multiple separate values rather than a single combined field.

Profile System Enhancements

The profile conversion from legacy feed templates to JSON Product Types continues to evolve based on real-world usage. This release addresses several issues that emerged as merchants converted their profiles.

Boolean Field Handling

Amazon’s Product Type API is strict about boolean values. A merchant selling battery-powered products discovered that their listings were being rejected because the plugin was sending the string “true” instead of the actual boolean value true.

The fix ensures that:

  • Form dropdowns for boolean fields include a “none” option (matching other field types)
  • String values “true” and “false” are properly converted to boolean true and false when generating the JSON feed
  • Legacy profile conversions normalize all boolean variations (“TRUE”, “1”, “yes”) to the standard “true” string format in the profile, which then converts to boolean during feed generation

Profile Application Logic

A subtle but impactful issue was affecting merchants who applied profiles to multiple products. When applying a profile to items, the plugin was marking all items as “changed” status, including products that hadn’t been published yet. This meant unpublished items were incorrectly flagged for updates they didn’t need.

The corrected logic now only marks items as “changed” if they’re actually published on Amazon (have an ASIN and status of online or failed). Unpublished items maintain their current status, reducing unnecessary processing and making the listings table more accurate.

Feed Generation Edge Cases

Two edge cases were discovered where listings could generate both legacy and JSON feeds simultaneously, or where switching profiles wouldn’t update the feed format. These issues occurred during the transition period when merchants were converting profiles but had listings in various states.

The fixes ensure that:

  • Only one feed type (legacy or JSON) generates per listing, based on the current profile configuration
  • When switching a listing to a converted profile, the new profile’s configuration takes effect immediately
  • The legacy attribute form only displays for products actually using unconverted profiles

Publishing Queue Improvements

The automated publishing queue received two important enhancements that prevent unnecessary API calls and improve queue reliability.

Skip Already-Published Items: The queue now checks if a listing is already in a “published” state (submitted, online, sold, archived, or trash) before processing. If so, it removes the item from the queue rather than attempting to publish it again. This prevents API calls for items that don’t need publishing and keeps the queue focused on items that actually need submission.

Validation Before Submission: Listings that fail the canSubmitListing() validation check are now automatically removed from the queue rather than remaining there indefinitely. This means if a product is missing required fields or has validation errors, it won’t clog the queue while waiting for a fix.

Sale Price and Date Handling

Amazon’s requirements for sale pricing are specific: if you’re not sending a sale price, you shouldn’t send the sale date fields at all. Several merchants encountered errors because the plugin was including empty sale date fields even when the sale price was unmapped or set to remain empty.

The fixes address three scenarios:

  • When sale price is explicitly unmapped in the profile, neither the price nor dates are sent
  • When sale price is set to “stay empty” (the [—] option), date fields are skipped
  • Profile dates for discounted pricing no longer override empty sale price validation

These changes prevent rejection errors related to sale pricing and ensure Amazon receives only complete, valid sale price information.

FBA-Specific Fixes

Merchants using Fulfillment by Amazon encountered a few issues unique to FBA listings:

Handling Time Removal: FBA listings don’t use the handling time field since Amazon controls fulfillment. The plugin now automatically removes this field from FBA listings to prevent validation warnings.

Batteries Required Default: For FBA items, the “batteries_required” field now defaults to false rather than being empty, which aligns with Amazon’s expectations for FBA products.

Data Quality Improvements

Several fixes improve how the plugin handles and validates product data before sending to Amazon:

Date Format Conversion: Amazon requires dates in YYYY-MM-DD format. The plugin now converts YYYY/MM/DD formats automatically to prevent date-related validation errors.

Currency Handling: When a profile doesn’t specify a currency, the plugin now uses the default schema currency rather than leaving it empty. This prevents missing currency errors for the list_price property.

California Proposition 65: String values for the Prop 65 field are now properly converted to the boolean format Amazon expects.

Empty Field Filtering: The JSON feed generation now more thoroughly removes empty fields and unnecessary structural elements, resulting in cleaner payloads and fewer validation warnings.

Attribute and Value Mapping

The order of operations for attribute processing matters. A merchant using both attribute mapping and value conversion (like replacing dashes with slashes) found that the operations were happening in the wrong sequence, causing their mapped values to be overwritten.

The fix ensures attribute mapping and conversion happens before value replacement operations, so mapped values remain intact.

Custom Size Map Tables: Size map tables with field names containing square brackets (common in JSON Product Types) were failing to save. The JavaScript handling has been updated to properly process these field names.

Item Condition Mapping: Legacy item condition values (like “New”) are now automatically mapped to the new condition strings required by the Product Type API, ensuring smooth transitions from legacy profiles.

Array Data Handling

Several Product Type attributes expect array data with specific structures. When these arrays have gaps in their indices (like [0], [2], [4]), Amazon’s API can reject the submission. The plugin now automatically reindexes array properties including:

  • compatible_with_vehicle_type
  • compatibility_options

This ensures array data maintains sequential indices (0, 1, 2, 3…) as Amazon expects.

Listings Table and Display

The listings table now correctly displays profile-level quantities for products with stock management disabled. Previously, these products showed blank quantities even though the profile specified a default quantity to use.

Error Reporting and Debugging

For developers and merchants troubleshooting issues, several improvements make debugging easier:

  • Better error messages: HTTP 400 errors from Amazon’s API now display the actual error message rather than a generic failure notice
  • Improved logs UI: The Logs page now provides a better interface for viewing JSON payload data
  • Validation feedback: The canSubmitListing() validation now returns specific error messages so you know exactly what’s preventing submission
  • Severity detection: Listings with ERROR-level issues in Amazon’s response are now properly marked as failed rather than remaining in limbo

Technical Fixes

A handful of PHP errors and edge cases were resolved:

  • Fixed “Undefined array key” warning in ListingsModel.php line 1486
  • Fixed “Array sizes are inconsistent” ValueError in json_feed_results.php
  • Added missing namespace when using WP_Error class
  • Fixed “Cannot access offset of type string on string” error during profile conversion
  • Added default profile shortcodes for product dimensions

Developer Additions

Two new action hooks provide extension points for custom tools and debugging:

  • wpla_tools_debug – Triggered during tools execution for debugging
  • wpla_execute_tools_{$action} – Dynamic hook for custom tool actions

How to Update

Version 2.8.4 is available through your WordPress dashboard. Go to Plugins → Installed Plugins, find WP-Lister for Amazon, and click Update Now. As always, we recommend backing up your site before updating any plugin.

If you’re using automatic updates, your site will update to 2.8.4 automatically.

Looking Ahead

The foundation work in 2.8.4 continues to improve the Product Type API implementation. The multi-value attribute support opens new possibilities for complex product catalogs, while the profile system refinements make the transition from legacy templates smoother and more reliable.

As always, if you encounter any issues or have questions about the new features, our support team is ready to help.