Specialized workflow for building WooCommerce stores including setup, payment gateway integration, shipping configuration, custom product types, store optimization, and WordPress 7.0 enhancements.
AI Integration
DataViews for Orders
Real-Time Collaboration
Admin Refresh
Abilities API
Use this workflow when:
app-builder - Project scaffoldingwordpress-penetration-testing - WordPress patterns// Minimum requirements for WP 7.0 + WooCommerce
// Add to wp-config.php for collaboration settings
define('WP_COLLABORATION_MAX_USERS', 10);
// AI features are enabled by installing a provider plugin
// Install OpenAI, Anthropic, or Gemini connector from WordPress.org
// Then configure via Settings > Connectors in admin panel
Use @app-builder to set up WooCommerce store
wordpress-penetration-testing - WooCommerce patterns// Auto-generate product descriptions with AI
add_action('woocommerce_new_product', 'generate_ai_description', 10, 2);
function generate_ai_product_description($product_id, $product) {
if ($product->get_description()) {
return; // Skip if description exists
}
// Check if AI client is available
if (!function_exists('wp_ai_client_prompt')) {
return;
}
$title = $product->get_name();
$short_description = $product->get_short_description();
$prompt = sprintf(
'Write a compelling WooCommerce product description for "%s" that highlights key features and benefits. Make it SEO-friendly and persuasive.',
$title
);
if ($short_description) {
$prompt .= "\n\nShort description: " . $short_description;
}
$result = wp_ai_client_prompt($prompt);
if (is_wp_error($result)) {
return;
}
// Use temperature for consistent output
$result->using_temperature(0.3);
$description = $result->generate_text();
if ($description && !is_wp_error($description)) {
$product->set_description($description);
$product->save();
}
}
Use @wordpress-penetration-testing to configure WooCommerce products
payment-integration - Payment processingstripe-integration - Stripepaypal-integration - PayPal// AI-powered fraud detection
// Note: This is a demonstration - implement proper fraud detection with multiple signals
// Use AI to analyze order for fraud indicators
function ai_check_order_fraud($order_id) {
// Check if AI client is available
if (!function_exists('wp_ai_client_prompt')) {
return false; // Default to no suspicion if AI unavailable
}
$order = wc_get_order($order_id);
if (!$order) {
return false;
}
$prompt = sprintf(
'Analyze this order for potential fraud. Order total: $%s. Shipping address: %s, %s. Billing: %s. Is this suspicious? Return only "suspicious" or "clean" without explanation.',
$order->get_total(),
$order->get_shipping_address_1(),
$order->get_shipping_city(),
$order->get_billing_email()
);
$result = wp_ai_client_prompt($prompt);
if (is_wp_error($result)) {
return false;
}
$result->using_temperature(0.1); // Low temp for consistent classification
$analysis = $result->generate_text();
return (strpos($analysis, 'suspicious') !== false);
}
Use @stripe-integration to integrate Stripe payments
Use @paypal-integration to integrate PayPal
wordpress-penetration-testing - WooCommerce shipping// AI-powered shipping recommendations
add_action('woocommerce_after_checkout_form', 'ai_shipping_recommendations');
function ai_shipping_recommendations($checkout) {
// Check if AI client is available
if (!function_exists('wp_ai_client_prompt')) {
return;
}
$cart = WC()->cart;
if ($cart->is_empty() || !$cart->get_cart_contents_weight()) {
return;
}
$prompt = sprintf(
'Based on this cart (total weight: %d kg, destination: %s), recommend the best shipping method from: free shipping (orders over $100), flat rate ($9.99), or express ($24.99). Consider delivery time and cost efficiency. Respond with just the recommended method name.',
$cart->get_cart_contents_weight(),
WC()->customer->get_shipping_country()
);
$result = wp_ai_client_prompt($prompt);
if (is_wp_error($result)) {
return;
}
$result->using_temperature(0.1); // Low temp for consistent recommendation
$recommendation = $result->generate_text();
if (strpos($recommendation, 'express') !== false) {
wc_add_notice(esc_html__('AI Recommendation: Consider Express shipping for faster delivery!', 'woocommerce'), 'info');
}
}
Use @wordpress-penetration-testing to configure shipping
frontend-developer - Store customizationfrontend-design - Store design// Custom product template with WP 7.0 blocks
add_action('woocommerce_after_main_content', 'add_product_ai_chat');
function add_product_ai_chat() {
if (!is_product()) return;
global $product;
?>
<div class="product-ai-assistant">
<h3>AI Shopping Assistant</h3>
<button id="ai-chat-toggle" type="button">Ask about this product</button>
<div id="ai-chat-panel" style="display:none;">
<div id="ai-chat-messages"></div>
<input type="text" id="ai-chat-input" placeholder="Ask about sizing, materials, etc.">
</div>
</div>
<script>
document.getElementById('ai-chat-toggle').addEventListener('click', function() {
const panel = document.getElementById('ai-chat-panel');
panel.style.display = panel.style.display === 'none' ? 'block' : 'none';
});
</script>
<?php
}
// AI-powered product Q&A
add_action('wp_ajax_ai_product_question', 'handle_ai_product_question');
add_action('wp_ajax_nopriv_ai_product_question', 'handle_ai_product_question');
function handle_ai_product_question() {
// Verify nonce for security
if (!check_ajax_referer('ai_product_question_nonce', 'nonce', false)) {
wp_send_json_error(['message' => 'Security check failed']);
}
$question = isset($_POST['question']) ? sanitize_text_field($_POST['question']) : '';
$product_id = isset($_POST['product_id']) ? intval($_POST['product_id']) : 0;
if (empty($question) || empty($product_id)) {
wp_send_json_error(['message' => 'Missing required fields']);
}
$product = wc_get_product($product_id);
if (!$product) {
wp_send_json_error(['message' => 'Product not found']);
}
// Check if AI client is available
if (!function_exists('wp_ai_client_prompt')) {
wp_send_json_error(['message' => 'AI service unavailable']);
}
$prompt = sprintf(
'Customer question about "%s": %s\n\nProduct details:
- Price: $%s
- SKU: %s
- Stock: %s
Answer helpfully, accurately, and concisely:',
$product->get_name(),
$question,
$product->get_price(),
$product->get_sku(),
$product->get_stock_status()
);
$result = wp_ai_client_prompt($prompt);
if (is_wp_error($result)) {
wp_send_json_error(['message' => $result->get_error_message()]);
}
$result->using_temperature(0.4); // Slightly higher for more varied responses
$answer = $result->generate_text();
if (is_wp_error($answer)) {
wp_send_json_error(['message' => 'Failed to generate response']);
}
wp_send_json_success(['answer' => $answer]);
}
Use @frontend-developer to customize WooCommerce templates
wordpress-penetration-testing - WooCommerce extensions// Register ability categories first
add_action('wp_abilities_api_categories_init', function() {
wp_register_ability_category('ecommerce', [
'label' => __('E-Commerce', 'woocommerce'),
'description' => __('WooCommerce store management and operations', 'woocommerce'),
]);
});
// Register abilities
add_action('wp_abilities_api_init', function() {
// Register ability to update inventory
wp_register_ability('woocommerce/update-inventory', [
'label' => __('Update Inventory', 'woocommerce'),
'description' => __('Update product stock quantity', 'woocommerce'),
'category' => 'ecommerce',
'input_schema' => [
'type' => 'object',
'properties' => [
'product_id' => ['type' => 'integer', 'description' => 'Product ID to update'],
'quantity' => ['type' => 'integer', 'description' => 'New stock quantity']
],
'required' => ['product_id', 'quantity']
],
'output_schema' => [
'type' => 'object',
'properties' => [
'success' => ['type' => 'boolean'],
'new_quantity' => ['type' => 'integer']
]
],
'execute_callback' => 'woocommerce_update_inventory_handler',
'permission_callback' => function() {
return current_user_can('manage_woocommerce');
}
]);
// Register ability to process orders
wp_register_ability('woocommerce/process-order', [
'label' => __('Process Order', 'woocommerce'),
'description' => __('Mark order as processing and trigger fulfillment', 'woocommerce'),
'category' => 'ecommerce',
'input_schema' => [
'type' => 'object',
'properties' => [
'order_id' => ['type' => 'integer', 'description' => 'Order ID to process']
],
'required' => ['order_id']
],
'output_schema' => [
'type' => 'object',
'properties' => [
'success' => ['type' => 'boolean'],
'status' => ['type' => 'string']
]
],
'execute_callback' => 'woocommerce_process_order_handler',
'permission_callback' => function() {
return current_user_can('manage_woocommerce');
}
]);
});
// Handler for inventory update
function woocommerce_update_inventory_handler($input) {
$product_id = isset($input['product_id']) ? absint($input['product_id']) : 0;
$quantity = isset($input['quantity']) ? absint($input['quantity']) : 0;
$product = wc_get_product($product_id);
if (!$product) {
return new WP_Error('invalid_product', 'Product not found');
}
// Update stock
wc_update_product_stock($product, $quantity);
return [
'success' => true,
'new_quantity' => $product->get_stock_quantity()
];
}
// Handler for order processing
function woocommerce_process_order_handler($input) {
$order_id = isset($input['order_id']) ? absint($input['order_id']) : 0;
$order = wc_get_order($order_id);
if (!$order) {
return new WP_Error('invalid_order', 'Order not found');
}
$order->update_status('processing');
return [
'success' => true,
'status' => 'processing'
];
}
Use @wordpress-penetration-testing to configure WooCommerce extensions
web-performance-optimization - Performancedatabase-optimizer - Database optimizationUse @web-performance-optimization to optimize WooCommerce store
playwright-skill - E2E testingtest-automator - Test automation// Automated AI testing for fraud detection during checkout
add_action('woocommerce_after_checkout_validation', 'ai_validate_order', 20);
function ai_validate_order($fields, $errors) {
// Skip if AI is not available
if (!function_exists('wp_ai_client_prompt')) {
return;
}
// Skip for logged-in users (assumed trusted)
if (is_user_logged_in()) {
return;
}
$order_data = [
'email' => isset($fields['billing_email']) ? $fields['billing_email'] : '',
'phone' => isset($fields['billing_phone']) ? $fields['billing_phone'] : '',
'address' => isset($fields['billing_address_1']) ? $fields['billing_address_1'] : '',
];
// Skip if insufficient data
if (empty($order_data['email'])) {
return;
}
$prompt = sprintf(
'This is a checkout validation. Check if these details seem legitimate: email=%s, phone=%s, address=%s. Return only "valid" or "suspicious" without additional text.',
sanitize_email($order_data['email']),
sanitize_text_field($order_data['phone']),
sanitize_text_field($order_data['address'])
);
$result = wp_ai_client_prompt($prompt);
if (is_wp_error($result)) {
// Don't block checkout on AI errors
return;
}
$result->using_temperature(0.1); // Low temp for consistent classification
$response = $result->generate_text();
if (is_wp_error($response)) {
return;
}
if (strpos($response, 'suspicious') !== false) {
$errors->add('validation', __('Additional verification may be needed for this order. We will contact you if needed.', 'woocommerce'));
}
}
Use @playwright-skill to test WooCommerce checkout flow
Product Descriptions
Customer Service
Inventory Management
Marketing
Order Processing
wordpress - WordPress developmentwordpress-theme-development - Theme developmentwordpress-plugin-development - Plugin developmentpayment-integration - Payment processing