WordPress without WooCommerce: business sites, Easy Digital Downloads, SureCart and the rest Free & Pro

What a WordPress site without WooCommerce can do: a snippet that serves a provider's poppy.json on your domain, why the plugin needs WooCommerce, and what a provider can do.

Updated October 20, 2026

Most WordPress sites are not WooCommerce stores. They are businesses with a contact form, practices with a booking page, publishers, course sellers on Easy Digital Downloads or SureCart, membership sites. The Agent Adapt plugin needs WooCommerce and does nothing without it, so this page is about what those sites can do instead, as of 16 October 2026. Agent Adapt is not affiliated with or endorsed by the makers of any plugin named here, nor with Sierra or Meta.

Why the plugin needs WooCommerce

Everything the plugin answers to an agent is read from WooCommerce: the catalogue, the cart, orders, customer addresses, the policy pages set in WooCommerce’s settings. Without WooCommerce there is nothing to serve, so the plugin stays inactive and shows a notice. Making it serve a different cart would mean a different plugin.

The proxy route

A WordPress site controls its own paths, so it can serve a provider’s discovery document on its own domain. Since 16 October 2026 the protocol requires exactly that: the document speaks for the host that serves it after any redirects, so the earlier route, a redirect to the provider’s address with the Redirection plugin or an .htaccess line, no longer counts. A redirect plugin cannot do the job. A small must-use plugin can: save this as wp-content/mu-plugins/agent-discovery.php, with your provider’s hosted document address in place of the example.

<?php
/**
 * Serves the hosted Company's discovery document on this domain.
 */
add_action(
	'template_redirect',
	function () {
		$path = (string) wp_parse_url( isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : '', PHP_URL_PATH ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- compared only.
		if ( '/.well-known/poppy.json' !== $path ) {
			return;
		}
		$body = get_transient( 'agent_discovery_document' );
		if ( ! is_string( $body ) || '' === $body ) {
			$response = wp_remote_get( 'https://hosted-document-address-for-your-site', array( 'timeout' => 5, 'redirection' => 0 ) );
			if ( is_wp_error( $response ) || 200 !== (int) wp_remote_retrieve_response_code( $response ) ) {
				status_header( 503 );
				header( 'Retry-After: 60' );
				exit;
			}
			$body = (string) wp_remote_retrieve_body( $response );
			set_transient( 'agent_discovery_document', $body, 5 * MINUTE_IN_SECONDS );
		}
		status_header( 200 );
		header( 'Content-Type: application/json; charset=utf-8' );
		header( 'Cache-Control: public, max-age=300' );
		echo $body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- the provider's JSON document, served as fetched.
		exit;
	}
);

It fetches the hosted document, keeps a copy for five minutes, and serves it with a JSON content type. getagentadapt.com itself serves its own discovery document this way, in its theme. Test with curl -sI https://your-site.com/.well-known/poppy.json: you want a 200 with content-type: application/json and no location: header. If you get WordPress’s 404 page, the file is not loading; it must sit directly inside mu-plugins, not in a sub-folder. If you would rather do it on the web server, the nginx and Apache lines in Headless and custom stores work on a WordPress host too.

The provider is a hosted Company that runs the issuer and the agent API for your domain. What it can do depends on what your site is:

  • A business site that sells nothing online. The protocol’s conversation channel is the useful part: a Company Agent answers a customer’s assistant from your pages (what you do, where, when, how much, how to book) and hands off to a person when it should. See Services and bookings.
  • Easy Digital Downloads, SureCart, WP Simple Pay and similar. A provider can read your products from your public pages or from the plugin’s API where it has one, and hand the customer to your checkout. Customer account features depend on what the plugin exposes. See Books, media and digital products.
  • Membership and course sites. Mostly questions and sign-up links, which a Company Agent handles.

Agent Adapt’s hosted Company for sites that cannot run its plugin, with the Company Agent for business sites, is built and running, in early access by email, and not yet on sale; ask at [email protected]. A small WordPress "connect" plugin that serves the document for you is being considered and is not built.

If you might add WooCommerce anyway

A site that is about to start selling physical products would get the full plugin route by adopting WooCommerce: real accounts, real cart, one domain, no provider. See WooCommerce and personal agents. Adding WooCommerce only to be agent-ready is not advised; adopt it for the shop’s reasons.

Common questions

Can I install Agent Adapt and leave WooCommerce inactive?

You can, and it will do nothing but show a notice. It does not publish discovery without WooCommerce.

Will there be an Agent Adapt plugin for sites without WooCommerce?

A "connect" plugin that only serves a hosted Company’s document on your domain is being considered. It is not built. The snippet above does the same thing by hand.

Does the customer pay through my site?

If your site sells something, yes, on your checkout. Agents cannot pay under the protocol’s current draft.

Is there anything to do on a site that only has a contact form?

Make sure what a customer would ask about (hours, location, prices, how to book, what you do and don’t do) is on public pages in text. That is what a Company Agent would answer from.

Still stuck? Email [email protected].