Commit Graph

9 Commits

Author SHA1 Message Date
Kyle Nel 5fe2e401f0
Marketplace - tracking enhancements (#41365)
* Add discover products to page view event

* Initial implementation of beacon REST API (WIP)

* Discover page - products viewed

* Product card clicked event (WIP)

This takes data from various sources and sends it based on the different places that product cards could appear.

Data included:
- position
- vendor
- product type
- label - indicates if "promoted" if applicable
- group - the discover page group if applicable
- search_term - the search term if applicable
- category - the product category clicked from

The data is essentially complete. The beacon API needs finalising still though. Also, the vendor name click event will need to be updated with the same data.

* See more button & Category dropdown "more" events

* Marketplace: remove custom Beacon and use "queueRecordEvent"

* Marketplace: reenable product card links

This was disabled temporarily while we tested tracks on click

* Marketplace: Add position to tracks event

Co-authored-by: Kyle Nel <22053773+kdevnel@users.noreply.github.com>

* Marketplace: move Tracks data to a different prop and type

* Marketplace: refactor Tracks calls in product card

---------

Co-authored-by: raicem <unalancem@gmail.com>
Co-authored-by: Cem Ünalan <raicem@users.noreply.github.com>
2023-11-21 09:48:59 +03:00
And Finally 03ba981eea This branch replaces all "skeleton" loading indicators on the Marketplace with more-standard ones. It also:
- Aims to make those skeleton loaders more accurately represent this size and shape of the content that will replace them.
- Refactors the code so that components are responsible for hosting their own skeleton code, attached to an `isLoading` variable, making it easier to stay consistent as changes are made in future.
2023-10-16 16:08:33 +01:00
Kyle Nel d8adecf783
Marketplace Themes: Feature Branch (#40159)
* Support for themes in in-app marketplace.

Contains the changes from:

https://github.com/woocommerce/woocommerce/pull/40247
https://github.com/woocommerce/woocommerce/pull/40272
https://github.com/woocommerce/woocommerce/pull/40302
https://github.com/woocommerce/woocommerce/pull/40303
https://github.com/woocommerce/woocommerce/pull/40333
https://github.com/woocommerce/woocommerce/pull/40368
https://github.com/woocommerce/woocommerce/pull/40375
https://github.com/woocommerce/woocommerce/pull/40375
https://github.com/woocommerce/woocommerce/pull/40389

* `.woocommerce-marketplace__discover`: changed `align-items` `flex-start` to `stretch` to properly display products on large and very large viewports.

* Delete plugins/woocommerce/changelog/add-18026-marketplace-theme-cards

Removing from feature branch before final review

* Delete plugins/woocommerce/changelog/add-18027-themes-to-in-app-search

Removing from feature branch before final review

* Delete plugins/woocommerce/changelog/add-marketplace-theme-discover-section

Removing from feature branch before final review

* Delete plugins/woocommerce/changelog/update-in-app-multiple-category-filters

Removing from feature branch before final review

* Delete plugins/woocommerce/changelog/update-theme-no-result-style

Removing from feature branch before final review

* Add changefile(s) from automation for the following project(s): woocommerce

---------

Co-authored-by: And Finally <andfinally@users.noreply.github.com>
Co-authored-by: Dan Q <dan@danq.me>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Dan Q <danq@automattic.com>
2023-10-04 18:59:34 +02:00
And Finally 3c8f4861e4 [wccom-17942] Only showing feedback snackbar when content of in-app marketplace has finished loading. Making sure snackbar is fixed position, so it's visible wherever you are on the page.
- `ProductListContextProvider` provides `setIsLoading` function as well as `isLoading`.
- `Discover` uses these values from context, instead of keeping a loading state in itself.
- `FeedbackModal` calls `maybSetTimeout` when `isLoading` changes. If `isLoading` isn't truthy, and snackbar hasn't already rendered, it sets a timeout of 5 seconds to show it.

- Removed wrapping <WooFooterItem> from around Footer component, so it's no longer a child of the WooCommerce Admin `.woocommerce-layout__footer` footer.
- Removed the `position: relative` from `.woocommerce-layout__footer`. It needs to be `position: fixed`.
- Added FooterContent component to Footer, to allow the layout we want.

- Changed use of context. This now only has states for the selected tab and loading state.
- We use this context in `Tabs` and `Content` to keep track of which tab is selected, and set the selected tab.
- We also use it in `Discover` and `Extensions`, which both report loading state to the context. This allows us to use it to only render the snackbar when loading is complete.
- Extensions: moved `productList` and `setProductList` and logic for getting product list from the context provider to a state in this component. We don't need to share the list of products in the context.
- Renamed `ProductListContext`, `ProductListContextProvider` and `productListContextValue` to more generic `MarketplaceContext`, `MarketplaceContextProvider` and `marketplaceContextValue`.
- Renamed a constant and created constants for API paths.
- Only shows snackbar after content has loaded, and after a timeout. We set a date `marketplace_redesign_2023_last_shown_date` in local storage to ensure we only show one snackbar.
2023-08-26 12:47:23 +01:00
raicem 60c07013d4 Marketplace: Cache Discover page content
We were hitting the WCCOM API directly from the front end. However,
that limits of in terms of caching and reducing the load on WCCOM.

To prevent that, we added a REST API endpoint. This endpoint
fetches discover page content from WCCOM and puts in a transient.
This is actually how the page works in the previous version. So
we were able to reuse a lot of the code.
2023-08-18 18:59:36 +03:00
raicem 31aa9ebd59 Marketplace: add category filtering 2023-08-15 09:38:17 +03:00
And Finally b56654867a Changes from `add/marketplace-product-card-component` after rebasing on feature branch. 2023-08-08 15:29:08 +01:00
Kyle Nel bd72b2cd08 Add skeleton and cherry-picked commits
- Reset layout to allow full width
- Added Footer & IconWithText components

Add temporary placeholder components

All components here are temporary and can be removed/replaced when their relevant PR is ready.

Add marketplace footer component

The component is added using a SlotFill to use the existing WC Admin footer and utilise full width correctly.

Setup initial content area layout

Update tab styles

Setup styling to match latest design

Finalise footer, wide layout, and tidy styles

- Applies the wide layout from latest MVP design
- Applies the correct footer links to titles
- Some general style tidying

Organise styles and setup variables

Swap to using CSS Grid for layouts

Update breakpoints

Restructure style naming and update to core styles

Add translation in some places

In-app marketplace search component. Cleaned up the commit history of this branch. Copied changes from these commits:

e9828422706176817e511778980005222aa36cc5
9ca2ae351c97fcd27ecd77a1464c2a9ca16de040
e47815705f3854bf50ff48d7975b7cf2f541614b
976811c458e67ae7fa107c8bf8554fdc3e809d85
46eafdf49fe39c12dee77d6ce0885bdeda527dea

Deleted unused import.
2023-08-07 12:34:05 +01:00
And Finally b3723f7a7d First commit. This contains the changes from `update/react-marketplace`, reviewed in https://github.com/woocommerce/woocommerce/pull/38885. 2023-08-07 12:34:05 +01:00