Overview of Feed Extension
When to Extend Feeds
Common extension scenarios:- Custom product attributes not included in standard feeds
- Modified pricing logic for specific business rules
- Additional product data from external systems
- Custom category information beyond standard attributes
- Brand data enhancement with custom fields
- User data integration from CRM systems
Extension Approach
Recommended method: Use Magento plugins for clean, maintainable extensions- Non-invasive - Doesn’t modify core PureClarity code
- Upgrade-safe - Survives extension updates
- Maintainable - Clear separation of custom logic
- Testable - Isolated functionality for testing
Always use plugins rather than class rewrites or core modifications to ensure compatibility with future updates.
Feed Architecture
Extension Points
Each feed type provides two main extension points: Feed Data Handler- Purpose: Gathers data from Magento using collections
- Extension use: Modify data collection logic, add joins, filter data
- Method: Plugin the collection building methods
- Purpose: Transforms Magento data into PureClarity feed format
- Extension use: Add custom fields, modify data format, apply business rules
- Method: Plugin the data transformation methods
Feed Types and Classes
Product Feed
Feed Data Handler:Pureclarity\Core\Model\Feed\Type\Product\FeedData
- Key method:
buildCollection()
- Returns product collection
Pureclarity\Core\Model\Feed\Type\Product\RowData
- Key method:
getRowData()
- Returns formatted product data array
- Located in
Pureclarity\Core\Model\Feed\Type\Product\RowDataHandlers\*
- Individual handlers for specific data aspects (pricing, images, attributes)
Category Feed
Feed Data Handler:Pureclarity\Core\Model\Feed\Type\Category\FeedData
- Key method:
buildCategoryCollection()
- Returns category collection
Pureclarity\Core\Model\Feed\Type\Category\RowData
- Key method:
getRowData()
- Returns formatted category data array
Brand Feed
Feed Data Handler:Pureclarity\Core\Model\Feed\Type\Brand\FeedData
- Key method:
buildBrandCollection()
- Returns brand collection
Pureclarity\Core\Model\Feed\Type\Brand\RowData
- Key method:
getRowData()
- Returns formatted brand data array
User Feed
Feed Data Handler:Pureclarity\Core\Model\Feed\Type\User\FeedData
- Key method:
buildCustomerCollection()
- Returns customer collection
Pureclarity\Core\Model\Feed\Type\User\RowData
- Key method:
getRowData()
- Returns formatted user data array
Order History Feed
Feed Data Handler:Pureclarity\Core\Model\Feed\Type\Order\FeedData
- Key method:
buildOrderCollection()
- Returns order collection
Pureclarity\Core\Model\Feed\Type\Order\RowData
- Key method:
getRowData()
- Returns formatted order data array
Implementation Examples
Basic Product Data Extension
Scenario: Add a custom product field to the feed 1. Create di.xml configuration:Advanced Product Collection Modification
Scenario: Add custom data joins to product collection 1. Plugin the collection builder:Category Data Enhancement
Scenario: Add external system data to category feedUser Feed Customization
Scenario: Add CRM data to user feedAdvanced Extension Patterns
Conditional Data Addition
Performance-Optimized Extensions
Data Validation and Sanitization
Testing Feed Extensions
Unit Testing Plugin Methods
Integration Testing
Best Practices
Performance Considerations
- Minimize database queries - Use collection modifications over individual lookups
- Cache external API calls - Avoid repeated API requests during feed generation
- Batch operations - Process multiple items together when possible
- Monitor feed performance - Track impact of customizations on feed speed
Data Quality
- Validate data formats - Ensure custom data meets PureClarity requirements
- Handle missing data - Provide defaults for missing custom fields
- Sanitize input - Clean data to prevent feed corruption
- Test edge cases - Verify behavior with unusual data scenarios
Maintainability
- Document customizations - Explain business logic and data sources
- Use clear naming - Make custom fields easily identifiable
- Version control - Track changes to feed extensions
- Monitor for updates - Verify compatibility with PureClarity updates
Error Handling
- Graceful degradation - Feed should work even if custom data fails
- Logging - Log custom data processing for debugging
- Exception handling - Catch and handle external service failures
- Fallback values - Provide defaults when custom processing fails
Debugging Feed Extensions
Enable Debug Logging
- Navigate to PureClarity configuration
- Enable Debug Logging
- Run feed processing
- Review logs for custom data processing
Log Custom Processing
Related Resources
Development References
- Magento Plugin Guide - Official plugin documentation
- Magento Collection Guide - Collection modification techniques
PureClarity Integration
- Data Feeds & Indexing - Understanding feed configuration
- Types of Data Feeds - Feed content and structure
- Server-Side Mode - Server-side data processing
Testing and Debugging
- Magento Logs - Debugging with PureClarity logs
- Feed Troubleshooting - Common feed issues
Summary
Feed extension in PureClarity provides powerful customization options:- Plugin-based approach for clean, maintainable extensions
- Multiple extension points for different types of customizations
- Performance considerations for large-scale implementations
- Testing strategies to ensure reliable custom functionality
- Best practices for maintainable, upgrade-safe customizations