PHPackages                             jacobdekeizer/ccvshop-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. jacobdekeizer/ccvshop-client

ActiveLibrary[API Development](/categories/api)

jacobdekeizer/ccvshop-client
============================

CCV shop API client for PHP

v1.1.0(4y ago)666.5k↓11%6MITPHPPHP ^8.0CI failing

Since May 17Pushed 4y ago1 watchersCompare

[ Source](https://github.com/jacobdekeizer/ccvshop-client)[ Packagist](https://packagist.org/packages/jacobdekeizer/ccvshop-client)[ Docs](https://github.com/jacobdekeizer/ccvshop-client)[ RSS](/packages/jacobdekeizer-ccvshop-client/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (3)Dependencies (5)Versions (24)Used By (0)

CCV Shop API client for PHP
===========================

[](#ccv-shop-api-client-for-php)

[![Packagist Version](https://camo.githubusercontent.com/a5db13aad50705dd3df177dd32921666cfe3b5e8ecfc7f75e2f0fa37b8137b4f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a61636f6264656b65697a65722f63637673686f702d636c69656e74)](https://packagist.org/packages/jacobdekeizer/ccvshop-client)[![Packagist](https://camo.githubusercontent.com/19e7202fe56440e15b024d3c3d6414d19ec7748bf66c243c63cef02493b5301d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a61636f6264656b65697a65722f63637673686f702d636c69656e74)](https://packagist.org/packages/jacobdekeizer/ccvshop-client)[![Packagist](https://camo.githubusercontent.com/5588aaec3a533586f8c2f448f8d7bfcfab703e6f64b6f4cd674a2efb30dad682/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a61636f6264656b65697a65722f63637673686f702d636c69656e74)](https://packagist.org/packages/jacobdekeizer/ccvshop-client)[![Packagist](https://camo.githubusercontent.com/7663a2c69914ec756b7fa691b492e6b6549c7b2f8e8e5d1c1c167918b0a10877/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6a61636f6264656b65697a65722f63637673686f702d636c69656e74)](https://packagist.org/packages/jacobdekeizer/redjepakketje-client)[![Build](https://github.com/jacobdekeizer/ccvshop-client/workflows/Build/badge.svg)](https://github.com/jacobdekeizer/ccvshop-client/workflows/Build/badge.svg)

An object oriented PHP client for the CCV Shop API. See here for the [CCV Shop API documentation](https://demo.ccvshop.nl/API/Docs/).

Contributing
------------

[](#contributing)

Any help is appreciated, see [contributing](.github/CONTRIBUTING.md) for more information. The models and endpoints are **automatically generated**.

Installation
------------

[](#installation)

You can install this package via composer:

```
composer require jacobdekeizer/ccvshop-client

```

Usage
-----

[](#usage)

> This readme shows basic usage of this package, for all available options see the class definitions and the api documentation.

Create the client

```
$client = new \JacobDeKeizer\Ccv\Client();
$client->setBaseUrl('https://demo.ccvshop.nl');
$client->setPublicKey('public_key');
$client->setPrivateKey('private_key');
```

Documented endpoints
--------------------

[](#documented-endpoints)

EndpointMain usageroot[List supported endpoints](#root-endpoint)apps[Manage apps](#apps)attributes[Manage attributes](#attributes)attributevalues[Manage attribute values](#attribute-values)categories[Manage categories](#categories)invoices[Manage invoices](#invoices)orders[Manage orders](#orders)orderrows[Manage order rows](#order-rows)ordernotes[Manage internal order notes](#order-notes)ordernotifications[Manage order notifications](#order-notifications)packages[Manage packages](#packages)products[Manage products](#products)productattributevalues[Manage product attribute values](#product-attribute-values)productphotos[Manage product photos](#product-photos)producttocategories[Manage categories of a product](#product-categories)suppliers[Manage suppliers](#suppliers)webhooks[Manage webhooks](#webhooks)Root endpoint
-------------

[](#root-endpoint)

This endpoint returns the supported endpoints for your CCV Shop API keys.

```
$result = $client->root()->all();

foreach ($result->getItems() as $item) {
    var_dump($item);
}
```

Apps
----

[](#apps)

### Get all apps in a certain store category

[](#get-all-apps-in-a-certain-store-category)

You can optionally filter, expand or sort.

In the example below, we're filtering by name, expanding categories and sorting by date.

```
$parameters = (new \JacobDeKeizer\Ccv\Parameters\Apps\AllFromAppstorecategory())
    ->setName('FooBar')
    ->expandCategories()
    ->orderByDateAsc();

$apps = $client->apps()->allFromAppstorecategory(11, $parameters);

foreach ($apps->getItems() as $app) {
    var_dump($app->getName());
}
```

### Get all apps

[](#get-all-apps)

This will get all apps associated with the current public and private key.

You can use the `\JacobDeKeizer\Ccv\Parameters\Apps\All` parameter to filter the results, like above.

```
$apps = $client->apps()->all();

foreach ($apps->getItems() as $app) {
    var_dump($app->getName());
}
```

### Get an app

[](#get-an-app)

```
$app = $client->apps()->get(123456);

var_dump($app->getName());
```

### Update an app

[](#update-an-app)

For example set the app to installed

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Apps\Patch\Patch())
    ->setIsInstalled(true);

$client->apps()->update(12345, $patch);
```

Attributes
----------

[](#attributes)

### Get attribute

[](#get-attribute)

```
$client->attributes()->get(1234);
```

### Get all attributes

[](#get-all-attributes)

```
$client->attributes()->all();
```

### Get all attribute combinations

[](#get-all-attribute-combinations)

```
$client->attributes()->allFromAttributecombination(1234);
```

### Create attribute

[](#create-attribute)

```
$attribute = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Attributes\Input\Input())
    ->setName('Foo')
    ->setType('option_menu_required');

$client->attributes()->create($attribute);
```

### Update attribute

[](#update-attribute)

```
$attribute = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Attributes\Input\Input())
    ->setName('Foo')
    ->setType('option_menu_required');

$client->attributes()->update(1234, $attribute);
```

### Delete attribute

[](#delete-attribute)

```
$client->attributes()->delete(1234);
```

Attribute values
----------------

[](#attribute-values)

### Get attribute values

[](#get-attribute-values)

```
$client->attributevalues()->get(1234);
```

### Get all attribute values for attribute

[](#get-all-attribute-values-for-attribute)

```
$client->attributevalues()->allFromAttribute(1234);
```

### Get all attribute values for combination

[](#get-all-attribute-values-for-combination)

```
$client->attributevalues()->allFromAttributecombination(1234);
```

### Create attribute value

[](#create-attribute-value)

```
$create = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Attributevalues\Post\Post())
    ->setName('Bar')
    ->setDefaultPrice(0);

$client->attributevalues()->createForAttribute(1234, $create);
```

### Update attribute value

[](#update-attribute-value)

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Attributevalues\Patch\Patch())
    ->setName('Bar')
    ->setDefaultPrice(0);

$client->attributevalues()->update(1234, $patch);
```

### Delete attribute values

[](#delete-attribute-values)

```
$client->attributevalues()->delete(1234);
```

Categories
----------

[](#categories)

### Get all child categories of a category

[](#get-all-child-categories-of-a-category)

```
$categories = $client->categories()->allFromCategory(1);
```

### Get all categories

[](#get-all-categories)

```
$parameter = (new \JacobDeKeizer\Ccv\Parameters\Categories\All)
    ->setSize(10); // optional

$categories = $client->categories()->all($parameter);

$nextParameter = \JacobDeKeizer\Ccv\Parameters\Categories\All::fromUrl($categories->getNext());
```

### Get category

[](#get-category)

```
$category = $client->categories()->get(1);

$category->getId();
$category->getName();
$category->getDescription();
```

### Create category

[](#create-category)

```
$client->categories()->create(
    (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Categories\Post\Post())
        ->setName('foo bar')
);
```

### Update category

[](#update-category)

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Categories\Patch\Patch())
    ->setName('foo bar');

$client->categories()->update(1, $patch);
```

### Delete category

[](#delete-category)

```
$client->categories()->delete(12345);
```

Invoices
--------

[](#invoices)

### Get all invoices

[](#get-all-invoices)

Get all invoices between 2020-01-01 and 2020-01-31

```
// see the code and documentation for all available methods
$getInvoicesParameter = (new \JacobDeKeizer\Ccv\Parameters\Invoices\All)
    ->setMinCreateDate('2020-01-01')
    ->setMaxCreateDate('2020-01-31');

$invoices = $client->invoices()->all($getInvoicesParameter);
```

### Get invoice

[](#get-invoice)

```
$invoice = $client->invoices()->get(123456);
```

### Update invoice

[](#update-invoice)

```
$invoice = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Invoices\Input\Input())
    ->setStatus(1);
    // ->set...

$client->invoices()->update(123456, $invoice);
```

### Create invoice

[](#create-invoice)

```
$invoice = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Invoices\Input\Input())
    ->setStatus(2);
    //->set..

$client->invoices()->createForOrder(123, $invoice);
```

Orders
------

[](#orders)

### Get all orders with order rows

[](#get-all-orders-with-order-rows)

Get all open orders which are paid and completed

```
$getOrdersParameter = (new \JacobDeKeizer\Ccv\Parameters\Orders\All)
    ->setStatus(1)
    ->setIsPaid(true)
    ->setIsCompleted(true);

do {
    $orders = $client->orders()->all($getOrdersParameter);

    foreach ($orders->getItems() as $order) {
        // see the code and documentation for all available methods
        var_dump($order);
        $order->getUser()->getId();
        $order->getCustomer()->getBillingaddress()->getStreet();
        $order->getCustomer()->getBillingaddress()->getHousenumber();
        $order->getCustomer()->getBillingaddress()->getHousenumberSuffix();
        $order->getCustomer()->getBillingaddress()->getZipcode();
        $order->getCustomer()->getBillingaddress()->getCity();
        $order->getCustomer()->getDeliveryaddress()->getStreet();
        $order->getCustomer()->getDeliveryaddress()->getHousenumber();
        $order->getCustomer()->getDeliveryaddress()->getHousenumberSuffix();
        $order->getCustomer()->getDeliveryaddress()->getZipcode();
        $order->getCustomer()->getDeliveryaddress()->getCity();
        $order->getCustomer()->getBillingaddress()->getFirstName();
        $order->getCustomer()->getBillingaddress()->getLastName();
        $order->getCustomer()->getBillingaddress()->getTelephone();
        $order->getCustomer()->getEmail();

        $orderRows = $client->orderrows()->allFromOrder($order->getId());

        var_dump($orderRows);

        foreach ($orderRows->getItems() as $orderRow) {
            var_dump($orderRow);

            $orderRow->getId();
            $orderRow->getCount();
            $orderRow->getPrice();
            $orderRow->getProductId();
            $orderRow->getProductName();
            $orderRow->getPriceWithoutDiscount();
            $orderRow->getDiscount();
            $orderRow->getStockLocation();
            $orderRow->getWeight();
            $orderRow->getSubEanNumber();
        }
    }

    $getOrdersParameter = \JacobDeKeizer\Ccv\Parameters\Orders\All::fromUrl($orders->getNext());
} while($getOrdersParameter !== null);
```

### Get order

[](#get-order)

```
// see the code and documentation for all available methods
$order = $client->orders()->get(123456);
```

### Update order

[](#update-order)

For example update the order status and the customer email

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Orders\Patch\Patch())
    ->setStatus(6)
    ->setCustomer(
        (new \JacobDeKeizer\Ccv\Models\Internal\Entity\Personalinfo\Input\Input())
            ->setEmail('example@example.com')
    );
    // ->set...

$client->orders()->update(123456, $patch);
```

### Create order

[](#create-order)

```
$order = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Orders\Post\Post())
    ->setInvoicenumber(123456);
    //->set..

$client->orders()->create($order);
```

Order rows
----------

[](#order-rows)

### Get all order rows of an order

[](#get-all-order-rows-of-an-order)

```
$orderId = 123456;

$parameter = (new \JacobDeKeizer\Ccv\Parameters\OrderRows\AllFromOrder()) // optional parameter
    ->setStart(10);

$orderRows = $client->orderrows()->allFromOrder($orderId, $parameter);

$nextParameter = \JacobDeKeizer\Ccv\Parameters\OrderRows\AllFromOrder::fromUrl($orderRows->getNext());
```

### Get order row

[](#get-order-row)

```
$orderRow = $client->orderrows()->get(336401521);
```

### Update order row

[](#update-order-row)

Order must not be completed to update orderrows

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Orderrows\Patch\Patch())
    ->setCount(1)
    ->setDiscount(20)
    ->setPrice(100);

$client->orderrows()->update(123456, $patch);
```

### Replace order rows of order

[](#replace-order-rows-of-order)

```
$orderId = 123456;

$newOrderrows = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Orderrows\Put\Put())
    ->setOrderrows(
        (new \JacobDeKeizer\Ccv\Models\Internal\Entity\Orderrow\Input\Input)
            ->setProductId(12345)
            ->setCount(1)
            ->setPrice(100)
            ->setDiscount(20)
            // ->set..
    );

$client->orderrows()->updateForOrder($orderId, $newOrderrows);
```

Order notes
-----------

[](#order-notes)

Order notes are for internal use only; they will not be seen by customers.

### Get all order notes for order

[](#get-all-order-notes-for-order)

```
$notes = $client->ordernotes()->allFromOrder(123);
```

### Get order note

[](#get-order-note)

```
$note = $client->ordernotes()->get(123456);
```

### Create order note

[](#create-order-note)

```
$ordernote = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Ordernotes\Post\Post())
    ->setNote('this note will not be seen by the customer');

$client->ordernotes()->createForOrder(123, $ordernote);
```

### Delete order note

[](#delete-order-note)

```
$client->ordernotes()->delete(123456);
```

Order notifications
-------------------

[](#order-notifications)

### Get all order notifications for order

[](#get-all-order-notifications-for-order)

```
$notifications = $client->ordernotifications()->allFromOrder(123);
```

### Get order notification

[](#get-order-notification)

```
$notification = $client->ordernotifications()->get(123456);
```

### Create order notification

[](#create-order-notification)

```
$ordernotification = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Ordernotifications\Input\Input())
    ->setType('customer_paymentlink');

$client->ordernotifications()->createForOrder(123, $ordernotification);
```

Packages
--------

[](#packages)

### Get all packages

[](#get-all-packages)

```
$packages = $client->packages()->all();
```

### Get package

[](#get-package)

```
$package = $client->packages()->get(12345);
```

### Create package

[](#create-package)

```
$client->packages()->create(
    (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Packages\Input\Input())
        ->setName('foobar')
);
```

### Update package

[](#update-package)

```
$input = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Packages\Input\Input())
    ->setName('baz boo');

$client->packages()->update(12345, $input);
```

Products
--------

[](#products)

### All products

[](#all-products)

```
// parameter is optional
$getProductsParameter = (new \JacobDeKeizer\Ccv\Parameters\Products\All)
    ->setMinStock(5)
    ->expandProductPhotos()
    ->orderByIdAsc();

$products = $client->products()->all($getProductsParameter);

foreach ($products->getItems() as $product) {
    // see the code and documentation for all available methods
    var_dump($product);

    $product->getId();
    $product->getStock();
    $product->getDiscount();
    $product->getWeight();
    $product->getPrice();
    $product->getBrand()->getId();
    $product->getEannumber();
    $product->getVatrate();
    // ...
}

$nextRequest = \JacobDeKeizer\Ccv\Parameters\Products\All::fromUrl($products->getNext());
```

### All products from brand

[](#all-products-from-brand)

```
$products = $client->products()->allFromBrand(1234);
```

### All products from webshop

[](#all-products-from-webshop)

```
$products = $client->products()->allFromWebshop(1234);
```

### All products from category

[](#all-products-from-category)

```
$products = $client->products()->allFromCategory(1234);
```

### All products from condition

[](#all-products-from-condition)

```
$products = $client->products()->allFromCondition(1234);
```

### All products from supplier

[](#all-products-from-supplier)

```
$products = $client->products()->allFromSupplier(1234);
```

### Get product

[](#get-product)

```
$product = $client->products()->get(1234);
```

### Update product

[](#update-product)

```
// see the code and documentation for all available methods
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Products\Patch\Patch())
        ->setDiscount(4.99)
        ->setPrice(100)
        ->setProductnumber('my_number')
        ->setActive(true)
        ->setDescription('This is a description')
        ->setEannumber('an ean number')
        ->setMetaKeywords('keyword')
        ->setStock(100)
        ->setUnit('piece')
        ->setWeight(5.5);

$client->products()->update(1234, $patch);

// or only update stock
$client->products()->update(
    1234,
    (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Products\Patch\Patch())
        ->setStock(99)
);
```

### Create product

[](#create-product)

```
// see the code and documentation for all available methods
$product = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Products\Post\Post())
    ->setDiscount(4.99)
    ->setPrice(100)
    ->setProductnumber('my_number')
    ->setActive(true)
    ->setDescription('This is a description')
    ->setEannumber('an ean number')
    ->setMetaKeywords('keyword')
    ->setStock(100)
    ->setUnit('piece')
    ->setWeight(5.5);
    // ->set...

$client->products()->create($product);
```

### Delete product

[](#delete-product)

```
$client->products()->delete(1234);
```

Product attribute values
------------------------

[](#product-attribute-values)

### Get product attribute value

[](#get-product-attribute-value)

```
$client->productattributevalues()->get(1234);
```

### Get all product attribute values from a product

[](#get-all-product-attribute-values-from-a-product)

```
$client->productattributevalues()->allFromProduct(1234);
```

### Create product attribute values

[](#create-product-attribute-values)

```
$post = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Productattributevalues\Post\Post())
    ->setPrice(2);
    // ->set...

$client->productattributevalues()->createForProduct(1234, $post);
```

### Update product attribute values

[](#update-product-attribute-values)

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Productattributevalues\Patch\Patch())
    ->setPrice(2);
    // ->set...

$client->productattributevalues()->update(1234, $patch);
```

### Delete product attribute value

[](#delete-product-attribute-value)

```
$client->productattributevalues()->delete(1234);
```

Product photos
--------------

[](#product-photos)

### Get product photo

[](#get-product-photo)

```
$client->productphotos()->get(1234);
```

### Delete product photo

[](#delete-product-photo)

```
$client->productphotos()->delete(1234);
```

### Get all photos for product

[](#get-all-photos-for-product)

```
$client->productphotos()->allFromProduct(1234);
```

### Update product photo

[](#update-product-photo)

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Productphotos\Patch\Patch())
    ->setAlttext('text')
    ->setIsMainphoto(true);

$client->productphotos()->update(1234, $patch);
```

### Create product photo

[](#create-product-photo)

```
// see the code and documentation for all available methods
$post = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Productphotos\Post\Post())
    ->setSource(base64_encode(file_get_contents('photo.png')))
    ->setFileType('png');
    // ->set...

$client->productphotos()->createForProduct(1234, $post);
```

### Replace all product photos

[](#replace-all-product-photos)

```
// see the code and documentation for all available methods
$productPhoto1 = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Productphotos\Post\Post())
    ->setSource(base64_encode(file_get_contents('photo1.png')))
    ->setFileType('png');
    // ->set...

$productPhoto2 = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Productphotos\Post\Post())
    ->setSource(base64_encode(file_get_contents('photo2.jpg')))
    ->setFileType('jpg');
    // ->set...

$put = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Productphotos\Put\Put)
    ->setProductphotos($productPhoto1, $productPhoto2);

$client->productphotos()->updateForProduct(1234, $put);
```

Product categories
------------------

[](#product-categories)

### Create product to category reference

[](#create-product-to-category-reference)

```
$post = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Producttocategories\Post\Post())
    ->setProductId(123)
    ->setCategoryId(456)
    ->setPosition(null);

$client->producttocategories()->create($post);
```

### Get product to category reference

[](#get-product-to-category-reference)

```
$client->producttocategories()->get(123);
```

### Get product to category references by product

[](#get-product-to-category-references-by-product)

```
$client->producttocategories()->allFromProduct(123);
```

### Get product to category references by category

[](#get-product-to-category-references-by-category)

```
$client->producttocategories()->allFromCategory(123);
```

### Delete product to category by reference

[](#delete-product-to-category-by-reference)

```
$client->producttocategories()->delete(123);
```

### Update product to category reference

[](#update-product-to-category-reference)

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Producttocategories\Patch\Patch())
    ->setPosition(1);

$client->producttocategories()->update(123, $patch);
```

### Create product to category reference

[](#create-product-to-category-reference-1)

```
$post = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Producttocategories\Post\Post())
    ->setProductId(123)
    ->setCategoryId(456)
    ->setPosition(null);

$client->producttocategories()->create($post);
```

### Get product to category reference

[](#get-product-to-category-reference-1)

```
$client->producttocategories()->get(123);
```

### Get product to category references by product

[](#get-product-to-category-references-by-product-1)

```
$client->producttocategories()->allFromProduct(123);
```

### Get product to category references by category

[](#get-product-to-category-references-by-category-1)

```
$client->producttocategories()->allFromCategory(123);
```

### Delete product to category by reference

[](#delete-product-to-category-by-reference-1)

```
$client->producttocategories()->delete(123);
```

### Update product to category reference

[](#update-product-to-category-reference-1)

```
$patch = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Producttocategories\Patch\Patch())
    ->setPosition(1);

$client->producttocategories()->update(123, $patch);
```

Suppliers
---------

[](#suppliers)

### Get all suppliers

[](#get-all-suppliers)

```
$suppliers = $client->suppliers()->all();
```

### Get supplier

[](#get-supplier)

```
$supplier = $client->suppliers()->get(12345);
```

### Create supplier

[](#create-supplier)

```
$client->suppliers()->create(
    (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Suppliers\Input\Input())
        ->setName('foobar')
);
```

### Update supplier

[](#update-supplier)

```
$input = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Suppliers\Input\Input())
    ->setName('bazboo');

$client->suppliers()->update(12345, $input);
```

### Delete supplier

[](#delete-supplier)

```
$client->suppliers()->delete(12345);
```

Webhooks
--------

[](#webhooks)

### Get all webhooks

[](#get-all-webhooks)

```
$parameter = (new \JacobDeKeizer\Ccv\Parameters\Webhooks\All())
                ->setSize(10); // optional

$webhooks = $client->webhooks()->all($parameter);

$nextParameter = \JacobDeKeizer\Ccv\Parameters\Webhooks\All::fromUrl($webhooks->getNext());
```

### Get a webhook

[](#get-a-webhook)

```
$webhook = $client->webhooks()->get(12345);
```

### Create a webhook

[](#create-a-webhook)

```
$webhook = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Webhooks\Post\Post())
    ->setEvent('foo.bar')
    ->setAddress('https://example.com/foo.bar')
    ->setIsActive(true);

$createdWebhook = $client->webhooks()->create($webhook);

var_dump($createdWebhook->getId());
```

### Update a webhook

[](#update-a-webhook)

In this example, the webhook will be disabled.

```
$webhook = (new \JacobDeKeizer\Ccv\Models\Internal\Resource\Webhooks\Patch\Patch())
                ->setIsActive(false);

$client->webhooks()->update(12345, $webhook);
```

### Delete a webhook

[](#delete-a-webhook)

```
$client->webhooks()->delete(12345);
```

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity38

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 75.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~36 days

Recently: every ~111 days

Total

22

Last Release

1482d ago

Major Versions

v0.18.0 → v1.0.02022-02-17

PHP version history (3 changes)v0.1.0PHP &gt;=7.2

v0.14.0PHP ^7.3 || ^8.0

v1.0.0PHP ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/15017400?v=4)[jacobdekeizer](/maintainers/jacobdekeizer)[@jacobdekeizer](https://github.com/jacobdekeizer)

---

Top Contributors

[![jacobdekeizer](https://avatars.githubusercontent.com/u/15017400?v=4)](https://github.com/jacobdekeizer "jacobdekeizer (50 commits)")[![sandcore-dev](https://avatars.githubusercontent.com/u/32176563?v=4)](https://github.com/sandcore-dev "sandcore-dev (9 commits)")[![KevinXL](https://avatars.githubusercontent.com/u/5447200?v=4)](https://github.com/KevinXL "KevinXL (6 commits)")[![FrederikDV](https://avatars.githubusercontent.com/u/12464912?v=4)](https://github.com/FrederikDV "FrederikDV (1 commits)")

---

Tags

phpapiclientccvshopccv shop

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/jacobdekeizer-ccvshop-client/health.svg)

```
[![Health](https://phpackages.com/badges/jacobdekeizer-ccvshop-client/health.svg)](https://phpackages.com/packages/jacobdekeizer-ccvshop-client)
```

###  Alternatives

[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k9.5M89](/packages/openai-php-laravel)[resend/resend-php

Resend PHP library.

617.2M43](/packages/resend-resend-php)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[mozex/anthropic-laravel

Laravel integration for the Anthropic API: facade, config publishing, install command, testing fakes, messages, streaming, tool use, thinking, and batches.

74331.3k1](/packages/mozex-anthropic-laravel)[checkout/checkout-sdk-php

Checkout.com SDK for PHP

563.6M13](/packages/checkout-checkout-sdk-php)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
