New Features

  • Multi-value attribute support: Added support for indexed attribute shortcodes using bracket notation ([attribute_color][0]). This allows accessing specific values from multi-value attributes. For example, [attribute_color] returns the first value only (backward compatible), while [attribute_color][0], [attribute_color][1], [attribute_color][2] return specific indexed values. Works with both global taxonomy attributes and custom product-level attributes with comma-separated values.

Bug Fixes

  • Profile application status: Fixed ListingsModel::applyProfileToItem() indiscriminately setting all items to “changed” status even for products not yet published. Now only marks items as “changed” if they have an ASIN and are online or failed.
  • Publishing queue management: Fixed listings remaining in publishing queue even after successful submission or when already published. Queue now removes listings that are already in submitted, online, sold, archived, or trash status.
  • Validation queue cleanup: Listings that fail the canSubmitListing() validation check are now automatically removed from the queue instead of remaining indefinitely.
  • Boolean field handling: Fixed boolean values in Product Types form not being properly converted. String values “true” and “false” are now converted to actual boolean values in JSON feeds. Added “none” option to boolean field dropdowns.
  • Profile dates overriding validation: Prevented profile dates from overriding empty discounted_price validation, which was causing sale date fields to be sent without sale prices.
  • Sale price and dates: Fixed multiple issues with sale price handling. Sale price value and dates are no longer sent when sale price is unmapped. Sale date fields are skipped when sale price is set to stay empty ([—]).
  • FBA handling time: Handling time field is now removed for FBA listings as Amazon controls fulfillment for these items.
  • Batteries required default: For FBA-enabled items, batteries_required now defaults to false instead of empty.
  • Date format conversion: Added automatic conversion of dates from YYYY/MM/DD format to YYYY-MM-DD format required by Amazon.
  • Currency handling: Default schema currency is now used when currency is not set in the profile, fixing missing currency errors for list_price property.
  • California Prop 65: Fixed conversion of string values for California Proposition 65 field to proper boolean format.
  • Empty field filtering: Enhanced filterEmptyFields() method to more thoroughly remove unnecessary elements in the JSON feed.
  • Attribute processing order: Fixed attribute mapping and conversion happening after value replacement operations. Now converts or maps attributes first before replacing dashes with slashes.
  • Custom size map tables: Fixed custom size map tables failing to save when field names contain square brackets (common in JSON Product Types).
  • Item condition mapping: Legacy item condition values are now automatically mapped to new condition strings required by Product Type API.
  • Array data reindexing: Added compatible_with_vehicle_type and compatibility_options to the list of array data that gets reindexed to prevent gaps in indices.
  • Quantity display: Fixed listings table not displaying profile-level quantities for products with stock management disabled.
  • Feed generation conflicts: Fixed edge case allowing both legacy and JSON feeds to be generated simultaneously for the same listing.
  • Profile switching: Fixed feed being generated using old profile when switching over to a new profile.
  • Legacy form display: Fixed legacy attribute form displaying for products using an already converted profile.
  • Profile converter variations: Fixed variations showing up individually on the Profile Converter instead of being grouped with their parent products.
  • Parent product exclusion: Parent variable products are now skipped in Price and Quantity (PnQ) and Inventory Loader JSON feeds as variations handle these.
  • PnQ sale price fields: Added sale price fields to PnQ JSON feeds that were previously missing.
  • Product dimensions: Added default profile shortcodes for product dimensions that were missing.
  • ERROR severity detection: Listings with ERROR severity issues found in Amazon’s response are now properly marked as failed status.
  • Undefined array key warning: Fixed “Undefined array key in ListingsModel.php on line 1486” warning.
  • Array size error: Fixed “Array sizes are inconsistent in json_feed_results.php” ValueError.
  • Missing namespace: Fixed missing namespace when using WP_Error class.
  • Profile conversion error: Fixed “Cannot access offset of type string on string” error during profile conversion.
  • Missing currency value: Fixed missing currency value for the list_price property in JSON feeds.

Improvements

  • Error reporting: HTTP 400 errors in putListingsItem calls now display the actual error message from Amazon instead of generic failure notice.
  • Logs UI: Improved user interface for viewing JSON payload data on the Logs page.
  • Validation feedback: canSubmitListing() validation now returns the specific error message for users to see what’s preventing submission.

Technical Changes

  • Developer hooks: Added new action hooks wpla_tools_debug and wpla_execute_tools_{$action} for custom tool extensions and debugging.