# merchant/2.3.1/inc/abilities/module-adapters/interface-merchant-module-abilities.php

Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together &amp; More for WooCommerce – Merchant, version 2.3.1. 66 lines.

- Page: https://pluginprobe.com/plugins/merchant/2.3.1/code/inc/abilities/module-adapters/interface-merchant-module-abilities.php
- Raw: https://pluginprobe.com/plugins/merchant/2.3.1/raw/inc/abilities/module-adapters/interface-merchant-module-abilities.php
- Modified: 2026-08-13T11:45:08+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/merchant/2.3.1/code/inc/abilities/module-adapters/interface-merchant-module-abilities.php#L10-L20`.

```php
<?php
/**
 * Merchant Module Abilities Interface.
 *
 * Defines the contract for module-specific campaign handling
 * and operation discovery in the WP Abilities API layer.
 *
 * @package Merchant
 * @since   2.3.0
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Merchant_Module_Abilities_Interface
 *
 * Modules can implement this interface to provide richer
 * campaign summaries, custom field transformations, and
 * fine-grained operation discovery for the WP Abilities API.
 *
 * @since 2.3.0
 */
interface Merchant_Module_Abilities_Interface {

	/**
	 * Get the flexible_content field ID used for campaigns.
	 *
	 * Return null for settings-only modules.
	 *
	 * @return string|null Campaign field ID, or null if not campaign-based.
	 */
	public function get_campaign_field_id();

	/**
	 * Get the field used as the campaign title/name.
	 *
	 * @return string The campaign title field key.
	 */
	public function get_campaign_title_field();

	/**
	 * Get a human-readable summary of a campaign's configuration.
	 *
	 * @param array<string, mixed> $campaign_data Raw campaign field values.
	 *
	 * @return array<string, mixed> Key highlights of this campaign.
	 */
	public function summarize_campaign( $campaign_data );

	/**
	 * Return schema overrides, or null to use fully auto-generated schema.
	 *
	 * @return array<string, mixed>|null Schema overrides.
	 */
	public function get_schema_overrides();

	/**
	 * Get the list of available operations for this module.
	 *
	 * @return array<int, string> e.g., ['get-settings', 'update-settings', 'list-campaigns', ...]
	 */
	public function get_available_operations();
}

```
