akeneo / magento-admin-extractor
允许在测试目的下从 Magento 中提取数据,通过爬取后端
v1.0.0-BETA3
2014-10-10 11:33 UTC
Requires
- fabpot/goutte: ~2.0
- symfony/dom-crawler: ~2.3.19
This package is not auto-updated.
Last update: 2020-08-07 18:37:59 UTC
README
什么是 MagentoAdminExtractor?
该组件使用 Goutte 连接到 Magento 后端,并提取可见数据。其主要目的是包含在 Magento Connector Bundle(https://github.com/akeneo/MagentoConnectorBundle)测试套件中,以检查发送到 Magento 的数据是否被良好接收。
我可以用 MagentoAdminExtractor 做什么?
- 允许连接到 Magento Admin
- 允许在 Magento 后端中导航
- 允许更改网格中每页可查看的行数
- 允许提取产品及其属性和关联
- 允许提取属性及其参数和选项
- 允许提取分类树
如何安装 MagentoAdminExtractor?
克隆项目: git clone git@github.com:akeneo/MagentoAdminExtractor.git
然后在您的项目中创建一个符号链接,使用 ln -s path_to_MagentoAdminExtractor path_to_your_project
如何使用提取器?
先决条件
删除 URL 的密钥,以便能够提取数据。系统 -> 配置 -> 高级 -> 管理员 -> 安全 -> 将密钥添加到 URL:否
尝试提取
您可以尝试并查看 test.php 中的代码示例,在您希望看到终端中的数据上添加 print_r(),然后 $ php test.php
连接到 Magento 后端
use Akeneo\Component\MagentoAdminExtractor\Manager\LogInException; use Akeneo\Component\MagentoAdminExtractor\Manager\MagentoAdminConnectionManager; $connectionManager = new MagentoAdminConnectionManager( MAGENTO_ADMIN_URL, MAGENTO_ADMIN_LOGIN, MAGENTO_ADMIN_PWD ); try { $mainPageCrawler = $connectionManager->connectToAdminPage(); $client = $connectionManager->getClient(); } catch (LogInException $e) { die($e->getMessage() . PHP_EOL); }
使用导航管理器导航
->goToXXXCatalog() 的第二个参数是数字,允许您指定您想要在网格中拥有的每页行数。默认值为 20。
use Akeneo\Component\MagentoAdminExtractor\Manager\NavigationManager; $client = $connectionManager->getClient(); $navigationManager = new NavigationManager($client); $productCatalogCrawler = $navigationManager->goToProductCatalog($mainPageCrawler, 50); $attributeCatalogCrawler = $navigationManager->goToAttributeCatalog($mainPageCrawler, 50); $myURLCrawler = $navigationManager->goToUri('GET', 'http://magento.local/index.php/admin/catalog_product/edit/id/5/key/secret_key/store/1');
如何提取产品和它们的属性?
use Akeneo\Component\MagentoAdminExtractor\Extractor\ProductAttributeExtractor; $productAttributeExtractor = new ProductAttributeExtractor($navigationManager); $productCatalogCrawler = $navigationManager->goToProductCatalog($mainPageCrawler, 50); $products = $productAttributeExtractor->filterRowsAndExtract($productCatalogCrawler);
如何提取属性?
use Akeneo\Component\MagentoAdminExtractor\Extractor\AttributeExtractor; $attributeExtractor = new AttributeExtractor($navigationManager); $attributeCatalogCrawler = $navigationManager->goToAttributeCatalog($mainPageCrawler, 50); $attributes = $attributeExtractor->filterRowsAndExtract($attributeCatalogCrawler);
如何提取分类?
use Akeneo\Component\MagentoAdminExtractor\Extractor\CategoriesExtractor; $categoriesExtractor = new CategoriesExtractor($navigationManager); $categories = $categoriesExtractor->extract($mainPageCrawler);
如何创建我自己的提取器?
用于网格中实体的新提取器
class MyEntityExtractor extends AbstractGridExtractor { public function extract(Crawler $myEntityNodeCrawler, $myEntityName = '') { // Your stuff here } protected function getExtractedEntity() { return 'myEntity'; } }
用于不在网格中的实体的新提取器
class MyEntityExtractor extends AbstractExtractor { public function extract(Crawler $mainPageCrawler) { // Your stuff here } }
Akeneo MagentoAdminExtractor 支持哪些 Magento 版本?
目前,该组件仅与 Magento 1.8 进行了测试。