Commit Graph

224 Commits

Author SHA1 Message Date
Manos Psychogyiopoulos 2bda6e2e26 Use transients to cache products/variations stats results (https://github.com/woocommerce/woocommerce-admin/pull/7067)
* Use transients to cache products/variations stats results

* Add readme entry

* Fix readme

Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
2021-07-02 17:38:35 +08:00
Cem Ünalan 01bd0027c1 Add filter to change the emailed report filename (https://github.com/woocommerce/woocommerce-admin/pull/7178)
* Reports: allow changing the export id

"woocommerce_admin_export_id" can be used to change
the filename when downloading an emailed report export.

* Add testing instructions and changelog

* Reports: Sanitize the file name for the report export
2021-06-24 16:59:23 +08:00
Paul Sealock d6f59cce62 Load Analytics API behind feature check (https://github.com/woocommerce/woocommerce-admin/pull/7193)
* add toggle and check before registering routes

* move taxes out from analytics check

* fix merge error

* ensure features are loaded before calling Feature methods

* remove unused use
2021-06-24 09:02:05 +12:00
Jeff Stieler 9f63719baa Fix attribute filter for "any X" variations. (https://github.com/woocommerce/woocommerce-admin/pull/7046)
* Use order item data to match attributes.

Fixes matching on products with "any x" attributes.

* Fix attribute query on variations report.

* Fix variations report item count.

* Add test coverage.

* Add changelog entry.

* Fix non-string query prop warning in SelectControl component.

* Move custom attribute retrieval to a reusable Trait.

* Ensure all custom attribute terms are included in the API response.

* Combine all terms from custom attributes.

When they're split across multiple products.
2021-06-22 08:45:08 -04:00
Jeff Stieler b5f397fa89 Fix report arguments handling in CSV export. (https://github.com/woocommerce/woocommerce-admin/pull/7165)
* Ensure report args are mapped and sanitized before CSV export.

* Add test.

* Fix products query when there are no products in the specified categories.

* Add changelog.
2021-06-18 10:53:52 -06:00
Joshua T Flowers f57edb6e6c Add payment gateway suggestion unit tests (https://github.com/woocommerce/woocommerce-admin/pull/7142)
* Add payment gateway suggestions unit tests

* Fix up old key fields

* Fix up lingering semantic inconsistencies

* Add changelog entry

* Add in default payment gateways for tests

* Handle PR feedback

* Fix up rebased changelog entries
2021-06-15 17:24:10 -04:00
Taha Paksu 399ef81b11 Fix currency display errors in homescreen order activity card (https://github.com/woocommerce/woocommerce-admin/pull/7181) 2021-06-15 21:02:14 +03:00
louwie17 db845addd4 Parse transient value to integer if retrieved from transient (https://github.com/woocommerce/woocommerce-admin/pull/7161)
* Parse transient value to integer if retrieved from transient

* Add changelog
2021-06-14 14:05:01 -03:00
Jeff Stieler d3fd2f36d0 Include orders without coupons when excluding specific coupon IDs. (https://github.com/woocommerce/woocommerce-admin/pull/7021)
* Include orders without coupons when excluding specific coupon IDs.

* Add changelog entry.

* Fix default Orders before/after query args.

* Specify date range for test query.
2021-06-08 14:56:23 -04:00
Joshua T Flowers a2fa141bcb Update payment gateway suggestions semantics to be more consistent (https://github.com/woocommerce/woocommerce-admin/pull/7130)
* Rename and simplify frontend component names

* Rename feature flag and feature folder

* Rename transients and filters

* Rename SlotFills

* Fix feature name comment

* Update variable naming in payment suggestions

* Update WCPay Button component

* Rename suggestion key to id

* Rename recommended to recommendation

* Add changelog entry

* Update isConfigured to needsSetup

* Fix key id reference in WCPayMethodCard

* Update onboarding component filenames and exports

* Fix typo

* Add changelog entry

* Fix up remaining references to keys/ids
2021-06-08 13:40:57 -04:00
David Garcia Watkins 9bd4eef17e Call existing filters for leaderboards. (https://github.com/woocommerce/woocommerce-admin/pull/6626)
* Call existing filters for leaderboards.
Fixes category data not refreshing when selecting a different currency while using docs/examples/extensions/sql-modification

* Update changelog

Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
2021-05-18 15:14:28 +08:00
louwie17 7cfaa21db2 Add source support for notes query (https://github.com/woocommerce/woocommerce-admin/pull/6979)
* Add source support for notes query

* Add changelog

* Removed ternary condition
2021-05-14 13:13:51 -03:00
Sam Seay 409618d73a Make the stat titles more specific to remove ambiguity (https://github.com/woocommerce/woocommerce-admin/pull/6925) 2021-05-11 08:24:09 +12:00
Mik 820bf30e29 Replace marketing extension - Google Listings and Ads (https://github.com/woocommerce/woocommerce-admin/pull/6939)
* Replace google icon

* Remove note for Google Ads extension

* Replace extension in API OnboardingProfile

* Record event for new extension

* Replace extension in onboarding flow

* Replace extension benefits

* Change background colour of Google icon

* Fix svg warnings

* Add changelog entry

* Fix prettier error

* Add old note to obsolete list for removal
2021-05-10 10:56:47 +01:00
jonathansadowski 90d2bdcb1f Fix an issue with OBW when wc-pay and Jetpack are both being installed (https://github.com/woocommerce/woocommerce-admin/pull/6957)
* Fix an issue with OBW when wc-pay and Jetpack are both being installed

* Add readme and testing instructions for woocommerce/woocommerce-admin#6957

* Add filters for the installed and activated plugins and tie into those filters for ensuring Jetpack is installed ahead of WCPay
2021-05-07 14:22:12 -05:00
Paul Sealock 34d1f8c36c Use Rule Processing for Free Extensions List (https://github.com/woocommerce/woocommerce-admin/pull/6933)
* Copy payments gateways

* remove field localization

* remove is_configured
2021-05-06 11:49:47 +12:00
Joshua T Flowers 7bed3d01e8 Try: Use rule processing for remote payment methods (https://github.com/woocommerce/woocommerce-admin/pull/6830)
* Add initial remote payment method feature

* Add onboarding payments REST endpoint

* Localize payment payment methods prior to storing

* Delete the specs transient when locale is switched

* Add changelog entry
2021-04-26 16:19:41 -04:00
louwie17 be7dd2dd5e Add recommended payment methods (https://github.com/woocommerce/woocommerce-admin/pull/6760)
* Add initial payment recommendations code for the payments settings

* Added request data for the recommended payments

* Some styling updates and make sure it does not show when marketplace suggestions is disabled

* Update url

* Update comment in php class

* Add tests

* Fix lint errors

* Remove unnecessary type

* Fix lint error

* Fix broken test

* Convert plugin package to typescript

* Fix lint errors

* Add changelog

* Add support for locale-data

* Fix track name

* Fix up the tests

* Fix lint errors

* Address PR feedback

* Add tests for option hydration

* Make types more robust in plugins reducer

* Made use of SlotFill component instead of page registry and router

* Removed console log, and fixed types

* Add newer version of i18n to data package, for newer types

* Make the request to WooCommerce.com more restrictive

* Fix path of import

* Update PHP with suggested changes

* Remove SlotFill with applyFilters

* Update copy and PR feedback

* Update package lock

* Updated package lock

* Fix the package lock

* Added dot, and some minor styling changes

* Add test instructions
2021-04-20 14:17:19 -03:00
Paul Sealock a336c54e22 make get_active_plugins return JS array, not object (https://github.com/woocommerce/woocommerce-admin/pull/6821) 2021-04-20 09:33:25 +12:00
Joshua T Flowers 8f018fc518 Add plugin installer to allow installation of plugins via URL (https://github.com/woocommerce/woocommerce-admin/pull/6805)
* Allow any plugin to be installed or activated

* Add PluginInstaller class

* Redirect to referring page if one exists

* Store message and show after redirect

* Add changelog and testing instructions
2021-04-16 15:45:43 -04:00
Adrian Duffell 6434ffb9c8 Add nonce support to note actions (https://github.com/woocommerce/woocommerce-admin/pull/6726)
* Add database columns

* Add support for nonces in note actions

* Add test for nonces in note actions

* Fix db values should default to null

* Fix a bug where URLs had encoded ampersands

* Update variable naming for clarity

* Add throwing an exception when note name not found

* Add tests for nonces in the datastore

* Add changelog

* Fix default paramater name

* Add changelog

* Revert "Add changelog"

This reverts commit f842bc58e4db66c8a497ca4f38d1b0294590192d.
2021-04-16 13:56:39 +08:00
Fernando 36e7a35ef7 Updated event tracking for merchant email notes (https://github.com/woocommerce/woocommerce-admin/pull/6698)
* Fixed user id unsetting

* Fixed event name

* Added cookie unsetting before recording

This commit adds the cookie unsetting before recording and adds a small refactor to the merchant email notes event recording.

* Added small refactor to the merchant email notes event recording

* Renamed event `wcadmin_store_alert_action`

This commit renames the event `wcadmin_store_alert_action ` to `store_alert_action `

* Removed check

* Fixed method name

* Changed "Notes" method to private

The method "record_tracks_event_without_cookies" now is `private

Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
2021-04-15 11:01:26 -03:00
Jeff Stieler d819373057 Avoid updating customer info synchronously when "last active" is modified. (https://github.com/woocommerce/woocommerce-admin/pull/6765)
* Schedule (async) customer update when last active date is modified.

* Add test case for scheduled customer update.

* Add changelog entry.
2021-04-12 10:17:02 -04:00
Fernando 74d1afaded Fixed event tracking for merchant email notes (https://github.com/woocommerce/woocommerce-admin/pull/6616)
* Modified MerchantEmailNotifications class

This commit modifies the class "MerchantEmailNotifications" in order to set the current user before the events tracking

# Conflicts:
#	src/Notes/MerchantEmailNotifications/MerchantEmailNotifications.php
#	src/Notes/MerchantEmailNotifications/NotificationEmail.php
#	tests/notes/class-wc-tests-email-notes.php

* Added changelog

# Conflicts:
#	readme.txt

* Added testing instructions

* Fixed changelog

Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
2021-03-29 16:00:23 -03:00
Hsing-yu Flowers be7d28d4bc Add customer name column to CSV export (https://github.com/woocommerce/woocommerce-admin/pull/6556)
* Add customer name column to CSV export

* Add changelog and testing instructions

* Handle PR feedback
2021-03-16 09:54:07 +10:00
Hsing-yu Flowers 918d97f36d Add gross sales column to CSV export (https://github.com/woocommerce/woocommerce-admin/pull/6567) 2021-03-13 15:11:16 +13:00
Moon 3b26396ad9 Allow manager role to query options (https://github.com/woocommerce/woocommerce-admin/pull/6577)
* Give manager role permission for woocommerce_ces_tracks_queue and woocommerce_navigation_intro_modal_dismissed options

* Add changelog
2021-03-11 20:01:11 -08:00
Sam Seay e51e1401c5 Fix a bug where the JP connection flow would not activate (https://github.com/woocommerce/woocommerce-admin/pull/6521)
Fixes woocommerce/woocommerce-admin#6488

Changes.

* See the issue for the discussion, but we're changing the behaviour of triggering the connection flow as part of this. Before it was required that both wc-services and wc-admin were installed before triggering the flow.

* Also the plugins value was not being updated properly in the new flow, but plugins is not used in any useful way in the onboarding profile, so I have removed it completely. We now rely on the actual installed plugins to determine what is installed/activated.
2021-03-12 16:36:23 +13:00
Sam Seay 4ec75439c5 Remove rest API props from onboarding confirmed as no longer used. (https://github.com/woocommerce/woocommerce-admin/pull/6520) 2021-03-11 08:50:23 +13:00
Fernando 0ebccd674b Fixed associated Order Number for refunds (https://github.com/woocommerce/woocommerce-admin/pull/6428)
* Fixed related orders problem

This commit fixes the related orders problem

* Fixed customer type query

* Fixed get_order_number filtering

* Added a default value to totalResults

This commit adds a default value to totalResults (in order to avoid errors)

* Added testing instructions

# Conflicts:
#	TESTING-INSTRUCTIONS.md

* Added changelog

# Conflicts:
#	readme.txt

* Fixed orders without products

* Added tests

Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
2021-03-09 15:57:50 -03:00
Fernando 5b368f4227 Store profiler: Business Details steps changes (https://github.com/woocommerce/woocommerce-admin/pull/6503)
* Added "MailPoet" option to Business Details step

This commit adds the "MailPoet" option to Business Details step in the OBW

* Fixed plugins order

* Creative Mail option toggled off by default

This commit toggles off the Creative Mail option by default

* Fixed copy and image URL

* Added mailpoet.png image

* Added changelog

# Conflicts:
#	readme.txt

* Added testing instructions

# Conflicts:
#	TESTING-INSTRUCTIONS.md

* Fixed key

* Fixed lint error

* Fixed testing instructions

Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
2021-03-09 15:00:34 -03:00
Sam Seay 7229948cd1 Add a new revenue option, 'rather not say' (https://github.com/woocommerce/woocommerce-admin/pull/6475) 2021-03-03 11:59:18 +13:00
Elizabeth Pizzuti bc5c6a700b Updated copy in task lists (https://github.com/woocommerce/woocommerce-admin/pull/6298) 2021-02-11 12:57:51 +13:00
Joel Thiessen fda46f9920 Adding Navigation Favorites REST API Endpoints (https://github.com/woocommerce/woocommerce-admin/pull/6282) 2021-02-09 18:35:47 -08:00
louwie17 e7c0d0b8b1 Add paypal commerce obw integration (https://github.com/woocommerce/woocommerce-admin/pull/6261)
* Initial paypal plugin name replacement

* Add necessary fields for the Paypal plugin

* Updated payment methods info to use new options key

* Add most of the OBW paypal integration

* Some old code cleanup

* Get ready for the dynamic onboarding addition.

* Update paypal onboarding, adding script after plugin enabled

* Revert some old changes

* Check if plugin is enabled correctly

* Allow for manual input as a fallback

* Fix unit tests and alter the config updates

* Update plugin to use latest rest endpoint instead :)

* Add comment

* Fix some naming from PR feedback

* Made use of the payment gateway info from tasks/status, and show 500 error message

* Add support for the status and set credential endpoints

* Set the enabled value in ppcp-settings as well

* Added fall back for the 'get-status' method

* Fix issue where I was overwriting the options :/

* Small fix for when updating items manually

* Add changelog

* Remove old tests

* Add testing instructions
2021-02-06 09:41:26 +10:00
Sam Seay 6847c44869 Add the Mollie payment provider setup task (https://github.com/woocommerce/woocommerce-admin/pull/6257)
* Whitelist the mollie plugin and ensure it does not crash on activation.

* Improve error messages for failed plugin installs.

* Add the payment provider screen for the Mollie payment provider.

* Revert change to try/catch activation, its not needed.

* Move the whitelist of mollie to Onboarding.php.

* Add api fetch to dep list of components, update the node setup workflow on gh actions.

* Pass indsutry to the klarna tests to avoid a crash.

* Add some tests for the mollie payment method.

* Remove redundant change to handler.

* Add a changelog entry for the feature.

* fix name of option

* Add testing instructions

Co-authored-by: Rebecca Scott <me@becdetat.com>
2021-02-05 13:41:55 +10:00
louwie17 74b3eccbc9 Add option to create product by template (https://github.com/woocommerce/woocommerce-admin/pull/5892)
* Initial product template modal

* Add custom product template for the new-post route

* Add test, and code for making use of the insert_post action

* Added ProductTemplates Datastore to create template with REST api

* Add back variation method, deleted by accident

* Move product from template endpoint to OnboardingTasks class

* Fix lint errors

* Added tracks and template hooks

* Rename product create permission check function, for less confusion

* Remove duplicate recommended option

* Fix stylelint errors

* PHP tests for the product_from_template endpoint

* Fix onboarding php unit tests

* Write tests for client product template options

* Refactored list component, to use it as a radio control list

* Fix lint errors

* REmove assertion as it fails on the ci

* Add changelog

* Updating tests to make sure all product attribute taxonomies are removed

* Add more specific assertions for importing sample products test

* Update the sample products test

* Deconstruct item object, from PR suggestion

* Fix PHP errors, by updating the createProductFromTemplate call
2021-01-25 12:52:42 -04:00
Fernando 513173a9d9 Add merchant email notifications (https://github.com/woocommerce/woocommerce-admin/pull/5922)
* Added MerchantEmailNotifications class

* Added new type and Events refactor

# Conflicts:
#	src/Events.php

* Added templates

* Refactored MerchantEmailNotifications and NotificationEmail

* Templates refactored

* Added email opening tracking endpoint

* Added templates handling

* Moved folder `MerchantEmailNotifications`

* Fixed template extensibility

* Fixed note `heading` check

* Added default type in `get_template_filename`

* Added tests

* Removed bypass

* Modified URL

* Added required noteTypes

* Added flag for functionallity

* Fixed plain link

* Fixed comment

* Turned email notifications on by default

This commit adds the code to turn email notifications on by default

* Fixed email styles

* Fixed typo

* Renamed method "possible_send" as "run"

* Removed unnecessary control

* Fixed another typo

* Renamed method as "get_notification_email_addresses"

* Refactored method "send_merchant_notification"

* Renamed plain-merchant-notification

* Fixed tests

* Merchant email notifications - Action triggering (https://github.com/woocommerce/woocommerce-admin/pull/5976)

* Added templates

# Conflicts:
#	includes/emails/plain-mechant-notification.php

# Conflicts:
#	includes/emails/html-merchant-notification.php

* Added note action triggering

This commit adds the note actions triggering

# Conflicts:
#	includes/emails/html-merchant-notification.php

* Fixed error handling

* Refactored "trigger_note_action" method

* Fixed actions url

* Fixed note URL

* Added external redirect

* Added image and html handling for email

* Fixed tests

* Fixed buttons style

Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>

* Add your first product: email notification (https://github.com/woocommerce/woocommerce-admin/pull/6024)

* Added AddFirstProduct note

# Conflicts:
#	src/Events.php

* Added "AddFirstProduct" email note

This commit adds the email note "AddFirstProduct"

* Fixed image

This commit removes the image img-product-light.svg to use a png instead. Otherwise, the gmail proxy would break the image

* Fixed readme.txt

Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>

* Added readme.txt

Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
2021-01-12 21:09:22 -03:00
Lee Willis 6c3f30a1de Fix undefined index error (https://github.com/woocommerce/woocommerce-admin/pull/5990)
Co-authored-by: Lee Willis <lee@ademti-software.co.uk>
2021-01-07 16:13:56 -05:00
Jeff Stieler c8c544f70c Support custom product attributes in advanced filter (https://github.com/woocommerce/woocommerce-admin/pull/5848)
* Add product attributes autocomplete for Search control.

* Support single selection in Search component.

* Fix SelectControl input after selection in single mode.

* Remove label from Search component's inner SelectControl.

Placeholder is the behavior we want to avoid label and selection collision.

* Match Search component selected prop to SelectControl.

It's passed through anyhow.

* Rework attribute filter to use new endpoints for custom terms.

* Hook up custom attribute filter to report queries.

* Fix errant space in filter name.

* Fix SelectControl active status when control is disabled.

* Fix SelectControl "has tags" logic for non-multiple use cases.

* Fix attribute filter screen reader text.

* Update changelogs.

* Move custom attribute test to it's own function.

* Remove SelectControl input disabling.

This was supposed to improve keyboard behavior for non-multiple controls, but it was questionable.

* Fix backspace in attribute term field.
2020-12-17 09:59:01 -05:00
Jeff Stieler f5b243d073 Fix typo in Variation Stats Datastore context variable. (https://github.com/woocommerce/woocommerce-admin/pull/5874) 2020-12-15 09:28:13 +13:00
Jeff Stieler 1ce3fb1436 Add Product Attributes Endpoint (https://github.com/woocommerce/woocommerce-admin/pull/5840)
* Add new product attributes endpoint that allows searching.

Including custom attributes in the results.

* Add endpoint to fetch custom attribute values by slug.

* Add initial tests for Product Attributes endpoint.

* Test Product Attribute search.

* Fix schema/params for attribute terms endpoint.

* Add tests for custom term values endpoint.

* Add a LIMIT to the attributes query.

* Add endpoint to retrieve single attribute by slug.

Fixes the 'self' link.
2020-12-14 10:28:48 -05:00
louwie17 484e945460 Fix updating WC customer without wordpress user (if multiple orders are present) (https://github.com/woocommerce/woocommerce-admin/pull/5825)
* Create get last order function that does not rely on Wordpress user, and add test for use case

* Add change log

* Make sure tests use the right index for comparison

* Order by date_created_gmt first and order id second, and wrote test for get_last_order

* Fix test assertion, and remove unnecessary parameter
2020-12-10 09:42:17 -04:00
Moon bc6ba4f3ac Revert "Convert before and after dates to UTC (https://github.com/woocommerce/woocommerce-admin/pull/5819)" (https://github.com/woocommerce/woocommerce-admin/pull/5834)
This reverts commit c86563c3ac.
2020-12-07 16:01:22 -08:00
Moon c86563c3ac Convert before and after dates to UTC (https://github.com/woocommerce/woocommerce-admin/pull/5819)
Fixes woocommerce/woocommerce-admin#5810
2020-12-07 11:53:06 +13:00
Adrian Duffell 300504ea94 Fix inconsistent customer Type parameter in REST endpoints (https://github.com/woocommerce/woocommerce-admin/pull/5823)
The wc-analytics/reports/orders and /wc-analytics/reports/orders/stats endpoints have inconsistent parameter names for filtering the customer type: customer_type vs customer.

This was affecting the Customer Type filter in the orders analytics, reported in issue woocommerce/woocommerce-admin#5803, where the component expects the parameter names to be the same. This is because it uses a parameter name based on the key in the filter configuration (customer_type).

To resolve this, this PR updates /wc-analytics/reports/orders/stats to accept both customer_type and customer as parameter names for this filter. The customer parameter has however been deprecated in its description to discourage usage.

Co-authored-by: Sam Seay <samueljseay@gmail.com>
2020-12-07 06:39:29 +08:00
Jeff Stieler a476445788 Fix Orders Report Product/Variation Exclusion Filters (https://github.com/woocommerce/woocommerce-admin/pull/5822)
* Add aliases to product lookup table joins in the orders report.

Fixes issues with stacking product-type filters.

* Fix orders report product/variation exclusion filters.

Using "anti join" query strategy.

* Add changelog.

* Add test for product exclusion filter.
2020-12-04 11:33:58 -05:00
louwie17 e09f7d623e Update customer data on order update (https://github.com/woocommerce/woocommerce-admin/pull/5776)
* Add sync order customer to scheduler to update customer info on order update

* Write tests for syncing customer data from order
2020-12-03 08:55:27 -04:00
Jeff Stieler e1a77c6754 Allow actionable statuses in orders endpoint(s) filters. (https://github.com/woocommerce/woocommerce-admin/pull/5733) 2020-11-30 10:11:49 -05:00
Jeff Stieler 2a302603c6 Migrate Stock Panel to Homescreen (https://github.com/woocommerce/woocommerce-admin/pull/5729)
* Refactor low stock variable to be the count instead of a boolean.

* Add initial render of the Stock panel on the homescreen.

* Move existing Stock panel to homescreen accordion.

* Ensure int value for low stock product count.

* Update ProductImage styling.

* Update stock activity car styles.

* Only show 5 low stock products.

* Add "undo" action to the stock updated snackbar.

* Fix check for explicit notice dismissal when taking actions.

* Hide now-in-stock products after updating.

By cllearing "edited" flag on successful update.

* Fetch more products after updating stock.

* Fix the number of product placeholders shown.

* Only show products placeholders on the initial fetch.

* Fix placeholder style.

* Fetch low stock count dynamically.

* Let initialOpen prop toggle Accordion panels if they haven't been toggled by the user.

* Refactor item total count state.

Allows for auto-updating item totals whenever identical queries (from a totals perspective) are issued.

* Add last order date to low stock products API response.

* Allow non-date strings in ActivityCard date prop.

* Add last order date to stock panel cards.

* Remove empty stock panel view.

* Add test file for StockPanel.

* Only request necessary fields from products endpoint.

* Add test for products fetch after stock update.

* Fix field name.

* Add test for last order date in low stock products API response.

* Stock panel should be initially closed.

* Skip updating a product if the quantity is unchanged.
2020-11-25 13:51:15 -05:00