This guide covers the native FluentCart integration in BricksMembers. It is the recommended access-assignment path when FluentCart runs on the same WordPress site as BRM. It lets BRM react directly to FluentCart orders and subscriptions without relying on generic webhooks.
Why Use the Native Integration?
For same-site FluentCart setups, this native integration should usually be your base layer. If you also enable the Payments module, FluentCart billing data can sync into BRM so you can use billing tags, billing conditions, synced subscriptions, payment loops, and member billing screens.
- Zero configuration complexity — No webhook URLs, secrets, or field mappings to set up
- Instant level assignment — Levels are assigned immediately when orders complete
- Automatic user creation — Optionally create WordPress accounts for guest checkout customers
- Subscription support — Full support for FluentCart subscriptions with automatic level management
- Refund and cancellation handling — Automatically remove levels when orders are refunded or canceled
- Variation support — Map individual product variations to different membership levels
Important: Payments does not replace FluentCart’s store checkout. FluentCart still handles selling. Payments extends that setup by making billing data available inside BRM’s frontend and billing UI.
Prerequisites
- FluentCart installed and active
- At least one FluentCart product created
- At least one membership level created in BricksMembers
Step 1: Enable the FluentCart Integration
First, enable the FluentCart integration on the Integrations screen:
- Go to BricksMembers → Integrations
- Stay on the Overview tab and find FluentCart in Commerce & CRM
- Enable the toggle and confirm the change
Once enabled, the FluentCart tab is available inside BricksMembers → Integrations.
Step 2: Configure Integration Settings
Open BricksMembers → Integrations → FluentCart to configure the integration.
User Creation Settings
Create WordPress users for guest checkout orders
- When enabled: If a guest checks out without an account, BricksMembers automatically creates a WordPress user account using their email. The new user receives the assigned membership level.
- When disabled: Guest orders won’t receive membership levels. Only customers with existing WordPress accounts get levels assigned.
- Recommendation: Enable this for most membership sites to ensure all customers get access.
Default user role for new users
- Select the WordPress role assigned to automatically created users
- Default: Subscriber
- You can create custom roles in BricksMembers → Roles & Permissions
Level Removal Settings
Remove levels when order is fully refunded
- When enabled: If you issue a full refund, the membership level is automatically removed
- Recommendation: Enable this to ensure refunded customers lose access
Remove levels when order is canceled
- When enabled: If an order is canceled, the membership level is automatically removed
- Use case: Useful for scenarios where you cancel orders that shouldn’t have been completed (e.g., fraudulent orders, duplicate orders)
- Recommendation: Enable this if you want tight control over access
Subscription Settings
Remove levels when subscription expires
- When enabled: Levels are removed when a subscription period ends
- Important: Levels are removed when the subscription expires, not when the user cancels. This means users who cancel keep their access until the end of their paid period.
- Recommendation: Enable this for subscription-based memberships
Why “expires” instead of “cancels”?
When a customer cancels a subscription, they’ve typically paid for the current period and should retain access until that period ends. For example, if someone pays for a monthly subscription on January 1st and cancels on January 15th, they should keep access until January 31st. The integration respects this by only removing levels when the subscription actually expires, not at the moment of cancellation.
Remove levels when subscription is cancelled
- When enabled: Levels are removed as soon as FluentCart reports a subscription cancellation event
- Important: This is the immediate-revoke option. Use it only if you do not want access to last until the already-paid term expires
- Recommendation: Leave this off if you want “cancel now, access until end of term” behavior. Turn it on if cancellation itself should revoke access immediately
Step 3: Map Products to Membership Levels
On the FluentCart tab, use the Product → Level Mapping section to connect FluentCart products to BricksMembers levels.
Product Types
Products are organized into three categories (like WooCommerce):
Simple Products
- Standard FluentCart products with no variations
- Check a simple product to grant the level when that product is purchased
Variable Products (all)
- Parent variable products
- Checking a variable product grants the level for ANY variation of that product
- Useful when all variations should grant the same level
Variations
- Individual product variations (e.g., “Monthly Plan”, “Annual Plan”)
- Check specific variations to grant different levels for different options
- Variation names include the attribute values for easy identification
Mapping Products
For each membership level, you’ll see a list of all published FluentCart products (simple, variable, and variations). Check the products or variations that should grant that level:
- One product = One level: Check a single product for a level
- Multiple products = One level: Check multiple products if they should all grant the same level
- One product = Multiple levels: Check the same product under multiple levels if purchasing it should grant several levels
Example Configurations
Example 1: Simple Tiered Membership
You have three products: “Basic Membership”, “Pro Membership”, “VIP Membership”
- Basic Member level: Check “Basic Membership”
- Pro Member level: Check “Pro Membership”
- VIP Member level: Check “VIP Membership”
Example 2: Course Bundle
You sell individual courses and an “All Access Pass”
- Course A Access level: Check “Course A”
- Course B Access level: Check “Course B”
- All Access level: Check “All Access Pass”
Then protect your content so Course A requires “Course A Access” OR “All Access”, etc.
Example 3: Subscription Plans
You have monthly and annual subscription products:
- Member level: Check both “Monthly Subscription” and “Annual Subscription”
Both products grant the same level—the subscription duration is handled by FluentCart.
Step 4: Test Your Configuration
Before going live, test your setup:
- Create a test product in FluentCart (or use an existing one)
- Map it to a membership level in BricksMembers → Integrations → FluentCart
- Create a test order:
- Log out or use a different browser
- Add the product to cart
- Complete checkout (use a test payment method if available)
- Verify the user has the correct level:
- Go to Users in WordPress
- Edit the test user
- Check their assigned membership levels
- Test refund/cancel handling:
- Cancel or refund the test order in FluentCart
- Verify the level was removed (if the relevant setting is enabled)
Understanding Order Status Flow
FluentCart orders trigger BricksMembers actions at specific points:
| Event | BricksMembers Action | Notes |
|---|---|---|
| Order paid/completed | Add level | Level assigned when payment is confirmed |
| Order fully refunded | Remove level (if enabled) | Only full refunds trigger removal |
| Order canceled | Remove level (if enabled) | Separate setting from refunds |
| Subscription active | Add level | Level assigned when subscription starts |
| Subscription cancelled | Remove level (if enabled) | Immediate revoke if you enable the subscription-cancel setting |
| Subscription expired | Remove level (if enabled) | End-of-term revoke when the paid period finishes |
Troubleshooting
Level Not Assigned After Purchase
Check these common causes:
- Integration not enabled: Verify FluentCart is enabled on BricksMembers → Integrations → Overview
- Product not mapped: Check that the product is mapped to the desired level on BricksMembers → Integrations → FluentCart
- Order not completed: Check if the order status is “Completed” in FluentCart. Pending orders don’t trigger level assignment.
- Guest checkout without user creation: If “Create WordPress users” is disabled, guest orders won’t receive levels
- No WordPress user linked: FluentCart customers need a linked WordPress user account. Enable “Create WordPress users” to automatically create accounts.
Level Not Removed on Refund or Cancel
- Setting not enabled: Verify the appropriate setting is checked:
- “Remove levels when order is fully refunded” for refunds
- “Remove levels when order is canceled” for cancellations
- “Remove levels when subscription is cancelled” for immediate subscription revoke, or “Remove levels when subscription expires” for end-of-term revoke
- Partial refund: Only full refunds trigger level removal
Subscription Level Not Removed After Cancel
This depends on your settings. If you only enable Remove levels when subscription expires, customers keep their level until the paid period actually ends. If you also enable Remove levels when subscription is cancelled, BricksMembers revokes access as soon as FluentCart reports the cancellation event.
Choose the option that matches your business rule. Use expiry-based removal when customers should keep what they already paid for. Use cancellation-based removal only when cancellation itself should end access immediately.
Developer Hooks
For developers who need to extend the integration, BricksMembers fires several action hooks:
// Fired when a level is added via FluentCart order
do_action( 'brm_fluentcart_level_added', $user_id, $level_id, $order_id );
// Fired when a level is removed via FluentCart order/refund/cancel
do_action( 'brm_fluentcart_level_removed', $user_id, $level_id, $order_id );
// Fired when a level is added via subscription activation
do_action( 'brm_fluentcart_subscription_level_added', $user_id, $level_id, $subscription_id );
// Fired when a level is removed via subscription expiration
do_action( 'brm_fluentcart_subscription_level_removed', $user_id, $level_id, $subscription_id );
Native Integration vs Webhooks
There are three practical FluentCart setups in BRM now:
- Use native FluentCart integration only when FluentCart is on the same site and you mainly need access assignment.
- Use native FluentCart integration + Payments when FluentCart is on the same site and you also want BRM billing sync, billing tags, subscription/payment loops, and member-facing billing displays.
- Use webhooks instead when FluentCart is on another site or you intentionally want to treat it as an external system.
- The native integration remains the recommended base for same-site FluentCart, including subscription access handling.
For most users with FluentCart on the same site, the best current recommendation is: native FluentCart integration for access, and Payments on top if you want richer billing functionality inside BRM.
Best Practices
- Enable user creation: Ensures all customers get access, even guests
- Enable refund handling: Automatically revoke access for refunded orders
- Enable order cancellation handling: Revoke access for canceled orders
- Enable subscription expiration handling: Automatically remove levels when subscriptions end
- Decide your cancellation policy explicitly: Use the subscription-cancel setting only if you want cancellation to revoke access before the paid term ends
- Test thoroughly: Always test purchases, refunds, cancellations, and subscription lifecycle before going live
- Use clear product names: Makes the mapping interface easier to use
With the native FluentCart integration configured, your membership site will automatically handle level assignment and removal based on customer purchases—no manual intervention required.