rhymedigital / isotope-feeds
为 Contao 开源 CMS 中 Isotope 电子商务创建产品信息的更新实现
Requires
- php: ^7.4 || ^8.0
- contao/core-bundle: ^4.9
- isotope/isotope-core: ^2.6
Requires (Dev)
- contao/manager-plugin: ^2.7
README
为 Contao 开源 CMS 中 Isotope 电子商务创建产品信息的更新实现
默认情况下,此扩展程序附带两种信息类型
- RSS 2.0
- 谷歌商户(之前称为谷歌基础或谷歌购物)
注意:为了创建格式正确的谷歌商户信息,您需要在产品管理部分填写产品的一些附加信息。
依赖项
适用于
安装
使用 Composer 安装包
composer require rhymedigital/isotope-feeds
或者通过 Contao 管理员搜索 Isotope Feeds
来安装
请确保运行数据库安装程序。
配置
为了使产品信息工作,您需要对系统进行一些设置,以告诉系统您使用的信息类型,然后选择您希望在信息中使用的哪些产品。
此配置假定您已按照他们的配置指南安装并设置了 Isotope 店面。
商店配置
- 登录您的 Contao 后端,转到 Isotope 电子商务 > 商店配置,并编辑您的商店配置。
- 您将看到一个名为“信息”的新部分,其中有一个复选框以“添加产品信息”。
- 在此处选择信息类型。对于谷歌商户信息,选择“谷歌基础”
- 您应该输入信息文件的名称前缀,这将确定其名称(例如,
products
将输出一个名为products.xml
的文件)。您还可以可选地添加基本链接(默认情况下将使用环境基本链接)并设置标题和描述。您还应该设置产品的默认阅读页面,这将用于生成信息中的产品 URL。
产品类型配置
下一步是启用产品类型中包含的谷歌商户信息字段。如果不设置产品的“用于信息”设置,则它将不会用于信息,因此我们需要将信息字段添加到您的产品面板中。
- 转到商店配置 > 产品类型,并编辑每个产品类型。
- 默认情况下,
用于信息
、条件
、可用性
、品牌
、GTIN
和MPN
字段将被选中,并在保存产品类型时在您的产品上启用。还有一些其他可用的字段,您可以将其添加到信息图例中,但不是必需的。 - 保存您的产品类型将添加这些信息字段到该类型中的每个产品。
产品配置
为了有资格用于信息,您需要在每个您希望包括的产品上检查“用于信息?”选项。这也适用于变体产品!
- 在产品管理中,编辑您的产品或变体产品,并确保已勾选“用于信息”复选框。
- 如果您正在设置谷歌商户信息,请确保您已填写所需的最少信息,即
品牌
、GTIN
或MPN
中的 2 个字段。
启用每个产品时,将在根 isotope/cache
文件夹中为每个产品/变体创建一个缓存文件。然后,这些缓存的 XML 文件将被组装成一个单独的信息 XML 文件,该文件将放置在 public/share
目录中(或较旧 Contao 4 安装上的 web/share
)。
数据源文件将在generateFeeds
钩子每日生成,或者您可以通过点击产品管理中的重新生成数据源
操作按钮手动创建它。
您还可以通过点击刷新数据源缓存
按钮进行所有缓存的单个产品/变体文件的批量重新生成。请注意,完成之后您还需要点击重新生成数据源
按钮。
自定义
您可能需要创建与提供的两种完全不同的数据源类型。所有提供的数据源都是从基本Contao\Feed
类扩展而来,每个单个产品/变体XML都是从基本Contao\FeedItem
类扩展而来的。
您可以自由创建自己的数据源和自定义的数据源项类,并且要使用Isotope Feeds,您只需要在Contao的config.php
文件中注册它们,将它们插入到$GLOBALS['ISO_FEEDS']
数组中。以下为两个包含的数据源的初始配置示例。
$GLOBALS['ISO_FEEDS'] = array (
'googlebase' => array (
'feed' => array('Rhyme\IsotopeFeedsBundle\Feed\GoogleMerchant', 'generate'),
'item' => 'Rhyme\IsotopeFeedsBundle\FeedItem\GoogleMerchant',
'format'=> 'rss',
),
'rss20' => array (
'feed' => array('Rhyme\IsotopeFeedsBundle\Feed\Rss20', 'generate'),
'item' => 'Rhyme\IsotopeFeedsBundle\FeedItem\Rss20',
'format'=> 'rss',
),
);