Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,11 @@
- added type `ProductTailoringSetProductAttributeAction`
- added type `AttributeLevelEnum`
- added type `ProductSetProductAttributeAction`
- added type `DiscountCombinationMode`
- added type `DiscountsConfiguration`
- added type `ProjectChangePriceRoundingModeAction`
- added type `ProjectChangeTaxRoundingModeAction`
- added type `ProjectSetDiscountsConfigurationAction`
- added type `DayOfMonthSchedule`
- added type `DayOfMonthScheduleDraft`
- added type `IntervalUnit`
Expand Down Expand Up @@ -481,6 +484,7 @@
- added property `/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/` to type `ProductVariantChannelAvailabilityMap`
- added property `priceRoundingMode` to type `CartsConfiguration`
- added property `taxRoundingMode` to type `CartsConfiguration`
- added property `discounts` to type `Project`
- added property `priceRoundingMode` to type `QuoteRequest`
- added property `priceRoundingMode` to type `Quote`
- added property `businessUnit` to type `ShoppingList`
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

declare(strict_types=1);
/**
* This file has been auto generated
* Do not change it.
*/

namespace Commercetools\Api\Models\Project;

use Commercetools\Base\DateTimeImmutableCollection;
use Commercetools\Base\JsonObject;

interface DiscountsConfiguration extends JsonObject
{
public const FIELD_DISCOUNT_COMBINATION_MODE = 'discountCombinationMode';

/**
* <p>Indicates how Product Discounts and Cart Discounts should be combined. Default value is <code>Stacking</code>.</p>
*

* @return null|string
*/
public function getDiscountCombinationMode();

/**
* @param ?string $discountCombinationMode
*/
public function setDiscountCombinationMode(?string $discountCombinationMode): void;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

declare(strict_types=1);
/**
* This file has been auto generated
* Do not change it.
*/

namespace Commercetools\Api\Models\Project;

use Commercetools\Base\Builder;
use Commercetools\Base\DateTimeImmutableCollection;
use Commercetools\Base\JsonObject;
use Commercetools\Base\JsonObjectModel;
use Commercetools\Base\MapperFactory;
use stdClass;

/**
* @implements Builder<DiscountsConfiguration>
*/
final class DiscountsConfigurationBuilder implements Builder
{
/**

* @var ?string
*/
private $discountCombinationMode;

/**
* <p>Indicates how Product Discounts and Cart Discounts should be combined. Default value is <code>Stacking</code>.</p>
*

* @return null|string
*/
public function getDiscountCombinationMode()
{
return $this->discountCombinationMode;
}

/**
* @param ?string $discountCombinationMode
* @return $this
*/
public function withDiscountCombinationMode(?string $discountCombinationMode)
{
$this->discountCombinationMode = $discountCombinationMode;

return $this;
}


public function build(): DiscountsConfiguration
{
return new DiscountsConfigurationModel(
$this->discountCombinationMode
);
}

public static function of(): DiscountsConfigurationBuilder
{
return new self();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php

declare(strict_types=1);
/**
* This file has been auto generated
* Do not change it.
*/

namespace Commercetools\Api\Models\Project;

use Commercetools\Base\MapperSequence;
use Commercetools\Exception\InvalidArgumentException;
use stdClass;

/**
* @extends MapperSequence<DiscountsConfiguration>
* @method DiscountsConfiguration current()
* @method DiscountsConfiguration end()
* @method DiscountsConfiguration at($offset)
*/
class DiscountsConfigurationCollection extends MapperSequence
{
/**
* @psalm-assert DiscountsConfiguration $value
* @psalm-param DiscountsConfiguration|stdClass $value
* @throws InvalidArgumentException
*
* @return DiscountsConfigurationCollection
*/
public function add($value)
{
if (!$value instanceof DiscountsConfiguration) {
throw new InvalidArgumentException();
}
$this->store($value);

return $this;
}

/**
* @psalm-return callable(int):?DiscountsConfiguration
*/
protected function mapper()
{
return function (?int $index): ?DiscountsConfiguration {
$data = $this->get($index);
if ($data instanceof stdClass) {
/** @var DiscountsConfiguration $data */
$data = DiscountsConfigurationModel::of($data);
$this->set($data, $index);
}

return $data;
};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?php

declare(strict_types=1);
/**
* This file has been auto generated
* Do not change it.
*/

namespace Commercetools\Api\Models\Project;

use Commercetools\Base\DateTimeImmutableCollection;
use Commercetools\Base\JsonObject;
use Commercetools\Base\JsonObjectModel;
use Commercetools\Base\MapperFactory;
use stdClass;

/**
* @internal
*/
final class DiscountsConfigurationModel extends JsonObjectModel implements DiscountsConfiguration
{
/**
*
* @var ?string
*/
protected $discountCombinationMode;


/**
* @psalm-suppress MissingParamType
*/
public function __construct(
?string $discountCombinationMode = null
) {
$this->discountCombinationMode = $discountCombinationMode;
}

/**
* <p>Indicates how Product Discounts and Cart Discounts should be combined. Default value is <code>Stacking</code>.</p>
*
*
* @return null|string
*/
public function getDiscountCombinationMode()
{
if (is_null($this->discountCombinationMode)) {
/** @psalm-var ?string $data */
$data = $this->raw(self::FIELD_DISCOUNT_COMBINATION_MODE);
if (is_null($data)) {
return null;
}
$this->discountCombinationMode = (string) $data;
}

return $this->discountCombinationMode;
}


/**
* @param ?string $discountCombinationMode
*/
public function setDiscountCombinationMode(?string $discountCombinationMode): void
{
$this->discountCombinationMode = $discountCombinationMode;
}
}
14 changes: 14 additions & 0 deletions lib/commercetools-api/src/Models/Project/Project.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ interface Project extends JsonObject
public const FIELD_EXTERNAL_O_AUTH = 'externalOAuth';
public const FIELD_SEARCH_INDEXING = 'searchIndexing';
public const FIELD_BUSINESS_UNITS = 'businessUnits';
public const FIELD_DISCOUNTS = 'discounts';

/**
* <p>Current version of the Project.</p>
Expand Down Expand Up @@ -151,6 +152,14 @@ public function getSearchIndexing();
*/
public function getBusinessUnits();

/**
* <p>Holds configuration specific to discounts, including how Product and Cart Discounts are combined in every Cart of the Project.</p>
*

* @return null|DiscountsConfiguration
*/
public function getDiscounts();

/**
* @param ?int $version
*/
Expand Down Expand Up @@ -225,4 +234,9 @@ public function setSearchIndexing(?SearchIndexingConfiguration $searchIndexing):
* @param ?BusinessUnitConfiguration $businessUnits
*/
public function setBusinessUnits(?BusinessUnitConfiguration $businessUnits): void;

/**
* @param ?DiscountsConfiguration $discounts
*/
public function setDiscounts(?DiscountsConfiguration $discounts): void;
}
42 changes: 41 additions & 1 deletion lib/commercetools-api/src/Models/Project/ProjectBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,12 @@ final class ProjectBuilder implements Builder
*/
private $businessUnits;

/**

* @var null|DiscountsConfiguration|DiscountsConfigurationBuilder
*/
private $discounts;

/**
* <p>Current version of the Project.</p>
*
Expand Down Expand Up @@ -278,6 +284,17 @@ public function getBusinessUnits()
return $this->businessUnits instanceof BusinessUnitConfigurationBuilder ? $this->businessUnits->build() : $this->businessUnits;
}

/**
* <p>Holds configuration specific to discounts, including how Product and Cart Discounts are combined in every Cart of the Project.</p>
*

* @return null|DiscountsConfiguration
*/
public function getDiscounts()
{
return $this->discounts instanceof DiscountsConfigurationBuilder ? $this->discounts->build() : $this->discounts;
}

/**
* @param ?int $version
* @return $this
Expand Down Expand Up @@ -443,6 +460,17 @@ public function withBusinessUnits(?BusinessUnitConfiguration $businessUnits)
return $this;
}

/**
* @param ?DiscountsConfiguration $discounts
* @return $this
*/
public function withDiscounts(?DiscountsConfiguration $discounts)
{
$this->discounts = $discounts;

return $this;
}

/**
* @deprecated use withMessages() instead
* @return $this
Expand Down Expand Up @@ -520,6 +548,17 @@ public function withBusinessUnitsBuilder(?BusinessUnitConfigurationBuilder $busi
return $this;
}

/**
* @deprecated use withDiscounts() instead
* @return $this
*/
public function withDiscountsBuilder(?DiscountsConfigurationBuilder $discounts)
{
$this->discounts = $discounts;

return $this;
}

public function build(): Project
{
return new ProjectModel(
Expand All @@ -537,7 +576,8 @@ public function build(): Project
$this->shippingRateInputType instanceof ShippingRateInputTypeBuilder ? $this->shippingRateInputType->build() : $this->shippingRateInputType,
$this->externalOAuth instanceof ExternalOAuthBuilder ? $this->externalOAuth->build() : $this->externalOAuth,
$this->searchIndexing instanceof SearchIndexingConfigurationBuilder ? $this->searchIndexing->build() : $this->searchIndexing,
$this->businessUnits instanceof BusinessUnitConfigurationBuilder ? $this->businessUnits->build() : $this->businessUnits
$this->businessUnits instanceof BusinessUnitConfigurationBuilder ? $this->businessUnits->build() : $this->businessUnits,
$this->discounts instanceof DiscountsConfigurationBuilder ? $this->discounts->build() : $this->discounts
);
}

Expand Down
Loading