公共品/出价订阅

此包已被弃用且不再维护。未建议替代包。

简单的出价或购买XML订阅生成器。

0.0.3 2019-06-26 08:47 UTC

This package is auto-updated.

Last update: 2021-12-01 07:59:23 UTC


README

Build Status

出价或购买XML库

BidFeed是出价或购买XML订阅的XML生成器。

安装

BidFeed应通过Composer安装

composer require thepublicgood/bidfeed

使用方法

如果您不是使用自动加载自动加载器的框架,则需要 require Composer自动加载器。

首先,创建一个TPG\BidFeed\Builder的新实例。在Builder上。

require __DIR__.'/vendor/autoload.php';

$feed = new TPG\BidFeed\Builder();

Builder类提供了一个返回TPG\BidFeed\Collection实例的products()方法。您可以通过推送新的TPG\BidFeed\Product实例来向订阅中添加新产品。

$product = new Product();

$feed->products()->push($product);

生成XML

在任何时候,您都可以通过在Builder实例上调用toXml()方法来获取XML的副本。

$xml = $feed->toXml();

// You can also save it directly to a file by passing a filename:
$feed->toXml('feed.xml');

调用toXml()方法不会以任何方式更改实例,因此您可以在生成XML输出后继续构建产品。

toXml()方法还将调用每个Product实例上的verifyAttributes()方法。如果缺少任何内容,将抛出MissingRequiredAttribute异常。

添加产品

您通过添加产品来构建订阅。Product类提供了一个用于处理产品的简单API。

单个产品由一个Product实例表示。Builder::products()方法始终返回一个包含一组Product实例的Collection实例。

// You can...
$feed->products()->push((new Product())->...);

// or add multiple products at once...
$feed->products()->push([$product1, $product2]);

必需属性

$product->name($productName)
    ->code($productCode)
    ->category($category)
    ->price($price, $marketPrice)
    ->availableQuantity($quantity)
    ->description($description);

一些属性通常不是必需的,除非产品需要出现在出价或购买的Google Ads中,那么这些属性必须是提供的

$product->gtin($productGtin)        // GTIN (GTIN-12 or GTIN-13)
    ->mpn($mpn);                    // MPN

需要许多属性。所有产品都必须有名称、产品代码、类别、价格、数量和描述。如果单个产品中缺少这些属性中的任何一个,将抛出MissingRequiredAttribute异常。

设置产品代码

产品必须有一个唯一的产品代码,并且不能更改。任何重复的产品代码都将被忽略,并且产品将不会导入。产品代码的最大长度为100个字符。

$product->code('CODE-000111');

设置产品名称

所有产品都必须有名称。您可以使用name方法指定产品名称。产品名称不能超过100个字符。

$product->name('My Product');

设置描述

产品描述应包含产品的详细信息。它可以是长达8000个字符的,并且可以包含一些有限的HTML。BidFeed库当前允许PBRhtml元素。

$product->description('<p>Product description</p>');

设置类别

产品类别必须与APP产品一起提供,并且最好基于Google的分类法。请参阅https://support.google.com/merchants/answer/6324436。建议指定完整的类别路径。category方法接受一个类别名称数组。所以如果类别应该是Electronics - Laptops - Apple,你可以这样做:

$product->category(['Electronics', 'Laptops', 'Apple']);

设置价格

所有产品都必须设置价格。产品可以有三种价格。实际销售价格,这是必须的,和市场价格,这是可选的。市场价格仅作为参考,不作为任何销售价格。

您可以通过将销售价格和市场价格作为浮点数传递给price()方法来设置这两种价格,或者使用marketPrice()方法单独设置市场价格。

// Set a selling price
$product->price(199.95);

// Set a selling price and market price
$product->price(199.95, 219.95);

// Set a marketing price
$product->marketPrice(211.50);

可用数量

出价或购买需要指定可用数量。您可以使用availableQuantity()方法指定数量。任何数量为0的产品将不会导入。

$product->availableQuantity(10);

产品图片

所有产品都必须包含图片。至少要提供一张图片。您可以提供多张图片,但只有第一张图片将被用作产品封面图片。图片的显示顺序与提供的顺序相同。

您可以通过将一个数组传递给images()方法来提供一组图片URL。

$product->images([$image1, $image2]);

图片存储为Collection实例。您可以使用imageCollection()方法访问实例。

// Add an image to the collection
$product->imageCollection()->add($imageUrl3);

产品属性

产品可以有一个可选的自定义属性集。在这里添加Brand属性很常见,但您可以添加任何需要的属性。根据Bid或Buy数据源规范,与市场值不匹配的属性将被忽略,因此您应该只添加特定类别的属性。

$product->productAttributes([
    'Brand' => 'Apple'
]);

保证和保修

产品可以设置保证和/或保修。您可以使用guarantee方法设置保证,并使用warranty方法设置保修。这两种方法都具有相同的签名

$product->guarantee($type, $text);
$product->warranty($type, $text);

BidFeed提供了一套保证和保修类型的常量

GUARANTEE_NOT_OFFERED;      // No guarantee
GUARANTEE_MONEY_BACK_7;     // 7 day money back guarantee
GUARANTEE_MONEY_BACK_10;    // 10 day
GAURANTEE_MONEY_BACK_15;    // 15 day
GUARANTEE_MONEY_BACK_30;    // 30 day
GUARANTEE_REPLACEMENT_7;    // 7 day replacement guarantee
GUARANTEE_REPLACEMENT_10;   // 10 day
GAURANTEE_REPLACEMENT_15;   // 15 day
GUARANTEE_REPLACEMENT_30;   // 30 day

WARRANTY_NOT_OFFERED;       // No warranty
WARRANTY_REPLACEMENT;       // Replacement warranty
WARRANTY_DEALER;            // Dealers warranty
WARRANTY_MANUFACTURER;      // Manufacturers warranty

第二个参数允许您指定有关保证或保修的更多详细信息。如果第一个参数不是`GUARANTEE_`,则必须提供文本。

运输类别