<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for InventoryItem StructType
 * Meta information extracted from the WSDL
 * - type: listAcct:InventoryItem
 * @subpackage Structs
 */
class InventoryItem extends Record
{
    /**
     * The createdDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $createdDate;
    /**
     * The lastModifiedDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $lastModifiedDate;
    /**
     * The purchaseDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $purchaseDescription;
    /**
     * The copyDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $copyDescription;
    /**
     * The expenseAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $expenseAccount;
    /**
     * The dateConvertedToInv
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dateConvertedToInv;
    /**
     * The originalItemType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $originalItemType;
    /**
     * The originalItemSubtype
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $originalItemSubtype;
    /**
     * The cogsAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $cogsAccount;
    /**
     * The intercoCogsAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $intercoCogsAccount;
    /**
     * The salesDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $salesDescription;
    /**
     * The fraudRisk
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $fraudRisk;
    /**
     * The includeChildren
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $includeChildren;
    /**
     * The incomeAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $incomeAccount;
    /**
     * The intercoIncomeAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $intercoIncomeAccount;
    /**
     * The taxSchedule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $taxSchedule;
    /**
     * The dropshipExpenseAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $dropshipExpenseAccount;
    /**
     * The deferRevRec
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $deferRevRec;
    /**
     * The revenueRecognitionRule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $revenueRecognitionRule;
    /**
     * The revRecForecastRule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $revRecForecastRule;
    /**
     * The revenueAllocationGroup
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $revenueAllocationGroup;
    /**
     * The createRevenuePlansOn
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $createRevenuePlansOn;
    /**
     * The directRevenuePosting
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $directRevenuePosting;
    /**
     * The contingentRevenueHandling
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $contingentRevenueHandling;
    /**
     * The revReclassFXAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $revReclassFXAccount;
    /**
     * The isTaxable
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isTaxable;
    /**
     * The matrixType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $matrixType;
    /**
     * The assetAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $assetAccount;
    /**
     * The matchBillToReceipt
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $matchBillToReceipt;
    /**
     * The billQtyVarianceAcct
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $billQtyVarianceAcct;
    /**
     * The billPriceVarianceAcct
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $billPriceVarianceAcct;
    /**
     * The billExchRateVarianceAcct
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $billExchRateVarianceAcct;
    /**
     * The gainLossAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $gainLossAccount;
    /**
     * The shippingCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $shippingCost;
    /**
     * The shippingCostUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $shippingCostUnits;
    /**
     * The handlingCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $handlingCost;
    /**
     * The handlingCostUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $handlingCostUnits;
    /**
     * The weight
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $weight;
    /**
     * The weightUnit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $weightUnit;
    /**
     * The weightUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $weightUnits;
    /**
     * The costingMethodDisplay
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $costingMethodDisplay;
    /**
     * The unitsType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $unitsType;
    /**
     * The stockUnit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $stockUnit;
    /**
     * The purchaseUnit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $purchaseUnit;
    /**
     * The saleUnit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $saleUnit;
    /**
     * The issueProduct
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $issueProduct;
    /**
     * The billingSchedule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $billingSchedule;
    /**
     * The trackLandedCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $trackLandedCost;
    /**
     * The matrixItemNameTemplate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $matrixItemNameTemplate;
    /**
     * The isDropShipItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isDropShipItem;
    /**
     * The isSpecialOrderItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isSpecialOrderItem;
    /**
     * The stockDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $stockDescription;
    /**
     * The deferredRevenueAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $deferredRevenueAccount;
    /**
     * The intercoDefRevAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $intercoDefRevAccount;
    /**
     * The producer
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $producer;
    /**
     * The manufacturer
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $manufacturer;
    /**
     * The revRecSchedule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $revRecSchedule;
    /**
     * The mpn
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $mpn;
    /**
     * The multManufactureAddr
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $multManufactureAddr;
    /**
     * The manufacturerAddr1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $manufacturerAddr1;
    /**
     * The manufacturerCity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $manufacturerCity;
    /**
     * The manufacturerState
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $manufacturerState;
    /**
     * The manufacturerZip
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $manufacturerZip;
    /**
     * The countryOfManufacture
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $countryOfManufacture;
    /**
     * The roundUpAsComponent
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $roundUpAsComponent;
    /**
     * The purchaseOrderQuantity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $purchaseOrderQuantity;
    /**
     * The purchaseOrderAmount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $purchaseOrderAmount;
    /**
     * The purchaseOrderQuantityDiff
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $purchaseOrderQuantityDiff;
    /**
     * The receiptQuantity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $receiptQuantity;
    /**
     * The receiptAmount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $receiptAmount;
    /**
     * The receiptQuantityDiff
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $receiptQuantityDiff;
    /**
     * The defaultItemShipMethod
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $defaultItemShipMethod;
    /**
     * The itemCarrier
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $itemCarrier;
    /**
     * The itemShipMethodList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRefList
     */
    public $itemShipMethodList;
    /**
     * The manufacturerTaxId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $manufacturerTaxId;
    /**
     * The scheduleBNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $scheduleBNumber;
    /**
     * The scheduleBQuantity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $scheduleBQuantity;
    /**
     * The scheduleBCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $scheduleBCode;
    /**
     * The manufacturerTariff
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $manufacturerTariff;
    /**
     * The preferenceCriterion
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $preferenceCriterion;
    /**
     * The minimumQuantity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $minimumQuantity;
    /**
     * The enforceMinQtyInternally
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $enforceMinQtyInternally;
    /**
     * The maximumQuantity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $maximumQuantity;
    /**
     * The minimumQuantityUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $minimumQuantityUnits;
    /**
     * The softDescriptor
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $softDescriptor;
    /**
     * The shipPackage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $shipPackage;
    /**
     * The shipIndividually
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $shipIndividually;
    /**
     * The costCategory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $costCategory;
    /**
     * The pricesIncludeTax
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $pricesIncludeTax;
    /**
     * The purchasePriceVarianceAcct
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $purchasePriceVarianceAcct;
    /**
     * The quantityPricingSchedule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $quantityPricingSchedule;
    /**
     * The reorderPointUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $reorderPointUnits;
    /**
     * The useMarginalRates
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $useMarginalRates;
    /**
     * The preferredStockLevelUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $preferredStockLevelUnits;
    /**
     * The costEstimateType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $costEstimateType;
    /**
     * The costEstimate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $costEstimate;
    /**
     * The transferPrice
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $transferPrice;
    /**
     * The overallQuantityPricingType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $overallQuantityPricingType;
    /**
     * The pricingGroup
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $pricingGroup;
    /**
     * The vsoePrice
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $vsoePrice;
    /**
     * The vsoeSopGroup
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $vsoeSopGroup;
    /**
     * The costEstimateUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $costEstimateUnits;
    /**
     * The vsoeDeferral
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $vsoeDeferral;
    /**
     * The vsoePermitDiscount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $vsoePermitDiscount;
    /**
     * The vsoeDelivered
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $vsoeDelivered;
    /**
     * The itemRevenueCategory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $itemRevenueCategory;
    /**
     * The preferredLocation
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $preferredLocation;
    /**
     * The isStorePickupAllowed
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isStorePickupAllowed;
    /**
     * The reorderMultiple
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $reorderMultiple;
    /**
     * The cost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $cost;
    /**
     * The lastInvtCountDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $lastInvtCountDate;
    /**
     * The nextInvtCountDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $nextInvtCountDate;
    /**
     * The invtCountInterval
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $invtCountInterval;
    /**
     * The invtClassification
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $invtClassification;
    /**
     * The costUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $costUnits;
    /**
     * The totalValue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $totalValue;
    /**
     * The averageCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $averageCost;
    /**
     * The useBins
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $useBins;
    /**
     * The quantityReorderUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $quantityReorderUnits;
    /**
     * The leadTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $leadTime;
    /**
     * The autoLeadTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $autoLeadTime;
    /**
     * The lastPurchasePrice
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $lastPurchasePrice;
    /**
     * The autoPreferredStockLevel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $autoPreferredStockLevel;
    /**
     * The preferredStockLevelDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $preferredStockLevelDays;
    /**
     * The safetyStockLevel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $safetyStockLevel;
    /**
     * The safetyStockLevelDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $safetyStockLevelDays;
    /**
     * The backwardConsumptionDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $backwardConsumptionDays;
    /**
     * The seasonalDemand
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $seasonalDemand;
    /**
     * The safetyStockLevelUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $safetyStockLevelUnits;
    /**
     * The demandModifier
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $demandModifier;
    /**
     * The distributionNetwork
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $distributionNetwork;
    /**
     * The distributionCategory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $distributionCategory;
    /**
     * The autoReorderPoint
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $autoReorderPoint;
    /**
     * The storeDisplayName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $storeDisplayName;
    /**
     * The storeDisplayThumbnail
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $storeDisplayThumbnail;
    /**
     * The storeDisplayImage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $storeDisplayImage;
    /**
     * The storeDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $storeDescription;
    /**
     * The storeDetailedDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $storeDetailedDescription;
    /**
     * The storeItemTemplate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $storeItemTemplate;
    /**
     * The pageTitle
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $pageTitle;
    /**
     * The metaTagHtml
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $metaTagHtml;
    /**
     * The excludeFromSitemap
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $excludeFromSitemap;
    /**
     * The sitemapPriority
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $sitemapPriority;
    /**
     * The searchKeywords
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $searchKeywords;
    /**
     * The isDonationItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isDonationItem;
    /**
     * The showDefaultDonationAmount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $showDefaultDonationAmount;
    /**
     * The maxDonationAmount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $maxDonationAmount;
    /**
     * The dontShowPrice
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $dontShowPrice;
    /**
     * The noPriceMessage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $noPriceMessage;
    /**
     * The outOfStockMessage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $outOfStockMessage;
    /**
     * The onSpecial
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $onSpecial;
    /**
     * The outOfStockBehavior
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $outOfStockBehavior;
    /**
     * The relatedItemsDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $relatedItemsDescription;
    /**
     * The specialsDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $specialsDescription;
    /**
     * The featuredDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $featuredDescription;
    /**
     * The shoppingDotComCategory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $shoppingDotComCategory;
    /**
     * The shopzillaCategoryId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $shopzillaCategoryId;
    /**
     * The nexTagCategory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $nexTagCategory;
    /**
     * The urlComponent
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $urlComponent;
    /**
     * The customForm
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $customForm;
    /**
     * The itemId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $itemId;
    /**
     * The upcCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $upcCode;
    /**
     * The displayName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $displayName;
    /**
     * The vendorName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $vendorName;
    /**
     * The parent
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $parent;
    /**
     * The isOnline
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isOnline;
    /**
     * The isHazmatItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isHazmatItem;
    /**
     * The hazmatId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $hazmatId;
    /**
     * The hazmatShippingName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $hazmatShippingName;
    /**
     * The hazmatHazardClass
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $hazmatHazardClass;
    /**
     * The hazmatPackingGroup
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $hazmatPackingGroup;
    /**
     * The hazmatItemUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $hazmatItemUnits;
    /**
     * The hazmatItemUnitsQty
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $hazmatItemUnitsQty;
    /**
     * The isGcoCompliant
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isGcoCompliant;
    /**
     * The offerSupport
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $offerSupport;
    /**
     * The isInactive
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isInactive;
    /**
     * The availableToPartners
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $availableToPartners;
    /**
     * The department
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $department;
    /**
     * The class
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $class;
    /**
     * The location
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $location;
    /**
     * The costingMethod
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $costingMethod;
    /**
     * The currency
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $currency;
    /**
     * The preferredStockLevel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $preferredStockLevel;
    /**
     * The pricingMatrix
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\PricingMatrix
     */
    public $pricingMatrix;
    /**
     * The hierarchyVersionsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\InventoryItemHierarchyVersionsList
     */
    public $hierarchyVersionsList;
    /**
     * The accountingBookDetailList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ItemAccountingBookDetailList
     */
    public $accountingBookDetailList;
    /**
     * The purchaseTaxCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $purchaseTaxCode;
    /**
     * The defaultReturnCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $defaultReturnCost;
    /**
     * The supplyReplenishmentMethod
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $supplyReplenishmentMethod;
    /**
     * The alternateDemandSourceItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $alternateDemandSourceItem;
    /**
     * The fixedLotSize
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $fixedLotSize;
    /**
     * The periodicLotSizeType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $periodicLotSizeType;
    /**
     * The supplyType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $supplyType;
    /**
     * The demandTimeFence
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $demandTimeFence;
    /**
     * The supplyTimeFence
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $supplyTimeFence;
    /**
     * The rescheduleInDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $rescheduleInDays;
    /**
     * The rescheduleOutDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $rescheduleOutDays;
    /**
     * The periodicLotSizeDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $periodicLotSizeDays;
    /**
     * The supplyLotSizingMethod
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $supplyLotSizingMethod;
    /**
     * The forwardConsumptionDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $forwardConsumptionDays;
    /**
     * The demandSource
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $demandSource;
    /**
     * The quantityBackOrdered
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $quantityBackOrdered;
    /**
     * The quantityCommitted
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $quantityCommitted;
    /**
     * The quantityAvailable
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $quantityAvailable;
    /**
     * The quantityOnHand
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $quantityOnHand;
    /**
     * The onHandValueMli
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $onHandValueMli;
    /**
     * The quantityOnOrder
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $quantityOnOrder;
    /**
     * The rate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $rate;
    /**
     * The reorderPoint
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $reorderPoint;
    /**
     * The quantityCommittedUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $quantityCommittedUnits;
    /**
     * The salesTaxCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $salesTaxCode;
    /**
     * The quantityAvailableUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $quantityAvailableUnits;
    /**
     * The quantityOnHandUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $quantityOnHandUnits;
    /**
     * The vendor
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $vendor;
    /**
     * The quantityOnOrderUnits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $quantityOnOrderUnits;
    /**
     * The productFeedList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ProductFeedList
     */
    public $productFeedList;
    /**
     * The subsidiaryList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRefList
     */
    public $subsidiaryList;
    /**
     * The itemOptionsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ItemOptionsList
     */
    public $itemOptionsList;
    /**
     * The itemVendorList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ItemVendorList
     */
    public $itemVendorList;
    /**
     * The siteCategoryList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SiteCategoryList
     */
    public $siteCategoryList;
    /**
     * The translationsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\TranslationList
     */
    public $translationsList;
    /**
     * The binNumberList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\InventoryItemBinNumberList
     */
    public $binNumberList;
    /**
     * The locationsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\InventoryItemLocationsList
     */
    public $locationsList;
    /**
     * The matrixOptionList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\MatrixOptionList
     */
    public $matrixOptionList;
    /**
     * The presentationItemList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\PresentationItemList
     */
    public $presentationItemList;
    /**
     * The futureHorizon
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $futureHorizon;
    /**
     * The consumptionUnit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $consumptionUnit;
    /**
     * The customFieldList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomFieldList
     */
    public $customFieldList;
    /**
     * The internalId
     * @var string
     */
    public $internalId;
    /**
     * The externalId
     * @var string
     */
    public $externalId;
    /**
     * Constructor method for InventoryItem
     * @uses InventoryItem::setCreatedDate()
     * @uses InventoryItem::setLastModifiedDate()
     * @uses InventoryItem::setPurchaseDescription()
     * @uses InventoryItem::setCopyDescription()
     * @uses InventoryItem::setExpenseAccount()
     * @uses InventoryItem::setDateConvertedToInv()
     * @uses InventoryItem::setOriginalItemType()
     * @uses InventoryItem::setOriginalItemSubtype()
     * @uses InventoryItem::setCogsAccount()
     * @uses InventoryItem::setIntercoCogsAccount()
     * @uses InventoryItem::setSalesDescription()
     * @uses InventoryItem::setFraudRisk()
     * @uses InventoryItem::setIncludeChildren()
     * @uses InventoryItem::setIncomeAccount()
     * @uses InventoryItem::setIntercoIncomeAccount()
     * @uses InventoryItem::setTaxSchedule()
     * @uses InventoryItem::setDropshipExpenseAccount()
     * @uses InventoryItem::setDeferRevRec()
     * @uses InventoryItem::setRevenueRecognitionRule()
     * @uses InventoryItem::setRevRecForecastRule()
     * @uses InventoryItem::setRevenueAllocationGroup()
     * @uses InventoryItem::setCreateRevenuePlansOn()
     * @uses InventoryItem::setDirectRevenuePosting()
     * @uses InventoryItem::setContingentRevenueHandling()
     * @uses InventoryItem::setRevReclassFXAccount()
     * @uses InventoryItem::setIsTaxable()
     * @uses InventoryItem::setMatrixType()
     * @uses InventoryItem::setAssetAccount()
     * @uses InventoryItem::setMatchBillToReceipt()
     * @uses InventoryItem::setBillQtyVarianceAcct()
     * @uses InventoryItem::setBillPriceVarianceAcct()
     * @uses InventoryItem::setBillExchRateVarianceAcct()
     * @uses InventoryItem::setGainLossAccount()
     * @uses InventoryItem::setShippingCost()
     * @uses InventoryItem::setShippingCostUnits()
     * @uses InventoryItem::setHandlingCost()
     * @uses InventoryItem::setHandlingCostUnits()
     * @uses InventoryItem::setWeight()
     * @uses InventoryItem::setWeightUnit()
     * @uses InventoryItem::setWeightUnits()
     * @uses InventoryItem::setCostingMethodDisplay()
     * @uses InventoryItem::setUnitsType()
     * @uses InventoryItem::setStockUnit()
     * @uses InventoryItem::setPurchaseUnit()
     * @uses InventoryItem::setSaleUnit()
     * @uses InventoryItem::setIssueProduct()
     * @uses InventoryItem::setBillingSchedule()
     * @uses InventoryItem::setTrackLandedCost()
     * @uses InventoryItem::setMatrixItemNameTemplate()
     * @uses InventoryItem::setIsDropShipItem()
     * @uses InventoryItem::setIsSpecialOrderItem()
     * @uses InventoryItem::setStockDescription()
     * @uses InventoryItem::setDeferredRevenueAccount()
     * @uses InventoryItem::setIntercoDefRevAccount()
     * @uses InventoryItem::setProducer()
     * @uses InventoryItem::setManufacturer()
     * @uses InventoryItem::setRevRecSchedule()
     * @uses InventoryItem::setMpn()
     * @uses InventoryItem::setMultManufactureAddr()
     * @uses InventoryItem::setManufacturerAddr1()
     * @uses InventoryItem::setManufacturerCity()
     * @uses InventoryItem::setManufacturerState()
     * @uses InventoryItem::setManufacturerZip()
     * @uses InventoryItem::setCountryOfManufacture()
     * @uses InventoryItem::setRoundUpAsComponent()
     * @uses InventoryItem::setPurchaseOrderQuantity()
     * @uses InventoryItem::setPurchaseOrderAmount()
     * @uses InventoryItem::setPurchaseOrderQuantityDiff()
     * @uses InventoryItem::setReceiptQuantity()
     * @uses InventoryItem::setReceiptAmount()
     * @uses InventoryItem::setReceiptQuantityDiff()
     * @uses InventoryItem::setDefaultItemShipMethod()
     * @uses InventoryItem::setItemCarrier()
     * @uses InventoryItem::setItemShipMethodList()
     * @uses InventoryItem::setManufacturerTaxId()
     * @uses InventoryItem::setScheduleBNumber()
     * @uses InventoryItem::setScheduleBQuantity()
     * @uses InventoryItem::setScheduleBCode()
     * @uses InventoryItem::setManufacturerTariff()
     * @uses InventoryItem::setPreferenceCriterion()
     * @uses InventoryItem::setMinimumQuantity()
     * @uses InventoryItem::setEnforceMinQtyInternally()
     * @uses InventoryItem::setMaximumQuantity()
     * @uses InventoryItem::setMinimumQuantityUnits()
     * @uses InventoryItem::setSoftDescriptor()
     * @uses InventoryItem::setShipPackage()
     * @uses InventoryItem::setShipIndividually()
     * @uses InventoryItem::setCostCategory()
     * @uses InventoryItem::setPricesIncludeTax()
     * @uses InventoryItem::setPurchasePriceVarianceAcct()
     * @uses InventoryItem::setQuantityPricingSchedule()
     * @uses InventoryItem::setReorderPointUnits()
     * @uses InventoryItem::setUseMarginalRates()
     * @uses InventoryItem::setPreferredStockLevelUnits()
     * @uses InventoryItem::setCostEstimateType()
     * @uses InventoryItem::setCostEstimate()
     * @uses InventoryItem::setTransferPrice()
     * @uses InventoryItem::setOverallQuantityPricingType()
     * @uses InventoryItem::setPricingGroup()
     * @uses InventoryItem::setVsoePrice()
     * @uses InventoryItem::setVsoeSopGroup()
     * @uses InventoryItem::setCostEstimateUnits()
     * @uses InventoryItem::setVsoeDeferral()
     * @uses InventoryItem::setVsoePermitDiscount()
     * @uses InventoryItem::setVsoeDelivered()
     * @uses InventoryItem::setItemRevenueCategory()
     * @uses InventoryItem::setPreferredLocation()
     * @uses InventoryItem::setIsStorePickupAllowed()
     * @uses InventoryItem::setReorderMultiple()
     * @uses InventoryItem::setCost()
     * @uses InventoryItem::setLastInvtCountDate()
     * @uses InventoryItem::setNextInvtCountDate()
     * @uses InventoryItem::setInvtCountInterval()
     * @uses InventoryItem::setInvtClassification()
     * @uses InventoryItem::setCostUnits()
     * @uses InventoryItem::setTotalValue()
     * @uses InventoryItem::setAverageCost()
     * @uses InventoryItem::setUseBins()
     * @uses InventoryItem::setQuantityReorderUnits()
     * @uses InventoryItem::setLeadTime()
     * @uses InventoryItem::setAutoLeadTime()
     * @uses InventoryItem::setLastPurchasePrice()
     * @uses InventoryItem::setAutoPreferredStockLevel()
     * @uses InventoryItem::setPreferredStockLevelDays()
     * @uses InventoryItem::setSafetyStockLevel()
     * @uses InventoryItem::setSafetyStockLevelDays()
     * @uses InventoryItem::setBackwardConsumptionDays()
     * @uses InventoryItem::setSeasonalDemand()
     * @uses InventoryItem::setSafetyStockLevelUnits()
     * @uses InventoryItem::setDemandModifier()
     * @uses InventoryItem::setDistributionNetwork()
     * @uses InventoryItem::setDistributionCategory()
     * @uses InventoryItem::setAutoReorderPoint()
     * @uses InventoryItem::setStoreDisplayName()
     * @uses InventoryItem::setStoreDisplayThumbnail()
     * @uses InventoryItem::setStoreDisplayImage()
     * @uses InventoryItem::setStoreDescription()
     * @uses InventoryItem::setStoreDetailedDescription()
     * @uses InventoryItem::setStoreItemTemplate()
     * @uses InventoryItem::setPageTitle()
     * @uses InventoryItem::setMetaTagHtml()
     * @uses InventoryItem::setExcludeFromSitemap()
     * @uses InventoryItem::setSitemapPriority()
     * @uses InventoryItem::setSearchKeywords()
     * @uses InventoryItem::setIsDonationItem()
     * @uses InventoryItem::setShowDefaultDonationAmount()
     * @uses InventoryItem::setMaxDonationAmount()
     * @uses InventoryItem::setDontShowPrice()
     * @uses InventoryItem::setNoPriceMessage()
     * @uses InventoryItem::setOutOfStockMessage()
     * @uses InventoryItem::setOnSpecial()
     * @uses InventoryItem::setOutOfStockBehavior()
     * @uses InventoryItem::setRelatedItemsDescription()
     * @uses InventoryItem::setSpecialsDescription()
     * @uses InventoryItem::setFeaturedDescription()
     * @uses InventoryItem::setShoppingDotComCategory()
     * @uses InventoryItem::setShopzillaCategoryId()
     * @uses InventoryItem::setNexTagCategory()
     * @uses InventoryItem::setUrlComponent()
     * @uses InventoryItem::setCustomForm()
     * @uses InventoryItem::setItemId()
     * @uses InventoryItem::setUpcCode()
     * @uses InventoryItem::setDisplayName()
     * @uses InventoryItem::setVendorName()
     * @uses InventoryItem::setParent()
     * @uses InventoryItem::setIsOnline()
     * @uses InventoryItem::setIsHazmatItem()
     * @uses InventoryItem::setHazmatId()
     * @uses InventoryItem::setHazmatShippingName()
     * @uses InventoryItem::setHazmatHazardClass()
     * @uses InventoryItem::setHazmatPackingGroup()
     * @uses InventoryItem::setHazmatItemUnits()
     * @uses InventoryItem::setHazmatItemUnitsQty()
     * @uses InventoryItem::setIsGcoCompliant()
     * @uses InventoryItem::setOfferSupport()
     * @uses InventoryItem::setIsInactive()
     * @uses InventoryItem::setAvailableToPartners()
     * @uses InventoryItem::setDepartment()
     * @uses InventoryItem::setClass()
     * @uses InventoryItem::setLocation()
     * @uses InventoryItem::setCostingMethod()
     * @uses InventoryItem::setCurrency()
     * @uses InventoryItem::setPreferredStockLevel()
     * @uses InventoryItem::setPricingMatrix()
     * @uses InventoryItem::setHierarchyVersionsList()
     * @uses InventoryItem::setAccountingBookDetailList()
     * @uses InventoryItem::setPurchaseTaxCode()
     * @uses InventoryItem::setDefaultReturnCost()
     * @uses InventoryItem::setSupplyReplenishmentMethod()
     * @uses InventoryItem::setAlternateDemandSourceItem()
     * @uses InventoryItem::setFixedLotSize()
     * @uses InventoryItem::setPeriodicLotSizeType()
     * @uses InventoryItem::setSupplyType()
     * @uses InventoryItem::setDemandTimeFence()
     * @uses InventoryItem::setSupplyTimeFence()
     * @uses InventoryItem::setRescheduleInDays()
     * @uses InventoryItem::setRescheduleOutDays()
     * @uses InventoryItem::setPeriodicLotSizeDays()
     * @uses InventoryItem::setSupplyLotSizingMethod()
     * @uses InventoryItem::setForwardConsumptionDays()
     * @uses InventoryItem::setDemandSource()
     * @uses InventoryItem::setQuantityBackOrdered()
     * @uses InventoryItem::setQuantityCommitted()
     * @uses InventoryItem::setQuantityAvailable()
     * @uses InventoryItem::setQuantityOnHand()
     * @uses InventoryItem::setOnHandValueMli()
     * @uses InventoryItem::setQuantityOnOrder()
     * @uses InventoryItem::setRate()
     * @uses InventoryItem::setReorderPoint()
     * @uses InventoryItem::setQuantityCommittedUnits()
     * @uses InventoryItem::setSalesTaxCode()
     * @uses InventoryItem::setQuantityAvailableUnits()
     * @uses InventoryItem::setQuantityOnHandUnits()
     * @uses InventoryItem::setVendor()
     * @uses InventoryItem::setQuantityOnOrderUnits()
     * @uses InventoryItem::setProductFeedList()
     * @uses InventoryItem::setSubsidiaryList()
     * @uses InventoryItem::setItemOptionsList()
     * @uses InventoryItem::setItemVendorList()
     * @uses InventoryItem::setSiteCategoryList()
     * @uses InventoryItem::setTranslationsList()
     * @uses InventoryItem::setBinNumberList()
     * @uses InventoryItem::setLocationsList()
     * @uses InventoryItem::setMatrixOptionList()
     * @uses InventoryItem::setPresentationItemList()
     * @uses InventoryItem::setFutureHorizon()
     * @uses InventoryItem::setConsumptionUnit()
     * @uses InventoryItem::setCustomFieldList()
     * @uses InventoryItem::setInternalId()
     * @uses InventoryItem::setExternalId()
     * @param string $createdDate
     * @param string $lastModifiedDate
     * @param string $purchaseDescription
     * @param bool $copyDescription
     * @param \StructType\RecordRef $expenseAccount
     * @param string $dateConvertedToInv
     * @param string $originalItemType
     * @param string $originalItemSubtype
     * @param \StructType\RecordRef $cogsAccount
     * @param \StructType\RecordRef $intercoCogsAccount
     * @param string $salesDescription
     * @param string $fraudRisk
     * @param bool $includeChildren
     * @param \StructType\RecordRef $incomeAccount
     * @param \StructType\RecordRef $intercoIncomeAccount
     * @param \StructType\RecordRef $taxSchedule
     * @param \StructType\RecordRef $dropshipExpenseAccount
     * @param bool $deferRevRec
     * @param \StructType\RecordRef $revenueRecognitionRule
     * @param \StructType\RecordRef $revRecForecastRule
     * @param \StructType\RecordRef $revenueAllocationGroup
     * @param \StructType\RecordRef $createRevenuePlansOn
     * @param bool $directRevenuePosting
     * @param bool $contingentRevenueHandling
     * @param \StructType\RecordRef $revReclassFXAccount
     * @param bool $isTaxable
     * @param string $matrixType
     * @param \StructType\RecordRef $assetAccount
     * @param bool $matchBillToReceipt
     * @param \StructType\RecordRef $billQtyVarianceAcct
     * @param \StructType\RecordRef $billPriceVarianceAcct
     * @param \StructType\RecordRef $billExchRateVarianceAcct
     * @param \StructType\RecordRef $gainLossAccount
     * @param float $shippingCost
     * @param string $shippingCostUnits
     * @param float $handlingCost
     * @param string $handlingCostUnits
     * @param float $weight
     * @param string $weightUnit
     * @param string $weightUnits
     * @param string $costingMethodDisplay
     * @param \StructType\RecordRef $unitsType
     * @param \StructType\RecordRef $stockUnit
     * @param \StructType\RecordRef $purchaseUnit
     * @param \StructType\RecordRef $saleUnit
     * @param \StructType\RecordRef $issueProduct
     * @param \StructType\RecordRef $billingSchedule
     * @param bool $trackLandedCost
     * @param string $matrixItemNameTemplate
     * @param bool $isDropShipItem
     * @param bool $isSpecialOrderItem
     * @param string $stockDescription
     * @param \StructType\RecordRef $deferredRevenueAccount
     * @param \StructType\RecordRef $intercoDefRevAccount
     * @param bool $producer
     * @param string $manufacturer
     * @param \StructType\RecordRef $revRecSchedule
     * @param string $mpn
     * @param bool $multManufactureAddr
     * @param string $manufacturerAddr1
     * @param string $manufacturerCity
     * @param string $manufacturerState
     * @param string $manufacturerZip
     * @param string $countryOfManufacture
     * @param bool $roundUpAsComponent
     * @param float $purchaseOrderQuantity
     * @param float $purchaseOrderAmount
     * @param float $purchaseOrderQuantityDiff
     * @param float $receiptQuantity
     * @param float $receiptAmount
     * @param float $receiptQuantityDiff
     * @param \StructType\RecordRef $defaultItemShipMethod
     * @param string $itemCarrier
     * @param \StructType\RecordRefList $itemShipMethodList
     * @param string $manufacturerTaxId
     * @param string $scheduleBNumber
     * @param int $scheduleBQuantity
     * @param string $scheduleBCode
     * @param string $manufacturerTariff
     * @param string $preferenceCriterion
     * @param int $minimumQuantity
     * @param bool $enforceMinQtyInternally
     * @param int $maximumQuantity
     * @param string $minimumQuantityUnits
     * @param \StructType\RecordRef $softDescriptor
     * @param \StructType\RecordRef $shipPackage
     * @param bool $shipIndividually
     * @param \StructType\RecordRef $costCategory
     * @param bool $pricesIncludeTax
     * @param \StructType\RecordRef $purchasePriceVarianceAcct
     * @param \StructType\RecordRef $quantityPricingSchedule
     * @param string $reorderPointUnits
     * @param bool $useMarginalRates
     * @param string $preferredStockLevelUnits
     * @param string $costEstimateType
     * @param float $costEstimate
     * @param float $transferPrice
     * @param string $overallQuantityPricingType
     * @param \StructType\RecordRef $pricingGroup
     * @param float $vsoePrice
     * @param string $vsoeSopGroup
     * @param string $costEstimateUnits
     * @param string $vsoeDeferral
     * @param string $vsoePermitDiscount
     * @param bool $vsoeDelivered
     * @param \StructType\RecordRef $itemRevenueCategory
     * @param \StructType\RecordRef $preferredLocation
     * @param bool $isStorePickupAllowed
     * @param int $reorderMultiple
     * @param float $cost
     * @param string $lastInvtCountDate
     * @param string $nextInvtCountDate
     * @param int $invtCountInterval
     * @param string $invtClassification
     * @param string $costUnits
     * @param float $totalValue
     * @param float $averageCost
     * @param bool $useBins
     * @param string $quantityReorderUnits
     * @param int $leadTime
     * @param bool $autoLeadTime
     * @param float $lastPurchasePrice
     * @param bool $autoPreferredStockLevel
     * @param float $preferredStockLevelDays
     * @param float $safetyStockLevel
     * @param int $safetyStockLevelDays
     * @param int $backwardConsumptionDays
     * @param bool $seasonalDemand
     * @param string $safetyStockLevelUnits
     * @param float $demandModifier
     * @param \StructType\RecordRef $distributionNetwork
     * @param \StructType\RecordRef $distributionCategory
     * @param bool $autoReorderPoint
     * @param string $storeDisplayName
     * @param \StructType\RecordRef $storeDisplayThumbnail
     * @param \StructType\RecordRef $storeDisplayImage
     * @param string $storeDescription
     * @param string $storeDetailedDescription
     * @param \StructType\RecordRef $storeItemTemplate
     * @param string $pageTitle
     * @param string $metaTagHtml
     * @param bool $excludeFromSitemap
     * @param string $sitemapPriority
     * @param string $searchKeywords
     * @param bool $isDonationItem
     * @param bool $showDefaultDonationAmount
     * @param float $maxDonationAmount
     * @param bool $dontShowPrice
     * @param string $noPriceMessage
     * @param string $outOfStockMessage
     * @param bool $onSpecial
     * @param string $outOfStockBehavior
     * @param string $relatedItemsDescription
     * @param string $specialsDescription
     * @param string $featuredDescription
     * @param string $shoppingDotComCategory
     * @param int $shopzillaCategoryId
     * @param string $nexTagCategory
     * @param string $urlComponent
     * @param \StructType\RecordRef $customForm
     * @param string $itemId
     * @param string $upcCode
     * @param string $displayName
     * @param string $vendorName
     * @param \StructType\RecordRef $parent
     * @param bool $isOnline
     * @param bool $isHazmatItem
     * @param string $hazmatId
     * @param string $hazmatShippingName
     * @param string $hazmatHazardClass
     * @param string $hazmatPackingGroup
     * @param string $hazmatItemUnits
     * @param float $hazmatItemUnitsQty
     * @param bool $isGcoCompliant
     * @param bool $offerSupport
     * @param bool $isInactive
     * @param bool $availableToPartners
     * @param \StructType\RecordRef $department
     * @param \StructType\RecordRef $class
     * @param \StructType\RecordRef $location
     * @param string $costingMethod
     * @param string $currency
     * @param float $preferredStockLevel
     * @param \StructType\PricingMatrix $pricingMatrix
     * @param \StructType\InventoryItemHierarchyVersionsList $hierarchyVersionsList
     * @param \StructType\ItemAccountingBookDetailList $accountingBookDetailList
     * @param \StructType\RecordRef $purchaseTaxCode
     * @param float $defaultReturnCost
     * @param \StructType\RecordRef $supplyReplenishmentMethod
     * @param \StructType\RecordRef $alternateDemandSourceItem
     * @param float $fixedLotSize
     * @param string $periodicLotSizeType
     * @param \StructType\RecordRef $supplyType
     * @param int $demandTimeFence
     * @param int $supplyTimeFence
     * @param int $rescheduleInDays
     * @param int $rescheduleOutDays
     * @param int $periodicLotSizeDays
     * @param \StructType\RecordRef $supplyLotSizingMethod
     * @param int $forwardConsumptionDays
     * @param \StructType\RecordRef $demandSource
     * @param float $quantityBackOrdered
     * @param float $quantityCommitted
     * @param float $quantityAvailable
     * @param float $quantityOnHand
     * @param float $onHandValueMli
     * @param float $quantityOnOrder
     * @param float $rate
     * @param float $reorderPoint
     * @param string $quantityCommittedUnits
     * @param \StructType\RecordRef $salesTaxCode
     * @param string $quantityAvailableUnits
     * @param string $quantityOnHandUnits
     * @param \StructType\RecordRef $vendor
     * @param string $quantityOnOrderUnits
     * @param \StructType\ProductFeedList $productFeedList
     * @param \StructType\RecordRefList $subsidiaryList
     * @param \StructType\ItemOptionsList $itemOptionsList
     * @param \StructType\ItemVendorList $itemVendorList
     * @param \StructType\SiteCategoryList $siteCategoryList
     * @param \StructType\TranslationList $translationsList
     * @param \StructType\InventoryItemBinNumberList $binNumberList
     * @param \StructType\InventoryItemLocationsList $locationsList
     * @param \StructType\MatrixOptionList $matrixOptionList
     * @param \StructType\PresentationItemList $presentationItemList
     * @param int $futureHorizon
     * @param \StructType\RecordRef $consumptionUnit
     * @param \StructType\CustomFieldList $customFieldList
     * @param string $internalId
     * @param string $externalId
     */
    public function __construct($createdDate = null, $lastModifiedDate = null, $purchaseDescription = null, $copyDescription = null, \StructType\RecordRef $expenseAccount = null, $dateConvertedToInv = null, $originalItemType = null, $originalItemSubtype = null, \StructType\RecordRef $cogsAccount = null, \StructType\RecordRef $intercoCogsAccount = null, $salesDescription = null, $fraudRisk = null, $includeChildren = null, \StructType\RecordRef $incomeAccount = null, \StructType\RecordRef $intercoIncomeAccount = null, \StructType\RecordRef $taxSchedule = null, \StructType\RecordRef $dropshipExpenseAccount = null, $deferRevRec = null, \StructType\RecordRef $revenueRecognitionRule = null, \StructType\RecordRef $revRecForecastRule = null, \StructType\RecordRef $revenueAllocationGroup = null, \StructType\RecordRef $createRevenuePlansOn = null, $directRevenuePosting = null, $contingentRevenueHandling = null, \StructType\RecordRef $revReclassFXAccount = null, $isTaxable = null, $matrixType = null, \StructType\RecordRef $assetAccount = null, $matchBillToReceipt = null, \StructType\RecordRef $billQtyVarianceAcct = null, \StructType\RecordRef $billPriceVarianceAcct = null, \StructType\RecordRef $billExchRateVarianceAcct = null, \StructType\RecordRef $gainLossAccount = null, $shippingCost = null, $shippingCostUnits = null, $handlingCost = null, $handlingCostUnits = null, $weight = null, $weightUnit = null, $weightUnits = null, $costingMethodDisplay = null, \StructType\RecordRef $unitsType = null, \StructType\RecordRef $stockUnit = null, \StructType\RecordRef $purchaseUnit = null, \StructType\RecordRef $saleUnit = null, \StructType\RecordRef $issueProduct = null, \StructType\RecordRef $billingSchedule = null, $trackLandedCost = null, $matrixItemNameTemplate = null, $isDropShipItem = null, $isSpecialOrderItem = null, $stockDescription = null, \StructType\RecordRef $deferredRevenueAccount = null, \StructType\RecordRef $intercoDefRevAccount = null, $producer = null, $manufacturer = null, \StructType\RecordRef $revRecSchedule = null, $mpn = null, $multManufactureAddr = null, $manufacturerAddr1 = null, $manufacturerCity = null, $manufacturerState = null, $manufacturerZip = null, $countryOfManufacture = null, $roundUpAsComponent = null, $purchaseOrderQuantity = null, $purchaseOrderAmount = null, $purchaseOrderQuantityDiff = null, $receiptQuantity = null, $receiptAmount = null, $receiptQuantityDiff = null, \StructType\RecordRef $defaultItemShipMethod = null, $itemCarrier = null, \StructType\RecordRefList $itemShipMethodList = null, $manufacturerTaxId = null, $scheduleBNumber = null, $scheduleBQuantity = null, $scheduleBCode = null, $manufacturerTariff = null, $preferenceCriterion = null, $minimumQuantity = null, $enforceMinQtyInternally = null, $maximumQuantity = null, $minimumQuantityUnits = null, \StructType\RecordRef $softDescriptor = null, \StructType\RecordRef $shipPackage = null, $shipIndividually = null, \StructType\RecordRef $costCategory = null, $pricesIncludeTax = null, \StructType\RecordRef $purchasePriceVarianceAcct = null, \StructType\RecordRef $quantityPricingSchedule = null, $reorderPointUnits = null, $useMarginalRates = null, $preferredStockLevelUnits = null, $costEstimateType = null, $costEstimate = null, $transferPrice = null, $overallQuantityPricingType = null, \StructType\RecordRef $pricingGroup = null, $vsoePrice = null, $vsoeSopGroup = null, $costEstimateUnits = null, $vsoeDeferral = null, $vsoePermitDiscount = null, $vsoeDelivered = null, \StructType\RecordRef $itemRevenueCategory = null, \StructType\RecordRef $preferredLocation = null, $isStorePickupAllowed = null, $reorderMultiple = null, $cost = null, $lastInvtCountDate = null, $nextInvtCountDate = null, $invtCountInterval = null, $invtClassification = null, $costUnits = null, $totalValue = null, $averageCost = null, $useBins = null, $quantityReorderUnits = null, $leadTime = null, $autoLeadTime = null, $lastPurchasePrice = null, $autoPreferredStockLevel = null, $preferredStockLevelDays = null, $safetyStockLevel = null, $safetyStockLevelDays = null, $backwardConsumptionDays = null, $seasonalDemand = null, $safetyStockLevelUnits = null, $demandModifier = null, \StructType\RecordRef $distributionNetwork = null, \StructType\RecordRef $distributionCategory = null, $autoReorderPoint = null, $storeDisplayName = null, \StructType\RecordRef $storeDisplayThumbnail = null, \StructType\RecordRef $storeDisplayImage = null, $storeDescription = null, $storeDetailedDescription = null, \StructType\RecordRef $storeItemTemplate = null, $pageTitle = null, $metaTagHtml = null, $excludeFromSitemap = null, $sitemapPriority = null, $searchKeywords = null, $isDonationItem = null, $showDefaultDonationAmount = null, $maxDonationAmount = null, $dontShowPrice = null, $noPriceMessage = null, $outOfStockMessage = null, $onSpecial = null, $outOfStockBehavior = null, $relatedItemsDescription = null, $specialsDescription = null, $featuredDescription = null, $shoppingDotComCategory = null, $shopzillaCategoryId = null, $nexTagCategory = null, $urlComponent = null, \StructType\RecordRef $customForm = null, $itemId = null, $upcCode = null, $displayName = null, $vendorName = null, \StructType\RecordRef $parent = null, $isOnline = null, $isHazmatItem = null, $hazmatId = null, $hazmatShippingName = null, $hazmatHazardClass = null, $hazmatPackingGroup = null, $hazmatItemUnits = null, $hazmatItemUnitsQty = null, $isGcoCompliant = null, $offerSupport = null, $isInactive = null, $availableToPartners = null, \StructType\RecordRef $department = null, \StructType\RecordRef $class = null, \StructType\RecordRef $location = null, $costingMethod = null, $currency = null, $preferredStockLevel = null, \StructType\PricingMatrix $pricingMatrix = null, \StructType\InventoryItemHierarchyVersionsList $hierarchyVersionsList = null, \StructType\ItemAccountingBookDetailList $accountingBookDetailList = null, \StructType\RecordRef $purchaseTaxCode = null, $defaultReturnCost = null, \StructType\RecordRef $supplyReplenishmentMethod = null, \StructType\RecordRef $alternateDemandSourceItem = null, $fixedLotSize = null, $periodicLotSizeType = null, \StructType\RecordRef $supplyType = null, $demandTimeFence = null, $supplyTimeFence = null, $rescheduleInDays = null, $rescheduleOutDays = null, $periodicLotSizeDays = null, \StructType\RecordRef $supplyLotSizingMethod = null, $forwardConsumptionDays = null, \StructType\RecordRef $demandSource = null, $quantityBackOrdered = null, $quantityCommitted = null, $quantityAvailable = null, $quantityOnHand = null, $onHandValueMli = null, $quantityOnOrder = null, $rate = null, $reorderPoint = null, $quantityCommittedUnits = null, \StructType\RecordRef $salesTaxCode = null, $quantityAvailableUnits = null, $quantityOnHandUnits = null, \StructType\RecordRef $vendor = null, $quantityOnOrderUnits = null, \StructType\ProductFeedList $productFeedList = null, \StructType\RecordRefList $subsidiaryList = null, \StructType\ItemOptionsList $itemOptionsList = null, \StructType\ItemVendorList $itemVendorList = null, \StructType\SiteCategoryList $siteCategoryList = null, \StructType\TranslationList $translationsList = null, \StructType\InventoryItemBinNumberList $binNumberList = null, \StructType\InventoryItemLocationsList $locationsList = null, \StructType\MatrixOptionList $matrixOptionList = null, \StructType\PresentationItemList $presentationItemList = null, $futureHorizon = null, \StructType\RecordRef $consumptionUnit = null, \StructType\CustomFieldList $customFieldList = null, $internalId = null, $externalId = null)
    {
        $this
            ->setCreatedDate($createdDate)
            ->setLastModifiedDate($lastModifiedDate)
            ->setPurchaseDescription($purchaseDescription)
            ->setCopyDescription($copyDescription)
            ->setExpenseAccount($expenseAccount)
            ->setDateConvertedToInv($dateConvertedToInv)
            ->setOriginalItemType($originalItemType)
            ->setOriginalItemSubtype($originalItemSubtype)
            ->setCogsAccount($cogsAccount)
            ->setIntercoCogsAccount($intercoCogsAccount)
            ->setSalesDescription($salesDescription)
            ->setFraudRisk($fraudRisk)
            ->setIncludeChildren($includeChildren)
            ->setIncomeAccount($incomeAccount)
            ->setIntercoIncomeAccount($intercoIncomeAccount)
            ->setTaxSchedule($taxSchedule)
            ->setDropshipExpenseAccount($dropshipExpenseAccount)
            ->setDeferRevRec($deferRevRec)
            ->setRevenueRecognitionRule($revenueRecognitionRule)
            ->setRevRecForecastRule($revRecForecastRule)
            ->setRevenueAllocationGroup($revenueAllocationGroup)
            ->setCreateRevenuePlansOn($createRevenuePlansOn)
            ->setDirectRevenuePosting($directRevenuePosting)
            ->setContingentRevenueHandling($contingentRevenueHandling)
            ->setRevReclassFXAccount($revReclassFXAccount)
            ->setIsTaxable($isTaxable)
            ->setMatrixType($matrixType)
            ->setAssetAccount($assetAccount)
            ->setMatchBillToReceipt($matchBillToReceipt)
            ->setBillQtyVarianceAcct($billQtyVarianceAcct)
            ->setBillPriceVarianceAcct($billPriceVarianceAcct)
            ->setBillExchRateVarianceAcct($billExchRateVarianceAcct)
            ->setGainLossAccount($gainLossAccount)
            ->setShippingCost($shippingCost)
            ->setShippingCostUnits($shippingCostUnits)
            ->setHandlingCost($handlingCost)
            ->setHandlingCostUnits($handlingCostUnits)
            ->setWeight($weight)
            ->setWeightUnit($weightUnit)
            ->setWeightUnits($weightUnits)
            ->setCostingMethodDisplay($costingMethodDisplay)
            ->setUnitsType($unitsType)
            ->setStockUnit($stockUnit)
            ->setPurchaseUnit($purchaseUnit)
            ->setSaleUnit($saleUnit)
            ->setIssueProduct($issueProduct)
            ->setBillingSchedule($billingSchedule)
            ->setTrackLandedCost($trackLandedCost)
            ->setMatrixItemNameTemplate($matrixItemNameTemplate)
            ->setIsDropShipItem($isDropShipItem)
            ->setIsSpecialOrderItem($isSpecialOrderItem)
            ->setStockDescription($stockDescription)
            ->setDeferredRevenueAccount($deferredRevenueAccount)
            ->setIntercoDefRevAccount($intercoDefRevAccount)
            ->setProducer($producer)
            ->setManufacturer($manufacturer)
            ->setRevRecSchedule($revRecSchedule)
            ->setMpn($mpn)
            ->setMultManufactureAddr($multManufactureAddr)
            ->setManufacturerAddr1($manufacturerAddr1)
            ->setManufacturerCity($manufacturerCity)
            ->setManufacturerState($manufacturerState)
            ->setManufacturerZip($manufacturerZip)
            ->setCountryOfManufacture($countryOfManufacture)
            ->setRoundUpAsComponent($roundUpAsComponent)
            ->setPurchaseOrderQuantity($purchaseOrderQuantity)
            ->setPurchaseOrderAmount($purchaseOrderAmount)
            ->setPurchaseOrderQuantityDiff($purchaseOrderQuantityDiff)
            ->setReceiptQuantity($receiptQuantity)
            ->setReceiptAmount($receiptAmount)
            ->setReceiptQuantityDiff($receiptQuantityDiff)
            ->setDefaultItemShipMethod($defaultItemShipMethod)
            ->setItemCarrier($itemCarrier)
            ->setItemShipMethodList($itemShipMethodList)
            ->setManufacturerTaxId($manufacturerTaxId)
            ->setScheduleBNumber($scheduleBNumber)
            ->setScheduleBQuantity($scheduleBQuantity)
            ->setScheduleBCode($scheduleBCode)
            ->setManufacturerTariff($manufacturerTariff)
            ->setPreferenceCriterion($preferenceCriterion)
            ->setMinimumQuantity($minimumQuantity)
            ->setEnforceMinQtyInternally($enforceMinQtyInternally)
            ->setMaximumQuantity($maximumQuantity)
            ->setMinimumQuantityUnits($minimumQuantityUnits)
            ->setSoftDescriptor($softDescriptor)
            ->setShipPackage($shipPackage)
            ->setShipIndividually($shipIndividually)
            ->setCostCategory($costCategory)
            ->setPricesIncludeTax($pricesIncludeTax)
            ->setPurchasePriceVarianceAcct($purchasePriceVarianceAcct)
            ->setQuantityPricingSchedule($quantityPricingSchedule)
            ->setReorderPointUnits($reorderPointUnits)
            ->setUseMarginalRates($useMarginalRates)
            ->setPreferredStockLevelUnits($preferredStockLevelUnits)
            ->setCostEstimateType($costEstimateType)
            ->setCostEstimate($costEstimate)
            ->setTransferPrice($transferPrice)
            ->setOverallQuantityPricingType($overallQuantityPricingType)
            ->setPricingGroup($pricingGroup)
            ->setVsoePrice($vsoePrice)
            ->setVsoeSopGroup($vsoeSopGroup)
            ->setCostEstimateUnits($costEstimateUnits)
            ->setVsoeDeferral($vsoeDeferral)
            ->setVsoePermitDiscount($vsoePermitDiscount)
            ->setVsoeDelivered($vsoeDelivered)
            ->setItemRevenueCategory($itemRevenueCategory)
            ->setPreferredLocation($preferredLocation)
            ->setIsStorePickupAllowed($isStorePickupAllowed)
            ->setReorderMultiple($reorderMultiple)
            ->setCost($cost)
            ->setLastInvtCountDate($lastInvtCountDate)
            ->setNextInvtCountDate($nextInvtCountDate)
            ->setInvtCountInterval($invtCountInterval)
            ->setInvtClassification($invtClassification)
            ->setCostUnits($costUnits)
            ->setTotalValue($totalValue)
            ->setAverageCost($averageCost)
            ->setUseBins($useBins)
            ->setQuantityReorderUnits($quantityReorderUnits)
            ->setLeadTime($leadTime)
            ->setAutoLeadTime($autoLeadTime)
            ->setLastPurchasePrice($lastPurchasePrice)
            ->setAutoPreferredStockLevel($autoPreferredStockLevel)
            ->setPreferredStockLevelDays($preferredStockLevelDays)
            ->setSafetyStockLevel($safetyStockLevel)
            ->setSafetyStockLevelDays($safetyStockLevelDays)
            ->setBackwardConsumptionDays($backwardConsumptionDays)
            ->setSeasonalDemand($seasonalDemand)
            ->setSafetyStockLevelUnits($safetyStockLevelUnits)
            ->setDemandModifier($demandModifier)
            ->setDistributionNetwork($distributionNetwork)
            ->setDistributionCategory($distributionCategory)
            ->setAutoReorderPoint($autoReorderPoint)
            ->setStoreDisplayName($storeDisplayName)
            ->setStoreDisplayThumbnail($storeDisplayThumbnail)
            ->setStoreDisplayImage($storeDisplayImage)
            ->setStoreDescription($storeDescription)
            ->setStoreDetailedDescription($storeDetailedDescription)
            ->setStoreItemTemplate($storeItemTemplate)
            ->setPageTitle($pageTitle)
            ->setMetaTagHtml($metaTagHtml)
            ->setExcludeFromSitemap($excludeFromSitemap)
            ->setSitemapPriority($sitemapPriority)
            ->setSearchKeywords($searchKeywords)
            ->setIsDonationItem($isDonationItem)
            ->setShowDefaultDonationAmount($showDefaultDonationAmount)
            ->setMaxDonationAmount($maxDonationAmount)
            ->setDontShowPrice($dontShowPrice)
            ->setNoPriceMessage($noPriceMessage)
            ->setOutOfStockMessage($outOfStockMessage)
            ->setOnSpecial($onSpecial)
            ->setOutOfStockBehavior($outOfStockBehavior)
            ->setRelatedItemsDescription($relatedItemsDescription)
            ->setSpecialsDescription($specialsDescription)
            ->setFeaturedDescription($featuredDescription)
            ->setShoppingDotComCategory($shoppingDotComCategory)
            ->setShopzillaCategoryId($shopzillaCategoryId)
            ->setNexTagCategory($nexTagCategory)
            ->setUrlComponent($urlComponent)
            ->setCustomForm($customForm)
            ->setItemId($itemId)
            ->setUpcCode($upcCode)
            ->setDisplayName($displayName)
            ->setVendorName($vendorName)
            ->setParent($parent)
            ->setIsOnline($isOnline)
            ->setIsHazmatItem($isHazmatItem)
            ->setHazmatId($hazmatId)
            ->setHazmatShippingName($hazmatShippingName)
            ->setHazmatHazardClass($hazmatHazardClass)
            ->setHazmatPackingGroup($hazmatPackingGroup)
            ->setHazmatItemUnits($hazmatItemUnits)
            ->setHazmatItemUnitsQty($hazmatItemUnitsQty)
            ->setIsGcoCompliant($isGcoCompliant)
            ->setOfferSupport($offerSupport)
            ->setIsInactive($isInactive)
            ->setAvailableToPartners($availableToPartners)
            ->setDepartment($department)
            ->setClass($class)
            ->setLocation($location)
            ->setCostingMethod($costingMethod)
            ->setCurrency($currency)
            ->setPreferredStockLevel($preferredStockLevel)
            ->setPricingMatrix($pricingMatrix)
            ->setHierarchyVersionsList($hierarchyVersionsList)
            ->setAccountingBookDetailList($accountingBookDetailList)
            ->setPurchaseTaxCode($purchaseTaxCode)
            ->setDefaultReturnCost($defaultReturnCost)
            ->setSupplyReplenishmentMethod($supplyReplenishmentMethod)
            ->setAlternateDemandSourceItem($alternateDemandSourceItem)
            ->setFixedLotSize($fixedLotSize)
            ->setPeriodicLotSizeType($periodicLotSizeType)
            ->setSupplyType($supplyType)
            ->setDemandTimeFence($demandTimeFence)
            ->setSupplyTimeFence($supplyTimeFence)
            ->setRescheduleInDays($rescheduleInDays)
            ->setRescheduleOutDays($rescheduleOutDays)
            ->setPeriodicLotSizeDays($periodicLotSizeDays)
            ->setSupplyLotSizingMethod($supplyLotSizingMethod)
            ->setForwardConsumptionDays($forwardConsumptionDays)
            ->setDemandSource($demandSource)
            ->setQuantityBackOrdered($quantityBackOrdered)
            ->setQuantityCommitted($quantityCommitted)
            ->setQuantityAvailable($quantityAvailable)
            ->setQuantityOnHand($quantityOnHand)
            ->setOnHandValueMli($onHandValueMli)
            ->setQuantityOnOrder($quantityOnOrder)
            ->setRate($rate)
            ->setReorderPoint($reorderPoint)
            ->setQuantityCommittedUnits($quantityCommittedUnits)
            ->setSalesTaxCode($salesTaxCode)
            ->setQuantityAvailableUnits($quantityAvailableUnits)
            ->setQuantityOnHandUnits($quantityOnHandUnits)
            ->setVendor($vendor)
            ->setQuantityOnOrderUnits($quantityOnOrderUnits)
            ->setProductFeedList($productFeedList)
            ->setSubsidiaryList($subsidiaryList)
            ->setItemOptionsList($itemOptionsList)
            ->setItemVendorList($itemVendorList)
            ->setSiteCategoryList($siteCategoryList)
            ->setTranslationsList($translationsList)
            ->setBinNumberList($binNumberList)
            ->setLocationsList($locationsList)
            ->setMatrixOptionList($matrixOptionList)
            ->setPresentationItemList($presentationItemList)
            ->setFutureHorizon($futureHorizon)
            ->setConsumptionUnit($consumptionUnit)
            ->setCustomFieldList($customFieldList)
            ->setInternalId($internalId)
            ->setExternalId($externalId);
    }
    /**
     * Get createdDate value
     * @return string|null
     */
    public function getCreatedDate()
    {
        return $this->createdDate;
    }
    /**
     * Set createdDate value
     * @param string $createdDate
     * @return \StructType\InventoryItem
     */
    public function setCreatedDate($createdDate = null)
    {
        // validation for constraint: string
        if (!is_null($createdDate) && !is_string($createdDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($createdDate, true), gettype($createdDate)), __LINE__);
        }
        $this->createdDate = $createdDate;
        return $this;
    }
    /**
     * Get lastModifiedDate value
     * @return string|null
     */
    public function getLastModifiedDate()
    {
        return $this->lastModifiedDate;
    }
    /**
     * Set lastModifiedDate value
     * @param string $lastModifiedDate
     * @return \StructType\InventoryItem
     */
    public function setLastModifiedDate($lastModifiedDate = null)
    {
        // validation for constraint: string
        if (!is_null($lastModifiedDate) && !is_string($lastModifiedDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastModifiedDate, true), gettype($lastModifiedDate)), __LINE__);
        }
        $this->lastModifiedDate = $lastModifiedDate;
        return $this;
    }
    /**
     * Get purchaseDescription value
     * @return string|null
     */
    public function getPurchaseDescription()
    {
        return $this->purchaseDescription;
    }
    /**
     * Set purchaseDescription value
     * @param string $purchaseDescription
     * @return \StructType\InventoryItem
     */
    public function setPurchaseDescription($purchaseDescription = null)
    {
        // validation for constraint: string
        if (!is_null($purchaseDescription) && !is_string($purchaseDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($purchaseDescription, true), gettype($purchaseDescription)), __LINE__);
        }
        $this->purchaseDescription = $purchaseDescription;
        return $this;
    }
    /**
     * Get copyDescription value
     * @return bool|null
     */
    public function getCopyDescription()
    {
        return $this->copyDescription;
    }
    /**
     * Set copyDescription value
     * @param bool $copyDescription
     * @return \StructType\InventoryItem
     */
    public function setCopyDescription($copyDescription = null)
    {
        // validation for constraint: boolean
        if (!is_null($copyDescription) && !is_bool($copyDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($copyDescription, true), gettype($copyDescription)), __LINE__);
        }
        $this->copyDescription = $copyDescription;
        return $this;
    }
    /**
     * Get expenseAccount value
     * @return \StructType\RecordRef|null
     */
    public function getExpenseAccount()
    {
        return $this->expenseAccount;
    }
    /**
     * Set expenseAccount value
     * @param \StructType\RecordRef $expenseAccount
     * @return \StructType\InventoryItem
     */
    public function setExpenseAccount(\StructType\RecordRef $expenseAccount = null)
    {
        $this->expenseAccount = $expenseAccount;
        return $this;
    }
    /**
     * Get dateConvertedToInv value
     * @return string|null
     */
    public function getDateConvertedToInv()
    {
        return $this->dateConvertedToInv;
    }
    /**
     * Set dateConvertedToInv value
     * @param string $dateConvertedToInv
     * @return \StructType\InventoryItem
     */
    public function setDateConvertedToInv($dateConvertedToInv = null)
    {
        // validation for constraint: string
        if (!is_null($dateConvertedToInv) && !is_string($dateConvertedToInv)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dateConvertedToInv, true), gettype($dateConvertedToInv)), __LINE__);
        }
        $this->dateConvertedToInv = $dateConvertedToInv;
        return $this;
    }
    /**
     * Get originalItemType value
     * @return string|null
     */
    public function getOriginalItemType()
    {
        return $this->originalItemType;
    }
    /**
     * Set originalItemType value
     * @uses \EnumType\ItemType::valueIsValid()
     * @uses \EnumType\ItemType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $originalItemType
     * @return \StructType\InventoryItem
     */
    public function setOriginalItemType($originalItemType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemType::valueIsValid($originalItemType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemType', is_array($originalItemType) ? implode(', ', $originalItemType) : var_export($originalItemType, true), implode(', ', \EnumType\ItemType::getValidValues())), __LINE__);
        }
        $this->originalItemType = $originalItemType;
        return $this;
    }
    /**
     * Get originalItemSubtype value
     * @return string|null
     */
    public function getOriginalItemSubtype()
    {
        return $this->originalItemSubtype;
    }
    /**
     * Set originalItemSubtype value
     * @uses \EnumType\ItemSubType::valueIsValid()
     * @uses \EnumType\ItemSubType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $originalItemSubtype
     * @return \StructType\InventoryItem
     */
    public function setOriginalItemSubtype($originalItemSubtype = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemSubType::valueIsValid($originalItemSubtype)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemSubType', is_array($originalItemSubtype) ? implode(', ', $originalItemSubtype) : var_export($originalItemSubtype, true), implode(', ', \EnumType\ItemSubType::getValidValues())), __LINE__);
        }
        $this->originalItemSubtype = $originalItemSubtype;
        return $this;
    }
    /**
     * Get cogsAccount value
     * @return \StructType\RecordRef|null
     */
    public function getCogsAccount()
    {
        return $this->cogsAccount;
    }
    /**
     * Set cogsAccount value
     * @param \StructType\RecordRef $cogsAccount
     * @return \StructType\InventoryItem
     */
    public function setCogsAccount(\StructType\RecordRef $cogsAccount = null)
    {
        $this->cogsAccount = $cogsAccount;
        return $this;
    }
    /**
     * Get intercoCogsAccount value
     * @return \StructType\RecordRef|null
     */
    public function getIntercoCogsAccount()
    {
        return $this->intercoCogsAccount;
    }
    /**
     * Set intercoCogsAccount value
     * @param \StructType\RecordRef $intercoCogsAccount
     * @return \StructType\InventoryItem
     */
    public function setIntercoCogsAccount(\StructType\RecordRef $intercoCogsAccount = null)
    {
        $this->intercoCogsAccount = $intercoCogsAccount;
        return $this;
    }
    /**
     * Get salesDescription value
     * @return string|null
     */
    public function getSalesDescription()
    {
        return $this->salesDescription;
    }
    /**
     * Set salesDescription value
     * @param string $salesDescription
     * @return \StructType\InventoryItem
     */
    public function setSalesDescription($salesDescription = null)
    {
        // validation for constraint: string
        if (!is_null($salesDescription) && !is_string($salesDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($salesDescription, true), gettype($salesDescription)), __LINE__);
        }
        $this->salesDescription = $salesDescription;
        return $this;
    }
    /**
     * Get fraudRisk value
     * @return string|null
     */
    public function getFraudRisk()
    {
        return $this->fraudRisk;
    }
    /**
     * Set fraudRisk value
     * @uses \EnumType\InventoryItemFraudRisk::valueIsValid()
     * @uses \EnumType\InventoryItemFraudRisk::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $fraudRisk
     * @return \StructType\InventoryItem
     */
    public function setFraudRisk($fraudRisk = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\InventoryItemFraudRisk::valueIsValid($fraudRisk)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\InventoryItemFraudRisk', is_array($fraudRisk) ? implode(', ', $fraudRisk) : var_export($fraudRisk, true), implode(', ', \EnumType\InventoryItemFraudRisk::getValidValues())), __LINE__);
        }
        $this->fraudRisk = $fraudRisk;
        return $this;
    }
    /**
     * Get includeChildren value
     * @return bool|null
     */
    public function getIncludeChildren()
    {
        return $this->includeChildren;
    }
    /**
     * Set includeChildren value
     * @param bool $includeChildren
     * @return \StructType\InventoryItem
     */
    public function setIncludeChildren($includeChildren = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeChildren) && !is_bool($includeChildren)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeChildren, true), gettype($includeChildren)), __LINE__);
        }
        $this->includeChildren = $includeChildren;
        return $this;
    }
    /**
     * Get incomeAccount value
     * @return \StructType\RecordRef|null
     */
    public function getIncomeAccount()
    {
        return $this->incomeAccount;
    }
    /**
     * Set incomeAccount value
     * @param \StructType\RecordRef $incomeAccount
     * @return \StructType\InventoryItem
     */
    public function setIncomeAccount(\StructType\RecordRef $incomeAccount = null)
    {
        $this->incomeAccount = $incomeAccount;
        return $this;
    }
    /**
     * Get intercoIncomeAccount value
     * @return \StructType\RecordRef|null
     */
    public function getIntercoIncomeAccount()
    {
        return $this->intercoIncomeAccount;
    }
    /**
     * Set intercoIncomeAccount value
     * @param \StructType\RecordRef $intercoIncomeAccount
     * @return \StructType\InventoryItem
     */
    public function setIntercoIncomeAccount(\StructType\RecordRef $intercoIncomeAccount = null)
    {
        $this->intercoIncomeAccount = $intercoIncomeAccount;
        return $this;
    }
    /**
     * Get taxSchedule value
     * @return \StructType\RecordRef|null
     */
    public function getTaxSchedule()
    {
        return $this->taxSchedule;
    }
    /**
     * Set taxSchedule value
     * @param \StructType\RecordRef $taxSchedule
     * @return \StructType\InventoryItem
     */
    public function setTaxSchedule(\StructType\RecordRef $taxSchedule = null)
    {
        $this->taxSchedule = $taxSchedule;
        return $this;
    }
    /**
     * Get dropshipExpenseAccount value
     * @return \StructType\RecordRef|null
     */
    public function getDropshipExpenseAccount()
    {
        return $this->dropshipExpenseAccount;
    }
    /**
     * Set dropshipExpenseAccount value
     * @param \StructType\RecordRef $dropshipExpenseAccount
     * @return \StructType\InventoryItem
     */
    public function setDropshipExpenseAccount(\StructType\RecordRef $dropshipExpenseAccount = null)
    {
        $this->dropshipExpenseAccount = $dropshipExpenseAccount;
        return $this;
    }
    /**
     * Get deferRevRec value
     * @return bool|null
     */
    public function getDeferRevRec()
    {
        return $this->deferRevRec;
    }
    /**
     * Set deferRevRec value
     * @param bool $deferRevRec
     * @return \StructType\InventoryItem
     */
    public function setDeferRevRec($deferRevRec = null)
    {
        // validation for constraint: boolean
        if (!is_null($deferRevRec) && !is_bool($deferRevRec)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($deferRevRec, true), gettype($deferRevRec)), __LINE__);
        }
        $this->deferRevRec = $deferRevRec;
        return $this;
    }
    /**
     * Get revenueRecognitionRule value
     * @return \StructType\RecordRef|null
     */
    public function getRevenueRecognitionRule()
    {
        return $this->revenueRecognitionRule;
    }
    /**
     * Set revenueRecognitionRule value
     * @param \StructType\RecordRef $revenueRecognitionRule
     * @return \StructType\InventoryItem
     */
    public function setRevenueRecognitionRule(\StructType\RecordRef $revenueRecognitionRule = null)
    {
        $this->revenueRecognitionRule = $revenueRecognitionRule;
        return $this;
    }
    /**
     * Get revRecForecastRule value
     * @return \StructType\RecordRef|null
     */
    public function getRevRecForecastRule()
    {
        return $this->revRecForecastRule;
    }
    /**
     * Set revRecForecastRule value
     * @param \StructType\RecordRef $revRecForecastRule
     * @return \StructType\InventoryItem
     */
    public function setRevRecForecastRule(\StructType\RecordRef $revRecForecastRule = null)
    {
        $this->revRecForecastRule = $revRecForecastRule;
        return $this;
    }
    /**
     * Get revenueAllocationGroup value
     * @return \StructType\RecordRef|null
     */
    public function getRevenueAllocationGroup()
    {
        return $this->revenueAllocationGroup;
    }
    /**
     * Set revenueAllocationGroup value
     * @param \StructType\RecordRef $revenueAllocationGroup
     * @return \StructType\InventoryItem
     */
    public function setRevenueAllocationGroup(\StructType\RecordRef $revenueAllocationGroup = null)
    {
        $this->revenueAllocationGroup = $revenueAllocationGroup;
        return $this;
    }
    /**
     * Get createRevenuePlansOn value
     * @return \StructType\RecordRef|null
     */
    public function getCreateRevenuePlansOn()
    {
        return $this->createRevenuePlansOn;
    }
    /**
     * Set createRevenuePlansOn value
     * @param \StructType\RecordRef $createRevenuePlansOn
     * @return \StructType\InventoryItem
     */
    public function setCreateRevenuePlansOn(\StructType\RecordRef $createRevenuePlansOn = null)
    {
        $this->createRevenuePlansOn = $createRevenuePlansOn;
        return $this;
    }
    /**
     * Get directRevenuePosting value
     * @return bool|null
     */
    public function getDirectRevenuePosting()
    {
        return $this->directRevenuePosting;
    }
    /**
     * Set directRevenuePosting value
     * @param bool $directRevenuePosting
     * @return \StructType\InventoryItem
     */
    public function setDirectRevenuePosting($directRevenuePosting = null)
    {
        // validation for constraint: boolean
        if (!is_null($directRevenuePosting) && !is_bool($directRevenuePosting)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($directRevenuePosting, true), gettype($directRevenuePosting)), __LINE__);
        }
        $this->directRevenuePosting = $directRevenuePosting;
        return $this;
    }
    /**
     * Get contingentRevenueHandling value
     * @return bool|null
     */
    public function getContingentRevenueHandling()
    {
        return $this->contingentRevenueHandling;
    }
    /**
     * Set contingentRevenueHandling value
     * @param bool $contingentRevenueHandling
     * @return \StructType\InventoryItem
     */
    public function setContingentRevenueHandling($contingentRevenueHandling = null)
    {
        // validation for constraint: boolean
        if (!is_null($contingentRevenueHandling) && !is_bool($contingentRevenueHandling)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($contingentRevenueHandling, true), gettype($contingentRevenueHandling)), __LINE__);
        }
        $this->contingentRevenueHandling = $contingentRevenueHandling;
        return $this;
    }
    /**
     * Get revReclassFXAccount value
     * @return \StructType\RecordRef|null
     */
    public function getRevReclassFXAccount()
    {
        return $this->revReclassFXAccount;
    }
    /**
     * Set revReclassFXAccount value
     * @param \StructType\RecordRef $revReclassFXAccount
     * @return \StructType\InventoryItem
     */
    public function setRevReclassFXAccount(\StructType\RecordRef $revReclassFXAccount = null)
    {
        $this->revReclassFXAccount = $revReclassFXAccount;
        return $this;
    }
    /**
     * Get isTaxable value
     * @return bool|null
     */
    public function getIsTaxable()
    {
        return $this->isTaxable;
    }
    /**
     * Set isTaxable value
     * @param bool $isTaxable
     * @return \StructType\InventoryItem
     */
    public function setIsTaxable($isTaxable = null)
    {
        // validation for constraint: boolean
        if (!is_null($isTaxable) && !is_bool($isTaxable)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isTaxable, true), gettype($isTaxable)), __LINE__);
        }
        $this->isTaxable = $isTaxable;
        return $this;
    }
    /**
     * Get matrixType value
     * @return string|null
     */
    public function getMatrixType()
    {
        return $this->matrixType;
    }
    /**
     * Set matrixType value
     * @uses \EnumType\ItemMatrixType::valueIsValid()
     * @uses \EnumType\ItemMatrixType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $matrixType
     * @return \StructType\InventoryItem
     */
    public function setMatrixType($matrixType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemMatrixType::valueIsValid($matrixType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemMatrixType', is_array($matrixType) ? implode(', ', $matrixType) : var_export($matrixType, true), implode(', ', \EnumType\ItemMatrixType::getValidValues())), __LINE__);
        }
        $this->matrixType = $matrixType;
        return $this;
    }
    /**
     * Get assetAccount value
     * @return \StructType\RecordRef|null
     */
    public function getAssetAccount()
    {
        return $this->assetAccount;
    }
    /**
     * Set assetAccount value
     * @param \StructType\RecordRef $assetAccount
     * @return \StructType\InventoryItem
     */
    public function setAssetAccount(\StructType\RecordRef $assetAccount = null)
    {
        $this->assetAccount = $assetAccount;
        return $this;
    }
    /**
     * Get matchBillToReceipt value
     * @return bool|null
     */
    public function getMatchBillToReceipt()
    {
        return $this->matchBillToReceipt;
    }
    /**
     * Set matchBillToReceipt value
     * @param bool $matchBillToReceipt
     * @return \StructType\InventoryItem
     */
    public function setMatchBillToReceipt($matchBillToReceipt = null)
    {
        // validation for constraint: boolean
        if (!is_null($matchBillToReceipt) && !is_bool($matchBillToReceipt)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($matchBillToReceipt, true), gettype($matchBillToReceipt)), __LINE__);
        }
        $this->matchBillToReceipt = $matchBillToReceipt;
        return $this;
    }
    /**
     * Get billQtyVarianceAcct value
     * @return \StructType\RecordRef|null
     */
    public function getBillQtyVarianceAcct()
    {
        return $this->billQtyVarianceAcct;
    }
    /**
     * Set billQtyVarianceAcct value
     * @param \StructType\RecordRef $billQtyVarianceAcct
     * @return \StructType\InventoryItem
     */
    public function setBillQtyVarianceAcct(\StructType\RecordRef $billQtyVarianceAcct = null)
    {
        $this->billQtyVarianceAcct = $billQtyVarianceAcct;
        return $this;
    }
    /**
     * Get billPriceVarianceAcct value
     * @return \StructType\RecordRef|null
     */
    public function getBillPriceVarianceAcct()
    {
        return $this->billPriceVarianceAcct;
    }
    /**
     * Set billPriceVarianceAcct value
     * @param \StructType\RecordRef $billPriceVarianceAcct
     * @return \StructType\InventoryItem
     */
    public function setBillPriceVarianceAcct(\StructType\RecordRef $billPriceVarianceAcct = null)
    {
        $this->billPriceVarianceAcct = $billPriceVarianceAcct;
        return $this;
    }
    /**
     * Get billExchRateVarianceAcct value
     * @return \StructType\RecordRef|null
     */
    public function getBillExchRateVarianceAcct()
    {
        return $this->billExchRateVarianceAcct;
    }
    /**
     * Set billExchRateVarianceAcct value
     * @param \StructType\RecordRef $billExchRateVarianceAcct
     * @return \StructType\InventoryItem
     */
    public function setBillExchRateVarianceAcct(\StructType\RecordRef $billExchRateVarianceAcct = null)
    {
        $this->billExchRateVarianceAcct = $billExchRateVarianceAcct;
        return $this;
    }
    /**
     * Get gainLossAccount value
     * @return \StructType\RecordRef|null
     */
    public function getGainLossAccount()
    {
        return $this->gainLossAccount;
    }
    /**
     * Set gainLossAccount value
     * @param \StructType\RecordRef $gainLossAccount
     * @return \StructType\InventoryItem
     */
    public function setGainLossAccount(\StructType\RecordRef $gainLossAccount = null)
    {
        $this->gainLossAccount = $gainLossAccount;
        return $this;
    }
    /**
     * Get shippingCost value
     * @return float|null
     */
    public function getShippingCost()
    {
        return $this->shippingCost;
    }
    /**
     * Set shippingCost value
     * @param float $shippingCost
     * @return \StructType\InventoryItem
     */
    public function setShippingCost($shippingCost = null)
    {
        // validation for constraint: float
        if (!is_null($shippingCost) && !(is_float($shippingCost) || is_numeric($shippingCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($shippingCost, true), gettype($shippingCost)), __LINE__);
        }
        $this->shippingCost = $shippingCost;
        return $this;
    }
    /**
     * Get shippingCostUnits value
     * @return string|null
     */
    public function getShippingCostUnits()
    {
        return $this->shippingCostUnits;
    }
    /**
     * Set shippingCostUnits value
     * @param string $shippingCostUnits
     * @return \StructType\InventoryItem
     */
    public function setShippingCostUnits($shippingCostUnits = null)
    {
        // validation for constraint: string
        if (!is_null($shippingCostUnits) && !is_string($shippingCostUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($shippingCostUnits, true), gettype($shippingCostUnits)), __LINE__);
        }
        $this->shippingCostUnits = $shippingCostUnits;
        return $this;
    }
    /**
     * Get handlingCost value
     * @return float|null
     */
    public function getHandlingCost()
    {
        return $this->handlingCost;
    }
    /**
     * Set handlingCost value
     * @param float $handlingCost
     * @return \StructType\InventoryItem
     */
    public function setHandlingCost($handlingCost = null)
    {
        // validation for constraint: float
        if (!is_null($handlingCost) && !(is_float($handlingCost) || is_numeric($handlingCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($handlingCost, true), gettype($handlingCost)), __LINE__);
        }
        $this->handlingCost = $handlingCost;
        return $this;
    }
    /**
     * Get handlingCostUnits value
     * @return string|null
     */
    public function getHandlingCostUnits()
    {
        return $this->handlingCostUnits;
    }
    /**
     * Set handlingCostUnits value
     * @param string $handlingCostUnits
     * @return \StructType\InventoryItem
     */
    public function setHandlingCostUnits($handlingCostUnits = null)
    {
        // validation for constraint: string
        if (!is_null($handlingCostUnits) && !is_string($handlingCostUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($handlingCostUnits, true), gettype($handlingCostUnits)), __LINE__);
        }
        $this->handlingCostUnits = $handlingCostUnits;
        return $this;
    }
    /**
     * Get weight value
     * @return float|null
     */
    public function getWeight()
    {
        return $this->weight;
    }
    /**
     * Set weight value
     * @param float $weight
     * @return \StructType\InventoryItem
     */
    public function setWeight($weight = null)
    {
        // validation for constraint: float
        if (!is_null($weight) && !(is_float($weight) || is_numeric($weight))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($weight, true), gettype($weight)), __LINE__);
        }
        $this->weight = $weight;
        return $this;
    }
    /**
     * Get weightUnit value
     * @return string|null
     */
    public function getWeightUnit()
    {
        return $this->weightUnit;
    }
    /**
     * Set weightUnit value
     * @uses \EnumType\ItemWeightUnit::valueIsValid()
     * @uses \EnumType\ItemWeightUnit::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $weightUnit
     * @return \StructType\InventoryItem
     */
    public function setWeightUnit($weightUnit = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemWeightUnit::valueIsValid($weightUnit)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemWeightUnit', is_array($weightUnit) ? implode(', ', $weightUnit) : var_export($weightUnit, true), implode(', ', \EnumType\ItemWeightUnit::getValidValues())), __LINE__);
        }
        $this->weightUnit = $weightUnit;
        return $this;
    }
    /**
     * Get weightUnits value
     * @return string|null
     */
    public function getWeightUnits()
    {
        return $this->weightUnits;
    }
    /**
     * Set weightUnits value
     * @param string $weightUnits
     * @return \StructType\InventoryItem
     */
    public function setWeightUnits($weightUnits = null)
    {
        // validation for constraint: string
        if (!is_null($weightUnits) && !is_string($weightUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($weightUnits, true), gettype($weightUnits)), __LINE__);
        }
        $this->weightUnits = $weightUnits;
        return $this;
    }
    /**
     * Get costingMethodDisplay value
     * @return string|null
     */
    public function getCostingMethodDisplay()
    {
        return $this->costingMethodDisplay;
    }
    /**
     * Set costingMethodDisplay value
     * @param string $costingMethodDisplay
     * @return \StructType\InventoryItem
     */
    public function setCostingMethodDisplay($costingMethodDisplay = null)
    {
        // validation for constraint: string
        if (!is_null($costingMethodDisplay) && !is_string($costingMethodDisplay)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($costingMethodDisplay, true), gettype($costingMethodDisplay)), __LINE__);
        }
        $this->costingMethodDisplay = $costingMethodDisplay;
        return $this;
    }
    /**
     * Get unitsType value
     * @return \StructType\RecordRef|null
     */
    public function getUnitsType()
    {
        return $this->unitsType;
    }
    /**
     * Set unitsType value
     * @param \StructType\RecordRef $unitsType
     * @return \StructType\InventoryItem
     */
    public function setUnitsType(\StructType\RecordRef $unitsType = null)
    {
        $this->unitsType = $unitsType;
        return $this;
    }
    /**
     * Get stockUnit value
     * @return \StructType\RecordRef|null
     */
    public function getStockUnit()
    {
        return $this->stockUnit;
    }
    /**
     * Set stockUnit value
     * @param \StructType\RecordRef $stockUnit
     * @return \StructType\InventoryItem
     */
    public function setStockUnit(\StructType\RecordRef $stockUnit = null)
    {
        $this->stockUnit = $stockUnit;
        return $this;
    }
    /**
     * Get purchaseUnit value
     * @return \StructType\RecordRef|null
     */
    public function getPurchaseUnit()
    {
        return $this->purchaseUnit;
    }
    /**
     * Set purchaseUnit value
     * @param \StructType\RecordRef $purchaseUnit
     * @return \StructType\InventoryItem
     */
    public function setPurchaseUnit(\StructType\RecordRef $purchaseUnit = null)
    {
        $this->purchaseUnit = $purchaseUnit;
        return $this;
    }
    /**
     * Get saleUnit value
     * @return \StructType\RecordRef|null
     */
    public function getSaleUnit()
    {
        return $this->saleUnit;
    }
    /**
     * Set saleUnit value
     * @param \StructType\RecordRef $saleUnit
     * @return \StructType\InventoryItem
     */
    public function setSaleUnit(\StructType\RecordRef $saleUnit = null)
    {
        $this->saleUnit = $saleUnit;
        return $this;
    }
    /**
     * Get issueProduct value
     * @return \StructType\RecordRef|null
     */
    public function getIssueProduct()
    {
        return $this->issueProduct;
    }
    /**
     * Set issueProduct value
     * @param \StructType\RecordRef $issueProduct
     * @return \StructType\InventoryItem
     */
    public function setIssueProduct(\StructType\RecordRef $issueProduct = null)
    {
        $this->issueProduct = $issueProduct;
        return $this;
    }
    /**
     * Get billingSchedule value
     * @return \StructType\RecordRef|null
     */
    public function getBillingSchedule()
    {
        return $this->billingSchedule;
    }
    /**
     * Set billingSchedule value
     * @param \StructType\RecordRef $billingSchedule
     * @return \StructType\InventoryItem
     */
    public function setBillingSchedule(\StructType\RecordRef $billingSchedule = null)
    {
        $this->billingSchedule = $billingSchedule;
        return $this;
    }
    /**
     * Get trackLandedCost value
     * @return bool|null
     */
    public function getTrackLandedCost()
    {
        return $this->trackLandedCost;
    }
    /**
     * Set trackLandedCost value
     * @param bool $trackLandedCost
     * @return \StructType\InventoryItem
     */
    public function setTrackLandedCost($trackLandedCost = null)
    {
        // validation for constraint: boolean
        if (!is_null($trackLandedCost) && !is_bool($trackLandedCost)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($trackLandedCost, true), gettype($trackLandedCost)), __LINE__);
        }
        $this->trackLandedCost = $trackLandedCost;
        return $this;
    }
    /**
     * Get matrixItemNameTemplate value
     * @return string|null
     */
    public function getMatrixItemNameTemplate()
    {
        return $this->matrixItemNameTemplate;
    }
    /**
     * Set matrixItemNameTemplate value
     * @param string $matrixItemNameTemplate
     * @return \StructType\InventoryItem
     */
    public function setMatrixItemNameTemplate($matrixItemNameTemplate = null)
    {
        // validation for constraint: string
        if (!is_null($matrixItemNameTemplate) && !is_string($matrixItemNameTemplate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($matrixItemNameTemplate, true), gettype($matrixItemNameTemplate)), __LINE__);
        }
        $this->matrixItemNameTemplate = $matrixItemNameTemplate;
        return $this;
    }
    /**
     * Get isDropShipItem value
     * @return bool|null
     */
    public function getIsDropShipItem()
    {
        return $this->isDropShipItem;
    }
    /**
     * Set isDropShipItem value
     * @param bool $isDropShipItem
     * @return \StructType\InventoryItem
     */
    public function setIsDropShipItem($isDropShipItem = null)
    {
        // validation for constraint: boolean
        if (!is_null($isDropShipItem) && !is_bool($isDropShipItem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isDropShipItem, true), gettype($isDropShipItem)), __LINE__);
        }
        $this->isDropShipItem = $isDropShipItem;
        return $this;
    }
    /**
     * Get isSpecialOrderItem value
     * @return bool|null
     */
    public function getIsSpecialOrderItem()
    {
        return $this->isSpecialOrderItem;
    }
    /**
     * Set isSpecialOrderItem value
     * @param bool $isSpecialOrderItem
     * @return \StructType\InventoryItem
     */
    public function setIsSpecialOrderItem($isSpecialOrderItem = null)
    {
        // validation for constraint: boolean
        if (!is_null($isSpecialOrderItem) && !is_bool($isSpecialOrderItem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isSpecialOrderItem, true), gettype($isSpecialOrderItem)), __LINE__);
        }
        $this->isSpecialOrderItem = $isSpecialOrderItem;
        return $this;
    }
    /**
     * Get stockDescription value
     * @return string|null
     */
    public function getStockDescription()
    {
        return $this->stockDescription;
    }
    /**
     * Set stockDescription value
     * @param string $stockDescription
     * @return \StructType\InventoryItem
     */
    public function setStockDescription($stockDescription = null)
    {
        // validation for constraint: string
        if (!is_null($stockDescription) && !is_string($stockDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($stockDescription, true), gettype($stockDescription)), __LINE__);
        }
        $this->stockDescription = $stockDescription;
        return $this;
    }
    /**
     * Get deferredRevenueAccount value
     * @return \StructType\RecordRef|null
     */
    public function getDeferredRevenueAccount()
    {
        return $this->deferredRevenueAccount;
    }
    /**
     * Set deferredRevenueAccount value
     * @param \StructType\RecordRef $deferredRevenueAccount
     * @return \StructType\InventoryItem
     */
    public function setDeferredRevenueAccount(\StructType\RecordRef $deferredRevenueAccount = null)
    {
        $this->deferredRevenueAccount = $deferredRevenueAccount;
        return $this;
    }
    /**
     * Get intercoDefRevAccount value
     * @return \StructType\RecordRef|null
     */
    public function getIntercoDefRevAccount()
    {
        return $this->intercoDefRevAccount;
    }
    /**
     * Set intercoDefRevAccount value
     * @param \StructType\RecordRef $intercoDefRevAccount
     * @return \StructType\InventoryItem
     */
    public function setIntercoDefRevAccount(\StructType\RecordRef $intercoDefRevAccount = null)
    {
        $this->intercoDefRevAccount = $intercoDefRevAccount;
        return $this;
    }
    /**
     * Get producer value
     * @return bool|null
     */
    public function getProducer()
    {
        return $this->producer;
    }
    /**
     * Set producer value
     * @param bool $producer
     * @return \StructType\InventoryItem
     */
    public function setProducer($producer = null)
    {
        // validation for constraint: boolean
        if (!is_null($producer) && !is_bool($producer)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($producer, true), gettype($producer)), __LINE__);
        }
        $this->producer = $producer;
        return $this;
    }
    /**
     * Get manufacturer value
     * @return string|null
     */
    public function getManufacturer()
    {
        return $this->manufacturer;
    }
    /**
     * Set manufacturer value
     * @param string $manufacturer
     * @return \StructType\InventoryItem
     */
    public function setManufacturer($manufacturer = null)
    {
        // validation for constraint: string
        if (!is_null($manufacturer) && !is_string($manufacturer)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($manufacturer, true), gettype($manufacturer)), __LINE__);
        }
        $this->manufacturer = $manufacturer;
        return $this;
    }
    /**
     * Get revRecSchedule value
     * @return \StructType\RecordRef|null
     */
    public function getRevRecSchedule()
    {
        return $this->revRecSchedule;
    }
    /**
     * Set revRecSchedule value
     * @param \StructType\RecordRef $revRecSchedule
     * @return \StructType\InventoryItem
     */
    public function setRevRecSchedule(\StructType\RecordRef $revRecSchedule = null)
    {
        $this->revRecSchedule = $revRecSchedule;
        return $this;
    }
    /**
     * Get mpn value
     * @return string|null
     */
    public function getMpn()
    {
        return $this->mpn;
    }
    /**
     * Set mpn value
     * @param string $mpn
     * @return \StructType\InventoryItem
     */
    public function setMpn($mpn = null)
    {
        // validation for constraint: string
        if (!is_null($mpn) && !is_string($mpn)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mpn, true), gettype($mpn)), __LINE__);
        }
        $this->mpn = $mpn;
        return $this;
    }
    /**
     * Get multManufactureAddr value
     * @return bool|null
     */
    public function getMultManufactureAddr()
    {
        return $this->multManufactureAddr;
    }
    /**
     * Set multManufactureAddr value
     * @param bool $multManufactureAddr
     * @return \StructType\InventoryItem
     */
    public function setMultManufactureAddr($multManufactureAddr = null)
    {
        // validation for constraint: boolean
        if (!is_null($multManufactureAddr) && !is_bool($multManufactureAddr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($multManufactureAddr, true), gettype($multManufactureAddr)), __LINE__);
        }
        $this->multManufactureAddr = $multManufactureAddr;
        return $this;
    }
    /**
     * Get manufacturerAddr1 value
     * @return string|null
     */
    public function getManufacturerAddr1()
    {
        return $this->manufacturerAddr1;
    }
    /**
     * Set manufacturerAddr1 value
     * @param string $manufacturerAddr1
     * @return \StructType\InventoryItem
     */
    public function setManufacturerAddr1($manufacturerAddr1 = null)
    {
        // validation for constraint: string
        if (!is_null($manufacturerAddr1) && !is_string($manufacturerAddr1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($manufacturerAddr1, true), gettype($manufacturerAddr1)), __LINE__);
        }
        $this->manufacturerAddr1 = $manufacturerAddr1;
        return $this;
    }
    /**
     * Get manufacturerCity value
     * @return string|null
     */
    public function getManufacturerCity()
    {
        return $this->manufacturerCity;
    }
    /**
     * Set manufacturerCity value
     * @param string $manufacturerCity
     * @return \StructType\InventoryItem
     */
    public function setManufacturerCity($manufacturerCity = null)
    {
        // validation for constraint: string
        if (!is_null($manufacturerCity) && !is_string($manufacturerCity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($manufacturerCity, true), gettype($manufacturerCity)), __LINE__);
        }
        $this->manufacturerCity = $manufacturerCity;
        return $this;
    }
    /**
     * Get manufacturerState value
     * @return string|null
     */
    public function getManufacturerState()
    {
        return $this->manufacturerState;
    }
    /**
     * Set manufacturerState value
     * @param string $manufacturerState
     * @return \StructType\InventoryItem
     */
    public function setManufacturerState($manufacturerState = null)
    {
        // validation for constraint: string
        if (!is_null($manufacturerState) && !is_string($manufacturerState)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($manufacturerState, true), gettype($manufacturerState)), __LINE__);
        }
        $this->manufacturerState = $manufacturerState;
        return $this;
    }
    /**
     * Get manufacturerZip value
     * @return string|null
     */
    public function getManufacturerZip()
    {
        return $this->manufacturerZip;
    }
    /**
     * Set manufacturerZip value
     * @param string $manufacturerZip
     * @return \StructType\InventoryItem
     */
    public function setManufacturerZip($manufacturerZip = null)
    {
        // validation for constraint: string
        if (!is_null($manufacturerZip) && !is_string($manufacturerZip)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($manufacturerZip, true), gettype($manufacturerZip)), __LINE__);
        }
        $this->manufacturerZip = $manufacturerZip;
        return $this;
    }
    /**
     * Get countryOfManufacture value
     * @return string|null
     */
    public function getCountryOfManufacture()
    {
        return $this->countryOfManufacture;
    }
    /**
     * Set countryOfManufacture value
     * @uses \EnumType\Country::valueIsValid()
     * @uses \EnumType\Country::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $countryOfManufacture
     * @return \StructType\InventoryItem
     */
    public function setCountryOfManufacture($countryOfManufacture = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\Country::valueIsValid($countryOfManufacture)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\Country', is_array($countryOfManufacture) ? implode(', ', $countryOfManufacture) : var_export($countryOfManufacture, true), implode(', ', \EnumType\Country::getValidValues())), __LINE__);
        }
        $this->countryOfManufacture = $countryOfManufacture;
        return $this;
    }
    /**
     * Get roundUpAsComponent value
     * @return bool|null
     */
    public function getRoundUpAsComponent()
    {
        return $this->roundUpAsComponent;
    }
    /**
     * Set roundUpAsComponent value
     * @param bool $roundUpAsComponent
     * @return \StructType\InventoryItem
     */
    public function setRoundUpAsComponent($roundUpAsComponent = null)
    {
        // validation for constraint: boolean
        if (!is_null($roundUpAsComponent) && !is_bool($roundUpAsComponent)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($roundUpAsComponent, true), gettype($roundUpAsComponent)), __LINE__);
        }
        $this->roundUpAsComponent = $roundUpAsComponent;
        return $this;
    }
    /**
     * Get purchaseOrderQuantity value
     * @return float|null
     */
    public function getPurchaseOrderQuantity()
    {
        return $this->purchaseOrderQuantity;
    }
    /**
     * Set purchaseOrderQuantity value
     * @param float $purchaseOrderQuantity
     * @return \StructType\InventoryItem
     */
    public function setPurchaseOrderQuantity($purchaseOrderQuantity = null)
    {
        // validation for constraint: float
        if (!is_null($purchaseOrderQuantity) && !(is_float($purchaseOrderQuantity) || is_numeric($purchaseOrderQuantity))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($purchaseOrderQuantity, true), gettype($purchaseOrderQuantity)), __LINE__);
        }
        $this->purchaseOrderQuantity = $purchaseOrderQuantity;
        return $this;
    }
    /**
     * Get purchaseOrderAmount value
     * @return float|null
     */
    public function getPurchaseOrderAmount()
    {
        return $this->purchaseOrderAmount;
    }
    /**
     * Set purchaseOrderAmount value
     * @param float $purchaseOrderAmount
     * @return \StructType\InventoryItem
     */
    public function setPurchaseOrderAmount($purchaseOrderAmount = null)
    {
        // validation for constraint: float
        if (!is_null($purchaseOrderAmount) && !(is_float($purchaseOrderAmount) || is_numeric($purchaseOrderAmount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($purchaseOrderAmount, true), gettype($purchaseOrderAmount)), __LINE__);
        }
        $this->purchaseOrderAmount = $purchaseOrderAmount;
        return $this;
    }
    /**
     * Get purchaseOrderQuantityDiff value
     * @return float|null
     */
    public function getPurchaseOrderQuantityDiff()
    {
        return $this->purchaseOrderQuantityDiff;
    }
    /**
     * Set purchaseOrderQuantityDiff value
     * @param float $purchaseOrderQuantityDiff
     * @return \StructType\InventoryItem
     */
    public function setPurchaseOrderQuantityDiff($purchaseOrderQuantityDiff = null)
    {
        // validation for constraint: float
        if (!is_null($purchaseOrderQuantityDiff) && !(is_float($purchaseOrderQuantityDiff) || is_numeric($purchaseOrderQuantityDiff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($purchaseOrderQuantityDiff, true), gettype($purchaseOrderQuantityDiff)), __LINE__);
        }
        $this->purchaseOrderQuantityDiff = $purchaseOrderQuantityDiff;
        return $this;
    }
    /**
     * Get receiptQuantity value
     * @return float|null
     */
    public function getReceiptQuantity()
    {
        return $this->receiptQuantity;
    }
    /**
     * Set receiptQuantity value
     * @param float $receiptQuantity
     * @return \StructType\InventoryItem
     */
    public function setReceiptQuantity($receiptQuantity = null)
    {
        // validation for constraint: float
        if (!is_null($receiptQuantity) && !(is_float($receiptQuantity) || is_numeric($receiptQuantity))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($receiptQuantity, true), gettype($receiptQuantity)), __LINE__);
        }
        $this->receiptQuantity = $receiptQuantity;
        return $this;
    }
    /**
     * Get receiptAmount value
     * @return float|null
     */
    public function getReceiptAmount()
    {
        return $this->receiptAmount;
    }
    /**
     * Set receiptAmount value
     * @param float $receiptAmount
     * @return \StructType\InventoryItem
     */
    public function setReceiptAmount($receiptAmount = null)
    {
        // validation for constraint: float
        if (!is_null($receiptAmount) && !(is_float($receiptAmount) || is_numeric($receiptAmount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($receiptAmount, true), gettype($receiptAmount)), __LINE__);
        }
        $this->receiptAmount = $receiptAmount;
        return $this;
    }
    /**
     * Get receiptQuantityDiff value
     * @return float|null
     */
    public function getReceiptQuantityDiff()
    {
        return $this->receiptQuantityDiff;
    }
    /**
     * Set receiptQuantityDiff value
     * @param float $receiptQuantityDiff
     * @return \StructType\InventoryItem
     */
    public function setReceiptQuantityDiff($receiptQuantityDiff = null)
    {
        // validation for constraint: float
        if (!is_null($receiptQuantityDiff) && !(is_float($receiptQuantityDiff) || is_numeric($receiptQuantityDiff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($receiptQuantityDiff, true), gettype($receiptQuantityDiff)), __LINE__);
        }
        $this->receiptQuantityDiff = $receiptQuantityDiff;
        return $this;
    }
    /**
     * Get defaultItemShipMethod value
     * @return \StructType\RecordRef|null
     */
    public function getDefaultItemShipMethod()
    {
        return $this->defaultItemShipMethod;
    }
    /**
     * Set defaultItemShipMethod value
     * @param \StructType\RecordRef $defaultItemShipMethod
     * @return \StructType\InventoryItem
     */
    public function setDefaultItemShipMethod(\StructType\RecordRef $defaultItemShipMethod = null)
    {
        $this->defaultItemShipMethod = $defaultItemShipMethod;
        return $this;
    }
    /**
     * Get itemCarrier value
     * @return string|null
     */
    public function getItemCarrier()
    {
        return $this->itemCarrier;
    }
    /**
     * Set itemCarrier value
     * @uses \EnumType\ShippingCarrier::valueIsValid()
     * @uses \EnumType\ShippingCarrier::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $itemCarrier
     * @return \StructType\InventoryItem
     */
    public function setItemCarrier($itemCarrier = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ShippingCarrier::valueIsValid($itemCarrier)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ShippingCarrier', is_array($itemCarrier) ? implode(', ', $itemCarrier) : var_export($itemCarrier, true), implode(', ', \EnumType\ShippingCarrier::getValidValues())), __LINE__);
        }
        $this->itemCarrier = $itemCarrier;
        return $this;
    }
    /**
     * Get itemShipMethodList value
     * @return \StructType\RecordRefList|null
     */
    public function getItemShipMethodList()
    {
        return $this->itemShipMethodList;
    }
    /**
     * Set itemShipMethodList value
     * @param \StructType\RecordRefList $itemShipMethodList
     * @return \StructType\InventoryItem
     */
    public function setItemShipMethodList(\StructType\RecordRefList $itemShipMethodList = null)
    {
        $this->itemShipMethodList = $itemShipMethodList;
        return $this;
    }
    /**
     * Get manufacturerTaxId value
     * @return string|null
     */
    public function getManufacturerTaxId()
    {
        return $this->manufacturerTaxId;
    }
    /**
     * Set manufacturerTaxId value
     * @param string $manufacturerTaxId
     * @return \StructType\InventoryItem
     */
    public function setManufacturerTaxId($manufacturerTaxId = null)
    {
        // validation for constraint: string
        if (!is_null($manufacturerTaxId) && !is_string($manufacturerTaxId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($manufacturerTaxId, true), gettype($manufacturerTaxId)), __LINE__);
        }
        $this->manufacturerTaxId = $manufacturerTaxId;
        return $this;
    }
    /**
     * Get scheduleBNumber value
     * @return string|null
     */
    public function getScheduleBNumber()
    {
        return $this->scheduleBNumber;
    }
    /**
     * Set scheduleBNumber value
     * @param string $scheduleBNumber
     * @return \StructType\InventoryItem
     */
    public function setScheduleBNumber($scheduleBNumber = null)
    {
        // validation for constraint: string
        if (!is_null($scheduleBNumber) && !is_string($scheduleBNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($scheduleBNumber, true), gettype($scheduleBNumber)), __LINE__);
        }
        $this->scheduleBNumber = $scheduleBNumber;
        return $this;
    }
    /**
     * Get scheduleBQuantity value
     * @return int|null
     */
    public function getScheduleBQuantity()
    {
        return $this->scheduleBQuantity;
    }
    /**
     * Set scheduleBQuantity value
     * @param int $scheduleBQuantity
     * @return \StructType\InventoryItem
     */
    public function setScheduleBQuantity($scheduleBQuantity = null)
    {
        // validation for constraint: int
        if (!is_null($scheduleBQuantity) && !(is_int($scheduleBQuantity) || ctype_digit($scheduleBQuantity))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($scheduleBQuantity, true), gettype($scheduleBQuantity)), __LINE__);
        }
        $this->scheduleBQuantity = $scheduleBQuantity;
        return $this;
    }
    /**
     * Get scheduleBCode value
     * @return string|null
     */
    public function getScheduleBCode()
    {
        return $this->scheduleBCode;
    }
    /**
     * Set scheduleBCode value
     * @uses \EnumType\ScheduleBCode::valueIsValid()
     * @uses \EnumType\ScheduleBCode::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $scheduleBCode
     * @return \StructType\InventoryItem
     */
    public function setScheduleBCode($scheduleBCode = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ScheduleBCode::valueIsValid($scheduleBCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ScheduleBCode', is_array($scheduleBCode) ? implode(', ', $scheduleBCode) : var_export($scheduleBCode, true), implode(', ', \EnumType\ScheduleBCode::getValidValues())), __LINE__);
        }
        $this->scheduleBCode = $scheduleBCode;
        return $this;
    }
    /**
     * Get manufacturerTariff value
     * @return string|null
     */
    public function getManufacturerTariff()
    {
        return $this->manufacturerTariff;
    }
    /**
     * Set manufacturerTariff value
     * @param string $manufacturerTariff
     * @return \StructType\InventoryItem
     */
    public function setManufacturerTariff($manufacturerTariff = null)
    {
        // validation for constraint: string
        if (!is_null($manufacturerTariff) && !is_string($manufacturerTariff)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($manufacturerTariff, true), gettype($manufacturerTariff)), __LINE__);
        }
        $this->manufacturerTariff = $manufacturerTariff;
        return $this;
    }
    /**
     * Get preferenceCriterion value
     * @return string|null
     */
    public function getPreferenceCriterion()
    {
        return $this->preferenceCriterion;
    }
    /**
     * Set preferenceCriterion value
     * @uses \EnumType\ItemPreferenceCriterion::valueIsValid()
     * @uses \EnumType\ItemPreferenceCriterion::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $preferenceCriterion
     * @return \StructType\InventoryItem
     */
    public function setPreferenceCriterion($preferenceCriterion = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemPreferenceCriterion::valueIsValid($preferenceCriterion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemPreferenceCriterion', is_array($preferenceCriterion) ? implode(', ', $preferenceCriterion) : var_export($preferenceCriterion, true), implode(', ', \EnumType\ItemPreferenceCriterion::getValidValues())), __LINE__);
        }
        $this->preferenceCriterion = $preferenceCriterion;
        return $this;
    }
    /**
     * Get minimumQuantity value
     * @return int|null
     */
    public function getMinimumQuantity()
    {
        return $this->minimumQuantity;
    }
    /**
     * Set minimumQuantity value
     * @param int $minimumQuantity
     * @return \StructType\InventoryItem
     */
    public function setMinimumQuantity($minimumQuantity = null)
    {
        // validation for constraint: int
        if (!is_null($minimumQuantity) && !(is_int($minimumQuantity) || ctype_digit($minimumQuantity))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($minimumQuantity, true), gettype($minimumQuantity)), __LINE__);
        }
        $this->minimumQuantity = $minimumQuantity;
        return $this;
    }
    /**
     * Get enforceMinQtyInternally value
     * @return bool|null
     */
    public function getEnforceMinQtyInternally()
    {
        return $this->enforceMinQtyInternally;
    }
    /**
     * Set enforceMinQtyInternally value
     * @param bool $enforceMinQtyInternally
     * @return \StructType\InventoryItem
     */
    public function setEnforceMinQtyInternally($enforceMinQtyInternally = null)
    {
        // validation for constraint: boolean
        if (!is_null($enforceMinQtyInternally) && !is_bool($enforceMinQtyInternally)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($enforceMinQtyInternally, true), gettype($enforceMinQtyInternally)), __LINE__);
        }
        $this->enforceMinQtyInternally = $enforceMinQtyInternally;
        return $this;
    }
    /**
     * Get maximumQuantity value
     * @return int|null
     */
    public function getMaximumQuantity()
    {
        return $this->maximumQuantity;
    }
    /**
     * Set maximumQuantity value
     * @param int $maximumQuantity
     * @return \StructType\InventoryItem
     */
    public function setMaximumQuantity($maximumQuantity = null)
    {
        // validation for constraint: int
        if (!is_null($maximumQuantity) && !(is_int($maximumQuantity) || ctype_digit($maximumQuantity))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($maximumQuantity, true), gettype($maximumQuantity)), __LINE__);
        }
        $this->maximumQuantity = $maximumQuantity;
        return $this;
    }
    /**
     * Get minimumQuantityUnits value
     * @return string|null
     */
    public function getMinimumQuantityUnits()
    {
        return $this->minimumQuantityUnits;
    }
    /**
     * Set minimumQuantityUnits value
     * @param string $minimumQuantityUnits
     * @return \StructType\InventoryItem
     */
    public function setMinimumQuantityUnits($minimumQuantityUnits = null)
    {
        // validation for constraint: string
        if (!is_null($minimumQuantityUnits) && !is_string($minimumQuantityUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($minimumQuantityUnits, true), gettype($minimumQuantityUnits)), __LINE__);
        }
        $this->minimumQuantityUnits = $minimumQuantityUnits;
        return $this;
    }
    /**
     * Get softDescriptor value
     * @return \StructType\RecordRef|null
     */
    public function getSoftDescriptor()
    {
        return $this->softDescriptor;
    }
    /**
     * Set softDescriptor value
     * @param \StructType\RecordRef $softDescriptor
     * @return \StructType\InventoryItem
     */
    public function setSoftDescriptor(\StructType\RecordRef $softDescriptor = null)
    {
        $this->softDescriptor = $softDescriptor;
        return $this;
    }
    /**
     * Get shipPackage value
     * @return \StructType\RecordRef|null
     */
    public function getShipPackage()
    {
        return $this->shipPackage;
    }
    /**
     * Set shipPackage value
     * @param \StructType\RecordRef $shipPackage
     * @return \StructType\InventoryItem
     */
    public function setShipPackage(\StructType\RecordRef $shipPackage = null)
    {
        $this->shipPackage = $shipPackage;
        return $this;
    }
    /**
     * Get shipIndividually value
     * @return bool|null
     */
    public function getShipIndividually()
    {
        return $this->shipIndividually;
    }
    /**
     * Set shipIndividually value
     * @param bool $shipIndividually
     * @return \StructType\InventoryItem
     */
    public function setShipIndividually($shipIndividually = null)
    {
        // validation for constraint: boolean
        if (!is_null($shipIndividually) && !is_bool($shipIndividually)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($shipIndividually, true), gettype($shipIndividually)), __LINE__);
        }
        $this->shipIndividually = $shipIndividually;
        return $this;
    }
    /**
     * Get costCategory value
     * @return \StructType\RecordRef|null
     */
    public function getCostCategory()
    {
        return $this->costCategory;
    }
    /**
     * Set costCategory value
     * @param \StructType\RecordRef $costCategory
     * @return \StructType\InventoryItem
     */
    public function setCostCategory(\StructType\RecordRef $costCategory = null)
    {
        $this->costCategory = $costCategory;
        return $this;
    }
    /**
     * Get pricesIncludeTax value
     * @return bool|null
     */
    public function getPricesIncludeTax()
    {
        return $this->pricesIncludeTax;
    }
    /**
     * Set pricesIncludeTax value
     * @param bool $pricesIncludeTax
     * @return \StructType\InventoryItem
     */
    public function setPricesIncludeTax($pricesIncludeTax = null)
    {
        // validation for constraint: boolean
        if (!is_null($pricesIncludeTax) && !is_bool($pricesIncludeTax)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($pricesIncludeTax, true), gettype($pricesIncludeTax)), __LINE__);
        }
        $this->pricesIncludeTax = $pricesIncludeTax;
        return $this;
    }
    /**
     * Get purchasePriceVarianceAcct value
     * @return \StructType\RecordRef|null
     */
    public function getPurchasePriceVarianceAcct()
    {
        return $this->purchasePriceVarianceAcct;
    }
    /**
     * Set purchasePriceVarianceAcct value
     * @param \StructType\RecordRef $purchasePriceVarianceAcct
     * @return \StructType\InventoryItem
     */
    public function setPurchasePriceVarianceAcct(\StructType\RecordRef $purchasePriceVarianceAcct = null)
    {
        $this->purchasePriceVarianceAcct = $purchasePriceVarianceAcct;
        return $this;
    }
    /**
     * Get quantityPricingSchedule value
     * @return \StructType\RecordRef|null
     */
    public function getQuantityPricingSchedule()
    {
        return $this->quantityPricingSchedule;
    }
    /**
     * Set quantityPricingSchedule value
     * @param \StructType\RecordRef $quantityPricingSchedule
     * @return \StructType\InventoryItem
     */
    public function setQuantityPricingSchedule(\StructType\RecordRef $quantityPricingSchedule = null)
    {
        $this->quantityPricingSchedule = $quantityPricingSchedule;
        return $this;
    }
    /**
     * Get reorderPointUnits value
     * @return string|null
     */
    public function getReorderPointUnits()
    {
        return $this->reorderPointUnits;
    }
    /**
     * Set reorderPointUnits value
     * @param string $reorderPointUnits
     * @return \StructType\InventoryItem
     */
    public function setReorderPointUnits($reorderPointUnits = null)
    {
        // validation for constraint: string
        if (!is_null($reorderPointUnits) && !is_string($reorderPointUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($reorderPointUnits, true), gettype($reorderPointUnits)), __LINE__);
        }
        $this->reorderPointUnits = $reorderPointUnits;
        return $this;
    }
    /**
     * Get useMarginalRates value
     * @return bool|null
     */
    public function getUseMarginalRates()
    {
        return $this->useMarginalRates;
    }
    /**
     * Set useMarginalRates value
     * @param bool $useMarginalRates
     * @return \StructType\InventoryItem
     */
    public function setUseMarginalRates($useMarginalRates = null)
    {
        // validation for constraint: boolean
        if (!is_null($useMarginalRates) && !is_bool($useMarginalRates)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($useMarginalRates, true), gettype($useMarginalRates)), __LINE__);
        }
        $this->useMarginalRates = $useMarginalRates;
        return $this;
    }
    /**
     * Get preferredStockLevelUnits value
     * @return string|null
     */
    public function getPreferredStockLevelUnits()
    {
        return $this->preferredStockLevelUnits;
    }
    /**
     * Set preferredStockLevelUnits value
     * @param string $preferredStockLevelUnits
     * @return \StructType\InventoryItem
     */
    public function setPreferredStockLevelUnits($preferredStockLevelUnits = null)
    {
        // validation for constraint: string
        if (!is_null($preferredStockLevelUnits) && !is_string($preferredStockLevelUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($preferredStockLevelUnits, true), gettype($preferredStockLevelUnits)), __LINE__);
        }
        $this->preferredStockLevelUnits = $preferredStockLevelUnits;
        return $this;
    }
    /**
     * Get costEstimateType value
     * @return string|null
     */
    public function getCostEstimateType()
    {
        return $this->costEstimateType;
    }
    /**
     * Set costEstimateType value
     * @uses \EnumType\ItemCostEstimateType::valueIsValid()
     * @uses \EnumType\ItemCostEstimateType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $costEstimateType
     * @return \StructType\InventoryItem
     */
    public function setCostEstimateType($costEstimateType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemCostEstimateType::valueIsValid($costEstimateType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemCostEstimateType', is_array($costEstimateType) ? implode(', ', $costEstimateType) : var_export($costEstimateType, true), implode(', ', \EnumType\ItemCostEstimateType::getValidValues())), __LINE__);
        }
        $this->costEstimateType = $costEstimateType;
        return $this;
    }
    /**
     * Get costEstimate value
     * @return float|null
     */
    public function getCostEstimate()
    {
        return $this->costEstimate;
    }
    /**
     * Set costEstimate value
     * @param float $costEstimate
     * @return \StructType\InventoryItem
     */
    public function setCostEstimate($costEstimate = null)
    {
        // validation for constraint: float
        if (!is_null($costEstimate) && !(is_float($costEstimate) || is_numeric($costEstimate))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($costEstimate, true), gettype($costEstimate)), __LINE__);
        }
        $this->costEstimate = $costEstimate;
        return $this;
    }
    /**
     * Get transferPrice value
     * @return float|null
     */
    public function getTransferPrice()
    {
        return $this->transferPrice;
    }
    /**
     * Set transferPrice value
     * @param float $transferPrice
     * @return \StructType\InventoryItem
     */
    public function setTransferPrice($transferPrice = null)
    {
        // validation for constraint: float
        if (!is_null($transferPrice) && !(is_float($transferPrice) || is_numeric($transferPrice))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($transferPrice, true), gettype($transferPrice)), __LINE__);
        }
        $this->transferPrice = $transferPrice;
        return $this;
    }
    /**
     * Get overallQuantityPricingType value
     * @return string|null
     */
    public function getOverallQuantityPricingType()
    {
        return $this->overallQuantityPricingType;
    }
    /**
     * Set overallQuantityPricingType value
     * @uses \EnumType\ItemOverallQuantityPricingType::valueIsValid()
     * @uses \EnumType\ItemOverallQuantityPricingType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $overallQuantityPricingType
     * @return \StructType\InventoryItem
     */
    public function setOverallQuantityPricingType($overallQuantityPricingType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemOverallQuantityPricingType::valueIsValid($overallQuantityPricingType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemOverallQuantityPricingType', is_array($overallQuantityPricingType) ? implode(', ', $overallQuantityPricingType) : var_export($overallQuantityPricingType, true), implode(', ', \EnumType\ItemOverallQuantityPricingType::getValidValues())), __LINE__);
        }
        $this->overallQuantityPricingType = $overallQuantityPricingType;
        return $this;
    }
    /**
     * Get pricingGroup value
     * @return \StructType\RecordRef|null
     */
    public function getPricingGroup()
    {
        return $this->pricingGroup;
    }
    /**
     * Set pricingGroup value
     * @param \StructType\RecordRef $pricingGroup
     * @return \StructType\InventoryItem
     */
    public function setPricingGroup(\StructType\RecordRef $pricingGroup = null)
    {
        $this->pricingGroup = $pricingGroup;
        return $this;
    }
    /**
     * Get vsoePrice value
     * @return float|null
     */
    public function getVsoePrice()
    {
        return $this->vsoePrice;
    }
    /**
     * Set vsoePrice value
     * @param float $vsoePrice
     * @return \StructType\InventoryItem
     */
    public function setVsoePrice($vsoePrice = null)
    {
        // validation for constraint: float
        if (!is_null($vsoePrice) && !(is_float($vsoePrice) || is_numeric($vsoePrice))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($vsoePrice, true), gettype($vsoePrice)), __LINE__);
        }
        $this->vsoePrice = $vsoePrice;
        return $this;
    }
    /**
     * Get vsoeSopGroup value
     * @return string|null
     */
    public function getVsoeSopGroup()
    {
        return $this->vsoeSopGroup;
    }
    /**
     * Set vsoeSopGroup value
     * @uses \EnumType\VsoeSopGroup::valueIsValid()
     * @uses \EnumType\VsoeSopGroup::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $vsoeSopGroup
     * @return \StructType\InventoryItem
     */
    public function setVsoeSopGroup($vsoeSopGroup = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\VsoeSopGroup::valueIsValid($vsoeSopGroup)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\VsoeSopGroup', is_array($vsoeSopGroup) ? implode(', ', $vsoeSopGroup) : var_export($vsoeSopGroup, true), implode(', ', \EnumType\VsoeSopGroup::getValidValues())), __LINE__);
        }
        $this->vsoeSopGroup = $vsoeSopGroup;
        return $this;
    }
    /**
     * Get costEstimateUnits value
     * @return string|null
     */
    public function getCostEstimateUnits()
    {
        return $this->costEstimateUnits;
    }
    /**
     * Set costEstimateUnits value
     * @param string $costEstimateUnits
     * @return \StructType\InventoryItem
     */
    public function setCostEstimateUnits($costEstimateUnits = null)
    {
        // validation for constraint: string
        if (!is_null($costEstimateUnits) && !is_string($costEstimateUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($costEstimateUnits, true), gettype($costEstimateUnits)), __LINE__);
        }
        $this->costEstimateUnits = $costEstimateUnits;
        return $this;
    }
    /**
     * Get vsoeDeferral value
     * @return string|null
     */
    public function getVsoeDeferral()
    {
        return $this->vsoeDeferral;
    }
    /**
     * Set vsoeDeferral value
     * @uses \EnumType\VsoeDeferral::valueIsValid()
     * @uses \EnumType\VsoeDeferral::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $vsoeDeferral
     * @return \StructType\InventoryItem
     */
    public function setVsoeDeferral($vsoeDeferral = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\VsoeDeferral::valueIsValid($vsoeDeferral)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\VsoeDeferral', is_array($vsoeDeferral) ? implode(', ', $vsoeDeferral) : var_export($vsoeDeferral, true), implode(', ', \EnumType\VsoeDeferral::getValidValues())), __LINE__);
        }
        $this->vsoeDeferral = $vsoeDeferral;
        return $this;
    }
    /**
     * Get vsoePermitDiscount value
     * @return string|null
     */
    public function getVsoePermitDiscount()
    {
        return $this->vsoePermitDiscount;
    }
    /**
     * Set vsoePermitDiscount value
     * @uses \EnumType\VsoePermitDiscount::valueIsValid()
     * @uses \EnumType\VsoePermitDiscount::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $vsoePermitDiscount
     * @return \StructType\InventoryItem
     */
    public function setVsoePermitDiscount($vsoePermitDiscount = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\VsoePermitDiscount::valueIsValid($vsoePermitDiscount)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\VsoePermitDiscount', is_array($vsoePermitDiscount) ? implode(', ', $vsoePermitDiscount) : var_export($vsoePermitDiscount, true), implode(', ', \EnumType\VsoePermitDiscount::getValidValues())), __LINE__);
        }
        $this->vsoePermitDiscount = $vsoePermitDiscount;
        return $this;
    }
    /**
     * Get vsoeDelivered value
     * @return bool|null
     */
    public function getVsoeDelivered()
    {
        return $this->vsoeDelivered;
    }
    /**
     * Set vsoeDelivered value
     * @param bool $vsoeDelivered
     * @return \StructType\InventoryItem
     */
    public function setVsoeDelivered($vsoeDelivered = null)
    {
        // validation for constraint: boolean
        if (!is_null($vsoeDelivered) && !is_bool($vsoeDelivered)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($vsoeDelivered, true), gettype($vsoeDelivered)), __LINE__);
        }
        $this->vsoeDelivered = $vsoeDelivered;
        return $this;
    }
    /**
     * Get itemRevenueCategory value
     * @return \StructType\RecordRef|null
     */
    public function getItemRevenueCategory()
    {
        return $this->itemRevenueCategory;
    }
    /**
     * Set itemRevenueCategory value
     * @param \StructType\RecordRef $itemRevenueCategory
     * @return \StructType\InventoryItem
     */
    public function setItemRevenueCategory(\StructType\RecordRef $itemRevenueCategory = null)
    {
        $this->itemRevenueCategory = $itemRevenueCategory;
        return $this;
    }
    /**
     * Get preferredLocation value
     * @return \StructType\RecordRef|null
     */
    public function getPreferredLocation()
    {
        return $this->preferredLocation;
    }
    /**
     * Set preferredLocation value
     * @param \StructType\RecordRef $preferredLocation
     * @return \StructType\InventoryItem
     */
    public function setPreferredLocation(\StructType\RecordRef $preferredLocation = null)
    {
        $this->preferredLocation = $preferredLocation;
        return $this;
    }
    /**
     * Get isStorePickupAllowed value
     * @return bool|null
     */
    public function getIsStorePickupAllowed()
    {
        return $this->isStorePickupAllowed;
    }
    /**
     * Set isStorePickupAllowed value
     * @param bool $isStorePickupAllowed
     * @return \StructType\InventoryItem
     */
    public function setIsStorePickupAllowed($isStorePickupAllowed = null)
    {
        // validation for constraint: boolean
        if (!is_null($isStorePickupAllowed) && !is_bool($isStorePickupAllowed)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isStorePickupAllowed, true), gettype($isStorePickupAllowed)), __LINE__);
        }
        $this->isStorePickupAllowed = $isStorePickupAllowed;
        return $this;
    }
    /**
     * Get reorderMultiple value
     * @return int|null
     */
    public function getReorderMultiple()
    {
        return $this->reorderMultiple;
    }
    /**
     * Set reorderMultiple value
     * @param int $reorderMultiple
     * @return \StructType\InventoryItem
     */
    public function setReorderMultiple($reorderMultiple = null)
    {
        // validation for constraint: int
        if (!is_null($reorderMultiple) && !(is_int($reorderMultiple) || ctype_digit($reorderMultiple))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($reorderMultiple, true), gettype($reorderMultiple)), __LINE__);
        }
        $this->reorderMultiple = $reorderMultiple;
        return $this;
    }
    /**
     * Get cost value
     * @return float|null
     */
    public function getCost()
    {
        return $this->cost;
    }
    /**
     * Set cost value
     * @param float $cost
     * @return \StructType\InventoryItem
     */
    public function setCost($cost = null)
    {
        // validation for constraint: float
        if (!is_null($cost) && !(is_float($cost) || is_numeric($cost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($cost, true), gettype($cost)), __LINE__);
        }
        $this->cost = $cost;
        return $this;
    }
    /**
     * Get lastInvtCountDate value
     * @return string|null
     */
    public function getLastInvtCountDate()
    {
        return $this->lastInvtCountDate;
    }
    /**
     * Set lastInvtCountDate value
     * @param string $lastInvtCountDate
     * @return \StructType\InventoryItem
     */
    public function setLastInvtCountDate($lastInvtCountDate = null)
    {
        // validation for constraint: string
        if (!is_null($lastInvtCountDate) && !is_string($lastInvtCountDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastInvtCountDate, true), gettype($lastInvtCountDate)), __LINE__);
        }
        $this->lastInvtCountDate = $lastInvtCountDate;
        return $this;
    }
    /**
     * Get nextInvtCountDate value
     * @return string|null
     */
    public function getNextInvtCountDate()
    {
        return $this->nextInvtCountDate;
    }
    /**
     * Set nextInvtCountDate value
     * @param string $nextInvtCountDate
     * @return \StructType\InventoryItem
     */
    public function setNextInvtCountDate($nextInvtCountDate = null)
    {
        // validation for constraint: string
        if (!is_null($nextInvtCountDate) && !is_string($nextInvtCountDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($nextInvtCountDate, true), gettype($nextInvtCountDate)), __LINE__);
        }
        $this->nextInvtCountDate = $nextInvtCountDate;
        return $this;
    }
    /**
     * Get invtCountInterval value
     * @return int|null
     */
    public function getInvtCountInterval()
    {
        return $this->invtCountInterval;
    }
    /**
     * Set invtCountInterval value
     * @param int $invtCountInterval
     * @return \StructType\InventoryItem
     */
    public function setInvtCountInterval($invtCountInterval = null)
    {
        // validation for constraint: int
        if (!is_null($invtCountInterval) && !(is_int($invtCountInterval) || ctype_digit($invtCountInterval))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($invtCountInterval, true), gettype($invtCountInterval)), __LINE__);
        }
        $this->invtCountInterval = $invtCountInterval;
        return $this;
    }
    /**
     * Get invtClassification value
     * @return string|null
     */
    public function getInvtClassification()
    {
        return $this->invtClassification;
    }
    /**
     * Set invtClassification value
     * @uses \EnumType\ItemInvtClassification::valueIsValid()
     * @uses \EnumType\ItemInvtClassification::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $invtClassification
     * @return \StructType\InventoryItem
     */
    public function setInvtClassification($invtClassification = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemInvtClassification::valueIsValid($invtClassification)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemInvtClassification', is_array($invtClassification) ? implode(', ', $invtClassification) : var_export($invtClassification, true), implode(', ', \EnumType\ItemInvtClassification::getValidValues())), __LINE__);
        }
        $this->invtClassification = $invtClassification;
        return $this;
    }
    /**
     * Get costUnits value
     * @return string|null
     */
    public function getCostUnits()
    {
        return $this->costUnits;
    }
    /**
     * Set costUnits value
     * @param string $costUnits
     * @return \StructType\InventoryItem
     */
    public function setCostUnits($costUnits = null)
    {
        // validation for constraint: string
        if (!is_null($costUnits) && !is_string($costUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($costUnits, true), gettype($costUnits)), __LINE__);
        }
        $this->costUnits = $costUnits;
        return $this;
    }
    /**
     * Get totalValue value
     * @return float|null
     */
    public function getTotalValue()
    {
        return $this->totalValue;
    }
    /**
     * Set totalValue value
     * @param float $totalValue
     * @return \StructType\InventoryItem
     */
    public function setTotalValue($totalValue = null)
    {
        // validation for constraint: float
        if (!is_null($totalValue) && !(is_float($totalValue) || is_numeric($totalValue))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($totalValue, true), gettype($totalValue)), __LINE__);
        }
        $this->totalValue = $totalValue;
        return $this;
    }
    /**
     * Get averageCost value
     * @return float|null
     */
    public function getAverageCost()
    {
        return $this->averageCost;
    }
    /**
     * Set averageCost value
     * @param float $averageCost
     * @return \StructType\InventoryItem
     */
    public function setAverageCost($averageCost = null)
    {
        // validation for constraint: float
        if (!is_null($averageCost) && !(is_float($averageCost) || is_numeric($averageCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($averageCost, true), gettype($averageCost)), __LINE__);
        }
        $this->averageCost = $averageCost;
        return $this;
    }
    /**
     * Get useBins value
     * @return bool|null
     */
    public function getUseBins()
    {
        return $this->useBins;
    }
    /**
     * Set useBins value
     * @param bool $useBins
     * @return \StructType\InventoryItem
     */
    public function setUseBins($useBins = null)
    {
        // validation for constraint: boolean
        if (!is_null($useBins) && !is_bool($useBins)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($useBins, true), gettype($useBins)), __LINE__);
        }
        $this->useBins = $useBins;
        return $this;
    }
    /**
     * Get quantityReorderUnits value
     * @return string|null
     */
    public function getQuantityReorderUnits()
    {
        return $this->quantityReorderUnits;
    }
    /**
     * Set quantityReorderUnits value
     * @param string $quantityReorderUnits
     * @return \StructType\InventoryItem
     */
    public function setQuantityReorderUnits($quantityReorderUnits = null)
    {
        // validation for constraint: string
        if (!is_null($quantityReorderUnits) && !is_string($quantityReorderUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($quantityReorderUnits, true), gettype($quantityReorderUnits)), __LINE__);
        }
        $this->quantityReorderUnits = $quantityReorderUnits;
        return $this;
    }
    /**
     * Get leadTime value
     * @return int|null
     */
    public function getLeadTime()
    {
        return $this->leadTime;
    }
    /**
     * Set leadTime value
     * @param int $leadTime
     * @return \StructType\InventoryItem
     */
    public function setLeadTime($leadTime = null)
    {
        // validation for constraint: int
        if (!is_null($leadTime) && !(is_int($leadTime) || ctype_digit($leadTime))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($leadTime, true), gettype($leadTime)), __LINE__);
        }
        $this->leadTime = $leadTime;
        return $this;
    }
    /**
     * Get autoLeadTime value
     * @return bool|null
     */
    public function getAutoLeadTime()
    {
        return $this->autoLeadTime;
    }
    /**
     * Set autoLeadTime value
     * @param bool $autoLeadTime
     * @return \StructType\InventoryItem
     */
    public function setAutoLeadTime($autoLeadTime = null)
    {
        // validation for constraint: boolean
        if (!is_null($autoLeadTime) && !is_bool($autoLeadTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($autoLeadTime, true), gettype($autoLeadTime)), __LINE__);
        }
        $this->autoLeadTime = $autoLeadTime;
        return $this;
    }
    /**
     * Get lastPurchasePrice value
     * @return float|null
     */
    public function getLastPurchasePrice()
    {
        return $this->lastPurchasePrice;
    }
    /**
     * Set lastPurchasePrice value
     * @param float $lastPurchasePrice
     * @return \StructType\InventoryItem
     */
    public function setLastPurchasePrice($lastPurchasePrice = null)
    {
        // validation for constraint: float
        if (!is_null($lastPurchasePrice) && !(is_float($lastPurchasePrice) || is_numeric($lastPurchasePrice))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($lastPurchasePrice, true), gettype($lastPurchasePrice)), __LINE__);
        }
        $this->lastPurchasePrice = $lastPurchasePrice;
        return $this;
    }
    /**
     * Get autoPreferredStockLevel value
     * @return bool|null
     */
    public function getAutoPreferredStockLevel()
    {
        return $this->autoPreferredStockLevel;
    }
    /**
     * Set autoPreferredStockLevel value
     * @param bool $autoPreferredStockLevel
     * @return \StructType\InventoryItem
     */
    public function setAutoPreferredStockLevel($autoPreferredStockLevel = null)
    {
        // validation for constraint: boolean
        if (!is_null($autoPreferredStockLevel) && !is_bool($autoPreferredStockLevel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($autoPreferredStockLevel, true), gettype($autoPreferredStockLevel)), __LINE__);
        }
        $this->autoPreferredStockLevel = $autoPreferredStockLevel;
        return $this;
    }
    /**
     * Get preferredStockLevelDays value
     * @return float|null
     */
    public function getPreferredStockLevelDays()
    {
        return $this->preferredStockLevelDays;
    }
    /**
     * Set preferredStockLevelDays value
     * @param float $preferredStockLevelDays
     * @return \StructType\InventoryItem
     */
    public function setPreferredStockLevelDays($preferredStockLevelDays = null)
    {
        // validation for constraint: float
        if (!is_null($preferredStockLevelDays) && !(is_float($preferredStockLevelDays) || is_numeric($preferredStockLevelDays))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($preferredStockLevelDays, true), gettype($preferredStockLevelDays)), __LINE__);
        }
        $this->preferredStockLevelDays = $preferredStockLevelDays;
        return $this;
    }
    /**
     * Get safetyStockLevel value
     * @return float|null
     */
    public function getSafetyStockLevel()
    {
        return $this->safetyStockLevel;
    }
    /**
     * Set safetyStockLevel value
     * @param float $safetyStockLevel
     * @return \StructType\InventoryItem
     */
    public function setSafetyStockLevel($safetyStockLevel = null)
    {
        // validation for constraint: float
        if (!is_null($safetyStockLevel) && !(is_float($safetyStockLevel) || is_numeric($safetyStockLevel))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($safetyStockLevel, true), gettype($safetyStockLevel)), __LINE__);
        }
        $this->safetyStockLevel = $safetyStockLevel;
        return $this;
    }
    /**
     * Get safetyStockLevelDays value
     * @return int|null
     */
    public function getSafetyStockLevelDays()
    {
        return $this->safetyStockLevelDays;
    }
    /**
     * Set safetyStockLevelDays value
     * @param int $safetyStockLevelDays
     * @return \StructType\InventoryItem
     */
    public function setSafetyStockLevelDays($safetyStockLevelDays = null)
    {
        // validation for constraint: int
        if (!is_null($safetyStockLevelDays) && !(is_int($safetyStockLevelDays) || ctype_digit($safetyStockLevelDays))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($safetyStockLevelDays, true), gettype($safetyStockLevelDays)), __LINE__);
        }
        $this->safetyStockLevelDays = $safetyStockLevelDays;
        return $this;
    }
    /**
     * Get backwardConsumptionDays value
     * @return int|null
     */
    public function getBackwardConsumptionDays()
    {
        return $this->backwardConsumptionDays;
    }
    /**
     * Set backwardConsumptionDays value
     * @param int $backwardConsumptionDays
     * @return \StructType\InventoryItem
     */
    public function setBackwardConsumptionDays($backwardConsumptionDays = null)
    {
        // validation for constraint: int
        if (!is_null($backwardConsumptionDays) && !(is_int($backwardConsumptionDays) || ctype_digit($backwardConsumptionDays))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($backwardConsumptionDays, true), gettype($backwardConsumptionDays)), __LINE__);
        }
        $this->backwardConsumptionDays = $backwardConsumptionDays;
        return $this;
    }
    /**
     * Get seasonalDemand value
     * @return bool|null
     */
    public function getSeasonalDemand()
    {
        return $this->seasonalDemand;
    }
    /**
     * Set seasonalDemand value
     * @param bool $seasonalDemand
     * @return \StructType\InventoryItem
     */
    public function setSeasonalDemand($seasonalDemand = null)
    {
        // validation for constraint: boolean
        if (!is_null($seasonalDemand) && !is_bool($seasonalDemand)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($seasonalDemand, true), gettype($seasonalDemand)), __LINE__);
        }
        $this->seasonalDemand = $seasonalDemand;
        return $this;
    }
    /**
     * Get safetyStockLevelUnits value
     * @return string|null
     */
    public function getSafetyStockLevelUnits()
    {
        return $this->safetyStockLevelUnits;
    }
    /**
     * Set safetyStockLevelUnits value
     * @param string $safetyStockLevelUnits
     * @return \StructType\InventoryItem
     */
    public function setSafetyStockLevelUnits($safetyStockLevelUnits = null)
    {
        // validation for constraint: string
        if (!is_null($safetyStockLevelUnits) && !is_string($safetyStockLevelUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($safetyStockLevelUnits, true), gettype($safetyStockLevelUnits)), __LINE__);
        }
        $this->safetyStockLevelUnits = $safetyStockLevelUnits;
        return $this;
    }
    /**
     * Get demandModifier value
     * @return float|null
     */
    public function getDemandModifier()
    {
        return $this->demandModifier;
    }
    /**
     * Set demandModifier value
     * @param float $demandModifier
     * @return \StructType\InventoryItem
     */
    public function setDemandModifier($demandModifier = null)
    {
        // validation for constraint: float
        if (!is_null($demandModifier) && !(is_float($demandModifier) || is_numeric($demandModifier))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($demandModifier, true), gettype($demandModifier)), __LINE__);
        }
        $this->demandModifier = $demandModifier;
        return $this;
    }
    /**
     * Get distributionNetwork value
     * @return \StructType\RecordRef|null
     */
    public function getDistributionNetwork()
    {
        return $this->distributionNetwork;
    }
    /**
     * Set distributionNetwork value
     * @param \StructType\RecordRef $distributionNetwork
     * @return \StructType\InventoryItem
     */
    public function setDistributionNetwork(\StructType\RecordRef $distributionNetwork = null)
    {
        $this->distributionNetwork = $distributionNetwork;
        return $this;
    }
    /**
     * Get distributionCategory value
     * @return \StructType\RecordRef|null
     */
    public function getDistributionCategory()
    {
        return $this->distributionCategory;
    }
    /**
     * Set distributionCategory value
     * @param \StructType\RecordRef $distributionCategory
     * @return \StructType\InventoryItem
     */
    public function setDistributionCategory(\StructType\RecordRef $distributionCategory = null)
    {
        $this->distributionCategory = $distributionCategory;
        return $this;
    }
    /**
     * Get autoReorderPoint value
     * @return bool|null
     */
    public function getAutoReorderPoint()
    {
        return $this->autoReorderPoint;
    }
    /**
     * Set autoReorderPoint value
     * @param bool $autoReorderPoint
     * @return \StructType\InventoryItem
     */
    public function setAutoReorderPoint($autoReorderPoint = null)
    {
        // validation for constraint: boolean
        if (!is_null($autoReorderPoint) && !is_bool($autoReorderPoint)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($autoReorderPoint, true), gettype($autoReorderPoint)), __LINE__);
        }
        $this->autoReorderPoint = $autoReorderPoint;
        return $this;
    }
    /**
     * Get storeDisplayName value
     * @return string|null
     */
    public function getStoreDisplayName()
    {
        return $this->storeDisplayName;
    }
    /**
     * Set storeDisplayName value
     * @param string $storeDisplayName
     * @return \StructType\InventoryItem
     */
    public function setStoreDisplayName($storeDisplayName = null)
    {
        // validation for constraint: string
        if (!is_null($storeDisplayName) && !is_string($storeDisplayName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($storeDisplayName, true), gettype($storeDisplayName)), __LINE__);
        }
        $this->storeDisplayName = $storeDisplayName;
        return $this;
    }
    /**
     * Get storeDisplayThumbnail value
     * @return \StructType\RecordRef|null
     */
    public function getStoreDisplayThumbnail()
    {
        return $this->storeDisplayThumbnail;
    }
    /**
     * Set storeDisplayThumbnail value
     * @param \StructType\RecordRef $storeDisplayThumbnail
     * @return \StructType\InventoryItem
     */
    public function setStoreDisplayThumbnail(\StructType\RecordRef $storeDisplayThumbnail = null)
    {
        $this->storeDisplayThumbnail = $storeDisplayThumbnail;
        return $this;
    }
    /**
     * Get storeDisplayImage value
     * @return \StructType\RecordRef|null
     */
    public function getStoreDisplayImage()
    {
        return $this->storeDisplayImage;
    }
    /**
     * Set storeDisplayImage value
     * @param \StructType\RecordRef $storeDisplayImage
     * @return \StructType\InventoryItem
     */
    public function setStoreDisplayImage(\StructType\RecordRef $storeDisplayImage = null)
    {
        $this->storeDisplayImage = $storeDisplayImage;
        return $this;
    }
    /**
     * Get storeDescription value
     * @return string|null
     */
    public function getStoreDescription()
    {
        return $this->storeDescription;
    }
    /**
     * Set storeDescription value
     * @param string $storeDescription
     * @return \StructType\InventoryItem
     */
    public function setStoreDescription($storeDescription = null)
    {
        // validation for constraint: string
        if (!is_null($storeDescription) && !is_string($storeDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($storeDescription, true), gettype($storeDescription)), __LINE__);
        }
        $this->storeDescription = $storeDescription;
        return $this;
    }
    /**
     * Get storeDetailedDescription value
     * @return string|null
     */
    public function getStoreDetailedDescription()
    {
        return $this->storeDetailedDescription;
    }
    /**
     * Set storeDetailedDescription value
     * @param string $storeDetailedDescription
     * @return \StructType\InventoryItem
     */
    public function setStoreDetailedDescription($storeDetailedDescription = null)
    {
        // validation for constraint: string
        if (!is_null($storeDetailedDescription) && !is_string($storeDetailedDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($storeDetailedDescription, true), gettype($storeDetailedDescription)), __LINE__);
        }
        $this->storeDetailedDescription = $storeDetailedDescription;
        return $this;
    }
    /**
     * Get storeItemTemplate value
     * @return \StructType\RecordRef|null
     */
    public function getStoreItemTemplate()
    {
        return $this->storeItemTemplate;
    }
    /**
     * Set storeItemTemplate value
     * @param \StructType\RecordRef $storeItemTemplate
     * @return \StructType\InventoryItem
     */
    public function setStoreItemTemplate(\StructType\RecordRef $storeItemTemplate = null)
    {
        $this->storeItemTemplate = $storeItemTemplate;
        return $this;
    }
    /**
     * Get pageTitle value
     * @return string|null
     */
    public function getPageTitle()
    {
        return $this->pageTitle;
    }
    /**
     * Set pageTitle value
     * @param string $pageTitle
     * @return \StructType\InventoryItem
     */
    public function setPageTitle($pageTitle = null)
    {
        // validation for constraint: string
        if (!is_null($pageTitle) && !is_string($pageTitle)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pageTitle, true), gettype($pageTitle)), __LINE__);
        }
        $this->pageTitle = $pageTitle;
        return $this;
    }
    /**
     * Get metaTagHtml value
     * @return string|null
     */
    public function getMetaTagHtml()
    {
        return $this->metaTagHtml;
    }
    /**
     * Set metaTagHtml value
     * @param string $metaTagHtml
     * @return \StructType\InventoryItem
     */
    public function setMetaTagHtml($metaTagHtml = null)
    {
        // validation for constraint: string
        if (!is_null($metaTagHtml) && !is_string($metaTagHtml)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($metaTagHtml, true), gettype($metaTagHtml)), __LINE__);
        }
        $this->metaTagHtml = $metaTagHtml;
        return $this;
    }
    /**
     * Get excludeFromSitemap value
     * @return bool|null
     */
    public function getExcludeFromSitemap()
    {
        return $this->excludeFromSitemap;
    }
    /**
     * Set excludeFromSitemap value
     * @param bool $excludeFromSitemap
     * @return \StructType\InventoryItem
     */
    public function setExcludeFromSitemap($excludeFromSitemap = null)
    {
        // validation for constraint: boolean
        if (!is_null($excludeFromSitemap) && !is_bool($excludeFromSitemap)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($excludeFromSitemap, true), gettype($excludeFromSitemap)), __LINE__);
        }
        $this->excludeFromSitemap = $excludeFromSitemap;
        return $this;
    }
    /**
     * Get sitemapPriority value
     * @return string|null
     */
    public function getSitemapPriority()
    {
        return $this->sitemapPriority;
    }
    /**
     * Set sitemapPriority value
     * @uses \EnumType\SitemapPriority::valueIsValid()
     * @uses \EnumType\SitemapPriority::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $sitemapPriority
     * @return \StructType\InventoryItem
     */
    public function setSitemapPriority($sitemapPriority = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\SitemapPriority::valueIsValid($sitemapPriority)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\SitemapPriority', is_array($sitemapPriority) ? implode(', ', $sitemapPriority) : var_export($sitemapPriority, true), implode(', ', \EnumType\SitemapPriority::getValidValues())), __LINE__);
        }
        $this->sitemapPriority = $sitemapPriority;
        return $this;
    }
    /**
     * Get searchKeywords value
     * @return string|null
     */
    public function getSearchKeywords()
    {
        return $this->searchKeywords;
    }
    /**
     * Set searchKeywords value
     * @param string $searchKeywords
     * @return \StructType\InventoryItem
     */
    public function setSearchKeywords($searchKeywords = null)
    {
        // validation for constraint: string
        if (!is_null($searchKeywords) && !is_string($searchKeywords)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($searchKeywords, true), gettype($searchKeywords)), __LINE__);
        }
        $this->searchKeywords = $searchKeywords;
        return $this;
    }
    /**
     * Get isDonationItem value
     * @return bool|null
     */
    public function getIsDonationItem()
    {
        return $this->isDonationItem;
    }
    /**
     * Set isDonationItem value
     * @param bool $isDonationItem
     * @return \StructType\InventoryItem
     */
    public function setIsDonationItem($isDonationItem = null)
    {
        // validation for constraint: boolean
        if (!is_null($isDonationItem) && !is_bool($isDonationItem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isDonationItem, true), gettype($isDonationItem)), __LINE__);
        }
        $this->isDonationItem = $isDonationItem;
        return $this;
    }
    /**
     * Get showDefaultDonationAmount value
     * @return bool|null
     */
    public function getShowDefaultDonationAmount()
    {
        return $this->showDefaultDonationAmount;
    }
    /**
     * Set showDefaultDonationAmount value
     * @param bool $showDefaultDonationAmount
     * @return \StructType\InventoryItem
     */
    public function setShowDefaultDonationAmount($showDefaultDonationAmount = null)
    {
        // validation for constraint: boolean
        if (!is_null($showDefaultDonationAmount) && !is_bool($showDefaultDonationAmount)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($showDefaultDonationAmount, true), gettype($showDefaultDonationAmount)), __LINE__);
        }
        $this->showDefaultDonationAmount = $showDefaultDonationAmount;
        return $this;
    }
    /**
     * Get maxDonationAmount value
     * @return float|null
     */
    public function getMaxDonationAmount()
    {
        return $this->maxDonationAmount;
    }
    /**
     * Set maxDonationAmount value
     * @param float $maxDonationAmount
     * @return \StructType\InventoryItem
     */
    public function setMaxDonationAmount($maxDonationAmount = null)
    {
        // validation for constraint: float
        if (!is_null($maxDonationAmount) && !(is_float($maxDonationAmount) || is_numeric($maxDonationAmount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($maxDonationAmount, true), gettype($maxDonationAmount)), __LINE__);
        }
        $this->maxDonationAmount = $maxDonationAmount;
        return $this;
    }
    /**
     * Get dontShowPrice value
     * @return bool|null
     */
    public function getDontShowPrice()
    {
        return $this->dontShowPrice;
    }
    /**
     * Set dontShowPrice value
     * @param bool $dontShowPrice
     * @return \StructType\InventoryItem
     */
    public function setDontShowPrice($dontShowPrice = null)
    {
        // validation for constraint: boolean
        if (!is_null($dontShowPrice) && !is_bool($dontShowPrice)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($dontShowPrice, true), gettype($dontShowPrice)), __LINE__);
        }
        $this->dontShowPrice = $dontShowPrice;
        return $this;
    }
    /**
     * Get noPriceMessage value
     * @return string|null
     */
    public function getNoPriceMessage()
    {
        return $this->noPriceMessage;
    }
    /**
     * Set noPriceMessage value
     * @param string $noPriceMessage
     * @return \StructType\InventoryItem
     */
    public function setNoPriceMessage($noPriceMessage = null)
    {
        // validation for constraint: string
        if (!is_null($noPriceMessage) && !is_string($noPriceMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($noPriceMessage, true), gettype($noPriceMessage)), __LINE__);
        }
        $this->noPriceMessage = $noPriceMessage;
        return $this;
    }
    /**
     * Get outOfStockMessage value
     * @return string|null
     */
    public function getOutOfStockMessage()
    {
        return $this->outOfStockMessage;
    }
    /**
     * Set outOfStockMessage value
     * @param string $outOfStockMessage
     * @return \StructType\InventoryItem
     */
    public function setOutOfStockMessage($outOfStockMessage = null)
    {
        // validation for constraint: string
        if (!is_null($outOfStockMessage) && !is_string($outOfStockMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($outOfStockMessage, true), gettype($outOfStockMessage)), __LINE__);
        }
        $this->outOfStockMessage = $outOfStockMessage;
        return $this;
    }
    /**
     * Get onSpecial value
     * @return bool|null
     */
    public function getOnSpecial()
    {
        return $this->onSpecial;
    }
    /**
     * Set onSpecial value
     * @param bool $onSpecial
     * @return \StructType\InventoryItem
     */
    public function setOnSpecial($onSpecial = null)
    {
        // validation for constraint: boolean
        if (!is_null($onSpecial) && !is_bool($onSpecial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($onSpecial, true), gettype($onSpecial)), __LINE__);
        }
        $this->onSpecial = $onSpecial;
        return $this;
    }
    /**
     * Get outOfStockBehavior value
     * @return string|null
     */
    public function getOutOfStockBehavior()
    {
        return $this->outOfStockBehavior;
    }
    /**
     * Set outOfStockBehavior value
     * @uses \EnumType\ItemOutOfStockBehavior::valueIsValid()
     * @uses \EnumType\ItemOutOfStockBehavior::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $outOfStockBehavior
     * @return \StructType\InventoryItem
     */
    public function setOutOfStockBehavior($outOfStockBehavior = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemOutOfStockBehavior::valueIsValid($outOfStockBehavior)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemOutOfStockBehavior', is_array($outOfStockBehavior) ? implode(', ', $outOfStockBehavior) : var_export($outOfStockBehavior, true), implode(', ', \EnumType\ItemOutOfStockBehavior::getValidValues())), __LINE__);
        }
        $this->outOfStockBehavior = $outOfStockBehavior;
        return $this;
    }
    /**
     * Get relatedItemsDescription value
     * @return string|null
     */
    public function getRelatedItemsDescription()
    {
        return $this->relatedItemsDescription;
    }
    /**
     * Set relatedItemsDescription value
     * @param string $relatedItemsDescription
     * @return \StructType\InventoryItem
     */
    public function setRelatedItemsDescription($relatedItemsDescription = null)
    {
        // validation for constraint: string
        if (!is_null($relatedItemsDescription) && !is_string($relatedItemsDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($relatedItemsDescription, true), gettype($relatedItemsDescription)), __LINE__);
        }
        $this->relatedItemsDescription = $relatedItemsDescription;
        return $this;
    }
    /**
     * Get specialsDescription value
     * @return string|null
     */
    public function getSpecialsDescription()
    {
        return $this->specialsDescription;
    }
    /**
     * Set specialsDescription value
     * @param string $specialsDescription
     * @return \StructType\InventoryItem
     */
    public function setSpecialsDescription($specialsDescription = null)
    {
        // validation for constraint: string
        if (!is_null($specialsDescription) && !is_string($specialsDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($specialsDescription, true), gettype($specialsDescription)), __LINE__);
        }
        $this->specialsDescription = $specialsDescription;
        return $this;
    }
    /**
     * Get featuredDescription value
     * @return string|null
     */
    public function getFeaturedDescription()
    {
        return $this->featuredDescription;
    }
    /**
     * Set featuredDescription value
     * @param string $featuredDescription
     * @return \StructType\InventoryItem
     */
    public function setFeaturedDescription($featuredDescription = null)
    {
        // validation for constraint: string
        if (!is_null($featuredDescription) && !is_string($featuredDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($featuredDescription, true), gettype($featuredDescription)), __LINE__);
        }
        $this->featuredDescription = $featuredDescription;
        return $this;
    }
    /**
     * Get shoppingDotComCategory value
     * @return string|null
     */
    public function getShoppingDotComCategory()
    {
        return $this->shoppingDotComCategory;
    }
    /**
     * Set shoppingDotComCategory value
     * @param string $shoppingDotComCategory
     * @return \StructType\InventoryItem
     */
    public function setShoppingDotComCategory($shoppingDotComCategory = null)
    {
        // validation for constraint: string
        if (!is_null($shoppingDotComCategory) && !is_string($shoppingDotComCategory)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($shoppingDotComCategory, true), gettype($shoppingDotComCategory)), __LINE__);
        }
        $this->shoppingDotComCategory = $shoppingDotComCategory;
        return $this;
    }
    /**
     * Get shopzillaCategoryId value
     * @return int|null
     */
    public function getShopzillaCategoryId()
    {
        return $this->shopzillaCategoryId;
    }
    /**
     * Set shopzillaCategoryId value
     * @param int $shopzillaCategoryId
     * @return \StructType\InventoryItem
     */
    public function setShopzillaCategoryId($shopzillaCategoryId = null)
    {
        // validation for constraint: int
        if (!is_null($shopzillaCategoryId) && !(is_int($shopzillaCategoryId) || ctype_digit($shopzillaCategoryId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($shopzillaCategoryId, true), gettype($shopzillaCategoryId)), __LINE__);
        }
        $this->shopzillaCategoryId = $shopzillaCategoryId;
        return $this;
    }
    /**
     * Get nexTagCategory value
     * @return string|null
     */
    public function getNexTagCategory()
    {
        return $this->nexTagCategory;
    }
    /**
     * Set nexTagCategory value
     * @param string $nexTagCategory
     * @return \StructType\InventoryItem
     */
    public function setNexTagCategory($nexTagCategory = null)
    {
        // validation for constraint: string
        if (!is_null($nexTagCategory) && !is_string($nexTagCategory)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($nexTagCategory, true), gettype($nexTagCategory)), __LINE__);
        }
        $this->nexTagCategory = $nexTagCategory;
        return $this;
    }
    /**
     * Get urlComponent value
     * @return string|null
     */
    public function getUrlComponent()
    {
        return $this->urlComponent;
    }
    /**
     * Set urlComponent value
     * @param string $urlComponent
     * @return \StructType\InventoryItem
     */
    public function setUrlComponent($urlComponent = null)
    {
        // validation for constraint: string
        if (!is_null($urlComponent) && !is_string($urlComponent)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($urlComponent, true), gettype($urlComponent)), __LINE__);
        }
        $this->urlComponent = $urlComponent;
        return $this;
    }
    /**
     * Get customForm value
     * @return \StructType\RecordRef|null
     */
    public function getCustomForm()
    {
        return $this->customForm;
    }
    /**
     * Set customForm value
     * @param \StructType\RecordRef $customForm
     * @return \StructType\InventoryItem
     */
    public function setCustomForm(\StructType\RecordRef $customForm = null)
    {
        $this->customForm = $customForm;
        return $this;
    }
    /**
     * Get itemId value
     * @return string|null
     */
    public function getItemId()
    {
        return $this->itemId;
    }
    /**
     * Set itemId value
     * @param string $itemId
     * @return \StructType\InventoryItem
     */
    public function setItemId($itemId = null)
    {
        // validation for constraint: string
        if (!is_null($itemId) && !is_string($itemId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($itemId, true), gettype($itemId)), __LINE__);
        }
        $this->itemId = $itemId;
        return $this;
    }
    /**
     * Get upcCode value
     * @return string|null
     */
    public function getUpcCode()
    {
        return $this->upcCode;
    }
    /**
     * Set upcCode value
     * @param string $upcCode
     * @return \StructType\InventoryItem
     */
    public function setUpcCode($upcCode = null)
    {
        // validation for constraint: string
        if (!is_null($upcCode) && !is_string($upcCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($upcCode, true), gettype($upcCode)), __LINE__);
        }
        $this->upcCode = $upcCode;
        return $this;
    }
    /**
     * Get displayName value
     * @return string|null
     */
    public function getDisplayName()
    {
        return $this->displayName;
    }
    /**
     * Set displayName value
     * @param string $displayName
     * @return \StructType\InventoryItem
     */
    public function setDisplayName($displayName = null)
    {
        // validation for constraint: string
        if (!is_null($displayName) && !is_string($displayName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($displayName, true), gettype($displayName)), __LINE__);
        }
        $this->displayName = $displayName;
        return $this;
    }
    /**
     * Get vendorName value
     * @return string|null
     */
    public function getVendorName()
    {
        return $this->vendorName;
    }
    /**
     * Set vendorName value
     * @param string $vendorName
     * @return \StructType\InventoryItem
     */
    public function setVendorName($vendorName = null)
    {
        // validation for constraint: string
        if (!is_null($vendorName) && !is_string($vendorName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($vendorName, true), gettype($vendorName)), __LINE__);
        }
        $this->vendorName = $vendorName;
        return $this;
    }
    /**
     * Get parent value
     * @return \StructType\RecordRef|null
     */
    public function getParent()
    {
        return $this->parent;
    }
    /**
     * Set parent value
     * @param \StructType\RecordRef $parent
     * @return \StructType\InventoryItem
     */
    public function setParent(\StructType\RecordRef $parent = null)
    {
        $this->parent = $parent;
        return $this;
    }
    /**
     * Get isOnline value
     * @return bool|null
     */
    public function getIsOnline()
    {
        return $this->isOnline;
    }
    /**
     * Set isOnline value
     * @param bool $isOnline
     * @return \StructType\InventoryItem
     */
    public function setIsOnline($isOnline = null)
    {
        // validation for constraint: boolean
        if (!is_null($isOnline) && !is_bool($isOnline)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isOnline, true), gettype($isOnline)), __LINE__);
        }
        $this->isOnline = $isOnline;
        return $this;
    }
    /**
     * Get isHazmatItem value
     * @return bool|null
     */
    public function getIsHazmatItem()
    {
        return $this->isHazmatItem;
    }
    /**
     * Set isHazmatItem value
     * @param bool $isHazmatItem
     * @return \StructType\InventoryItem
     */
    public function setIsHazmatItem($isHazmatItem = null)
    {
        // validation for constraint: boolean
        if (!is_null($isHazmatItem) && !is_bool($isHazmatItem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isHazmatItem, true), gettype($isHazmatItem)), __LINE__);
        }
        $this->isHazmatItem = $isHazmatItem;
        return $this;
    }
    /**
     * Get hazmatId value
     * @return string|null
     */
    public function getHazmatId()
    {
        return $this->hazmatId;
    }
    /**
     * Set hazmatId value
     * @param string $hazmatId
     * @return \StructType\InventoryItem
     */
    public function setHazmatId($hazmatId = null)
    {
        // validation for constraint: string
        if (!is_null($hazmatId) && !is_string($hazmatId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($hazmatId, true), gettype($hazmatId)), __LINE__);
        }
        $this->hazmatId = $hazmatId;
        return $this;
    }
    /**
     * Get hazmatShippingName value
     * @return string|null
     */
    public function getHazmatShippingName()
    {
        return $this->hazmatShippingName;
    }
    /**
     * Set hazmatShippingName value
     * @param string $hazmatShippingName
     * @return \StructType\InventoryItem
     */
    public function setHazmatShippingName($hazmatShippingName = null)
    {
        // validation for constraint: string
        if (!is_null($hazmatShippingName) && !is_string($hazmatShippingName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($hazmatShippingName, true), gettype($hazmatShippingName)), __LINE__);
        }
        $this->hazmatShippingName = $hazmatShippingName;
        return $this;
    }
    /**
     * Get hazmatHazardClass value
     * @return string|null
     */
    public function getHazmatHazardClass()
    {
        return $this->hazmatHazardClass;
    }
    /**
     * Set hazmatHazardClass value
     * @param string $hazmatHazardClass
     * @return \StructType\InventoryItem
     */
    public function setHazmatHazardClass($hazmatHazardClass = null)
    {
        // validation for constraint: string
        if (!is_null($hazmatHazardClass) && !is_string($hazmatHazardClass)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($hazmatHazardClass, true), gettype($hazmatHazardClass)), __LINE__);
        }
        $this->hazmatHazardClass = $hazmatHazardClass;
        return $this;
    }
    /**
     * Get hazmatPackingGroup value
     * @return string|null
     */
    public function getHazmatPackingGroup()
    {
        return $this->hazmatPackingGroup;
    }
    /**
     * Set hazmatPackingGroup value
     * @uses \EnumType\HazmatPackingGroup::valueIsValid()
     * @uses \EnumType\HazmatPackingGroup::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $hazmatPackingGroup
     * @return \StructType\InventoryItem
     */
    public function setHazmatPackingGroup($hazmatPackingGroup = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\HazmatPackingGroup::valueIsValid($hazmatPackingGroup)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\HazmatPackingGroup', is_array($hazmatPackingGroup) ? implode(', ', $hazmatPackingGroup) : var_export($hazmatPackingGroup, true), implode(', ', \EnumType\HazmatPackingGroup::getValidValues())), __LINE__);
        }
        $this->hazmatPackingGroup = $hazmatPackingGroup;
        return $this;
    }
    /**
     * Get hazmatItemUnits value
     * @return string|null
     */
    public function getHazmatItemUnits()
    {
        return $this->hazmatItemUnits;
    }
    /**
     * Set hazmatItemUnits value
     * @param string $hazmatItemUnits
     * @return \StructType\InventoryItem
     */
    public function setHazmatItemUnits($hazmatItemUnits = null)
    {
        // validation for constraint: string
        if (!is_null($hazmatItemUnits) && !is_string($hazmatItemUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($hazmatItemUnits, true), gettype($hazmatItemUnits)), __LINE__);
        }
        $this->hazmatItemUnits = $hazmatItemUnits;
        return $this;
    }
    /**
     * Get hazmatItemUnitsQty value
     * @return float|null
     */
    public function getHazmatItemUnitsQty()
    {
        return $this->hazmatItemUnitsQty;
    }
    /**
     * Set hazmatItemUnitsQty value
     * @param float $hazmatItemUnitsQty
     * @return \StructType\InventoryItem
     */
    public function setHazmatItemUnitsQty($hazmatItemUnitsQty = null)
    {
        // validation for constraint: float
        if (!is_null($hazmatItemUnitsQty) && !(is_float($hazmatItemUnitsQty) || is_numeric($hazmatItemUnitsQty))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($hazmatItemUnitsQty, true), gettype($hazmatItemUnitsQty)), __LINE__);
        }
        $this->hazmatItemUnitsQty = $hazmatItemUnitsQty;
        return $this;
    }
    /**
     * Get isGcoCompliant value
     * @return bool|null
     */
    public function getIsGcoCompliant()
    {
        return $this->isGcoCompliant;
    }
    /**
     * Set isGcoCompliant value
     * @param bool $isGcoCompliant
     * @return \StructType\InventoryItem
     */
    public function setIsGcoCompliant($isGcoCompliant = null)
    {
        // validation for constraint: boolean
        if (!is_null($isGcoCompliant) && !is_bool($isGcoCompliant)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isGcoCompliant, true), gettype($isGcoCompliant)), __LINE__);
        }
        $this->isGcoCompliant = $isGcoCompliant;
        return $this;
    }
    /**
     * Get offerSupport value
     * @return bool|null
     */
    public function getOfferSupport()
    {
        return $this->offerSupport;
    }
    /**
     * Set offerSupport value
     * @param bool $offerSupport
     * @return \StructType\InventoryItem
     */
    public function setOfferSupport($offerSupport = null)
    {
        // validation for constraint: boolean
        if (!is_null($offerSupport) && !is_bool($offerSupport)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($offerSupport, true), gettype($offerSupport)), __LINE__);
        }
        $this->offerSupport = $offerSupport;
        return $this;
    }
    /**
     * Get isInactive value
     * @return bool|null
     */
    public function getIsInactive()
    {
        return $this->isInactive;
    }
    /**
     * Set isInactive value
     * @param bool $isInactive
     * @return \StructType\InventoryItem
     */
    public function setIsInactive($isInactive = null)
    {
        // validation for constraint: boolean
        if (!is_null($isInactive) && !is_bool($isInactive)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isInactive, true), gettype($isInactive)), __LINE__);
        }
        $this->isInactive = $isInactive;
        return $this;
    }
    /**
     * Get availableToPartners value
     * @return bool|null
     */
    public function getAvailableToPartners()
    {
        return $this->availableToPartners;
    }
    /**
     * Set availableToPartners value
     * @param bool $availableToPartners
     * @return \StructType\InventoryItem
     */
    public function setAvailableToPartners($availableToPartners = null)
    {
        // validation for constraint: boolean
        if (!is_null($availableToPartners) && !is_bool($availableToPartners)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($availableToPartners, true), gettype($availableToPartners)), __LINE__);
        }
        $this->availableToPartners = $availableToPartners;
        return $this;
    }
    /**
     * Get department value
     * @return \StructType\RecordRef|null
     */
    public function getDepartment()
    {
        return $this->department;
    }
    /**
     * Set department value
     * @param \StructType\RecordRef $department
     * @return \StructType\InventoryItem
     */
    public function setDepartment(\StructType\RecordRef $department = null)
    {
        $this->department = $department;
        return $this;
    }
    /**
     * Get class value
     * @return \StructType\RecordRef|null
     */
    public function getClass()
    {
        return $this->class;
    }
    /**
     * Set class value
     * @param \StructType\RecordRef $class
     * @return \StructType\InventoryItem
     */
    public function setClass(\StructType\RecordRef $class = null)
    {
        $this->class = $class;
        return $this;
    }
    /**
     * Get location value
     * @return \StructType\RecordRef|null
     */
    public function getLocation()
    {
        return $this->location;
    }
    /**
     * Set location value
     * @param \StructType\RecordRef $location
     * @return \StructType\InventoryItem
     */
    public function setLocation(\StructType\RecordRef $location = null)
    {
        $this->location = $location;
        return $this;
    }
    /**
     * Get costingMethod value
     * @return string|null
     */
    public function getCostingMethod()
    {
        return $this->costingMethod;
    }
    /**
     * Set costingMethod value
     * @uses \EnumType\ItemCostingMethod::valueIsValid()
     * @uses \EnumType\ItemCostingMethod::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $costingMethod
     * @return \StructType\InventoryItem
     */
    public function setCostingMethod($costingMethod = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\ItemCostingMethod::valueIsValid($costingMethod)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\ItemCostingMethod', is_array($costingMethod) ? implode(', ', $costingMethod) : var_export($costingMethod, true), implode(', ', \EnumType\ItemCostingMethod::getValidValues())), __LINE__);
        }
        $this->costingMethod = $costingMethod;
        return $this;
    }
    /**
     * Get currency value
     * @return string|null
     */
    public function getCurrency()
    {
        return $this->currency;
    }
    /**
     * Set currency value
     * @param string $currency
     * @return \StructType\InventoryItem
     */
    public function setCurrency($currency = null)
    {
        // validation for constraint: string
        if (!is_null($currency) && !is_string($currency)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($currency, true), gettype($currency)), __LINE__);
        }
        $this->currency = $currency;
        return $this;
    }
    /**
     * Get preferredStockLevel value
     * @return float|null
     */
    public function getPreferredStockLevel()
    {
        return $this->preferredStockLevel;
    }
    /**
     * Set preferredStockLevel value
     * @param float $preferredStockLevel
     * @return \StructType\InventoryItem
     */
    public function setPreferredStockLevel($preferredStockLevel = null)
    {
        // validation for constraint: float
        if (!is_null($preferredStockLevel) && !(is_float($preferredStockLevel) || is_numeric($preferredStockLevel))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($preferredStockLevel, true), gettype($preferredStockLevel)), __LINE__);
        }
        $this->preferredStockLevel = $preferredStockLevel;
        return $this;
    }
    /**
     * Get pricingMatrix value
     * @return \StructType\PricingMatrix|null
     */
    public function getPricingMatrix()
    {
        return $this->pricingMatrix;
    }
    /**
     * Set pricingMatrix value
     * @param \StructType\PricingMatrix $pricingMatrix
     * @return \StructType\InventoryItem
     */
    public function setPricingMatrix(\StructType\PricingMatrix $pricingMatrix = null)
    {
        $this->pricingMatrix = $pricingMatrix;
        return $this;
    }
    /**
     * Get hierarchyVersionsList value
     * @return \StructType\InventoryItemHierarchyVersionsList|null
     */
    public function getHierarchyVersionsList()
    {
        return $this->hierarchyVersionsList;
    }
    /**
     * Set hierarchyVersionsList value
     * @param \StructType\InventoryItemHierarchyVersionsList $hierarchyVersionsList
     * @return \StructType\InventoryItem
     */
    public function setHierarchyVersionsList(\StructType\InventoryItemHierarchyVersionsList $hierarchyVersionsList = null)
    {
        $this->hierarchyVersionsList = $hierarchyVersionsList;
        return $this;
    }
    /**
     * Get accountingBookDetailList value
     * @return \StructType\ItemAccountingBookDetailList|null
     */
    public function getAccountingBookDetailList()
    {
        return $this->accountingBookDetailList;
    }
    /**
     * Set accountingBookDetailList value
     * @param \StructType\ItemAccountingBookDetailList $accountingBookDetailList
     * @return \StructType\InventoryItem
     */
    public function setAccountingBookDetailList(\StructType\ItemAccountingBookDetailList $accountingBookDetailList = null)
    {
        $this->accountingBookDetailList = $accountingBookDetailList;
        return $this;
    }
    /**
     * Get purchaseTaxCode value
     * @return \StructType\RecordRef|null
     */
    public function getPurchaseTaxCode()
    {
        return $this->purchaseTaxCode;
    }
    /**
     * Set purchaseTaxCode value
     * @param \StructType\RecordRef $purchaseTaxCode
     * @return \StructType\InventoryItem
     */
    public function setPurchaseTaxCode(\StructType\RecordRef $purchaseTaxCode = null)
    {
        $this->purchaseTaxCode = $purchaseTaxCode;
        return $this;
    }
    /**
     * Get defaultReturnCost value
     * @return float|null
     */
    public function getDefaultReturnCost()
    {
        return $this->defaultReturnCost;
    }
    /**
     * Set defaultReturnCost value
     * @param float $defaultReturnCost
     * @return \StructType\InventoryItem
     */
    public function setDefaultReturnCost($defaultReturnCost = null)
    {
        // validation for constraint: float
        if (!is_null($defaultReturnCost) && !(is_float($defaultReturnCost) || is_numeric($defaultReturnCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($defaultReturnCost, true), gettype($defaultReturnCost)), __LINE__);
        }
        $this->defaultReturnCost = $defaultReturnCost;
        return $this;
    }
    /**
     * Get supplyReplenishmentMethod value
     * @return \StructType\RecordRef|null
     */
    public function getSupplyReplenishmentMethod()
    {
        return $this->supplyReplenishmentMethod;
    }
    /**
     * Set supplyReplenishmentMethod value
     * @param \StructType\RecordRef $supplyReplenishmentMethod
     * @return \StructType\InventoryItem
     */
    public function setSupplyReplenishmentMethod(\StructType\RecordRef $supplyReplenishmentMethod = null)
    {
        $this->supplyReplenishmentMethod = $supplyReplenishmentMethod;
        return $this;
    }
    /**
     * Get alternateDemandSourceItem value
     * @return \StructType\RecordRef|null
     */
    public function getAlternateDemandSourceItem()
    {
        return $this->alternateDemandSourceItem;
    }
    /**
     * Set alternateDemandSourceItem value
     * @param \StructType\RecordRef $alternateDemandSourceItem
     * @return \StructType\InventoryItem
     */
    public function setAlternateDemandSourceItem(\StructType\RecordRef $alternateDemandSourceItem = null)
    {
        $this->alternateDemandSourceItem = $alternateDemandSourceItem;
        return $this;
    }
    /**
     * Get fixedLotSize value
     * @return float|null
     */
    public function getFixedLotSize()
    {
        return $this->fixedLotSize;
    }
    /**
     * Set fixedLotSize value
     * @param float $fixedLotSize
     * @return \StructType\InventoryItem
     */
    public function setFixedLotSize($fixedLotSize = null)
    {
        // validation for constraint: float
        if (!is_null($fixedLotSize) && !(is_float($fixedLotSize) || is_numeric($fixedLotSize))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($fixedLotSize, true), gettype($fixedLotSize)), __LINE__);
        }
        $this->fixedLotSize = $fixedLotSize;
        return $this;
    }
    /**
     * Get periodicLotSizeType value
     * @return string|null
     */
    public function getPeriodicLotSizeType()
    {
        return $this->periodicLotSizeType;
    }
    /**
     * Set periodicLotSizeType value
     * @uses \EnumType\PeriodicLotSizeType::valueIsValid()
     * @uses \EnumType\PeriodicLotSizeType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $periodicLotSizeType
     * @return \StructType\InventoryItem
     */
    public function setPeriodicLotSizeType($periodicLotSizeType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\PeriodicLotSizeType::valueIsValid($periodicLotSizeType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\PeriodicLotSizeType', is_array($periodicLotSizeType) ? implode(', ', $periodicLotSizeType) : var_export($periodicLotSizeType, true), implode(', ', \EnumType\PeriodicLotSizeType::getValidValues())), __LINE__);
        }
        $this->periodicLotSizeType = $periodicLotSizeType;
        return $this;
    }
    /**
     * Get supplyType value
     * @return \StructType\RecordRef|null
     */
    public function getSupplyType()
    {
        return $this->supplyType;
    }
    /**
     * Set supplyType value
     * @param \StructType\RecordRef $supplyType
     * @return \StructType\InventoryItem
     */
    public function setSupplyType(\StructType\RecordRef $supplyType = null)
    {
        $this->supplyType = $supplyType;
        return $this;
    }
    /**
     * Get demandTimeFence value
     * @return int|null
     */
    public function getDemandTimeFence()
    {
        return $this->demandTimeFence;
    }
    /**
     * Set demandTimeFence value
     * @param int $demandTimeFence
     * @return \StructType\InventoryItem
     */
    public function setDemandTimeFence($demandTimeFence = null)
    {
        // validation for constraint: int
        if (!is_null($demandTimeFence) && !(is_int($demandTimeFence) || ctype_digit($demandTimeFence))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($demandTimeFence, true), gettype($demandTimeFence)), __LINE__);
        }
        $this->demandTimeFence = $demandTimeFence;
        return $this;
    }
    /**
     * Get supplyTimeFence value
     * @return int|null
     */
    public function getSupplyTimeFence()
    {
        return $this->supplyTimeFence;
    }
    /**
     * Set supplyTimeFence value
     * @param int $supplyTimeFence
     * @return \StructType\InventoryItem
     */
    public function setSupplyTimeFence($supplyTimeFence = null)
    {
        // validation for constraint: int
        if (!is_null($supplyTimeFence) && !(is_int($supplyTimeFence) || ctype_digit($supplyTimeFence))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($supplyTimeFence, true), gettype($supplyTimeFence)), __LINE__);
        }
        $this->supplyTimeFence = $supplyTimeFence;
        return $this;
    }
    /**
     * Get rescheduleInDays value
     * @return int|null
     */
    public function getRescheduleInDays()
    {
        return $this->rescheduleInDays;
    }
    /**
     * Set rescheduleInDays value
     * @param int $rescheduleInDays
     * @return \StructType\InventoryItem
     */
    public function setRescheduleInDays($rescheduleInDays = null)
    {
        // validation for constraint: int
        if (!is_null($rescheduleInDays) && !(is_int($rescheduleInDays) || ctype_digit($rescheduleInDays))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($rescheduleInDays, true), gettype($rescheduleInDays)), __LINE__);
        }
        $this->rescheduleInDays = $rescheduleInDays;
        return $this;
    }
    /**
     * Get rescheduleOutDays value
     * @return int|null
     */
    public function getRescheduleOutDays()
    {
        return $this->rescheduleOutDays;
    }
    /**
     * Set rescheduleOutDays value
     * @param int $rescheduleOutDays
     * @return \StructType\InventoryItem
     */
    public function setRescheduleOutDays($rescheduleOutDays = null)
    {
        // validation for constraint: int
        if (!is_null($rescheduleOutDays) && !(is_int($rescheduleOutDays) || ctype_digit($rescheduleOutDays))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($rescheduleOutDays, true), gettype($rescheduleOutDays)), __LINE__);
        }
        $this->rescheduleOutDays = $rescheduleOutDays;
        return $this;
    }
    /**
     * Get periodicLotSizeDays value
     * @return int|null
     */
    public function getPeriodicLotSizeDays()
    {
        return $this->periodicLotSizeDays;
    }
    /**
     * Set periodicLotSizeDays value
     * @param int $periodicLotSizeDays
     * @return \StructType\InventoryItem
     */
    public function setPeriodicLotSizeDays($periodicLotSizeDays = null)
    {
        // validation for constraint: int
        if (!is_null($periodicLotSizeDays) && !(is_int($periodicLotSizeDays) || ctype_digit($periodicLotSizeDays))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($periodicLotSizeDays, true), gettype($periodicLotSizeDays)), __LINE__);
        }
        $this->periodicLotSizeDays = $periodicLotSizeDays;
        return $this;
    }
    /**
     * Get supplyLotSizingMethod value
     * @return \StructType\RecordRef|null
     */
    public function getSupplyLotSizingMethod()
    {
        return $this->supplyLotSizingMethod;
    }
    /**
     * Set supplyLotSizingMethod value
     * @param \StructType\RecordRef $supplyLotSizingMethod
     * @return \StructType\InventoryItem
     */
    public function setSupplyLotSizingMethod(\StructType\RecordRef $supplyLotSizingMethod = null)
    {
        $this->supplyLotSizingMethod = $supplyLotSizingMethod;
        return $this;
    }
    /**
     * Get forwardConsumptionDays value
     * @return int|null
     */
    public function getForwardConsumptionDays()
    {
        return $this->forwardConsumptionDays;
    }
    /**
     * Set forwardConsumptionDays value
     * @param int $forwardConsumptionDays
     * @return \StructType\InventoryItem
     */
    public function setForwardConsumptionDays($forwardConsumptionDays = null)
    {
        // validation for constraint: int
        if (!is_null($forwardConsumptionDays) && !(is_int($forwardConsumptionDays) || ctype_digit($forwardConsumptionDays))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($forwardConsumptionDays, true), gettype($forwardConsumptionDays)), __LINE__);
        }
        $this->forwardConsumptionDays = $forwardConsumptionDays;
        return $this;
    }
    /**
     * Get demandSource value
     * @return \StructType\RecordRef|null
     */
    public function getDemandSource()
    {
        return $this->demandSource;
    }
    /**
     * Set demandSource value
     * @param \StructType\RecordRef $demandSource
     * @return \StructType\InventoryItem
     */
    public function setDemandSource(\StructType\RecordRef $demandSource = null)
    {
        $this->demandSource = $demandSource;
        return $this;
    }
    /**
     * Get quantityBackOrdered value
     * @return float|null
     */
    public function getQuantityBackOrdered()
    {
        return $this->quantityBackOrdered;
    }
    /**
     * Set quantityBackOrdered value
     * @param float $quantityBackOrdered
     * @return \StructType\InventoryItem
     */
    public function setQuantityBackOrdered($quantityBackOrdered = null)
    {
        // validation for constraint: float
        if (!is_null($quantityBackOrdered) && !(is_float($quantityBackOrdered) || is_numeric($quantityBackOrdered))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($quantityBackOrdered, true), gettype($quantityBackOrdered)), __LINE__);
        }
        $this->quantityBackOrdered = $quantityBackOrdered;
        return $this;
    }
    /**
     * Get quantityCommitted value
     * @return float|null
     */
    public function getQuantityCommitted()
    {
        return $this->quantityCommitted;
    }
    /**
     * Set quantityCommitted value
     * @param float $quantityCommitted
     * @return \StructType\InventoryItem
     */
    public function setQuantityCommitted($quantityCommitted = null)
    {
        // validation for constraint: float
        if (!is_null($quantityCommitted) && !(is_float($quantityCommitted) || is_numeric($quantityCommitted))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($quantityCommitted, true), gettype($quantityCommitted)), __LINE__);
        }
        $this->quantityCommitted = $quantityCommitted;
        return $this;
    }
    /**
     * Get quantityAvailable value
     * @return float|null
     */
    public function getQuantityAvailable()
    {
        return $this->quantityAvailable;
    }
    /**
     * Set quantityAvailable value
     * @param float $quantityAvailable
     * @return \StructType\InventoryItem
     */
    public function setQuantityAvailable($quantityAvailable = null)
    {
        // validation for constraint: float
        if (!is_null($quantityAvailable) && !(is_float($quantityAvailable) || is_numeric($quantityAvailable))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($quantityAvailable, true), gettype($quantityAvailable)), __LINE__);
        }
        $this->quantityAvailable = $quantityAvailable;
        return $this;
    }
    /**
     * Get quantityOnHand value
     * @return float|null
     */
    public function getQuantityOnHand()
    {
        return $this->quantityOnHand;
    }
    /**
     * Set quantityOnHand value
     * @param float $quantityOnHand
     * @return \StructType\InventoryItem
     */
    public function setQuantityOnHand($quantityOnHand = null)
    {
        // validation for constraint: float
        if (!is_null($quantityOnHand) && !(is_float($quantityOnHand) || is_numeric($quantityOnHand))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($quantityOnHand, true), gettype($quantityOnHand)), __LINE__);
        }
        $this->quantityOnHand = $quantityOnHand;
        return $this;
    }
    /**
     * Get onHandValueMli value
     * @return float|null
     */
    public function getOnHandValueMli()
    {
        return $this->onHandValueMli;
    }
    /**
     * Set onHandValueMli value
     * @param float $onHandValueMli
     * @return \StructType\InventoryItem
     */
    public function setOnHandValueMli($onHandValueMli = null)
    {
        // validation for constraint: float
        if (!is_null($onHandValueMli) && !(is_float($onHandValueMli) || is_numeric($onHandValueMli))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($onHandValueMli, true), gettype($onHandValueMli)), __LINE__);
        }
        $this->onHandValueMli = $onHandValueMli;
        return $this;
    }
    /**
     * Get quantityOnOrder value
     * @return float|null
     */
    public function getQuantityOnOrder()
    {
        return $this->quantityOnOrder;
    }
    /**
     * Set quantityOnOrder value
     * @param float $quantityOnOrder
     * @return \StructType\InventoryItem
     */
    public function setQuantityOnOrder($quantityOnOrder = null)
    {
        // validation for constraint: float
        if (!is_null($quantityOnOrder) && !(is_float($quantityOnOrder) || is_numeric($quantityOnOrder))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($quantityOnOrder, true), gettype($quantityOnOrder)), __LINE__);
        }
        $this->quantityOnOrder = $quantityOnOrder;
        return $this;
    }
    /**
     * Get rate value
     * @return float|null
     */
    public function getRate()
    {
        return $this->rate;
    }
    /**
     * Set rate value
     * @param float $rate
     * @return \StructType\InventoryItem
     */
    public function setRate($rate = null)
    {
        // validation for constraint: float
        if (!is_null($rate) && !(is_float($rate) || is_numeric($rate))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($rate, true), gettype($rate)), __LINE__);
        }
        $this->rate = $rate;
        return $this;
    }
    /**
     * Get reorderPoint value
     * @return float|null
     */
    public function getReorderPoint()
    {
        return $this->reorderPoint;
    }
    /**
     * Set reorderPoint value
     * @param float $reorderPoint
     * @return \StructType\InventoryItem
     */
    public function setReorderPoint($reorderPoint = null)
    {
        // validation for constraint: float
        if (!is_null($reorderPoint) && !(is_float($reorderPoint) || is_numeric($reorderPoint))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($reorderPoint, true), gettype($reorderPoint)), __LINE__);
        }
        $this->reorderPoint = $reorderPoint;
        return $this;
    }
    /**
     * Get quantityCommittedUnits value
     * @return string|null
     */
    public function getQuantityCommittedUnits()
    {
        return $this->quantityCommittedUnits;
    }
    /**
     * Set quantityCommittedUnits value
     * @param string $quantityCommittedUnits
     * @return \StructType\InventoryItem
     */
    public function setQuantityCommittedUnits($quantityCommittedUnits = null)
    {
        // validation for constraint: string
        if (!is_null($quantityCommittedUnits) && !is_string($quantityCommittedUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($quantityCommittedUnits, true), gettype($quantityCommittedUnits)), __LINE__);
        }
        $this->quantityCommittedUnits = $quantityCommittedUnits;
        return $this;
    }
    /**
     * Get salesTaxCode value
     * @return \StructType\RecordRef|null
     */
    public function getSalesTaxCode()
    {
        return $this->salesTaxCode;
    }
    /**
     * Set salesTaxCode value
     * @param \StructType\RecordRef $salesTaxCode
     * @return \StructType\InventoryItem
     */
    public function setSalesTaxCode(\StructType\RecordRef $salesTaxCode = null)
    {
        $this->salesTaxCode = $salesTaxCode;
        return $this;
    }
    /**
     * Get quantityAvailableUnits value
     * @return string|null
     */
    public function getQuantityAvailableUnits()
    {
        return $this->quantityAvailableUnits;
    }
    /**
     * Set quantityAvailableUnits value
     * @param string $quantityAvailableUnits
     * @return \StructType\InventoryItem
     */
    public function setQuantityAvailableUnits($quantityAvailableUnits = null)
    {
        // validation for constraint: string
        if (!is_null($quantityAvailableUnits) && !is_string($quantityAvailableUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($quantityAvailableUnits, true), gettype($quantityAvailableUnits)), __LINE__);
        }
        $this->quantityAvailableUnits = $quantityAvailableUnits;
        return $this;
    }
    /**
     * Get quantityOnHandUnits value
     * @return string|null
     */
    public function getQuantityOnHandUnits()
    {
        return $this->quantityOnHandUnits;
    }
    /**
     * Set quantityOnHandUnits value
     * @param string $quantityOnHandUnits
     * @return \StructType\InventoryItem
     */
    public function setQuantityOnHandUnits($quantityOnHandUnits = null)
    {
        // validation for constraint: string
        if (!is_null($quantityOnHandUnits) && !is_string($quantityOnHandUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($quantityOnHandUnits, true), gettype($quantityOnHandUnits)), __LINE__);
        }
        $this->quantityOnHandUnits = $quantityOnHandUnits;
        return $this;
    }
    /**
     * Get vendor value
     * @return \StructType\RecordRef|null
     */
    public function getVendor()
    {
        return $this->vendor;
    }
    /**
     * Set vendor value
     * @param \StructType\RecordRef $vendor
     * @return \StructType\InventoryItem
     */
    public function setVendor(\StructType\RecordRef $vendor = null)
    {
        $this->vendor = $vendor;
        return $this;
    }
    /**
     * Get quantityOnOrderUnits value
     * @return string|null
     */
    public function getQuantityOnOrderUnits()
    {
        return $this->quantityOnOrderUnits;
    }
    /**
     * Set quantityOnOrderUnits value
     * @param string $quantityOnOrderUnits
     * @return \StructType\InventoryItem
     */
    public function setQuantityOnOrderUnits($quantityOnOrderUnits = null)
    {
        // validation for constraint: string
        if (!is_null($quantityOnOrderUnits) && !is_string($quantityOnOrderUnits)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($quantityOnOrderUnits, true), gettype($quantityOnOrderUnits)), __LINE__);
        }
        $this->quantityOnOrderUnits = $quantityOnOrderUnits;
        return $this;
    }
    /**
     * Get productFeedList value
     * @return \StructType\ProductFeedList|null
     */
    public function getProductFeedList()
    {
        return $this->productFeedList;
    }
    /**
     * Set productFeedList value
     * @param \StructType\ProductFeedList $productFeedList
     * @return \StructType\InventoryItem
     */
    public function setProductFeedList(\StructType\ProductFeedList $productFeedList = null)
    {
        $this->productFeedList = $productFeedList;
        return $this;
    }
    /**
     * Get subsidiaryList value
     * @return \StructType\RecordRefList|null
     */
    public function getSubsidiaryList()
    {
        return $this->subsidiaryList;
    }
    /**
     * Set subsidiaryList value
     * @param \StructType\RecordRefList $subsidiaryList
     * @return \StructType\InventoryItem
     */
    public function setSubsidiaryList(\StructType\RecordRefList $subsidiaryList = null)
    {
        $this->subsidiaryList = $subsidiaryList;
        return $this;
    }
    /**
     * Get itemOptionsList value
     * @return \StructType\ItemOptionsList|null
     */
    public function getItemOptionsList()
    {
        return $this->itemOptionsList;
    }
    /**
     * Set itemOptionsList value
     * @param \StructType\ItemOptionsList $itemOptionsList
     * @return \StructType\InventoryItem
     */
    public function setItemOptionsList(\StructType\ItemOptionsList $itemOptionsList = null)
    {
        $this->itemOptionsList = $itemOptionsList;
        return $this;
    }
    /**
     * Get itemVendorList value
     * @return \StructType\ItemVendorList|null
     */
    public function getItemVendorList()
    {
        return $this->itemVendorList;
    }
    /**
     * Set itemVendorList value
     * @param \StructType\ItemVendorList $itemVendorList
     * @return \StructType\InventoryItem
     */
    public function setItemVendorList(\StructType\ItemVendorList $itemVendorList = null)
    {
        $this->itemVendorList = $itemVendorList;
        return $this;
    }
    /**
     * Get siteCategoryList value
     * @return \StructType\SiteCategoryList|null
     */
    public function getSiteCategoryList()
    {
        return $this->siteCategoryList;
    }
    /**
     * Set siteCategoryList value
     * @param \StructType\SiteCategoryList $siteCategoryList
     * @return \StructType\InventoryItem
     */
    public function setSiteCategoryList(\StructType\SiteCategoryList $siteCategoryList = null)
    {
        $this->siteCategoryList = $siteCategoryList;
        return $this;
    }
    /**
     * Get translationsList value
     * @return \StructType\TranslationList|null
     */
    public function getTranslationsList()
    {
        return $this->translationsList;
    }
    /**
     * Set translationsList value
     * @param \StructType\TranslationList $translationsList
     * @return \StructType\InventoryItem
     */
    public function setTranslationsList(\StructType\TranslationList $translationsList = null)
    {
        $this->translationsList = $translationsList;
        return $this;
    }
    /**
     * Get binNumberList value
     * @return \StructType\InventoryItemBinNumberList|null
     */
    public function getBinNumberList()
    {
        return $this->binNumberList;
    }
    /**
     * Set binNumberList value
     * @param \StructType\InventoryItemBinNumberList $binNumberList
     * @return \StructType\InventoryItem
     */
    public function setBinNumberList(\StructType\InventoryItemBinNumberList $binNumberList = null)
    {
        $this->binNumberList = $binNumberList;
        return $this;
    }
    /**
     * Get locationsList value
     * @return \StructType\InventoryItemLocationsList|null
     */
    public function getLocationsList()
    {
        return $this->locationsList;
    }
    /**
     * Set locationsList value
     * @param \StructType\InventoryItemLocationsList $locationsList
     * @return \StructType\InventoryItem
     */
    public function setLocationsList(\StructType\InventoryItemLocationsList $locationsList = null)
    {
        $this->locationsList = $locationsList;
        return $this;
    }
    /**
     * Get matrixOptionList value
     * @return \StructType\MatrixOptionList|null
     */
    public function getMatrixOptionList()
    {
        return $this->matrixOptionList;
    }
    /**
     * Set matrixOptionList value
     * @param \StructType\MatrixOptionList $matrixOptionList
     * @return \StructType\InventoryItem
     */
    public function setMatrixOptionList(\StructType\MatrixOptionList $matrixOptionList = null)
    {
        $this->matrixOptionList = $matrixOptionList;
        return $this;
    }
    /**
     * Get presentationItemList value
     * @return \StructType\PresentationItemList|null
     */
    public function getPresentationItemList()
    {
        return $this->presentationItemList;
    }
    /**
     * Set presentationItemList value
     * @param \StructType\PresentationItemList $presentationItemList
     * @return \StructType\InventoryItem
     */
    public function setPresentationItemList(\StructType\PresentationItemList $presentationItemList = null)
    {
        $this->presentationItemList = $presentationItemList;
        return $this;
    }
    /**
     * Get futureHorizon value
     * @return int|null
     */
    public function getFutureHorizon()
    {
        return $this->futureHorizon;
    }
    /**
     * Set futureHorizon value
     * @param int $futureHorizon
     * @return \StructType\InventoryItem
     */
    public function setFutureHorizon($futureHorizon = null)
    {
        // validation for constraint: int
        if (!is_null($futureHorizon) && !(is_int($futureHorizon) || ctype_digit($futureHorizon))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($futureHorizon, true), gettype($futureHorizon)), __LINE__);
        }
        $this->futureHorizon = $futureHorizon;
        return $this;
    }
    /**
     * Get consumptionUnit value
     * @return \StructType\RecordRef|null
     */
    public function getConsumptionUnit()
    {
        return $this->consumptionUnit;
    }
    /**
     * Set consumptionUnit value
     * @param \StructType\RecordRef $consumptionUnit
     * @return \StructType\InventoryItem
     */
    public function setConsumptionUnit(\StructType\RecordRef $consumptionUnit = null)
    {
        $this->consumptionUnit = $consumptionUnit;
        return $this;
    }
    /**
     * Get customFieldList value
     * @return \StructType\CustomFieldList|null
     */
    public function getCustomFieldList()
    {
        return $this->customFieldList;
    }
    /**
     * Set customFieldList value
     * @param \StructType\CustomFieldList $customFieldList
     * @return \StructType\InventoryItem
     */
    public function setCustomFieldList(\StructType\CustomFieldList $customFieldList = null)
    {
        $this->customFieldList = $customFieldList;
        return $this;
    }
    /**
     * Get internalId value
     * @return string|null
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * Set internalId value
     * @param string $internalId
     * @return \StructType\InventoryItem
     */
    public function setInternalId($internalId = null)
    {
        // validation for constraint: string
        if (!is_null($internalId) && !is_string($internalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($internalId, true), gettype($internalId)), __LINE__);
        }
        $this->internalId = $internalId;
        return $this;
    }
    /**
     * Get externalId value
     * @return string|null
     */
    public function getExternalId()
    {
        return $this->externalId;
    }
    /**
     * Set externalId value
     * @param string $externalId
     * @return \StructType\InventoryItem
     */
    public function setExternalId($externalId = null)
    {
        // validation for constraint: string
        if (!is_null($externalId) && !is_string($externalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($externalId, true), gettype($externalId)), __LINE__);
        }
        $this->externalId = $externalId;
        return $this;
    }
}
