akeneo/magento-admin-extractor

允许在测试目的下从 Magento 中提取数据,通过爬取后端

v1.0.0-BETA3 2014-10-10 11:33 UTC

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 进行了测试。