1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
<?php
/**
* @author @jenschude <jens.schulze@commercetools.de>
*/
namespace Commercetools\Core\Model\Order;
use Commercetools\Core\Model\Cart\ItemShippingDetailsDraft;
use Commercetools\Core\Model\Common\AddressCollection;
use Commercetools\Core\Model\Common\Context;
use Commercetools\Core\Model\Common\JsonObject;
use Commercetools\Core\Model\Common\LocalizedString;
use Commercetools\Core\Model\Common\Price;
use Commercetools\Core\Model\Channel\ChannelReference;
use Commercetools\Core\Model\TaxCategory\TaxRate;
use Commercetools\Core\Model\CustomField\CustomFieldObjectDraft;
/**
* @package Commercetools\Core\Model\Order
* @link https://docs.commercetools.com/http-api-projects-orders-import.html#lineitemimportdraft
* @method string getProductId()
* @method LineItemImportDraft setProductId(string $productId = null)
* @method LocalizedString getName()
* @method LineItemImportDraft setName(LocalizedString $name = null)
* @method ProductVariantImportDraft getVariant()
* @method LineItemImportDraft setVariant(ProductVariantImportDraft $variant = null)
* @method Price getPrice()
* @method LineItemImportDraft setPrice(Price $price = null)
* @method int getQuantity()
* @method LineItemImportDraft setQuantity(int $quantity = null)
* @method ItemStateCollection getState()
* @method LineItemImportDraft setState(ItemStateCollection $state = null)
* @method ChannelReference getSupplyChannel()
* @method LineItemImportDraft setSupplyChannel(ChannelReference $supplyChannel = null)
* @method TaxRate getTaxRate()
* @method LineItemImportDraft setTaxRate(TaxRate $taxRate = null)
* @method CustomFieldObjectDraft getCustom()
* @method LineItemImportDraft setCustom(CustomFieldObjectDraft $custom = null)
* @method AddressCollection getItemShippingAddresses()
* @method LineItemImportDraft setItemShippingAddresses(AddressCollection $itemShippingAddresses = null)
* @method ItemShippingDetailsDraft getShippingDetails()
* @method LineItemImportDraft setShippingDetails(ItemShippingDetailsDraft $shippingDetails = null)
* @method ChannelReference getDistributionChannel()
* @method LineItemImportDraft setDistributionChannel(ChannelReference $distributionChannel = null)
*/
class LineItemImportDraft extends JsonObject
{
public function fieldDefinitions()
{
return [
'productId' => [static::TYPE => 'string', static::OPTIONAL => true],
'name' => [static::TYPE => LocalizedString::class],
'variant' => [static::TYPE => ProductVariantImportDraft::class],
'price' => [static::TYPE => Price::class],
'quantity' => [static::TYPE => 'int'],
'state' => [static::TYPE => ItemStateCollection::class, static::OPTIONAL => true],
'supplyChannel' => [static::TYPE => ChannelReference::class, static::OPTIONAL => true],
'distributionChannel' => [static::TYPE => ChannelReference::class, static::OPTIONAL => true],
'taxRate' => [static::TYPE => TaxRate::class, static::OPTIONAL => true],
'custom' => [static::TYPE => CustomFieldObjectDraft::class, static::OPTIONAL => true],
'shippingDetails' => [static::TYPE => ItemShippingDetailsDraft::class, static::OPTIONAL => true],
];
}
/**
* @param LocalizedString $name
* @param Price $price
* @param int $quantity
* @param Context|callable $context
* @return LineItemImportDraft
*/
public static function ofNamePriceAndQuantity(LocalizedString $name, Price $price, $quantity, $context = null)
{
return static::of($context)->setName($name)->setPrice($price)->setQuantity($quantity);
}
/**
* @param LocalizedString $name
* @param Price $price
* @param ProductVariantImportDraft $variant
* @param int $quantity
* @param Context|callable $context
* @return LineItemImportDraft
*/
public static function ofNamePriceVariantAndQuantity(
LocalizedString $name,
Price $price,
ProductVariantImportDraft $variant,
$quantity,
$context = null
) {
return static::of($context)
->setName($name)
->setPrice($price)
->setVariant($variant)
->setQuantity($quantity);
}
}