库存(请参阅可售数量

商品目录中的 inventory 字段是指可在 Facebook 店铺或 Instagram 购物帐户中销售的每种商品的库存水平。此值会出现在商品详情页面 (PDP) 上,有助于买家了解商品的供应量。此值会指出您的商品何时缺货,因此,及时跟进并保持库存准确无误有助于完善购物体验;如果出错,或会导致超额销售。

注意:inventory 字段将停用,并替换为新的 quantity_to_sell_on_facebook 字段。虽然我们仍会在短期内支持之前的字段名称,但建议您使用新名称。请查看支持的商品字段 — 进阶赋能型目录广告和电商,进一步了解此项更新。

注意:不支持对尚未设置库存的商品进行标记或购买。但是,您仍可将其用于不带结账功能的进阶赋能型目录广告。

库存波动

inventory 字段是动态变化的,这意味着其值会在用户从您的 Facebook 店铺或 Instagram 购物帐户购买商品时发生波动。每当有用户下单时,相应商品的库存水平都会减少。

如有用户主动取消订单,电商平台会自动增加此值或补充该商品的库存。如有卖家主动取消订单,则您可以在取消时补充商品库存,并提升相应的库存水平,方法是设置取消 API 端点restock_items 字段。

您通过商品目录上传或其他方式(请参阅库存更新策略,了解更多信息)提供的值会被视为可信源,并且始终会用于覆盖系统后端缓存的值。

我们会跟踪以下类型的库存计数:

  • 给定库存是指您通过商品目录上传或其他方式(请参阅库存更新策略,了解更多信息)提供的值。
  • 可用库存是指客户可以购买的商品数量,并且会减去未确认的订购量。

进一步了解这些库存类型;请参阅商品生命周期

缺货商品

当用户在您的 Facebook 店铺或 Instagram 购物帐户上购买商品时,inventory 值会减小。当此值达到 0 时,我们会将商品标记为“缺货”,并限制任何用户继续购买。您应尽力定期补充商品库存,因为“缺货”商品会对用户体验和品牌认知产生负面影响。

如果买家发现某款商品缺货,我们会根据商品目录中该商品不同款式的 inventory 值,尽全力将商品详情页切换为“有货”的款式。

断货商品

当某个商品断货时,您可能想直接将其从目录中删除。我们不建议这样做。

从目录中删除商品可能会带来不良效果,如商品标记和图片消失。我们强烈建议您过一段时间(几个月)后再删除商品

您应该将断货商品的 visibility 字段设置为 staging,而不是删除商品。这样做可确保电商平台可以将您的商品重新与已知实体关联,以便妥善应对不同状况。

商品生命周期

我们会在您每次更新库存时更新给定库存。此数字可能与客户可以购买的商品数量有所差别。我们会追踪新近订单(可能处于不同的状态),并减去未确认的订购量,得出最终库存数量。此数字可能不会在平台之外公开。

可用库存 = 给定库存 - 未确认的订单

订单一经确认,您将有 30 分钟的缓冲时间来(通过目录)处理和更新库存数量,然后我们会将确认的订单从计数系统中减去。

超额销售

为了将电商平台的覆盖面扩展到数千个商家,我们已经主动决定不支持同步库存管理。因此,我们不支持导致仓库内库存水平下降的原子购买交易。如果您在多个渠道上共享库存,则可能会意外地在 Facebook 或 Instagram 上超额销售商品。这种情况可能会发生在数量有限的热销商品上。

在您因超额销售而无法履行订单时,您应取消订单,并将 reason_code 设置为 OUT_OF_STOCK

如果您经常遇到超额销售问题,则可以加大订单处理频率,并相应地调整商品的库存水平。

库存整合策略

您可以采用多种方式更新库存,具体取决于当下的整合类型:

  • 使用电商管理工具用户界面(规模较小的商品系列、测试等)
  • 使用定期上传或手动上传的信息库
  • 使用信息库 API
  • 使用批处理 API

库存更新策略

由于分布式系统的异步性质,无论您更新库存水平的速度有多快,产品目录中的 inventory 值都有可能不同步。您可以考虑以下方式,来尽量减少竞争条件。

预先分配库存

避免超额销售最有效的方法是预先为您的 Facebook 店铺或 Instagram 购物渠道分配库存。为您的每个销售渠道提供库存,这样做有助确保任何单个渠道的销售不会相互干扰。此策略适用于部分或整个商品目录。

滞销商品

销售速度正常或库存充足的商品面临超额销售的风险相对较低。在这种情况下,您可以采用简单的商品目录更新策略:

  • 配置每日/每小时更新的定期信息库。此信息库应包含所有字段,其中包括最新的 inventory 值。

热销商品

对于库存不足或库存水平变化频繁的热销商品,您可能需要更频繁地更新易变的字段,如 inventory。为此,您可以使用实时批处理 API。下面是一个您可以遵循的整体策略:

  • 配置每日/每小时更新的定期信息库。此信息库应包含所有必填的产品目录字段,并略去 inventory 等易变字段。此信息库的目的在于更新更具稳定性的字段,以及使用实时 API 延迟更新易变字段。
  • 当库存值在您的后台或以固定频率发生变化,使用实时批处理 API 来更新 inventory 等易变字段。出于一致性原因,切不可将使用此方式更新的字段纳入信息库中。

下面是一个使用实时批处理 API 更新的示例:

curl \
  -d @body.json \
  -H "Content-Type: application/json"
  {
    "access_token": "<ACCESS_TOKEN>",
    "item_type": "PRODUCT_ITEM",
    "requests": [      
      {
        "method": "UPDATE",
        "retailer_id": "SKU1234567",
        "data": {
          "inventory": "1337",
        }
      }
    ]
  } https://graph.facebook.com/<CATALOG_ID/batch

批处理 API 请求为异步请求。您应检查请求状态及其结果,确保所有更新均成功。详情请参阅批处理 API 文档

如果您管理的商品量较少,也可以直接使用图谱 API(而非实时批处理 API)单独更新每款商品。由于图谱 API 存在流量限制和节流问题,此方法仅在商品数量较少时适用。您可以使用此方法更新的确切商品数量取决于您的 Facebook 应用采用的配额。您不妨以下列标准为界,如果一次更新的商品超过 12 种,则应使用实时批处理 API。

如要更新商品内的特定字段,您可以调用以下 API:

curl -d "inventory=1337" -X POST 
https://graph.facebook.com/<FACEBOOK_PRODUCT_ID>
access_token: PAGE_ACCESS_TOKEN

如果使用的是图谱 API,则使用 Facebook 商品编号。如果使用的是批处理 API,则使用您的专属编号,即 retailer_id

库存阈值

另一种防止超额销售的常见方法是谨慎处理库存分配问题。例如,如果您发现仓库中的某款商品接近缺货时,您可以在商品目录中将库存水平设置为零。这种方法可以有效改善低价销售情况,在存在超额销售问题时也会有所助益。

如果您知道每款商品的销售速度,您便可将它们划分为不同的组别,并根据其销售概况为每个组别应用不同的阈值。热销商品通常需要较高阈值,而滞销商品可能会使用较低阈值,以便标记为缺货。