Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/run-as-root/Magento-2-Google-Shopping-Feed
A simple and clean Magento 2 Feed Extension for Google Shopping.
https://github.com/run-as-root/Magento-2-Google-Shopping-Feed
Last synced: 4 days ago
JSON representation
A simple and clean Magento 2 Feed Extension for Google Shopping.
- Host: GitHub
- URL: https://github.com/run-as-root/Magento-2-Google-Shopping-Feed
- Owner: run-as-root
- License: mit
- Created: 2022-09-19T08:18:10.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-22T10:01:30.000Z (about 1 year ago)
- Last Synced: 2024-10-01T22:05:04.419Z (about 1 month ago)
- Language: PHP
- Size: 216 KB
- Stars: 39
- Watchers: 5
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![build](https://github.com/run-as-root/Magento-2-Google-Shopping-Feed/actions/workflows/test_extension.yml/badge.svg)
## General
Generate feed with product data.
## Installations
```
composer require run_as_root/ext-magento2-google-shopping-feed
bin/magento setup:upgrade
```## Features
### Feed generation
Generate product feed every 2 hours with minimal required attributes, for each storeview.
Places file into `pub/media/run_as_root/feed/%s_store_%s_feed.xml`.## Technical Specification
### Commands
| group | command | description |
|:------|:--------|:------------|
| run_as_root | run_as_root:product-feed:execute | Runs feed generation for all store views. |### Crons
| group | cronjob | description |
|:------|:--------|:------------|
| default | run_as_root_product_feed_exporter_cron | Runs feed generation based on `run_as_root_product_feed/general/cron_schedule` config - default each 15 minutes |### Entities
#### Attribute config
DTO: `\RunAsRoot\GoogleShoppingFeed\Data\AttributeConfigData`Incapsulates the next information:
* attribute name/code
* handler classList of attributes configurations can be found here: `\RunAsRoot\GoogleShoppingFeed\Enum\AttributesToImportEnumInterface::ATTRIBUTES`
### Data providers
#### `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributesConfigListProvider`
Provides the list of DTOs ( `AttributeConfigData` ).
Used for CSV row data mapping from product - provides information regarding attributes that should be taken from the product and in wich way (handler).
See configuration list here: `\RunAsRoot\GoogleShoppingFeed\Enum\AttributesToImportEnumInterface::ATTRIBUTES`#### `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributeHandlerProvider`
Provides attribute data provider (handler) of type `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributeHandlers\AttributeHandlerInterface`, by `AttributeConfigData` DTO.#### `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributeHandlers\AttributeHandlerInterface`
Generic interface for attribute data providers.
Each attribute has its own data provider, that incapsulates current interface.
Data provider for specific attribute is configured here `\RunAsRoot\GoogleShoppingFeed\Enum\AttributesToImportEnumInterface::ATTRIBUTES`.### Services
#### `\RunAsRoot\GoogleShoppingFeed\Service\GenerateFeedService`
Perform feed generation for all storeviews with enabled feed generation.
`\RunAsRoot\GoogleShoppingFeed\Service\GenerateFeedService` is injected.#### `\RunAsRoot\GoogleShoppingFeed\Service\GenerateFeedService`
Generate feed for specific store, based on feed enable*disable configuration.
Incapsulates attributes config provider `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributesConfigListProvider` and csv row mapper `\RunAsRoot\GoogleShoppingFeed\Mapper\ProductToFeedAttributesRowMapper`.
Performs iteration on all products provided by this collection provider `\RunAsRoot\GoogleShoppingFeed\CollectionProvider\SimpleProductsCollectionProvider` and adds rows into the CSV file.## Configuration
| tab | group | section | field |
|:--------|:--------|:----------------------|:-------------------|
| run_as_root | general | Product Feed Exporter | Enable |
| run_as_root | general | Product Feed Exporter | Cron Schedule |
| run_as_root | general | Product Feed Exporter | Category Whitelist |
| run_as_root | general | Product Feed Exporter | Category Blacklist |## Extensability points
### Add new attribute to feed
1. Create new attribute data provider. @see interface `\RunAsRoot\GoogleShoppingFeed\DataProvider\AttributeHandlers\AttributeHandlerInterface`.
2. Add configuration for new attribute in `\RunAsRoot\GoogleShoppingFeed\Enum\AttributesToImportEnumInterface::ATTRIBUTES`.## Google Shopping Feeds Grid
Generated feeds could be reviewed inside Admin Backoffice
* Navigate to Marketing -> run_as_root -> Google Shopping Feed