nicdev / webflow-sdk
使用Webflow API提供的所有功能
0.6.4
2023-05-12 00:22 UTC
Requires
- guzzlehttp/guzzle: ^7.5
Requires (Dev)
- laravel/pint: ^1.8
- pestphp/pest: ^2.4
- phpstan/phpstan: ^1.10
README
请注意!这是一个处于活跃开发中的非常早期的版本。所以如果您决定使用它,请务必小心 ✌️
这是一个开源软件,且以任何官方方式都不受Webflow支持。
这个PHP SDK允许您轻松地与Webflow API交互。
使用这个库主要有两种方式。通过访问站点和其他实体,与它们各自的类或...
...直接作为API包装器,通过底层的Webflow类。
目录
安装
通过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。