A nopCommerce plugin that integrates with Perfion PIM (Product Information Management) to synchronize products, categories, and images from Perfion to your nopCommerce store.
- Product Sync: Full and delta synchronization of products from Perfion
- Category Sync: Automatic category hierarchy creation from Perfion categories
- Image Sync: Main image and gallery images synchronization
- Multi-language Support: Supports localized fields (e.g., en-US, da-DK)
- Scheduled Sync: Automatic background synchronization via nopCommerce scheduled tasks
- Delta Sync: Only sync products modified since last successful sync
- Admin UI: Configuration page with test and sync buttons
- Logging: All API requests logged to nopCommerce system log
- nopCommerce 4.90+
- .NET 9.0
- Perfion PIM with eCommerce API enabled
- Copy the plugin folder to
src/Plugins/Nop.Plugin.Misc.Perfion - Build the solution or run
dotnet build - Restart nopCommerce
- Go to Admin > Configuration > Local plugins
- Find "Perfion PIM Integration" and click Install
- Click Configure to set up the connection
| Setting | Description |
|---|---|
| API URL | Perfion API base URL (e.g., https://your-instance.azurewebsites.net) |
| Username | Perfion API username |
| Password | Perfion API password |
| Channel Name | The Perfion channel configured for nopCommerce export |
- Test Connection: Verify API credentials and retrieve channel configuration
- Test GetProducts: Fetch sample products to verify field mappings
- Full Sync: Synchronize all products from Perfion
- Delta Sync: Synchronize only products modified since last successful sync
The plugin registers a scheduled task for automatic synchronization:
- Name: "Synchronization (Perfion PIM plugin)"
- Default Interval: 4 hours
- Behavior: Uses delta sync if previous sync exists, otherwise full sync
Configure the task in Admin > System > Schedule tasks.
The plugin expects the following field mappings in your Perfion channel:
| Perfion Field | nopCommerce Property |
|---|---|
sku |
Product.Sku |
name |
Product.Name |
price |
Product.Price |
| Perfion Field | nopCommerce Property |
|---|---|
perfionId |
Internal reference |
shortDescription |
Product.ShortDescription |
fullDescription |
Product.FullDescription |
gtin |
Product.Gtin |
weight |
Product.Weight |
length |
Product.Length |
width |
Product.Width |
height |
Product.Height |
productCost |
Product.ProductCost |
published |
Product.Published |
mainImage |
Primary product picture |
galleryImages |
Additional product pictures |
Categories are synced via the RelatedCategories element in product XML:
<RelatedCategories>
<RelatedCategory name="categories" perfionname="Website">
<Field name="perfionId" relatedorder="2">1081</Field>
</RelatedCategory>
</RelatedCategories>API requests and responses are logged to the nopCommerce system log:
[Perfion API] GetProducts request: Channel=nopCommerce, Index=0, MaxCount=100, ModifiedFrom=2025-01-02T14:30:00
[Perfion API] GetProducts response: TotalCount=50, Returned=50
View logs in Admin > System > Log.
Clear the nopCommerce cache: Admin > System > Maintenance > Clear cache
- Check that products have been modified in Perfion since
LastSuccessfulSync - Verify the
ModifiedFromparameter in the logs - Run a Full Sync to reset the sync timestamp
- Verify username and password in plugin settings
- Check that the Perfion API URL is correct
- Review the nopCommerce log for detailed error messages
See the ressources/ folder for detailed API documentation:
PERFION_ECOMMERCE_API_GUIDE.md- Complete API referencePERFION_FIELD_MAPPING.md- Field mapping contractPERFION_CHANNEL_SETUP_GUIDE.md- Perfion channel configurationPERFION_AUTH_GUIDE.md- Authentication details
For issues or questions, check the nopCommerce log for error details and review the API documentation.
This plugin is provided for use with nopCommerce. See nopCommerce license terms.