woocommerce/plugins/woocommerce-admin/client/marketplace
Cem Ünalan 48ebe7b84c
Marketplace: Add "Add to Store" button for free and WordPress.org products #43616 (#43983)
* Marketplace: Add "Add to Store" button for free and WordPress.org products (#43616)

* Marketplace: Install free .org plugins with Add to Store button

* Marketplace: addressed feedback for the the new install free products flow

- Moved notices to the top of the modal
- Updated notice styles slightly
- Updated the CreateOrderSuccessResponse to reflect API changes

* Marketplace: Require the Helper orders API file

* Marketplace: fix linter errors

* Marketplace: form encode when submitting the request

The body is encoded anyways by the WordPress core. However, if I don't
do it here, I can't create a valid signature to be verified by
Woo.com.

I could have just submitted a JSON too, but this seamed easier since
the body is parsed on Woo.com automatically when it's in this form.

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

* Marketplace: remove "~" character in imports and use relative paths

* Marketplace: fix margins in the product with the Add to Store button

* Marketplace: Add conditions to hide the button

We hide it if:

- the product is already installed
- user doesn't have the right capability
- if the product is just installed using our flow and there is
no page refresh

* Marketplace: don't show Add to Store button on Themes and on Discover

* Marketplace: fix linting

* Marketplace: hide ratings from the product if "is-small" class exists

* Marketplace: fix linting errors

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-01-24 23:02:20 +03:00
..
assets/images Marketplace: update no results screen for search 2023-11-22 13:37:37 +00:00
components Marketplace: Add "Add to Store" button for free and WordPress.org products #43616 (#43983) 2024-01-24 23:02:20 +03:00
contexts Marketplace: Add "Add to Store" button for free and WordPress.org products #43616 (#43983) 2024-01-24 23:02:20 +03:00
stylesheets Add subscription install modal (#42009) 2023-12-14 12:45:40 +01:00
utils Marketplace: Add "Add to Store" button for free and WordPress.org products #43616 (#43983) 2024-01-24 23:02:20 +03:00
README.md Add Marketplace readme (#41600) 2023-11-22 07:03:37 +01:00
index.tsx Marketplace: hide search input when viewing subscriptions page on mobile 2023-10-06 12:34:58 +01:00
marketplace.scss Added top margin to `.woocommerce-store-alerts` to address https://github.com/Automattic/woocommerce.com/issues/18448. 2023-10-25 12:46:54 +01:00

README.md

Marketplace

This folder contains the components used in the Marketplace page found in WooCommerce > Extensions.

The page contains two parts, the Woo.com marketplace and a list of products the user purchased.

Marketplace Tabs

  • Discover: A curated list of extensions and themes.
  • Browse: All extensions.
  • Themes: All themes.
  • Search: Search results.

Marketplace API

The data for the Discover section is fetched from the /wc/v3/marketplace/featured endpoint. This behaves as a proxy to fetch and cache the content from the woocommerce.com/wp-json/wccom-extensions endpoint.

Themes, extensions, and search results are fetched directly from Woo.com.

My Subscriptions

This tab contains the list of all the extensions and themes the WooCommerce merchant has purchased from the Woo.com Marketplace.

The merchant needs to connect the site to their Woo.com account to view this list and install, update, and enable the products.

If a subscription is expired, the merchant will be prompted to renew it.

My Subscriptions API

My Subscriptions data uses /wc/v3/marketplace/subscriptions API endpoints to list, install, connect, and update products.

You can find a full list of endpoints in the subscriptions API source code.

Project Structure

The project is structured as follows:

  • components: The React components used in the Marketplace page.
  • contexts: React contexts.
  • utils: Functions used to interact with APIs.
  • stylesheets: Shared stylesheets.
  • assets: Images.

Development

This feature is part of WooCommerce Admin and uses the same development environment.