*** WooCommerce Lightspeed POS Changelog *** 2023-11-10 version 2.15.0 * Fix - pagination issue for search results on importer table * Fix - image issue where images were not removed from gallery when set as main image 2023-6-28 version 2.14.0 * New - Test suite no longer checks for compatibility with PHP 7.2 as the latest version of WooCommerce does not support it * Tweak - Update sales syncing to be compatible with HPOS * Tweak - Prevent scheduling sync to Lightspeed if the only element in the update snapshot is the product id * Tweak - When a manual update to pull info from Lightspeed is run, cancel already scheduled updates to Lightspeed for the product * Tweak - Increase size of ean and upc columns in the wclsi_items table * Tweak - Update last sync timestamp after finding products for updating 2023-5-24 version 2.13.1 * Fix - Fix sales syncing issue where discount was being applied to products without discount, resulting in unbalanced sale 2023-5-16 version 2.13.0 * Fix - Fix warning related to missing ItemEcommerce if legacy LS webstore is not enabled * Fix - Change the featured image in Woo if the featured image gets deleted in LS * Tweak - Catch image import error * New - Move updating and item creation to the action scheduler if more than 30 items are found to be new or changed 2023-1-18 version 2.12.1 * Fix - fixes an issue where some search terms were decoded improperly when searching for Lightspeed products 2023-1-6 version 2.11.0 * Fix - Improve security when loading the importer and settings pages * Fix - Only schedule image to be downloaded if it is not already associated with the product * New - Write to debug log when save is triggered by the plugin 2022-11-1 version 2.10.0 * Tweak - When polling for changes, go back 60 seconds in case the action scheduler took a while to run * Tweak - Label timestamp as utc when logging for run of ls auto-poll * Fix - Check if update type is 'inventory update' instead of 'Inventory' when logging a successful poll 2022-10-21 version 2.9.0 * Tweak - Make getters for wclsi-lightspeed-prod class public for use with filters * Tweak - Add reason for skipping job to debug log * Fix - Compare last check timestamp to max window time stamp instead of max window date when running item poller * Fix - Get polling interval from settings instead of defaulting to 5 seconds when no last sync timestamp is found * Fix - Check if update type is inventory instead of assigning inventory as the update type when logging a successful poll 2022-10-11 version 2.8.0 * New - Debug mode can be turned on in settings to activate additional logging * Tweak - Checks if ID is empty rather than null when ensuring that ID exists for sync 2022-9-28 - version 2.7.0 * Fix - Solves an issue where images were being replaced on import rather than adding a new image to the gallery * Fix - Properly count number of tax rates generated during tax rate export * Fix - Check if more than 100 products have been updated when polling Lightspeed for item updates * Tweak - Allow removal of the default WooCommerce category rather than the "uncategorized" category * Tweak - Clarify that sales syncing will not work with inclusive tax rates * Tweak - Log error if inserting attachment fails during image import 2022-8-16 - version 2.6.1 Fix - catches and logs error if creating new wp attachment fails when importing images 2022-8-2 - version 2.6.0 * New - checks if featured image is in the product gallery and remove it if it is * New - logs new inventory when auto-poll updates a product * New - logs manual updates to wclsi sync event log * Fix - reconnects item shops if the data already exists when relinking products * Fix - import variation images * Fix - adds notice to product page if images are still downloading for the product * Fix - checks for existence of tax rate id before querying for associated lightspeed id * Fix - handles cases where lightspeed api returns employee data in unexpected formats * Fix - addresses an issue where image syncs were getting skipped for matrix product updates * Tweak - no longer adds the featured image to the product gallery 2022-6-23 - version 2.5.1 * Fix - add handle archived products option to woo product sync settings 2022-6-22 - version 2.5.0 * New - Images are now downloaded from Lightspeed using the action scheduler * New - Products archived in Lightspeed can be either removed or set to draft state in WooCommerce automatically * Fix - Attributes sync properly when using the "create product in Lightspeed" button * Tweak - Reformat php files to match WP style guide * Tweak - Images will be named using the filename from Lightspeed * Tweak - Reuses images if they have been downloaded before * Tweak - Won't schedule an empty sync event if no LS selective sync options are enabled 2022-5-27 - version 2.4.1 * Fix - Fix issue loading wclsi settings tabs to be compatible with WordPress 6.0 2022-3-24 - version 2.4.0 * New - Taxes from WooCommerce orders will now be reflected in Lightspeed sales * Fix - Remote logging has been removed to avoid conflicts * Tweak - Checks media library for previously download images when reimporting a product * Tweak - Eliminated some foreach warnings 2022-2-3 - version 2.3.0 * New - Orders refunded in Woocommerce will now be reflected in Lightspeed * Fix - Check if Guzzle has already been loaded by another plugin before attempting to include it * Fix - Load Bugsnag cleanly and handle cases where loading fails 2021-12-24 - version 2.2.0 * Fix - Allow products to have more than 100 variations * Tweak - Move ignore archived Lightspeed products to woo sync page * Fix - Fix checkbox for opting into sales syncing to appear unchecked by default * Fix - Improve sales syncing compatibility with a user having a single Lightspeed store * Tweak - Improve logging and response when syncing a failed sales sync occurs * New - Add remote logging feature. Toggle on/off in store settings 2021-11-19 - version 2.1.0 * Fix - Add phpunit-polyfills to test suite to comply with new wp test requirements * Fix - Validate shipping values for ls payload * Fix - Delete cache lock after product sync to be compatible with persistent caching * New - Add sales syncing feature (beta) 2021-09-22 - version 2.0.3 * Fix - check snapshot to properly create payload 2021-09-17 - version 2.0.2 * Fix - remove null values from payload during selective sync 2021-09-15 - version 2.0.1 * Fix - Images causing error when attempting to insert after store duplication. #309 - checks the image_id in thewclsi_item_images table first * Tweak - Tags syncing should be a selectable option #304 - tags can now be turned on/off * Fix - Remove "Uncategorised" too #302 - removes "Uncategorised" * Fix - Images causing error when attempting to insert after store duplication. #309 - Orphaned images can now be updated properly * Fix - Variation gallery images do not sync correctly #305 - Variation images are now properly stored in variation gallery post meta * Fix - Wordpress times out when downloading lots or large images #303 - Wordpress times out on large image downloads, will now provide an error and abort product creation 2021-05-04 - version 2.0.0 * New - Image Compression setting allows customers to pick the quality of images downloaded from Lightspeed * New - New UI for background jobs * New - New Lightspeed Product Attribute Sets background job that runs every 1 minute * New - Background job settings now allows users to pick frequency in which jobs run * New - Linked Woo products are now sortable in the Woo Product page * Fix - enabling the plugin may sometimes throw a fatal error "Uncaught Error: Call to a member function add() on null" * Fix - A friendly error will show when attempting to import a product attribute that is a reserved keyword instead of failing the polling job * Fix - Fixes a bug that inadvertently set products Out of Stock if LS inventory was 0 even if the Woo product was not managing stock * Fix - Fixes issue where "Link to Lightspeed" feature failed to link products that were on import table but not *synced*. * Fix - Fixes "Linked to Lightspeed" column on WooCommerce Product Table. Now displays product sync status, not if it is on import table. * Tweak - Removed "Enabled Stores" setting as it's not longer needed 2021-02-26 - version 1.9.9 * Fix - Fixes a "PHP Parse error: syntax error, unexpected ')'" for user using PHP 7.2 * Fix - Fixes duplicate background jobs from showing up in the action scheduler 2021-02-25 - version 1.9.8 * New - Adds a dedicated "Lightspeed" menu with "Product Importer" and "Settings" submenus * New - Many UX improvements around row actions, renaming the import page to "Lightspeed Importer", and more * Fix - Fixes issue with manual updates not picking up changes related to WooCommerce Add-ons plugin * Fix - Fixes issue around immediate sync for a newly imported Lightspeed product * Fix - Fixes "stale data" bug before import, pulls in the latest data from LS before attempting an import * Fix - Fixes an issue around the "action" url param remaining after triggering a row action * Tweak - Gets rid of "pending" status for newly imported products and uses the import date as the first sync date * Tweak - Moves the "Import & Link All Products" button to the settings page under "Store Settings" 2021-01-07 - version 1.9.7 * New - Adds support for persistent cache (Memcached or Redis) 2021-01-07 - version 1.9.6 * New - Adds a new "Set empty Sale Price on zero" setting. When enabled, a Lightspeed Sale Price of $0.00 will translate to an empty value Sale Price in WooCommerce. * Tweak - Better image quality for images downloaded from Lightspeed * Fix - Fixes "Uncaught TypeError: Return value of WCLSI_Synchronizer::sync_changes_to_lightspeed() must be of the type bool, object returned" * Fix - Fixes "Uncaught TypeError: Return value of WCLSI_Item_Attributes::get_pre_existing_wc_attr() must be of the type string, object returned" * Fix - Removes some unnecessary logic around the poller that might inadvertently skip a polling job 2021-01-04 - version 1.9.5 * Fix - Fixes a category import bug where categories of with the same name are assigned to the incorrect products * Fix - Fixes a bug where Webstore properties (long, short, LxWxH) were not being synced from WC->LS correctly * Fix - MySQL bugfix for versions > 8.0. The "system" column in the wclsi_attribute_sets table is a reserved keyword. Renames the column to "sys". * Tweak - Ensure attributes are updated every 30s * Tweak - Adds a register_taxonomy() call for new product attributes, this ensures attribute taxonomies are created instantly * New - Fixes up PHPUnit tests. Automated tests are now run on every new commit, PR, and before every release. 2020-12-19 - version 1.9.4 * Fix - Fixes sync bug "Unknown PriceLevel" error even when "Sale Price" is not selected under Lightspeed Product Settings * Fix - Fixes "PHP Notice: Undefined index: wclsi_sku_strategy" * Fix - Fixes "PHP Notice: Undefined index: wclsi_remove_uncategorized_category" 2020-12-18 - version 1.9.3 * Fix - Fixes a bug that throws a 500 when attempting to trash a Lightspeed-linked product in WooCommerce 2020-12-16 - version 1.9.2 * New - New "Link to Lightspeed" bulk action in teh WooCommerce Product page. Linked WooCommerce to existing Lightspeed products. Matches on System SKU and Custom SKU for simple and variation products. Matrix products are different - see docs. * New - New "SKU Strategy" setting - allows for selecting different SKU values for WooCommerce products. Defaults to the Plugin strategy which prioritizes Custom SKU, then Manufacturer SKU, then System SKU. * New - New "Linked to Lightspeed" column on the WooCommerce Products page showing which products are actively linked to Lightspeed * New - New Warning notice on WooCommerce Product page showing whether a product is linked to Lightspeed * New - New validation around changing product types (ex: from simple -> variable). This will be blocked as the Lightspeed API does not allow changing product types. * New - Re-designed settings - new "Woo Product Sync" and "Lightspeed Product Sync" tabs which separate Woo vs Lightspeed sync settings * Fix - Fixes a sync bug where if `_wclsi_item_id` or `_wclis_item_matrix_id` post meta data were missing from a WooCommerce product, the sync to Lightspeed would fail * Tweak - Moved the "Clear All Loaded Products" to the Store Settings tab instead of the bottom of the Import Page * Tweak - Check if a Woo product is linked before attempting to sync data to Lightspeed * Tweak - Upon upgrade to 1.9.2, the plugin will check if you have the "Sale" Price Level set up. If not, it will uncheck this setting for you if you have it checked off. 2020-11-21 - version 1.9.1 * New - Block setting "Sale" on selective sync for LS prods if "Sale" price level was not set * New - Show "Archived Lightspeed" notifications on the Woo edit product page - inclusive of variation products * Fix - Fixes a bug that could cause a 500 if a Woo product is deleted during processing of sync changes * Fix - Use get_regular_price() when creating a product in Lightspeed, otherwise it will use the sale price * Tweak - Better notifications aroundf failed sync events * Tweak - New check to make sure the Woo product exists before attempting to sync changes to it * Tweak - Upgrade routine to set "stock_quantity" to true is deprecated "stock_quantity_checkout" setting is still lying around * Tweak - Add "retry_reason" to retry logic - allows passing through of errors if we exceed maximum retries of 20, instead of show generic "reached max retry count" error * Tweak - Add "skip benign LS error" logic so queueing does not keep retrying on benign LS error responses 2020-11-11 - version 1.9.0 * New - **MAJOR CHANGE** ALL syncing is now done with the action scheduler queue * New - Lightspeed Import page can now search for SKU values, Category values, as well as regular and sale prices via the search input * New - New "Remove Uncategorized" setting which will attempt at removing the "Uncategorized" category when importing products from Lightspeed * New - New "Category Sync Settings" tab that is specific to categories * Fix - Bulk editing through the Woo page should now queue changes up instead of causing 429 errors * Fix - Removes the "WCLSI_UPDATE_CANCELLED_ORDER" option which can cause sync failures * Fix - JS fix around the case where there are 0 categories to import from Lightspeed * Tweak - Removed "Order Sync" settings * Tweak - Removed "Manual " * Tweak - Disable the "Search Lightspeed" button if the plugin has not being initiated yet * Tweak - Sets a default '0.0' value for WCLSI_DB_VERSION_OPTION so DB migrations run better * Tweak - On Category import, try and match Lightspeed categories to ones that already exist in Woo * Tweak - When pushing a product to Lightspeed from Woo (creating a new product), refresh the page * Tweak - When pushing a product to Lightspeed from Woo, use the lowest level category id that is linked to Lightspeed for propery category matching 2020-10-14 - version 1.8.4 * New - Introduces a "Sync on refund restock" setting under "Order Settings" that allows for syncing inventory on Order Refunds * Fix - Fixes a sync bug where after an order is made successfully, it overwrites the Woo inventory with the original inventory in Lightspeed * Fix - Fix the import table "Last Sync" column so it is now consistent with the rest date columns * Tweak - Enhance the API Navigator search query so it is now more flexible and can match on more strings * Tweak - Reduces async WAIT_TIME from 1.2s to 1s to speed up some of the syncing calls to Lightspeed 2020-09-10 - version 1.8.3 * Fix - Upgrade routine that will clear out bad webstore data in the DB - more specifically drops records with item_e_commerce_id values that are NULL * Tweak - Insert Webstore data validation - don't insert item_e_commerce data unless there's an item_e_commerce_id associated with it! * Tweak - Sale Price should not be synced back to Lightspeed as $0.00 if it's an empty string, should now sync back as "Default" price in Lightspeed * Tweak - Redirect to main Lightspeed import page after clearing out the WCLSI tables so the URL param is purged and we're not clearing out products on subsequent requests! 2020-09-01 - version 1.8.2 * Fix - Fixes a bug where if the "WCLSI_LAST_LOAD_TIMESTAMP" option is deleted, it is not regenerated, and the check_for_new_ls_prods background job ceases to run * Fix - Fixes a bug where if an product attribute failed to import, it would fail to import a matrix product. Now the plugin will log an error instead. * Tweak - Remove console.log() call in JS file 2020-07-29 - version 1.8.1 * Fix - Fixes a silent bug when updating a WooCommerce product that has an invalid or duplicate SKU, then the entire update fails. This should now be fixed and the update should continue updating other properties of the Woo product * Fix - Fixes a bug that broke the "Import all" function. The import_all_lightspeed_products_ajax() method was missing a "import" arg to process_product_ajax_request() method * Fix - Fixes "per page" screen option on the Lightspeed page. Should now display the correct number of products * Tweak - Add space after "The associated WooCommerce product is" text * Tweak - Renamed the "wclsi-debugger.log" to "wclsi-sync-events-log" * Tweak - Renamed the "wclsi-errors.log" to "wclsi-errors-log" 2020-07-05 - version 1.8.0 * Fix - Fixes a critical bug where the "wclsi_update_cancelled_order" option does not get cleared resulting in halting all updates to Lightspeed 2020-06-26 - version 1.7.9 * New - Introduces the Lightspeed API Navigator modal allow users to search and add specific Lightspeed products * Fix - Fixes a bug where 0 quantity inventory in Lightspeed was not being updated properly in WooCommerce * Fix - Fixes the "Uncaught ReferenceError: wclsi_admin is not defined" JavaScript on the error * Fix - Fixes Order Sync failure as a result of the "Uncaught ReferenceError: wclsi_admin is not defined" error * Fix - Fixes an issue where for some stores, WebStore data was not getting persisted into the DB * Fix - Fixes the "Uncaught TypeError: $(...).tipTip is not a function" JavaScript error when trying to use the customizer * Fix - Fixed a JS UI bug that showed progress as "0/{wclsiJS.variationIds.length}" when syncing a product to LS * Fix - Fixes a DB bug where for some users, duplicate insert DB errors would result from the "Check for new Lightspeed Products" background job * Fix - Fixes a bug where the selective sync option for WooCommerce products was not respected on the "add to cart" WooCommerce action * Tweak - Renamed the "Sync with Lightspeed" button to "Create this product in Lightspeed" * Tweak - Moved some global JS variables to the wclsi_admin object such as WAIT_TIME, and error display methods * Tweak - Renamed globals $WCLSI_SINGLE_PROD_SEARCH_PARAMS to $WCLSI_SINGLE_LOAD_RELATIONS * Tweak - Renamed globals $WCLSI_MATRIX_PROD_SEARCH_PARAMS to $WCLSI_MATRIX_LOAD_RELATIONS * Tweak - Adds a "if ( !empty( $parent_wc_prod ) )" guard for when updating variations in case the parent product WooProduct got deleted but the wc_prod_id still exists 2020-05-09 - version 1.7.8 * New - Better notifications around failed inventory syncs, will now show up as an admin notice if a product does not sync correctly * New - New "Sync on manual order cancellation" settings which allows for toggling inventory syncing on/off for order cancellations. Default is "on". * Fix - Fixes issues around variation attributes getting reset * Fix - Fixes "Lightspeed API Error - 422 'qoh' must be a positive integer" - plugin did not update inventory properly on orders that had quantities greater than the ones on hand * Fix - Fixes 'jQuery not defined' error on the front-end * Fix - Side-effect of the 'jQuery not defined' was orders not syncing on order success - this should now be resolved * Fix - Categories are appended to existing ones instead of deleting the difference in categories * Fix - Fixes "PHP Notice: Undefined variable: wclsi_matrix_id" * Tweak - Better class and file organization 2020-04-26 - version 1.7.7 * Fix - Bump version due to an issue with WooCommerce deployment 2020-04-26 - version 1.7.6 * New - Adds a new selective sync "Attributes" settings for Woo products. If enabled, will sync Woo Product Attributes on updates. This setting will be enabled by default upon upgrade * New - Order Cancellation inventory sync - on manual order cancellations, the plugin will try and add inventory back to Lightspeed * New - Order Sync tracking - will now keep track of which orders have been synced, and prohibit re-syncing if an order has already been synced. * New - Order quantity syncing - will now sync order quantities for more accurate order syncing, instead of looking at the product quantity * Fix - Fixes issues around variation attributes, plugin will now respect previously existing attributes and not overwrite them as well as other fixes around variations dissapearing * Fix - Products that were not checked for syncing mistakenly were updated in Lightspeed, fix now skips these products if they are not enabled for syncing * Fix - Pre-existing taxonomy attributes will now inherit settings like type, has_archives, and order_by instead of overriding them on every update * Fix - Fixes a "mysqli_real_escape_string() expects parameter 2 to be string" PHP warning around updating attributes * Tweak - Code cleanup and enhancements 2020-04-17 - version 1.7.5 * Fix - Fixes attributes getting reset or variations not showing up if the "Auto-import Lightspeed Attributes" is not selected * Fix - Fixes an issue where custom attributes or pre-existing attributes in a variable product may get removed on an update 2020-04-14 - version 1.7.4 * New - New setting "Auto-import Lightspeed Attributes" will automatically import attributes into the WooCommerce Product Taxonomy * New - The plugin will now utilize the Product Attribute taxonomy, meaning variable products will not use custom attributes anymore, and instead will try and utilize the Product Attribute taxonomy. Custom attributes will be converted to Product Attribute terms if the plugin can find a WC Product Attribute term match. * New - Adds "attr_name_1_wc_id", "attr_name_2_wc_id", and "attr_name_3_wc_id" columns to "wclsi_item_attribute_sets" table, used for importing attributes * Fix - "Products Processing ..." modal should not show up for non-Lightspeed products anymore * Tweak - Better logging around corrupt Lightspeed records that do not have a required "itemID" 2020-04-08 - version 1.7.3 * Fix - Plugin will no longer set "stock status" if "Stock Quantity" is unchecked under "Selective Sync for WooCommerce Product" * Fix - "Processing Order ..." on the "Order Thank You" page fixed so it does not show "undefined" values * Fix - Syncing products from WooCommerce to Lightspeed improved, should result in less 429 errors, especially for Variable products * Tweak - Optimizations around backgrounds jobs conflicting with other actions resulting in a reduction of errors 2020-03-19 - version 1.7.2 * New - Much better handling around 429 errors - now keeps track of Lightspeed's API bucket level header, and adjusts API requests dynamically depending on bucket level * New - New "Prune deleted variations" setting. On a Manual Update, deletes variations in WooCommerce that have been deleted in Lightspeed matrix products. * New - New "WCLSI Poller" settings, allows users to turn background job on or off * New - Settings UI is now tabbed * New - wclsi-error.log now has a stack trace included in it * New - Updating Variations in the WooCommerce dashboard is now more efficient and should not cause as many 429 errors * Fix - Fixes some DB duplicate errors that can happen during the check_for_new_ls_prods background job, now checks if the product exists before trying to insert it * Tweak - Code consolidation and cleanup 2020-01-01 - version 1.7.1 * New - New "wclsi-error" log under WooCommerce -> Status -> Logs; tracks sync errors and other various issues with the plugin * Fix - If multiple items are added to the cart, the plugin would get a 429 error trying to check inventory levels in Lightspeed * Fix - On checkout, the plugin can now handle updating multiple items on checkout/order completion * Fix - Bulk updates on import page are now throttled and should no longer show 429 errors * Fix - Image sync would throw a fatal error, now should write to error log * Fix - Hotpatch for fixing NULL item_id values (only fixes simple/single products) * Tweak - wclsi-debugger.log will now only record active sync changes, instead of all activity * Tweak - Code cleanup & optimizations 2019-11-08 - version 1.7.0 * Fix - Fixes a major bug where WooCommerce products that have sync enabled were not pulling LightSpeed inventory before checkout 2019-11-04 - version 1.6.9 * New - New feature "Delete Lightspeed categories cache" - remove any LS categories in the cache. Forces the plugin to stop trying to link products' categories with ones that were imported. * New - New "wclsi_sync_prod_inventory" filter that filters the $wc_prod object before syncing its inventory to Lightspeed * Fix - Fixes a bug that was introduced in 1.6.8 that does not re-load the "wclsi_poll" action scheduler job * Tweak - Enhances error and notification experience 2019-10-14 - version 1.6.8 * Fix - Fixes a bug where stores with duplicate SKU products were not being updated via auto-sync or manual sync * Fix - Fixes a bug where 'wclsi_poll' and 'check_for_new_ls_prods' action scheduler jobs show up more than once under the 'pending' section * Fix - Fixes a bug where imported products with categories are automatically added to 'Uncategorized' (or whatever the default category is) * Fix - Fixed a bug where imported products (but not on the sync schedule) were still being updated on Lightspeed after a WooCommerce update * Tweak - Re-arranges selective sync checkbox to display legacy Web Store fields * Tweak - Removes CSS around hiding selective sync fields 2019-07-30 - version 1.6.7 * Fix - Fixes erroneous LS update callbacks that may have been triggered via auto polling and other product update pathways * Fix - Fixes "PHP Notice: Undefined property: stdClass::$httpCode in class-wclsi-init-settings.php" due to token refresh logic * Tweak - Lowers chances of 429 throttling errors triggered via the "Manual Update via Lightspeed" button for variable products 2019-07-05 - version 1.6.6 * Tweak - Optimization improvements utilizing wp_object_cache (thank you Xavier) * Tweak - Moves the poller to Action Scheduler, allowing manual runs of syncing as well as reduced 429 errors * Fix - Removes WCLSI_Cache_Lock class, should fix any database duplicate errors * Fix - Deletes categories from the wp_wclsi_item_categories table when the corresponding categories in WooCommerce are deleted * Fix - Fixes an issue during Lightspeed authentication where the tokens do not get parsed correctly 2019-06-11 - version 1.6.5 * Fix - Fixes a bug where products were still importing even though the auto-import setting was set to "Do nothing" * Fix - Sets sslverify to true by default, fixes the "Certificate verification disabled (sslverify=false)" error * Fix - Fixes a "Duplicate Key" error around the some cache locking logic 2019-06-01 - version 1.6.4 * New - Moves "check_for_new_ls_prods()" to an action scheduler job, the runs every 30 seconds. Also allows users to trigger the job manually. * Fix - Fixes some 429 errors around the `woocommerce_update_product` action hook. This gets called multiple times and triggers a `update` Lightspeed API call erroneously * Fix - Fixes "Duplicate Key" errors resulting from a bug in the new WCLSI_Cache_Lock class * Fix - Fixes an error around the refresh_access_token() function where sometimes it would return a WP_Error object 2019-05-29 - version 1.6.3 * New - Removes the need to have allow_url_fopen = on, moves image downloads to native wp_remote_get() function * Fix - Fixes some issues around Javascript setTimeout() functions that were introduced in v1.6.2. Should help reduce 429 errors 2019-05-28 - version 1.6.2 * New - Adds a new setting called "Action after auto-loading products" which allows you auto-import new Lightspeed products * New - Adds a database-based cache locking class to help with reducing parallel API calls * New - Adds setTimeout() calls to AJAX functions to help reduce 429 API errors related to Lightspeed API throttling * Tweak - Updates some deprecated Javascript functions * Tweak - Removes some unused code 2019-04-10 - version 1.6.1 * New - Adds a "Stock Quantity (non-manual updates, e.g. orders)" selective sync setting specific to WooCommerce Orders, if checked it will sync inventory to Lightspeed after a WooCommerce order is completed * Fix - Fixes a sync bug where image changes in Lightspeed were not being synced over to WooCommerce * Fix - Fixes a sync bug that could have locked the poller from syncing for long periods of time (possibly hours) * Fix - Fixes a sync bug where inventory was inadvertently being synced over to Lightspeed 2019-03-28 - version 1.6.0 * Fix - Fixes a bug that was introduced in v1.5.9 where new LS products were not being automatically loaded * Fix - Fixes a bug where attributes for variable/matrix products were not being synced over to WooCommerce correctly * Tweak - Changes the syncing algorithm to look back an extra 30 seconds allow some overlap in updates made in LS 2019-03-20 - version 1.5.9 * Fix - Fixes auto-poller module where inventory changes on the Lightspeed side do not get picked up automatically * Tweak - Ensure to not run multiple sync calls at the same time and try and avoid 429 errors from Lightspeed 2019-03-05 - version 1.5.8 * New - Adds a "Sync" checkbox on the import page to allow to also sync all items after they import * New - Adds a "Ignore Archived Lightspeed Products" setting; if enabled, will ignore archived items in LS when items are loaded in WooCommerce * New - Changes the polling interval from every 5 minutes to every 5 seconds to keep products more up to date * Tweak - Reduces "429 - Too many requests" error frequency * Tweak - More informative item counts - displays both simple and matrix item counts under the search box in the import page * Fix - Stock status bugfix - sets or removes "outofstock" term under the "product_visibility" taxonomy * Fix - Sync php warning bugfix - does not enable the item poller if connection to LS is not set 2018-11-13 - version 1.5.7 * New - Re-linking a product will now match on customSku as well as systemSku * New - New Item Poller class should make polling for Lightspeed products more efficient * New - Item Poller class will keep items in the import table up to date (even though they have not been imported yet) * Fix - Attributes with values of '0' should now be imported correctly * Fix - Fixes incorrect SQL syntax for auto-loading products * Tweak - Better testing coverage, minor bug fixes, and DRYing up code 2018-10-25 - version 1.5.6 * Fix - fixes a bug that does not auto-load new matrix and/or variation products from Lightspeed * Tweak - Better testing 2018-10-12 - version 1.5.5 * Fix - Fixes a bug where variable/matrix attribute were not being set correctly * New - Adds much better test coverage around matrix imports 2018-06-03 - version 1.5.4 * New - Introduces selective sync for updates on Lightspeed products * Tweak - Better test coverage 2018-02-12 - version 1.5.3 * New - Introduces selective sync for updates on WooCommerce products * Fix - Fixes a bug that removed long and short descriptions * Fix - Fixes a bug where single-store Lightspeed setups could not initialize the plugin * Fix - Fixes pricing bug where matrix items were not showing pricing on the import table * New - Auto-loading for imported variable products will now automatically publish new variation products * Tweak - Various other enhancements 2018-01-21 - version 1.5.2 * Fix - Fixes a bug where products where product's visibility was not set correctly on import * New - Adds a new feature to allow products to be set to either Publish or Draft upon import * New - Adds sale price formatting to the import table * Tweak - Removes the wclsi_import_post_fields_matrix_prod filter * Tweak - Removes the wclsi_import_post_meta_matrix_item filter * Tweak - Removes the wclsi_create_post_fields_variation filter * Tweak - Removes the wclsi_create_post_meta_variation filter * Tweak - Removes the wclsi_import_post_fields_single_prod filter * Tweak - Removes the wclsi_import_post_meta_single_prod filter * Tweak - Removes the wclsi_update_post_fields_matrix_prod filter * Tweak - Removes the wclsi_update_post_meta_matrix_item filter 2017-11-12 - version 1.5.1 * Fix - Fixes a bug that broke the Manual Update button * Tweak - Better error messaging around re-linking * New - Re-linking of matrix products will now persist the sync flag for variation products 2017-11-06 - version 1.5.0 * Fix - Fixes a bug for single stores where the "Save Changes" button did not show up in the settings page * New - Re-introduces the "Re-link" feature with major enhancements * Tweak - Does not drop any tables when the plugin gets deleted 2017-10-15 - version 1.4.9 * New - Introduces auto-syncing of new Lightspeed products and Categories * Tweak - Better error handling around refresh tokens 2017-09-12 - version 1.4.8 * New - Syncing Sale price now available (see documentation) * Fix - Bugfix where single-store Lightspeed accounts do not get initialized correctly * Fix - Bugfix where prices were being rounded down (i.e. 9.99 to 9.00) * Fix - Bugfix where bulk import & sync would cause a "Something went wrong" error 2017-08-28 - version 1.4.7 * Fix - Bugfix where ancestor categories were not being applied to an imported Lightspeed product * Fix - Bugfix where "same name" categories would not get imported * Fix - Bugfix where the category column on the import page was not linking to the right category * Fix - Bugfix where the "percent complete" value was incorrect when loading products from Lightspeed * Fix - Bugfix where the "Load Lighspeed Products" button was not disabled correctly * Fix - Bugfix where the "Import Categories" button was being displayed incorrectly 2017-07-22 - version 1.4.6 * Fix - Fixes a JS bug that broke the "Load Products from Lightspeed" button 2017-06-26 - version 1.4.5 * Fix - Better error handling * Fix - Fixes a bug that did not allow products to load fully if an error occured 2017-06-19 - version 1.4.4 * Fix - Adds refresh token logic for Aug 1st Lightspeed deadline * Fix - Fixes bug where products with a single tag do not sync over correctly 2017-04-11 - version 1.4.3 * New - Major database upgrade - moves all products to custom database tables * New - Fixes major performance issues with the Lightspeed Import Page not loading * Tweak - Removes constant taxononmy syncing to WooCommerce * Fix - Fixes a bug where categories were not syncing to WooCommerce * Fix - Fixes a bug where an error would show up when syncing a product from WooCommerce to Lightspeed * New - Introduces a test suite for better quality control * New - Other major bugfixes and performance enhancements 2017-02-12 - version 1.4.2 * Fix - Fixes a bug where WooCommerce products were not set to "Out of Stock" if synced inventory was 0 * Fix - Fixes a bug where out of stock variation products were not being synced over to Lightspeed * Fix - Minor fixes to error notifications when syncing a product to Lightspeed 2016-12-13 - version 1.4.1 * New - New feature that allows to re-link WooCommerce products back to the Lightspeed Import Page * Fix - Bugfix where reloading products from Lightspeed will cause pre-imported ones to be unlinked from the Lightspeed Import Page 2016-12-06 - version 1.4.0 * New - Bulk import enhancement that should now be faster and show you progress when bulk importing products * New - Manual sync enhancement for matrix products where new variations should now be added on a manual sync 2016-11-30 - version 1.3.9 * Fix - Fixes an inventory syncing issue (introduced in v1.3.8) for single Lightspeed stores: inventory may have not been syncing from WC to LS correctly * Fix - Fixes a bug where prices for variation products were not being imported with decimal value - i.e. "10" vs "10.00" 2016-11-29 - version 1.3.8 * New - New feature that allows for picking a primary inventory Lightspeed store to sync inventory to and from WooCommerce 2016-11-19 - version 1.3.7 * Fix - Fixes a bug introduced in v1.3.5 that breaks the daily sync 2016-10-27 - version 1.3.6 * Fix - Fixes a bug where an "Online" Price Level was being synced to Lightspeed * Fix - Various filter hook enhancements 2016-10-23 - version 1.3.5 * Tweak - Enhancement that blocks SKU creation if SKU value already exists * New - Adds the wclsi_push_wc_inventory_to_ls filter hook for better customization 2016-10-18 - version 1.3.4 * New - Adds new filters for better customization: wclsi_import_product, wclsi_update_product, and wclsi_get_lightspeed_inventory 2016-10-16 - version 1.3.3 * Fix - Fixes a bug where matrix/variable products were hidden if the 'Hide out of stock items from the catalog' was enabled * Fix - Minor enhancements and fixes 2016-09-13 - version 1.3.2 * Fix - Fixes a bug where matrix/variation products had their featured image get removed on updates * New - Lightspeed's Custom SKU and Manufacturer SKU fields will now take priority over the 'System SKU' field on product imports 2016-09-08 - version 1.3.1 * New - Removes 100 category cap. You can now import unlimited number of product categories * Fix - Fixes a bug that does not import category data when clicking on 'Import and Sync' on a Lightspeed product 2016-08-14 - version 1.3.0 * Fix - Fixes a bug that broke the daily sync job * Fix - Fixes a bug that duplicates the feature image in a product's image gallery 2016-08-01 - version 1.2.9 * Fix - Fixes a bug where the integration settings page did not display properly * Fix - Fixes an issue where the "shop manager" role did not have access to the Lightspeed import page 2016-07-27 - version 1.2.8 * Fix - Removes dependency on PHP v5.6+ * Tweak - Enhances automated syncing 2016-07-25 - version 1.2.7 * Fix - Bugfix for import custom fields from Lightspeed * Fix - Bugfix for importing images in the right order from Lightspeed * Fix - Bugfix for matrix product image gallery syncing from Lightspeed 2016-07-12 - version 1.2.6 * New - Optimization for updating matrix products - reduces chances of hitting LS api rate limit * Fix - Bugfix for handling empty multi-store data * Fix - Bugfix for error when WooCommerce is disabled 2016-06-23 - version 1.2.5 * Fix - Bugfix for inventory syncing on manual updates from Lightspeed to WooCommerce * Fix - Bugfix for duplicate images (removes featured image duplicate files) * New - Enhancement that does not overwrite WooCommerce product details * Tweak - Various code updates 2016-06-23 - version 1.2.4 * Fix - Bugfix for feature image syncing from WooCommerce to Lightspeed * Fix - Bugfix for ovewriting the "Manage Stock" setting for variation products * Fix - Bugfix for inventory syncing 2016-06-19 - version 1.2.3 * New - Moves API connections to oAuth 2016-06-08 - version 1.2.2 * Fix - Fixes a bug that won't overwrite product properties if they're not set in Lightspeed * New - Adds "CustomFieldValues" to search params so now custom fields will be included on imports * New - Adds search param filters on imports 2016-06-02 - version 1.2.1 * Fix - Fixes a bug that checks stock status incorrectly and doesn't allow for back-orders 2016-05-22 - version 1.2.0 * Fix - Bugfix for duplicate image uploads on product updates * Fix - Bugfix for not importing long and short descriptions on simple product imports * Fix - Bugfix for not pulling short description on simple product updates * Fix - Bugfix for CSS impacting other WP elements * New - New filter hooks for simple product imports 2016-05-01 - version 1.1.9 * New - Improvements to filter and action hooks 2016-04-19 - version 1.1.8 * New - Product syncing from WooCommerce to Lightspeed * Fix - Misc bugfixes and enhancements 2016-03-01 - version 1.1.7 * New - Maintain data links to existing Lightspeed-imported products after reload. 2016-02-27 - version 1.1.6 * New - Lazy sync optimizations, minor bug fixes. 2016-02-25 - version 1.1.5 * Fix - Fixes bug with updating matrix items, better error handling, code cleanup 2016-02-21 - version 1.1.4 * New - Lazy syncing of inventory on page view, adding to cart, and before checkout 2016-02-13 - version 1.1.3 * New - Performance optimizations for product rendering and actions 2016-02-11 - version 1.1.2 * Tweak - Better handling of matrix product imports 2016-02-10 - version 1.1.1 * Fix - Fixes matrix import bug * Fix - Fixes error display bug 2016-01-13 - version 1.1.0 * New - Matrix item <> Variable product support * New - LightSpeed multi-store support * Fix - Various bugfixes and enhancements 2016-01-04 - version 1.0.2 * Fix - Fixes import bug introduced in WordPress v4.4 2015-12-11 - version 1.0.1 * Fix - Fixes LightSpeed issue where syncing with shopID 0 is not allowed. 2015-09-10 - version 1.0.0 * New - First Release.