nicdev/webflow-sdk

使用Webflow API提供的所有功能

0.6.4 2023-05-12 00:22 UTC

This package is auto-updated.

Last update: 2024-09-12 03:11:23 UTC


README

请注意!这是一个处于活跃开发中的非常早期的版本。所以如果您决定使用它,请务必小心 ✌️

这是一个开源软件,且以任何官方方式都不受Webflow支持。

这个PHP SDK允许您轻松地与Webflow API交互。

使用这个库主要有两种方式。通过访问站点和其他实体,与它们各自的类或...

查看实体文档

...直接作为API包装器,通过底层的Webflow类。

查看API客户端包装器文档

目录

安装

通过Composer安装SDK

composer require nicdev/webflow-sdk

使用

客户端(API包装器)

要使用此SDK,首先使用您的API令牌创建一个新的Webflow类实例。

use Nicdev\WebflowSdk\Webflow;

$token = 'your-webflow-api-token';
$webflow = new Webflow($token);

获取当前用户的信息

$user = $webflow->user();

获取认证用户的授权信息

$authInfo = $webflow->authInfo();

列出与认证用户关联的所有站点

$sites = $webflow->listSites();

通过其ID获取特定站点

$site = $webflow->getSite($siteId);

通过其ID发布特定站点

$webflow->publishSite($siteId);

列出与特定站点ID关联的所有域名

$domains = $webflow->listDomains($siteId);

列出与特定站点ID关联的所有webhooks

$webhooks = $webflow->listWebhooks($siteId);

通过其ID获取与特定站点关联的特定webhook

$webhook = $webflow->getWebhook($siteId, $webhookId);

为特定站点创建webhook

use Nicdev\WebflowSdk\Enums\WebhookTypes;

$triggerType = WebhookTypes::SITE_PUBLISH;
$url = 'https://your-webhook-url.com';
$filter = []; // Optional filter array

$webflow->createWebhook($siteId, $triggerType, $url, $filter);

删除特定站点的webhook

$webflow->deleteWebhook($siteId, $webhookId);

列出特定站点的所有收藏夹

$collections = $webflow->listCollections($siteId);

通过其ID获取特定收藏夹

$collection = $webflow->fetchCollection($collectionId);

通过其ID列出特定收藏夹的项目

$page = 1; // Optional page number

$items = $webflow->listItems($collectionId, $page);

通过其ID在特定收藏夹中创建项目

$fields = [
    'field-name' => 'field-value',
    // ...
];
$live = false; // Optional live mode

$item = $webflow->createItem($collectionId, $fields, $live);

通过其ID获取项目

$item = $webflow->getItem($collectionId, $itemId)

通过其ID发布一个或多个项目

$itemIds = ['your-item-id', 'your-other-item-id'];
    
$webflow->publishItems($collection, $itemIds);

通过其ID更新项目

$fields = $fields = [
    'field-name' => 'field-value',
    // ...
];
$live = false; // Optional publish 

$webflow->updateItem($collectionId, $itemId, $fields, $live)

通过其ID修复项目

我在更新和修复方法之间没有看到真正的区别,但它们已经匹配到相应的端点。有关更多信息,请参阅文档

$fields = $fields = [
    'field-name' => 'field-value',
    // ...
];
$live = false; // Optional publish 

$webflow->updateItem($collectionId, $itemId, $fields, $live)

通过其ID删除或取消发布项目

$live = true; // Optional. When set to true the item will be un-published but kept in the collection

$webflow->deleteItem($collectionId, $itemId, $live)

通过其ID列出特定站点的产品/SKU。

$page = 1; // Optional page number
$webflow->listProducts($siteId, $page);

创建产品和SKU

$product = [
    'slug' = 'foo-bar',
    'name' => 'Foo Bar',
];
$sku = [
    'slug' => 'foo-bar-small',
    'name' => 'Foo Bar (S)',
    'price' => [
        'value' => 990,
        'unit' => 'USD'
    ]
]; // Optional
$webflow->createProductAndSku($siteId, $product, $sku)

获取产品和SKU

$webflow->getProduct($site, $product);

更新产品

$fields = [
    'name' => 'New Foo Bar',
    '_archived' => true
];

$webflow->updateProduct($siteId, $productId, $fields);

创建SKU

$sku = [
    'slug' => 'foo-bar-Medium',
    'name' => 'Foo Bar (M)',
    'price' => [
        'value' => 1190,
        'unit' => 'USD'
    ]
];
$webflow->createSku($siteId, $product, $sku);

更新SKU

$sku = [
    'slug' => 'foo-bar-Medium',
    'name' => 'Foo Bar (M) Discounted!!',
    'price' => [
        'value' => 1290,
        'unit' => 'USD'
    ]
];

$webflow->updateSku($siteId, $productId, $skuId, $sku);

特定项目的库存

$collectionId = 'your-collection-id'; //likely to be the SKUs collection.
$webflow->getInventory($collectionId, $skuId)

更新库存

$fields = [
    'inventory_type' => 'infinite'
];

$webflow->updateInventory($collectionId, $skuId, $fields);

列出订单

$page = 1; // Optional page number

$items = $webflow->listOrders($collectionId, $page);

获取订单

$webflow->getOrdr($siteId, $orderId)

更新订单

$fields = [
    'comment' => 'Adding a comment to this order'
];

$webflow->updateOrder$siteId, $orderId, $fields);

履行订单

$notifyCustomer = true; // Optional, defaults to false

$webflow->fullfillOrder($siteId, $orderId, $notifyCustomer);

取消履行订单

$webflow->unfulfillOrder($siteId, $orderId);

退款订单

$webflow->refundOrder($siteId, $orderId);

获取站点的电子商务设置

$webflow->getEcommerceSettings($siteId);

实体

要使用此SDK,首先使用您的API令牌创建一个新的Webflow类实例。

use Nicdev\WebflowSdk\Webflow;

$token = 'your-webflow-api-token';
$webflow = new Webflow($token);

获取站点

$sites = $webflow->sites; // [Site $site1, Site $site2...]
// or
$sites = $webflow->sites()->list(); // [Site $site1, Site $site2...]

通过其ID获取特定站点

$site = $webflow->sites($siteId) // Site $site;
// or
$site = $webflow->sites()->get($siteId) // Site $site;

发布域名

$site->publish();

获取站点的域名

$webflow->sites($siteId)->domains();
// or
$webflow->sites($siteId)->domains;

获取站点的收藏夹

$site->collections; // [Collection $collection1, Collection $collection2, ...]
// or
$site->collections(); // [Collection $collection1, Collection $collection2, ...]

通过其ID获取特定收藏夹

$site->collections($collectionId) // Collection $collection;

获取收藏夹的项目

$site->collections($collectionId)->items(); // [Item $item1, Item $item2, ...]
// or
$site->collections($collectionId)->items; // [Item $item1, Item $item2, ...]

获取站点的webhooks

$site->webhooks(); // [Webhook $webhook1, Webhook $webhook2, ...]
// or
$site->webhooks; // [Webhook $webhook1, Webhook $webhook2, ...]

获取站点的产品

$site->products(); // [Product $product1, Product $product2, ...]
// or
$site->products; // [Product $product1, Product $product2, ...]

获取站点的订单

$site->webhooks(); // [Order $order1, Order $order2, ...]
// or
$site->webhooks; // [Order $order1, Order $order2, ...]

贡献

欢迎提交拉取请求。对于主要更改,请先打开一个问题来讨论您想要更改的内容。

许可

此SDK采用MIT许可。有关更多信息,请参阅LICENSE。