src/Entity/System/Product.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity\System;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7.  * Product
  8.  *
  9.  * @ORM\Table(name="ps_product")
  10.  *
  11.  * @ORM\Entity(repositoryClass="App\Repository\System\ProductRepository")
  12.  */
  13. class Product
  14. {
  15.     public const SELLING_CHANNEL_BIGBUY_EU 'BIGBUY_EU';
  16.     public const SELLING_CHANNEL_DROPSHIPPING 'DROPSHIPPING';
  17.     public const SELLING_CHANNELS_ALLOWED_INDEX = [
  18.         self::SELLING_CHANNEL_DROPSHIPPING => true,
  19.         self::SELLING_CHANNEL_BIGBUY_EU => true,
  20.     ];
  21.     public const SHOPIFY_PRODUCTS = [9507995081950829508395085950929509395094];
  22.     public const SHOP_360_PRODUCTS = [4125641259206924206923206922206921206920206919273397273398];
  23.     public const B2B_PRODUCT_ID 34990;
  24.     public const COURSE_ECOMMERCE_SKU 'SRV01028';
  25.     public const COURSE_SHOPIFY_STORE_CONTROL_ONBOARDING_SKU 'SRV01016';
  26.     public const COURSE_SHOPIFY_SETUP_ESSENTIALS_ONBOARDING_SKU 'SRV01022';
  27.     public const SHOPIFY_COURSES_GIFT_REFERENCES = [self::COURSE_SHOPIFY_SETUP_ESSENTIALS_ONBOARDING_SKU];
  28.     public const SHOPS_COURSES_GIFT_REFERENCES = [self::COURSE_SHOPIFY_STORE_CONTROL_ONBOARDING_SKUself::COURSE_ECOMMERCE_SKU];
  29.     public const FEATURE_LANG_POWER_MBA 4907;
  30.     public const FEATURE_ACADEMY_COURSE_TYPE 4920;
  31.     public const FEATURE_ACADEMY_COURSE_TYPE_ONBOARDING 231154;
  32.     public const FEATURE_ACADEMY_COURSE_TYPE_INTERNAL 233082;
  33.     public const FEATURE_ACADEMY_COURSE_TYPE_EXTERNAL 233517;
  34.     public const FEATURE_ACADEMY_COURSE_TYPE_REGISTRATION 234032;
  35.     public const FEATURE_COUNTRY_OF_ORIGIN 279;
  36.     public const FEATURE_PLUG_EU 28017;
  37.     public const MONEYBOX_PRODUCT_ID 13690;
  38.     public const REGISTRATION_COURSE_SKU 'SRV01037';
  39.     public const RENOVATION_COURSE_SKU 'SRV01038';
  40.     public const POWER_MBA_REGISTRATION_REFERENCES = [self::REGISTRATION_COURSE_SKUself::RENOVATION_COURSE_SKU];
  41.     public const FEATURES_INCLUDED_FOR_API = [
  42.         self::FEATURE_COUNTRY_OF_ORIGIN,
  43.         self::FEATURE_PLUG_EU,
  44.     ];
  45.     public const PACK_MARKETPLACES_ANNUAL_PRODUCT_ID 95301;
  46.     public const PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID 95303;
  47.     public const PACK_MARKETPLACES_MONTHLY_PRODUCT_ID 95302;
  48.     public const NEW_PACK_MARKETPLACES_ANNUAL_PRODUCT_ID 165016;
  49.     public const NEW_PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID 165028;
  50.     public const NEW_PACK_MARKETPLACES_MONTHLY_PRODUCT_ID 165024;
  51.     public const PACK_MARKETPLACES_PRODUCT_IDS = [
  52.         self::PACK_MARKETPLACES_ANNUAL_PRODUCT_ID,
  53.         self::PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID,
  54.         self::PACK_MARKETPLACES_MONTHLY_PRODUCT_ID,
  55.         self::NEW_PACK_MARKETPLACES_ANNUAL_PRODUCT_ID,
  56.         self::NEW_PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID,
  57.         self::NEW_PACK_MARKETPLACES_MONTHLY_PRODUCT_ID,
  58.     ];
  59.     public const PACK_ECOMMERCE_ANNUAL_PRODUCT_ID 95298;
  60.     public const PACK_ECOMMERCE_BIANNUAL_PRODUCT_ID 95300;
  61.     public const PACK_ECOMMERCE_MONTHLY_PRODUCT_ID 95299;
  62.     public const PACK_B2B_PRODUCT_ID 100185;
  63.     public const PACK_ECOMMERCE_PRODUCT_IDS = [
  64.         self::PACK_ECOMMERCE_ANNUAL_PRODUCT_ID,
  65.         self::PACK_ECOMMERCE_BIANNUAL_PRODUCT_ID,
  66.         self::PACK_ECOMMERCE_MONTHLY_PRODUCT_ID,
  67.     ];
  68.     /** @deprecated use feature type self::FEATURE_ACADEMY_COURSE_TYPE_REGISTRATION */
  69.     public const REGISTRATION_COURSES_LIST = [self::REGISTRATION_COURSE_SKUself::RENOVATION_COURSE_SKU];
  70.     public const SHOPIFY_CONNECTOR_ID 95291;
  71.     public const SUPPORT_PRODUCT_ID 5022;
  72.     public const MAINTENANCE_PRODUCT_ID 1035502;
  73.     public const SUPPORT_AND_MAINTENANCE_PRODUCTS = [
  74.         self::SUPPORT_PRODUCT_ID,
  75.         self::MAINTENANCE_PRODUCT_ID,
  76.     ];
  77.     /**
  78.      * @var int
  79.      *
  80.      * @ORM\Column(name="id_product", type="integer")
  81.      *
  82.      * @ORM\Id
  83.      *
  84.      * @ORM\GeneratedValue(strategy="AUTO")
  85.      */
  86.     private $id;
  87.     /**
  88.      * @ORM\ManyToOne(targetEntity="Tax")
  89.      *
  90.      * @ORM\JoinColumn(name="id_tax", referencedColumnName="id_tax")
  91.      */
  92.     private $tax;
  93.     /**
  94.      * @ORM\ManyToOne(targetEntity="Supplier")
  95.      *
  96.      * @ORM\JoinColumn(name="id_supplier", referencedColumnName="id_plazo_aprovisionamiento_proveedor", nullable=true)
  97.      */
  98.     private ?Supplier $supplier;
  99.     /**
  100.      * @var bool
  101.      *
  102.      * @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 0})
  103.      */
  104.     private $onSale;
  105.     /**
  106.      * @var bool
  107.      *
  108.      * @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 0})
  109.      */
  110.     private $onlineOnly;
  111.     /**
  112.      * @var string|null
  113.      *
  114.      * @ORM\Column(name="ean13", type="string", length=13, nullable=true)
  115.      */
  116.     private $ean;
  117.     /**
  118.      * @var string|null
  119.      *
  120.      * @ORM\Column(type="string", length=12, nullable=true)
  121.      */
  122.     private $upc;
  123.     /**
  124.      * @var float|null
  125.      *
  126.      * @ORM\Column(type="decimal", precision=17, scale=6, options={"default" : 0.000000}, nullable=true)
  127.      */
  128.     private $ecotax;
  129.     /**
  130.      * @var int|null
  131.      *
  132.      * @ORM\Column(type="integer", length=10, nullable=true, options={"default" : 0})
  133.      */
  134.     private $quantity;
  135.     /**
  136.      * @var int|null
  137.      *
  138.      * @ORM\Column(type="integer", length=10, nullable=true, options={"default" : 1})
  139.      */
  140.     private $minimalQuantity;
  141.     /**
  142.      * @var float
  143.      *
  144.      * @ORM\Column(name="price", type="decimal", precision=20, scale=6, options={"default" : 0.000000})
  145.      */
  146.     private $price;
  147.     /**
  148.      * @var float
  149.      *
  150.      * @ORM\Column(name="wholesale_price", type="decimal", precision=20, scale=6, options={"default" : 0.000000})
  151.      */
  152.     private $wholesalePrice;
  153.     /**
  154.      * /**
  155.      * @var string|null
  156.      *
  157.      * @ORM\Column(type="string", length=255, nullable=true)
  158.      */
  159.     private $unity;
  160.     /**
  161.      * @var string
  162.      *
  163.      * @ORM\Column(name="reference", type="string", length=32)
  164.      */
  165.     private $sku;
  166.     /**
  167.      * @var bool
  168.      *
  169.      * @ORM\Column(name="active", type="boolean")
  170.      */
  171.     private $active;
  172.     /**
  173.      * @var ArrayCollection|ProductImage[]
  174.      *
  175.      * @ORM\OneToMany(targetEntity="ProductImage", mappedBy="product", cascade={"persist"})
  176.      */
  177.     private $productImages;
  178.     /**
  179.      * @var ArrayCollection|ProductAttribute[]
  180.      *
  181.      * @ORM\OneToMany(targetEntity="ProductAttribute", mappedBy="product", cascade={"persist"})
  182.      */
  183.     private $productAttributes;
  184.     /**
  185.      * @var ArrayCollection|ProductDate[]
  186.      *
  187.      * @ORM\OneToMany(targetEntity="ProductDate", mappedBy="product", cascade={"persist"})
  188.      */
  189.     private $productDates;
  190.     /**
  191.      * @var ArrayCollection|StockAvailable[]
  192.      *
  193.      * @ORM\OneToMany(targetEntity="StockAvailable", mappedBy="product", cascade={"persist", "remove"})
  194.      */
  195.     private $stocks;
  196.     /**
  197.      * @var ArrayCollection|SpecificPrice[]
  198.      *
  199.      * @ORM\OneToMany(targetEntity="SpecificPrice", mappedBy="product", cascade={"persist", "remove"})
  200.      */
  201.     private $specificPrices;
  202.     /**
  203.      * @var float
  204.      *
  205.      * @ORM\Column(name="wholesale_price_old", type="float", nullable=false)
  206.      */
  207.     private $oldWholesalePrice;
  208.     /**
  209.      * @var int|null
  210.      *
  211.      * @ORM\Column(name="id_category_default", type="integer", length=10, nullable=true)
  212.      */
  213.     private $categoryDefault;
  214.     /**
  215.      * @var int
  216.      *
  217.      * @ORM\Column(name="sincronizar", type="boolean")
  218.      */
  219.     private $sincronizar;
  220.     /**
  221.      * @var float
  222.      *
  223.      * @ORM\Column(name="weight", type="float")
  224.      */
  225.     private $weight;
  226.     /**
  227.      * @var string|null
  228.      *
  229.      * @ORM\Column(name="ean13_2", type="string", length=13)
  230.      */
  231.     private $eanVirtual;
  232.     /**
  233.      * @var float
  234.      *
  235.      * @ORM\Column(name="height", type="float")
  236.      */
  237.     private $height;
  238.     /**
  239.      * @var float
  240.      *
  241.      * @ORM\Column(name="width", type="float")
  242.      */
  243.     private $width;
  244.     /**
  245.      * @var float
  246.      *
  247.      * @ORM\Column(name="depth", type="float")
  248.      */
  249.     private $depth;
  250.     /**
  251.      * @var float
  252.      *
  253.      * @ORM\Column(name="estimate_cost_price", type="float")
  254.      */
  255.     private $estimateCostPrice;
  256.     /** @var string
  257.      *  @ORM\Column(name="intrastat", type="string", length=32)
  258.      */
  259.     private $intrastat;
  260.     /**
  261.      * @var bool
  262.      *
  263.      * @ORM\Column(name="is_virtual", type="boolean")
  264.      */
  265.     private $isVirtual;
  266.     /**
  267.      * @var ArrayCollection|MinimumOrderQuantity[]
  268.      *
  269.      * @ORM\OneToMany(targetEntity="MinimumOrderQuantity", mappedBy="product", cascade={"persist", "remove"})
  270.      */
  271.     private $minimumOrderQuantitys;
  272.     /**
  273.      * @var ArrayCollection|ProductEan[]
  274.      *
  275.      * @ORM\OneToMany(targetEntity="ProductEan", mappedBy="product", cascade={"persist"})
  276.      */
  277.     private $productEans;
  278.     /**
  279.      * @ORM\Column(name="date_add", type="datetime")
  280.      */
  281.     private $dateAdd;
  282.     /**
  283.      * @ORM\Column(name="date_upd", type="datetime")
  284.      */
  285.     private $dateUpd;
  286.     /**
  287.      * @ORM\Column(name="date_next", type="datetime")
  288.      */
  289.     private $dateNext;
  290.     /**
  291.      * @ORM\Column(name="date_new_stock", type="datetime")
  292.      */
  293.     private $dateNewStock;
  294.     /**
  295.      * @ORM\Column(name="available_date", type="datetime")
  296.      */
  297.     private $availableDate;
  298.     /**
  299.      * @ORM\Column(name="palet", type="integer")
  300.      */
  301.     private $palletUnits;
  302.     /**
  303.      * @ORM\Column(name="box", type="integer")
  304.      */
  305.     private $boxUnits;
  306.     /**
  307.      * @ORM\Column(name="video", type="string")
  308.      */
  309.     private $video;
  310.     /**
  311.      * @var Brand
  312.      *
  313.      * @ORM\ManyToOne(targetEntity="Brand")
  314.      *
  315.      * @ORM\JoinColumn(name="id_manufacturer", referencedColumnName="id_manufacturer")
  316.      */
  317.     private $manufacturer;
  318.     /**
  319.      * @var Subscription[]|ArrayCollection
  320.      *
  321.      * @ORM\OneToMany(targetEntity="Subscription", mappedBy="product", cascade={"persist"})
  322.      */
  323.     private $subscriptions;
  324.     /**
  325.      * @var int
  326.      *
  327.      * @ORM\Column(type="integer")
  328.      */
  329.     private $idShopDefault;
  330.     /**
  331.      * @var float
  332.      *
  333.      * @ORM\Column(type="decimal", precision=20, scale=6)
  334.      */
  335.     private $unitPriceRatio;
  336.     /**
  337.      * @var float
  338.      *
  339.      * @ORM\Column(type="decimal", precision=20, scale=2)
  340.      */
  341.     private $additionalShippingCost;
  342.     /**
  343.      * @var string
  344.      *
  345.      * @ORM\Column(type="string", length=32)
  346.      */
  347.     private $supplierReference;
  348.     /**
  349.      * @var string
  350.      *
  351.      * @ORM\Column(type="string", length=64)
  352.      */
  353.     private $location;
  354.     /**
  355.      * @var int
  356.      *
  357.      * @ORM\Column(type="integer")
  358.      */
  359.     private $outOfStock;
  360.     /**
  361.      * @var bool
  362.      *
  363.      * @ORM\Column(type="boolean")
  364.      */
  365.     private $quantityDiscount;
  366.     /**
  367.      * @var int
  368.      *
  369.      * @ORM\Column(type="integer")
  370.      */
  371.     private $customizable;
  372.     /**
  373.      * @var int
  374.      *
  375.      * @ORM\Column(type="integer")
  376.      */
  377.     private $uploadableFiles;
  378.     /**
  379.      * @var int
  380.      *
  381.      * @ORM\Column(type="integer")
  382.      */
  383.     private $textFields;
  384.     /**
  385.      * @var string
  386.      *
  387.      * @ORM\Column(type="string")
  388.      */
  389.     private $redirectType;
  390.     /**
  391.      * @var int
  392.      *
  393.      * @ORM\Column(type="integer")
  394.      */
  395.     private $idProductRedirected;
  396.     /**
  397.      * @var bool
  398.      *
  399.      * @ORM\Column(type="boolean")
  400.      */
  401.     private $availableForOrder;
  402.     /**
  403.      * @var \DateTime
  404.      *
  405.      * @ORM\Column(type="date")
  406.      */
  407.     private $dateNew;
  408.     /**
  409.      * @var int
  410.      *
  411.      * @ORM\Column(type="integer", name="container_20p")
  412.      */
  413.     private $container20p;
  414.     /**
  415.      * @var int
  416.      *
  417.      * @ORM\Column(type="integer", name="container_40p")
  418.      */
  419.     private $container40p;
  420.     /**
  421.      * @var string
  422.      *
  423.      * @ORM\Column(type="string", length=50)
  424.      */
  425.     private $picking;
  426.     /**
  427.      * @var string
  428.      *
  429.      * @ORM\Column(type="string", length=50)
  430.      */
  431.     private $locationPalet1;
  432.     /**
  433.      * @var string
  434.      *
  435.      * @ORM\Column(type="string", length=50)
  436.      */
  437.     private $locationPalet2;
  438.     /**
  439.      * @var int
  440.      *
  441.      * @ORM\Column(type="integer")
  442.      */
  443.     private $minimumQty;
  444.     /**
  445.      * @var string
  446.      *
  447.      * @ORM\Column(type="string")
  448.      */
  449.     private $condition;
  450.     /**
  451.      * @var bool
  452.      *
  453.      * @ORM\Column(type="boolean")
  454.      */
  455.     private $showPrice;
  456.     /**
  457.      * @var bool
  458.      *
  459.      * @ORM\Column(type="boolean")
  460.      */
  461.     private $indexed;
  462.     /**
  463.      * @var string
  464.      *
  465.      * @ORM\Column(type="string")
  466.      */
  467.     private $visibility;
  468.     /**
  469.      * @var bool
  470.      *
  471.      * @ORM\Column(type="boolean")
  472.      */
  473.     private $cacheIsPack;
  474.     /**
  475.      * @var bool
  476.      *
  477.      * @ORM\Column(type="boolean")
  478.      */
  479.     private $cacheHasAttachments;
  480.     /**
  481.      * @var int
  482.      *
  483.      * @ORM\Column(type="integer")
  484.      */
  485.     private $cacheDefaultAttribute;
  486.     /**
  487.      * @var bool
  488.      *
  489.      * @ORM\Column(type="boolean")
  490.      */
  491.     private $advancedStockManagement;
  492.     /**
  493.      * @var string
  494.      *
  495.      * @ORM\Column(type="string")
  496.      */
  497.     private $etiquetas;
  498.     /**
  499.      * @var bool
  500.      *
  501.      * @ORM\Column(type="boolean")
  502.      */
  503.     private $traducir;
  504.     /**
  505.      * @var bool
  506.      *
  507.      * @ORM\Column(type="boolean")
  508.      */
  509.     private $exportar;
  510.     /**
  511.      * @var string
  512.      *
  513.      * @ORM\Column(type="string", length=64)
  514.      */
  515.     private $videoCsv;
  516.     /**
  517.      * @var int
  518.      *
  519.      * @ORM\Column(type="integer")
  520.      */
  521.     private $oldIdProduct;
  522.     /**
  523.      * @var bool
  524.      *
  525.      * @ORM\Column(type="boolean")
  526.      */
  527.     private $courierBox;
  528.     /**
  529.      * @var string
  530.      *
  531.      * @ORM\Column(type="string", length=32)
  532.      */
  533.     private $oldReference;
  534.     /**
  535.      * @var int
  536.      *
  537.      * @ORM\Column(type="integer")
  538.      */
  539.     private $delay;
  540.     /**
  541.      * @var int
  542.      *
  543.      * @ORM\Column(type="integer")
  544.      */
  545.     private $remesa;
  546.     /**
  547.      * @var bool
  548.      *
  549.      * @ORM\Column(type="boolean")
  550.      */
  551.     private $productoElectronico;
  552.     /**
  553.      * @var int
  554.      *
  555.      * @ORM\Column(type="integer")
  556.      */
  557.     private $oldIdCategoryDefault;
  558.     /**
  559.      * @var bool
  560.      *
  561.      * @ORM\Column(type="boolean")
  562.      */
  563.     private $descatalogado;
  564.     /**
  565.      * @var int
  566.      *
  567.      * @ORM\Column(type="integer")
  568.      */
  569.     private $idProductCompras;
  570.     /**
  571.      * @var bool
  572.      *
  573.      * @ORM\Column(type="boolean")
  574.      */
  575.     private $aleatorio;
  576.     /**
  577.      * @var bool
  578.      *
  579.      * @ORM\Column(type="boolean")
  580.      */
  581.     private $expositor;
  582.     /**
  583.      * @var int
  584.      *
  585.      * @ORM\Column(type="integer")
  586.      */
  587.     private $relatedProduct;
  588.     /**
  589.      * @var ProductType|null
  590.      *
  591.      * @ORM\ManyToOne(targetEntity="ProductType")
  592.      *
  593.      * @ORM\JoinColumn(name="product_type_id", referencedColumnName="id")
  594.      */
  595.     private $productType;
  596.     /**
  597.      * @var Taxonomy|null
  598.      *
  599.      * @ORM\ManyToOne(targetEntity="Taxonomy")
  600.      *
  601.      * @ORM\JoinColumn(name="id_taxonomy_default", referencedColumnName="id")
  602.      */
  603.     private $taxonomyDefault;
  604.     /**
  605.      * @var ProductLangBg
  606.      *
  607.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangBg", mappedBy="product")
  608.      */
  609.     private $productLangBg;
  610.     /**
  611.      * @var ProductLangCs
  612.      *
  613.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangCs", mappedBy="product")
  614.      */
  615.     private $productLangCs;
  616.     /**
  617.      * @var ProductLangDa
  618.      *
  619.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangDa", mappedBy="product")
  620.      */
  621.     private $productLangDa;
  622.     /**
  623.      * @var ProductLangDe
  624.      *
  625.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangDe", mappedBy="product")
  626.      */
  627.     private $productLangDe;
  628.     /**
  629.      * @var ProductLangEl
  630.      *
  631.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangEl", mappedBy="product")
  632.      */
  633.     private $productLangEl;
  634.     /**
  635.      * @var ProductLangEn
  636.      *
  637.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangEn", mappedBy="product")
  638.      */
  639.     private $productLangEn;
  640.     /**
  641.      * @var ProductLangEs
  642.      *
  643.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangEs", mappedBy="product")
  644.      */
  645.     private $productLangEs;
  646.     /**
  647.      * @var ProductLangEt
  648.      *
  649.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangEt", mappedBy="product")
  650.      */
  651.     private $productLangEt;
  652.     /**
  653.      * @var ProductLangFi
  654.      *
  655.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangFi", mappedBy="product")
  656.      */
  657.     private $productLangFi;
  658.     /**
  659.      * @var ProductLangFr
  660.      *
  661.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangFr", mappedBy="product")
  662.      */
  663.     private $productLangFr;
  664.     /**
  665.      * @var ProductLangHr
  666.      *
  667.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangHr", mappedBy="product")
  668.      */
  669.     private $productLangHr;
  670.     /**
  671.      * @var ProductLangHu
  672.      *
  673.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangHu", mappedBy="product")
  674.      */
  675.     private $productLangHu;
  676.     /**
  677.      * @var ProductLangIt
  678.      *
  679.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangIt", mappedBy="product")
  680.      */
  681.     private $productLangIt;
  682.     /**
  683.      * @var ProductLangLt
  684.      *
  685.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangLt", mappedBy="product")
  686.      */
  687.     private $productLangLt;
  688.     /**
  689.      * @var ProductLangLv
  690.      *
  691.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangLv", mappedBy="product")
  692.      */
  693.     private $productLangLv;
  694.     /**
  695.      * @var ProductLangNl
  696.      *
  697.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangNl", mappedBy="product")
  698.      */
  699.     private $productLangNl;
  700.     /**
  701.      * @var ProductLangNo
  702.      *
  703.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangNo", mappedBy="product")
  704.      */
  705.     private $productLangNo;
  706.     /**
  707.      * @var ProductLangPl
  708.      *
  709.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangPl", mappedBy="product")
  710.      */
  711.     private $productLangPl;
  712.     /**
  713.      * @var ProductLangPt
  714.      *
  715.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangPt", mappedBy="product")
  716.      */
  717.     private $productLangPt;
  718.     /**
  719.      * @var ProductLangRo
  720.      *
  721.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangRo", mappedBy="product")
  722.      */
  723.     private $productLangRo;
  724.     /**
  725.      * @var ProductLangRu
  726.      *
  727.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangRu", mappedBy="product")
  728.      */
  729.     private $productLangRu;
  730.     /**
  731.      * @var ProductLangSi
  732.      *
  733.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangSi", mappedBy="product")
  734.      */
  735.     private $productLangSi;
  736.     /**
  737.      * @var ProductLangSk
  738.      *
  739.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangSk", mappedBy="product")
  740.      */
  741.     private $productLangSk;
  742.     /**
  743.      * @var ProductLangSv
  744.      *
  745.      * @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangSv", mappedBy="product")
  746.      */
  747.     private $productLangSv;
  748.     /**
  749.      * @var Collection
  750.      *
  751.      * @ORM\ManyToMany(targetEntity="App\Entity\System\Taxonomy", inversedBy="products")
  752.      *
  753.      * @ORM\JoinTable(
  754.      *   name="taxonomy_product",
  755.      *   joinColumns={@ORM\JoinColumn(name="id_product", referencedColumnName="id_product", fieldName="id")},
  756.      *   inverseJoinColumns={@ORM\JoinColumn(name="id", referencedColumnName="id", fieldName="id")}
  757.      * )
  758.      */
  759.     private $taxonomies;
  760.     /**
  761.      * @var CoreUrlRewrite[]|ArrayCollection
  762.      *
  763.      * @ORM\OneToMany(targetEntity="App\Entity\System\CoreUrlRewrite", mappedBy="product", cascade={"persist"}, indexBy="id_lang")
  764.      */
  765.     private $coreUrlRewrites;
  766.     /**
  767.      * @ORM\OneToMany(targetEntity="ProductCatalog", mappedBy="product", orphanRemoval=true)
  768.      */
  769.     private $productCatalogs;
  770.     /**
  771.      * @var int
  772.      *
  773.      * @ORM\Column(name="id_taxonomy_default", type="integer")
  774.      */
  775.     private $defaultTaxonomyId;
  776.     /**
  777.      * @var bool
  778.      *
  779.      * @ORM\Column(name="buybox", type="boolean")
  780.      */
  781.     private $buyBox;
  782.     /**
  783.      * @var FutureStock[]|Collection
  784.      *
  785.      * @ORM\OneToMany(targetEntity="FutureStock", mappedBy="product")
  786.      */
  787.     private $futureStocks;
  788.     /**
  789.      * @ORM\Column(type="string", length=128)
  790.      */
  791.     private ?string $partNumber null;
  792.     /**
  793.      * * @ORM\Column(type="float")
  794.      */
  795.     private ?float $canon null;
  796.     /**
  797.      * Product constructor.
  798.      */
  799.     public function __construct()
  800.     {
  801.         $this->productAttributes = new ArrayCollection();
  802.         $this->productImages = new ArrayCollection();
  803.         $this->productDates = new ArrayCollection();
  804.         $this->minimumOrderQuantitys = new ArrayCollection();
  805.         $this->manufacturer = new ArrayCollection();
  806.         $this->subscriptions = new ArrayCollection();
  807.         $this->productEans = new ArrayCollection();
  808.         $this->idShopDefault 1;
  809.         $this->onSale false;
  810.         $this->onlineOnly false;
  811.         $this->ecotax 0;
  812.         $this->quantity 0;
  813.         $this->minimalQuantity 1;
  814.         $this->price 0;
  815.         $this->wholesalePrice 0;
  816.         $this->unitPriceRatio 0;
  817.         $this->additionalShippingCost 0;
  818.         $this->weight 0;
  819.         $this->height 0;
  820.         $this->depth 0;
  821.         $this->width 0;
  822.         $this->outOfStock 2;
  823.         $this->quantityDiscount 0;
  824.         $this->customizable 0;
  825.         $this->uploadableFiles 0;
  826.         $this->textFields 0;
  827.         $this->redirectType '404';
  828.         $this->idProductRedirected 0;
  829.         $this->availableForOrder true;
  830.         $this->boxUnits 0;
  831.         $this->container20p 0;
  832.         $this->container40p 0;
  833.         $this->palletUnits 0;
  834.         $this->minimumQty 0;
  835.         $this->condition 'new';
  836.         $this->showPrice true;
  837.         $this->indexed false;
  838.         $this->visibility 'both';
  839.         $this->cacheIsPack false;
  840.         $this->cacheHasAttachments false;
  841.         $this->isVirtual false;
  842.         $this->advancedStockManagement false;
  843.         $this->traducir false;
  844.         $this->exportar false;
  845.         $this->sincronizar false;
  846.         $this->productoElectronico false;
  847.         $this->oldWholesalePrice 0;
  848.         $this->estimateCostPrice 0;
  849.         $this->intrastat null;
  850.         $this->taxonomies = new ArrayCollection();
  851.         $this->coreUrlRewrites = new ArrayCollection();
  852.         $this->productCatalogs = new ArrayCollection();
  853.     }
  854.     /**
  855.      * @return int
  856.      */
  857.     public function getId(): int
  858.     {
  859.         return $this->id;
  860.     }
  861.     public function getSupplier(): ?Supplier
  862.     {
  863.         return $this->supplier;
  864.     }
  865.     public function setSupplier(?Supplier $supplier): Product
  866.     {
  867.         $this->supplier $supplier;
  868.         return $this;
  869.     }
  870.     /**
  871.      * @return bool
  872.      */
  873.     public function isOnSale(): bool
  874.     {
  875.         return $this->onSale;
  876.     }
  877.     /**
  878.      * @param bool $onSale
  879.      *
  880.      * @return Product
  881.      */
  882.     public function setOnSale(bool $onSale): Product
  883.     {
  884.         $this->onSale $onSale;
  885.         return $this;
  886.     }
  887.     /**
  888.      * @return bool
  889.      */
  890.     public function isOnlineOnly(): bool
  891.     {
  892.         return $this->onlineOnly;
  893.     }
  894.     /**
  895.      * @param bool $onlineOnly
  896.      *
  897.      * @return Product
  898.      */
  899.     public function setOnlineOnly(bool $onlineOnly): Product
  900.     {
  901.         $this->onlineOnly $onlineOnly;
  902.         return $this;
  903.     }
  904.     /**
  905.      * @return string|null
  906.      */
  907.     public function getEan(): ?string
  908.     {
  909.         return $this->ean;
  910.     }
  911.     /**
  912.      * @param string|null $ean
  913.      *
  914.      * @return Product
  915.      */
  916.     public function setEan(?string $ean): Product
  917.     {
  918.         $this->ean $ean;
  919.         return $this;
  920.     }
  921.     /**
  922.      * @return string|null
  923.      */
  924.     public function getUpc(): ?string
  925.     {
  926.         return $this->upc;
  927.     }
  928.     /**
  929.      * @param string|null $upc
  930.      *
  931.      * @return Product
  932.      */
  933.     public function setUpc(?string $upc): Product
  934.     {
  935.         $this->upc $upc;
  936.         return $this;
  937.     }
  938.     /**
  939.      * @return float|null
  940.      */
  941.     public function getEcotax(): ?float
  942.     {
  943.         return $this->ecotax;
  944.     }
  945.     /**
  946.      * @param float|null $ecotax
  947.      *
  948.      * @return Product
  949.      */
  950.     public function setEcotax(?float $ecotax): Product
  951.     {
  952.         $this->ecotax $ecotax;
  953.         return $this;
  954.     }
  955.     /**
  956.      * @return int|null
  957.      */
  958.     public function getQuantity(): ?int
  959.     {
  960.         return $this->quantity;
  961.     }
  962.     /**
  963.      * @param int|null $quantity
  964.      *
  965.      * @return Product
  966.      */
  967.     public function setQuantity(?int $quantity): Product
  968.     {
  969.         $this->quantity $quantity;
  970.         return $this;
  971.     }
  972.     /**
  973.      * @return int|null
  974.      */
  975.     public function getMinimalQuantity(): ?int
  976.     {
  977.         return $this->minimalQuantity;
  978.     }
  979.     /**
  980.      * @param int|null $minimalQuantity
  981.      *
  982.      * @return Product
  983.      */
  984.     public function setMinimalQuantity(?int $minimalQuantity): Product
  985.     {
  986.         $this->minimalQuantity $minimalQuantity;
  987.         return $this;
  988.     }
  989.     /**
  990.      * @return float
  991.      */
  992.     public function getPrice(): float
  993.     {
  994.         return $this->price;
  995.     }
  996.     /**
  997.      * @param float $price
  998.      *
  999.      * @return Product
  1000.      */
  1001.     public function setPrice(float $price): Product
  1002.     {
  1003.         $this->price $price;
  1004.         return $this;
  1005.     }
  1006.     /**
  1007.      * @return float
  1008.      */
  1009.     public function getWholesalePrice(): float
  1010.     {
  1011.         return $this->wholesalePrice;
  1012.     }
  1013.     /**
  1014.      * @param float $wholesalePrice
  1015.      *
  1016.      * @return Product
  1017.      */
  1018.     public function setWholesalePrice(float $wholesalePrice): Product
  1019.     {
  1020.         $this->wholesalePrice $wholesalePrice;
  1021.         return $this;
  1022.     }
  1023.     /**
  1024.      * @return string|null
  1025.      */
  1026.     public function getUnity(): ?string
  1027.     {
  1028.         return $this->unity;
  1029.     }
  1030.     /**
  1031.      * @param string|null $unity
  1032.      *
  1033.      * @return Product
  1034.      */
  1035.     public function setUnity(?string $unity): Product
  1036.     {
  1037.         $this->unity $unity;
  1038.         return $this;
  1039.     }
  1040.     /**
  1041.      * @return string
  1042.      */
  1043.     public function getSku(): string
  1044.     {
  1045.         return $this->sku;
  1046.     }
  1047.     /**
  1048.      * @param string $sku
  1049.      *
  1050.      * @return Product
  1051.      */
  1052.     public function setSku(string $sku): Product
  1053.     {
  1054.         $this->sku $sku;
  1055.         return $this;
  1056.     }
  1057.     /**
  1058.      * @return bool
  1059.      */
  1060.     public function isActive(): bool
  1061.     {
  1062.         return $this->active;
  1063.     }
  1064.     /**
  1065.      * @param bool $active
  1066.      *
  1067.      * @return Product
  1068.      */
  1069.     public function setActive(bool $active): Product
  1070.     {
  1071.         $this->active $active;
  1072.         return $this;
  1073.     }
  1074.     /**
  1075.      * @return ProductImage[]|ArrayCollection
  1076.      */
  1077.     public function getProductImages()
  1078.     {
  1079.         return $this->productImages;
  1080.     }
  1081.     /**
  1082.      * @param ProductImage[]|ArrayCollection $productImages
  1083.      *
  1084.      * @return Product
  1085.      */
  1086.     public function setProductImages($productImages): Product
  1087.     {
  1088.         $this->productImages $productImages;
  1089.         return $this;
  1090.     }
  1091.     /**
  1092.      * @return ProductAttribute[]|ArrayCollection
  1093.      */
  1094.     public function getProductAttributes()
  1095.     {
  1096.         return $this->productAttributes;
  1097.     }
  1098.     /**
  1099.      * @param ProductAttribute[]|ArrayCollection $productAttributes
  1100.      *
  1101.      * @return Product
  1102.      */
  1103.     public function setProductAttributes($productAttributes): Product
  1104.     {
  1105.         $this->productAttributes $productAttributes;
  1106.         return $this;
  1107.     }
  1108.     /**
  1109.      * @return ProductDate[]|ArrayCollection
  1110.      */
  1111.     public function getProductDates()
  1112.     {
  1113.         return $this->productDates;
  1114.     }
  1115.     /**
  1116.      * @param ProductDate[]|ArrayCollection $productDates
  1117.      *
  1118.      * @return Product
  1119.      */
  1120.     public function setProductDates($productDates): Product
  1121.     {
  1122.         $this->productDates $productDates;
  1123.         return $this;
  1124.     }
  1125.     /**
  1126.      * @return StockAvailable[]|ArrayCollection<StockAvailable>
  1127.      */
  1128.     public function getStocks()
  1129.     {
  1130.         return $this->stocks;
  1131.     }
  1132.     /**
  1133.      * @param StockAvailable[]|ArrayCollection $stocks
  1134.      *
  1135.      * @return Product
  1136.      */
  1137.     public function setStocks($stocks): Product
  1138.     {
  1139.         $this->stocks $stocks;
  1140.         return $this;
  1141.     }
  1142.     /**
  1143.      * @return SpecificPrice[]|ArrayCollection
  1144.      */
  1145.     public function getSpecificPrices()
  1146.     {
  1147.         return $this->specificPrices;
  1148.     }
  1149.     /**
  1150.      * @param SpecificPrice[]|ArrayCollection $specificPrices
  1151.      *
  1152.      * @return Product
  1153.      */
  1154.     public function setSpecificPrices($specificPrices): Product
  1155.     {
  1156.         $this->specificPrices $specificPrices;
  1157.         return $this;
  1158.     }
  1159.     /**
  1160.      * @return float
  1161.      */
  1162.     public function getOldWholesalePrice(): float
  1163.     {
  1164.         return $this->oldWholesalePrice;
  1165.     }
  1166.     /**
  1167.      * @param float $oldWholesalePrice
  1168.      *
  1169.      * @return Product
  1170.      */
  1171.     public function setOldWholesalePrice(float $oldWholesalePrice): Product
  1172.     {
  1173.         $this->oldWholesalePrice $oldWholesalePrice;
  1174.         return $this;
  1175.     }
  1176.     /**
  1177.      * @return int|null
  1178.      */
  1179.     public function getCategoryDefault(): ?int
  1180.     {
  1181.         return $this->categoryDefault;
  1182.     }
  1183.     /**
  1184.      * @param int|null $categoryDefault
  1185.      *
  1186.      * @return Product
  1187.      */
  1188.     public function setCategoryDefault(?int $categoryDefault): Product
  1189.     {
  1190.         $this->categoryDefault $categoryDefault;
  1191.         return $this;
  1192.     }
  1193.     /**
  1194.      * @return int
  1195.      */
  1196.     public function getSincronizar(): int
  1197.     {
  1198.         return $this->sincronizar;
  1199.     }
  1200.     /**
  1201.      * @param int $sincronizar
  1202.      *
  1203.      * @return Product
  1204.      */
  1205.     public function setSincronizar(int $sincronizar): Product
  1206.     {
  1207.         $this->sincronizar $sincronizar;
  1208.         return $this;
  1209.     }
  1210.     /**
  1211.      * @return float
  1212.      */
  1213.     public function getWeight(): float
  1214.     {
  1215.         return $this->weight;
  1216.     }
  1217.     /**
  1218.      * @param float $weight
  1219.      *
  1220.      * @return Product
  1221.      */
  1222.     public function setWeight(float $weight): Product
  1223.     {
  1224.         $this->weight $weight;
  1225.         return $this;
  1226.     }
  1227.     /**
  1228.      * @return string
  1229.      */
  1230.     public function getEanVirtual(): ?string
  1231.     {
  1232.         return $this->eanVirtual;
  1233.     }
  1234.     /**
  1235.      * @param string $eanVirtual
  1236.      *
  1237.      * @return Product
  1238.      */
  1239.     public function setEanVirtual(string $eanVirtual): Product
  1240.     {
  1241.         $this->eanVirtual $eanVirtual;
  1242.         return $this;
  1243.     }
  1244.     /**
  1245.      * @return float
  1246.      */
  1247.     public function getHeight(): float
  1248.     {
  1249.         return $this->height;
  1250.     }
  1251.     /**
  1252.      * @param float $height
  1253.      *
  1254.      * @return Product
  1255.      */
  1256.     public function setHeight(float $height): Product
  1257.     {
  1258.         $this->height $height;
  1259.         return $this;
  1260.     }
  1261.     /**
  1262.      * @return float
  1263.      */
  1264.     public function getWidth(): float
  1265.     {
  1266.         return $this->width;
  1267.     }
  1268.     /**
  1269.      * @param float $width
  1270.      *
  1271.      * @return Product
  1272.      */
  1273.     public function setWidth(float $width): Product
  1274.     {
  1275.         $this->width $width;
  1276.         return $this;
  1277.     }
  1278.     /**
  1279.      * @return float
  1280.      */
  1281.     public function getDepth(): float
  1282.     {
  1283.         return $this->depth;
  1284.     }
  1285.     /**
  1286.      * @param float $depth
  1287.      *
  1288.      * @return Product
  1289.      */
  1290.     public function setDepth(float $depth): Product
  1291.     {
  1292.         $this->depth $depth;
  1293.         return $this;
  1294.     }
  1295.     /**
  1296.      * @return float
  1297.      */
  1298.     public function getEstimateCostPrice(): float
  1299.     {
  1300.         return $this->estimateCostPrice;
  1301.     }
  1302.     /**
  1303.      * @param float $estimateCostPrice
  1304.      *
  1305.      * @return Product
  1306.      */
  1307.     public function setEstimateCostPrice(float $estimateCostPrice): Product
  1308.     {
  1309.         $this->estimateCostPrice $estimateCostPrice;
  1310.         return $this;
  1311.     }
  1312.     /**
  1313.      * @return bool
  1314.      */
  1315.     public function isVirtual(): bool
  1316.     {
  1317.         return $this->isVirtual;
  1318.     }
  1319.     /**
  1320.      * @param bool $isVirtual
  1321.      *
  1322.      * @return Product
  1323.      */
  1324.     public function setIsVirtual(bool $isVirtual): Product
  1325.     {
  1326.         $this->isVirtual $isVirtual;
  1327.         return $this;
  1328.     }
  1329.     /**
  1330.      * @return MinimumOrderQuantity[]|ArrayCollection
  1331.      */
  1332.     public function getMinimumOrderQuantitys()
  1333.     {
  1334.         return $this->minimumOrderQuantitys;
  1335.     }
  1336.     /**
  1337.      * @param MinimumOrderQuantity[]|ArrayCollection $minimumOrderQuantitys
  1338.      *
  1339.      * @return Product
  1340.      */
  1341.     public function setMinimumOrderQuantitys($minimumOrderQuantitys): Product
  1342.     {
  1343.         $this->minimumOrderQuantitys $minimumOrderQuantitys;
  1344.         return $this;
  1345.     }
  1346.     /**
  1347.      * @return ProductEan[]|ArrayCollection
  1348.      */
  1349.     public function getProductEans()
  1350.     {
  1351.         return $this->productEans;
  1352.     }
  1353.     /**
  1354.      * @param ProductEan[]|ArrayCollection $productEans
  1355.      *
  1356.      * @return Product
  1357.      */
  1358.     public function setProductEans($productEans): Product
  1359.     {
  1360.         $this->productEans $productEans;
  1361.         return $this;
  1362.     }
  1363.     /**
  1364.      * @return mixed
  1365.      */
  1366.     public function getDateAdd()
  1367.     {
  1368.         return $this->dateAdd;
  1369.     }
  1370.     /**
  1371.      * @param mixed $dateAdd
  1372.      *
  1373.      * @return Product
  1374.      */
  1375.     public function setDateAdd($dateAdd): Product
  1376.     {
  1377.         $this->dateAdd $dateAdd;
  1378.         return $this;
  1379.     }
  1380.     /**
  1381.      * @return mixed
  1382.      */
  1383.     public function getDateUpd()
  1384.     {
  1385.         return $this->dateUpd;
  1386.     }
  1387.     /**
  1388.      * @param mixed $dateUpd
  1389.      *
  1390.      * @return Product
  1391.      */
  1392.     public function setDateUpd($dateUpd): Product
  1393.     {
  1394.         $this->dateUpd $dateUpd;
  1395.         return $this;
  1396.     }
  1397.     /**
  1398.      * @return mixed
  1399.      */
  1400.     public function getDateNext()
  1401.     {
  1402.         return $this->dateNext;
  1403.     }
  1404.     /**
  1405.      * @param mixed $dateNext
  1406.      *
  1407.      * @return Product
  1408.      */
  1409.     public function setDateNext($dateNext): Product
  1410.     {
  1411.         $this->dateNext $dateNext;
  1412.         return $this;
  1413.     }
  1414.     /**
  1415.      * @return mixed
  1416.      */
  1417.     public function getDateNewStock()
  1418.     {
  1419.         return $this->dateNewStock;
  1420.     }
  1421.     /**
  1422.      * @param mixed $dateNewStock
  1423.      *
  1424.      * @return Product
  1425.      */
  1426.     public function setDateNewStock($dateNewStock): Product
  1427.     {
  1428.         $this->dateNewStock $dateNewStock;
  1429.         return $this;
  1430.     }
  1431.     /**
  1432.      * @return mixed
  1433.      */
  1434.     public function getAvailableDate()
  1435.     {
  1436.         return $this->availableDate;
  1437.     }
  1438.     /**
  1439.      * @param mixed $availableDate
  1440.      *
  1441.      * @return Product
  1442.      */
  1443.     public function setAvailableDate($availableDate): Product
  1444.     {
  1445.         $this->availableDate $availableDate;
  1446.         return $this;
  1447.     }
  1448.     /**
  1449.      * @return mixed
  1450.      */
  1451.     public function getPalletUnits()
  1452.     {
  1453.         return $this->palletUnits;
  1454.     }
  1455.     /**
  1456.      * @param mixed $palletUnits
  1457.      *
  1458.      * @return Product
  1459.      */
  1460.     public function setPalletUnits($palletUnits): Product
  1461.     {
  1462.         $this->palletUnits $palletUnits;
  1463.         return $this;
  1464.     }
  1465.     /**
  1466.      * @return mixed
  1467.      */
  1468.     public function getBoxUnits()
  1469.     {
  1470.         return $this->boxUnits;
  1471.     }
  1472.     /**
  1473.      * @param mixed $boxUnits
  1474.      *
  1475.      * @return Product
  1476.      */
  1477.     public function setBoxUnits($boxUnits): Product
  1478.     {
  1479.         $this->boxUnits $boxUnits;
  1480.         return $this;
  1481.     }
  1482.     /**
  1483.      * @return mixed
  1484.      */
  1485.     public function getVideo()
  1486.     {
  1487.         return $this->video;
  1488.     }
  1489.     /**
  1490.      * @param mixed $video
  1491.      *
  1492.      * @return Product
  1493.      */
  1494.     public function setVideo($video): Product
  1495.     {
  1496.         $this->video $video;
  1497.         return $this;
  1498.     }
  1499.     /**
  1500.      * @return Brand
  1501.      */
  1502.     public function getManufacturer(): Brand
  1503.     {
  1504.         return $this->manufacturer;
  1505.     }
  1506.     /**
  1507.      * @param Brand $manufacturer
  1508.      *
  1509.      * @return Product
  1510.      */
  1511.     public function setManufacturer(Brand $manufacturer): Product
  1512.     {
  1513.         $this->manufacturer $manufacturer;
  1514.         return $this;
  1515.     }
  1516.     /**
  1517.      * @return Subscription[]|ArrayCollection
  1518.      */
  1519.     public function getSubscriptions(): Subscription
  1520.     {
  1521.         return $this->subscriptions;
  1522.     }
  1523.     /**
  1524.      * @param Subscription[]|ArrayCollection $subscriptions
  1525.      *
  1526.      * @return Product
  1527.      */
  1528.     public function setSubscriptions($subscriptions): Product
  1529.     {
  1530.         $this->subscriptions $subscriptions;
  1531.         return $this;
  1532.     }
  1533.     /**
  1534.      * @return string
  1535.      */
  1536.     public function getLocation(): string
  1537.     {
  1538.         return $this->location;
  1539.     }
  1540.     /**
  1541.      * @param string $location
  1542.      *
  1543.      * @return Product
  1544.      */
  1545.     public function setLocation(string $location): Product
  1546.     {
  1547.         $this->location $location;
  1548.         return $this;
  1549.     }
  1550.     /**
  1551.      * @return int
  1552.      */
  1553.     public function getOutOfStock(): int
  1554.     {
  1555.         return $this->outOfStock;
  1556.     }
  1557.     /**
  1558.      * @param int $outOfStock
  1559.      *
  1560.      * @return Product
  1561.      */
  1562.     public function setOutOfStock(int $outOfStock): Product
  1563.     {
  1564.         $this->outOfStock $outOfStock;
  1565.         return $this;
  1566.     }
  1567.     /**
  1568.      * @return bool
  1569.      */
  1570.     public function isQuantityDiscount(): bool
  1571.     {
  1572.         return $this->quantityDiscount;
  1573.     }
  1574.     /**
  1575.      * @param bool $quantityDiscount
  1576.      *
  1577.      * @return Product
  1578.      */
  1579.     public function setQuantityDiscount(bool $quantityDiscount): Product
  1580.     {
  1581.         $this->quantityDiscount $quantityDiscount;
  1582.         return $this;
  1583.     }
  1584.     /**
  1585.      * @return int
  1586.      */
  1587.     public function getCustomizable(): int
  1588.     {
  1589.         return $this->customizable;
  1590.     }
  1591.     /**
  1592.      * @param int $customizable
  1593.      *
  1594.      * @return Product
  1595.      */
  1596.     public function setCustomizable(int $customizable): Product
  1597.     {
  1598.         $this->customizable $customizable;
  1599.         return $this;
  1600.     }
  1601.     /**
  1602.      * @return int
  1603.      */
  1604.     public function getUploadableFiles(): int
  1605.     {
  1606.         return $this->uploadableFiles;
  1607.     }
  1608.     /**
  1609.      * @param int $uploadableFiles
  1610.      *
  1611.      * @return Product
  1612.      */
  1613.     public function setUploadableFiles(int $uploadableFiles): Product
  1614.     {
  1615.         $this->uploadableFiles $uploadableFiles;
  1616.         return $this;
  1617.     }
  1618.     /**
  1619.      * @return int
  1620.      */
  1621.     public function getTextFields(): int
  1622.     {
  1623.         return $this->textFields;
  1624.     }
  1625.     /**
  1626.      * @param int $textFields
  1627.      *
  1628.      * @return Product
  1629.      */
  1630.     public function setTextFields(int $textFields): Product
  1631.     {
  1632.         $this->textFields $textFields;
  1633.         return $this;
  1634.     }
  1635.     /**
  1636.      * @return string
  1637.      */
  1638.     public function getRedirectType(): string
  1639.     {
  1640.         return $this->redirectType;
  1641.     }
  1642.     /**
  1643.      * @param string $redirectType
  1644.      *
  1645.      * @return Product
  1646.      */
  1647.     public function setRedirectType(string $redirectType): Product
  1648.     {
  1649.         $this->redirectType $redirectType;
  1650.         return $this;
  1651.     }
  1652.     /**
  1653.      * @return int
  1654.      */
  1655.     public function getIdProductRedirected(): int
  1656.     {
  1657.         return $this->idProductRedirected;
  1658.     }
  1659.     /**
  1660.      * @param int $idProductRedirected
  1661.      *
  1662.      * @return Product
  1663.      */
  1664.     public function setIdProductRedirected(int $idProductRedirected): Product
  1665.     {
  1666.         $this->idProductRedirected $idProductRedirected;
  1667.         return $this;
  1668.     }
  1669.     /**
  1670.      * @return bool
  1671.      */
  1672.     public function isAvailableForOrder(): bool
  1673.     {
  1674.         return $this->availableForOrder;
  1675.     }
  1676.     /**
  1677.      * @param bool $availableForOrder
  1678.      *
  1679.      * @return Product
  1680.      */
  1681.     public function setAvailableForOrder(bool $availableForOrder): Product
  1682.     {
  1683.         $this->availableForOrder $availableForOrder;
  1684.         return $this;
  1685.     }
  1686.     /**
  1687.      * @return \DateTime
  1688.      */
  1689.     public function getDateNew(): \DateTime
  1690.     {
  1691.         return $this->dateNew;
  1692.     }
  1693.     /**
  1694.      * @param \DateTime $dateNew
  1695.      *
  1696.      * @return Product
  1697.      */
  1698.     public function setDateNew(\DateTime $dateNew): Product
  1699.     {
  1700.         $this->dateNew $dateNew;
  1701.         return $this;
  1702.     }
  1703.     /**
  1704.      * @return int
  1705.      */
  1706.     public function getContainer20p(): int
  1707.     {
  1708.         return $this->container20p;
  1709.     }
  1710.     /**
  1711.      * @param int $container20p
  1712.      *
  1713.      * @return Product
  1714.      */
  1715.     public function setContainer20p(int $container20p): Product
  1716.     {
  1717.         $this->container20p $container20p;
  1718.         return $this;
  1719.     }
  1720.     /**
  1721.      * @return int
  1722.      */
  1723.     public function getContainer40p(): int
  1724.     {
  1725.         return $this->container40p;
  1726.     }
  1727.     /**
  1728.      * @param int $container40p
  1729.      *
  1730.      * @return Product
  1731.      */
  1732.     public function setContainer40p(int $container40p): Product
  1733.     {
  1734.         $this->container40p $container40p;
  1735.         return $this;
  1736.     }
  1737.     /**
  1738.      * @return string
  1739.      */
  1740.     public function getPicking(): string
  1741.     {
  1742.         return $this->picking;
  1743.     }
  1744.     /**
  1745.      * @param string $picking
  1746.      *
  1747.      * @return Product
  1748.      */
  1749.     public function setPicking(string $picking): Product
  1750.     {
  1751.         $this->picking $picking;
  1752.         return $this;
  1753.     }
  1754.     /**
  1755.      * @return string
  1756.      */
  1757.     public function getLocationPalet1(): string
  1758.     {
  1759.         return $this->locationPalet1;
  1760.     }
  1761.     /**
  1762.      * @param string $locationPalet1
  1763.      *
  1764.      * @return Product
  1765.      */
  1766.     public function setLocationPalet1(string $locationPalet1): Product
  1767.     {
  1768.         $this->locationPalet1 $locationPalet1;
  1769.         return $this;
  1770.     }
  1771.     /**
  1772.      * @return string
  1773.      */
  1774.     public function getLocationPalet2(): string
  1775.     {
  1776.         return $this->locationPalet2;
  1777.     }
  1778.     /**
  1779.      * @param string $locationPalet2
  1780.      *
  1781.      * @return Product
  1782.      */
  1783.     public function setLocationPalet2(string $locationPalet2): Product
  1784.     {
  1785.         $this->locationPalet2 $locationPalet2;
  1786.         return $this;
  1787.     }
  1788.     /**
  1789.      * @return int
  1790.      */
  1791.     public function getMinimumQty(): int
  1792.     {
  1793.         return $this->minimumQty;
  1794.     }
  1795.     /**
  1796.      * @param int $minimumQty
  1797.      *
  1798.      * @return Product
  1799.      */
  1800.     public function setMinimumQty(int $minimumQty): Product
  1801.     {
  1802.         $this->minimumQty $minimumQty;
  1803.         return $this;
  1804.     }
  1805.     /**
  1806.      * @return string
  1807.      */
  1808.     public function getCondition(): string
  1809.     {
  1810.         return $this->condition;
  1811.     }
  1812.     /**
  1813.      * @param string $condition
  1814.      *
  1815.      * @return Product
  1816.      */
  1817.     public function setCondition(string $condition): Product
  1818.     {
  1819.         $this->condition $condition;
  1820.         return $this;
  1821.     }
  1822.     /**
  1823.      * @return bool
  1824.      */
  1825.     public function isShowPrice(): bool
  1826.     {
  1827.         return $this->showPrice;
  1828.     }
  1829.     /**
  1830.      * @param bool $showPrice
  1831.      *
  1832.      * @return Product
  1833.      */
  1834.     public function setShowPrice(bool $showPrice): Product
  1835.     {
  1836.         $this->showPrice $showPrice;
  1837.         return $this;
  1838.     }
  1839.     /**
  1840.      * @return bool
  1841.      */
  1842.     public function isIndexed(): bool
  1843.     {
  1844.         return $this->indexed;
  1845.     }
  1846.     /**
  1847.      * @param bool $indexed
  1848.      *
  1849.      * @return Product
  1850.      */
  1851.     public function setIndexed(bool $indexed): Product
  1852.     {
  1853.         $this->indexed $indexed;
  1854.         return $this;
  1855.     }
  1856.     /**
  1857.      * @return string
  1858.      */
  1859.     public function getVisibility(): string
  1860.     {
  1861.         return $this->visibility;
  1862.     }
  1863.     /**
  1864.      * @param string $visibility
  1865.      *
  1866.      * @return Product
  1867.      */
  1868.     public function setVisibility(string $visibility): Product
  1869.     {
  1870.         $this->visibility $visibility;
  1871.         return $this;
  1872.     }
  1873.     /**
  1874.      * @return bool
  1875.      */
  1876.     public function isCacheIsPack(): bool
  1877.     {
  1878.         return $this->cacheIsPack;
  1879.     }
  1880.     /**
  1881.      * @param bool $cacheIsPack
  1882.      *
  1883.      * @return Product
  1884.      */
  1885.     public function setCacheIsPack(bool $cacheIsPack): Product
  1886.     {
  1887.         $this->cacheIsPack $cacheIsPack;
  1888.         return $this;
  1889.     }
  1890.     /**
  1891.      * @return bool
  1892.      */
  1893.     public function isCacheHasAttachments(): bool
  1894.     {
  1895.         return $this->cacheHasAttachments;
  1896.     }
  1897.     /**
  1898.      * @param bool $cacheHasAttachments
  1899.      *
  1900.      * @return Product
  1901.      */
  1902.     public function setCacheHasAttachments(bool $cacheHasAttachments): Product
  1903.     {
  1904.         $this->cacheHasAttachments $cacheHasAttachments;
  1905.         return $this;
  1906.     }
  1907.     /**
  1908.      * @return int
  1909.      */
  1910.     public function getCacheDefaultAttribute(): int
  1911.     {
  1912.         return $this->cacheDefaultAttribute;
  1913.     }
  1914.     /**
  1915.      * @param int $cacheDefaultAttribute
  1916.      *
  1917.      * @return Product
  1918.      */
  1919.     public function setCacheDefaultAttribute(int $cacheDefaultAttribute): Product
  1920.     {
  1921.         $this->cacheDefaultAttribute $cacheDefaultAttribute;
  1922.         return $this;
  1923.     }
  1924.     /**
  1925.      * @return bool
  1926.      */
  1927.     public function isAdvancedStockManagement(): bool
  1928.     {
  1929.         return $this->advancedStockManagement;
  1930.     }
  1931.     /**
  1932.      * @param bool $advancedStockManagement
  1933.      *
  1934.      * @return Product
  1935.      */
  1936.     public function setAdvancedStockManagement(bool $advancedStockManagement): Product
  1937.     {
  1938.         $this->advancedStockManagement $advancedStockManagement;
  1939.         return $this;
  1940.     }
  1941.     /**
  1942.      * @return string
  1943.      */
  1944.     public function getEtiquetas(): string
  1945.     {
  1946.         return $this->etiquetas;
  1947.     }
  1948.     /**
  1949.      * @param string $etiquetas
  1950.      *
  1951.      * @return Product
  1952.      */
  1953.     public function setEtiquetas(string $etiquetas): Product
  1954.     {
  1955.         $this->etiquetas $etiquetas;
  1956.         return $this;
  1957.     }
  1958.     /**
  1959.      * @return bool
  1960.      */
  1961.     public function isTraducir(): bool
  1962.     {
  1963.         return $this->traducir;
  1964.     }
  1965.     /**
  1966.      * @param bool $traducir
  1967.      *
  1968.      * @return Product
  1969.      */
  1970.     public function setTraducir(bool $traducir): Product
  1971.     {
  1972.         $this->traducir $traducir;
  1973.         return $this;
  1974.     }
  1975.     /**
  1976.      * @return bool
  1977.      */
  1978.     public function isExportar(): bool
  1979.     {
  1980.         return $this->exportar;
  1981.     }
  1982.     /**
  1983.      * @param bool $exportar
  1984.      *
  1985.      * @return Product
  1986.      */
  1987.     public function setExportar(bool $exportar): Product
  1988.     {
  1989.         $this->exportar $exportar;
  1990.         return $this;
  1991.     }
  1992.     /**
  1993.      * @return string
  1994.      */
  1995.     public function getVideoCsv(): string
  1996.     {
  1997.         return $this->videoCsv;
  1998.     }
  1999.     /**
  2000.      * @param string $videoCsv
  2001.      *
  2002.      * @return Product
  2003.      */
  2004.     public function setVideoCsv(string $videoCsv): Product
  2005.     {
  2006.         $this->videoCsv $videoCsv;
  2007.         return $this;
  2008.     }
  2009.     /**
  2010.      * @return int
  2011.      */
  2012.     public function getOldIdProduct(): int
  2013.     {
  2014.         return $this->oldIdProduct;
  2015.     }
  2016.     /**
  2017.      * @param int $oldIdProduct
  2018.      *
  2019.      * @return Product
  2020.      */
  2021.     public function setOldIdProduct(int $oldIdProduct): Product
  2022.     {
  2023.         $this->oldIdProduct $oldIdProduct;
  2024.         return $this;
  2025.     }
  2026.     /**
  2027.      * @return bool
  2028.      */
  2029.     public function isCourierBox(): bool
  2030.     {
  2031.         return $this->courierBox;
  2032.     }
  2033.     /**
  2034.      * @param bool $courierBox
  2035.      *
  2036.      * @return Product
  2037.      */
  2038.     public function setCourierBox(bool $courierBox): Product
  2039.     {
  2040.         $this->courierBox $courierBox;
  2041.         return $this;
  2042.     }
  2043.     /**
  2044.      * @return string
  2045.      */
  2046.     public function getOldReference(): string
  2047.     {
  2048.         return $this->oldReference;
  2049.     }
  2050.     /**
  2051.      * @param string $oldReference
  2052.      *
  2053.      * @return Product
  2054.      */
  2055.     public function setOldReference(string $oldReference): Product
  2056.     {
  2057.         $this->oldReference $oldReference;
  2058.         return $this;
  2059.     }
  2060.     /**
  2061.      * @return int
  2062.      */
  2063.     public function getDelay(): int
  2064.     {
  2065.         return $this->delay;
  2066.     }
  2067.     /**
  2068.      * @param int $delay
  2069.      *
  2070.      * @return Product
  2071.      */
  2072.     public function setDelay(int $delay): Product
  2073.     {
  2074.         $this->delay $delay;
  2075.         return $this;
  2076.     }
  2077.     /**
  2078.      * @return int
  2079.      */
  2080.     public function getRemesa(): int
  2081.     {
  2082.         return $this->remesa;
  2083.     }
  2084.     /**
  2085.      * @param int $remesa
  2086.      *
  2087.      * @return Product
  2088.      */
  2089.     public function setRemesa(int $remesa): Product
  2090.     {
  2091.         $this->remesa $remesa;
  2092.         return $this;
  2093.     }
  2094.     /**
  2095.      * @return bool
  2096.      */
  2097.     public function isProductoElectronico(): bool
  2098.     {
  2099.         return $this->productoElectronico;
  2100.     }
  2101.     /**
  2102.      * @param bool $productoElectronico
  2103.      *
  2104.      * @return Product
  2105.      */
  2106.     public function setProductoElectronico(bool $productoElectronico): Product
  2107.     {
  2108.         $this->productoElectronico $productoElectronico;
  2109.         return $this;
  2110.     }
  2111.     /**
  2112.      * @return int
  2113.      */
  2114.     public function getOldIdCategoryDefault(): int
  2115.     {
  2116.         return $this->oldIdCategoryDefault;
  2117.     }
  2118.     /**
  2119.      * @param int $oldIdCategoryDefault
  2120.      *
  2121.      * @return Product
  2122.      */
  2123.     public function setOldIdCategoryDefault(int $oldIdCategoryDefault): Product
  2124.     {
  2125.         $this->oldIdCategoryDefault $oldIdCategoryDefault;
  2126.         return $this;
  2127.     }
  2128.     /**
  2129.      * @return bool
  2130.      */
  2131.     public function isDescatalogado(): bool
  2132.     {
  2133.         return $this->descatalogado;
  2134.     }
  2135.     /**
  2136.      * @param bool $descatalogado
  2137.      *
  2138.      * @return Product
  2139.      */
  2140.     public function setDescatalogado(bool $descatalogado): Product
  2141.     {
  2142.         $this->descatalogado $descatalogado;
  2143.         return $this;
  2144.     }
  2145.     /**
  2146.      * @return int
  2147.      */
  2148.     public function getIdProductCompras(): int
  2149.     {
  2150.         return $this->idProductCompras;
  2151.     }
  2152.     /**
  2153.      * @param int $idProductCompras
  2154.      *
  2155.      * @return Product
  2156.      */
  2157.     public function setIdProductCompras(int $idProductCompras): Product
  2158.     {
  2159.         $this->idProductCompras $idProductCompras;
  2160.         return $this;
  2161.     }
  2162.     /**
  2163.      * @return bool
  2164.      */
  2165.     public function isAleatorio(): bool
  2166.     {
  2167.         return $this->aleatorio;
  2168.     }
  2169.     /**
  2170.      * @param bool $aleatorio
  2171.      *
  2172.      * @return Product
  2173.      */
  2174.     public function setAleatorio(bool $aleatorio): Product
  2175.     {
  2176.         $this->aleatorio $aleatorio;
  2177.         return $this;
  2178.     }
  2179.     /**
  2180.      * @return bool
  2181.      */
  2182.     public function isExpositor(): bool
  2183.     {
  2184.         return $this->expositor;
  2185.     }
  2186.     /**
  2187.      * @param bool $expositor
  2188.      *
  2189.      * @return Product
  2190.      */
  2191.     public function setExpositor(bool $expositor): Product
  2192.     {
  2193.         $this->expositor $expositor;
  2194.         return $this;
  2195.     }
  2196.     /**
  2197.      * @return int
  2198.      */
  2199.     public function getRelatedProduct(): int
  2200.     {
  2201.         return $this->relatedProduct;
  2202.     }
  2203.     /**
  2204.      * @param int $relatedProduct
  2205.      *
  2206.      * @return Product
  2207.      */
  2208.     public function setRelatedProduct(int $relatedProduct): Product
  2209.     {
  2210.         $this->relatedProduct $relatedProduct;
  2211.         return $this;
  2212.     }
  2213.     /**
  2214.      * @return ProductType|null
  2215.      */
  2216.     public function getProductType(): ?ProductType
  2217.     {
  2218.         return $this->productType;
  2219.     }
  2220.     /**
  2221.      * @param ProductType|null $productType
  2222.      *
  2223.      * @return Product
  2224.      */
  2225.     public function setProductType(?ProductType $productType): self
  2226.     {
  2227.         $this->productType $productType;
  2228.         return $this;
  2229.     }
  2230.     /**
  2231.      * @return ProductLangInterface[]
  2232.      */
  2233.     public function getLanguages(): array
  2234.     {
  2235.         return [
  2236.             => $this->productLangEn,
  2237.             => $this->productLangEs,
  2238.             => $this->productLangFr,
  2239.             => $this->productLangDe,
  2240.             => $this->productLangPt,
  2241.             => $this->productLangEl,
  2242.             => $this->productLangHr,
  2243.             10 => $this->productLangIt,
  2244.             11 => $this->productLangEt,
  2245.             12 => $this->productLangDa,
  2246.             13 => $this->productLangFi,
  2247.             14 => $this->productLangRo,
  2248.             15 => $this->productLangBg,
  2249.             16 => $this->productLangHu,
  2250.             18 => $this->productLangSk,
  2251.             19 => $this->productLangSi,
  2252.             20 => $this->productLangLt,
  2253.             21 => $this->productLangLv,
  2254.             22 => $this->productLangPl,
  2255.             24 => $this->productLangNl,
  2256.             25 => $this->productLangRu,
  2257.             26 => $this->productLangNo,
  2258.             27 => $this->productLangSv,
  2259.             28 => $this->productLangCs,
  2260.         ];
  2261.     }
  2262.     /**
  2263.      * @return Collection
  2264.      */
  2265.     public function getTaxonomies(): Collection
  2266.     {
  2267.         return $this->taxonomies;
  2268.     }
  2269.     /**
  2270.      * @param Collection $taxonomies
  2271.      *
  2272.      * @return Product
  2273.      */
  2274.     public function setTaxonomies(Collection $taxonomies): Product
  2275.     {
  2276.         $this->taxonomies $taxonomies;
  2277.         return $this;
  2278.     }
  2279.     /**
  2280.      * @return CoreUrlRewrite[]|ArrayCollection
  2281.      */
  2282.     public function getCoreUrlRewrites()
  2283.     {
  2284.         return $this->coreUrlRewrites;
  2285.     }
  2286.     /**
  2287.      * @param CoreUrlRewrite[]|ArrayCollection $coreUrlRewrites
  2288.      */
  2289.     public function setCoreUrlRewrites($coreUrlRewrites): Product
  2290.     {
  2291.         $this->coreUrlRewrites $coreUrlRewrites;
  2292.         return $this;
  2293.     }
  2294.     public function getProductCatalogs()
  2295.     {
  2296.         return $this->productCatalogs;
  2297.     }
  2298.     /**
  2299.      * @param ArrayCollection $productCatalogs
  2300.      *
  2301.      * @return Product
  2302.      */
  2303.     public function setProductCatalogs(ArrayCollection $productCatalogs): Product
  2304.     {
  2305.         $this->productCatalogs $productCatalogs;
  2306.         return $this;
  2307.     }
  2308.     /**
  2309.      * @return ProductLangEn
  2310.      */
  2311.     public function getProductLangEn(): ProductLangEn
  2312.     {
  2313.         return $this->productLangEn;
  2314.     }
  2315.     /**
  2316.      * @return ProductLangEs
  2317.      */
  2318.     public function getProductLangEs(): ProductLangEs
  2319.     {
  2320.         return $this->productLangEs;
  2321.     }
  2322.     /**
  2323.      * @param ProductLangEn $productLangEn
  2324.      */
  2325.     public function setProductLangEn(ProductLangEn $productLangEn): void
  2326.     {
  2327.         $this->productLangEn $productLangEn;
  2328.     }
  2329.     /**
  2330.      * @param ProductLangEs $productLangEs
  2331.      */
  2332.     public function setProductLangEs(ProductLangEs $productLangEs): void
  2333.     {
  2334.         $this->productLangEs $productLangEs;
  2335.     }
  2336.     /**
  2337.      * @return Taxonomy|null
  2338.      */
  2339.     public function getTaxonomyDefault(): ?Taxonomy
  2340.     {
  2341.         return $this->taxonomyDefault;
  2342.     }
  2343.     /**
  2344.      * @param Taxonomy|null $taxonomyDefault
  2345.      *
  2346.      * @return Product
  2347.      */
  2348.     public function setTaxonomyDefault(?Taxonomy $taxonomyDefault): self
  2349.     {
  2350.         $this->taxonomyDefault $taxonomyDefault;
  2351.         return $this;
  2352.     }
  2353.     /**
  2354.      * @return string
  2355.      */
  2356.     public function getIntrastat(): ?string
  2357.     {
  2358.         return $this->intrastat;
  2359.     }
  2360.     /**
  2361.      * @return FutureStock[]|Collection
  2362.      */
  2363.     public function getFutureStocks()
  2364.     {
  2365.         return $this->futureStocks;
  2366.     }
  2367.     /**
  2368.      * @param string $isoCode
  2369.      *
  2370.      * @return ProductLangInterface|null
  2371.      */
  2372.     public function getProductLangByIsoCode(string $isoCode): ?ProductLangInterface
  2373.     {
  2374.         if (!array_key_exists($isoCodeLanguage::LANG_IDS_INDEXED_BY_ISOCODE)) {
  2375.             return null;
  2376.         }
  2377.         $getProductLangMethod 'getProductLang'.ucfirst($isoCode);
  2378.         return $this->$getProductLangMethod();
  2379.     }
  2380.     /**
  2381.      * @return ProductLangBg
  2382.      */
  2383.     public function getProductLangBg(): ProductLangBg
  2384.     {
  2385.         return $this->productLangBg;
  2386.     }
  2387.     /**
  2388.      * @return ProductLangCs
  2389.      */
  2390.     public function getProductLangCs(): ProductLangCs
  2391.     {
  2392.         return $this->productLangCs;
  2393.     }
  2394.     /**
  2395.      * @return ProductLangDa
  2396.      */
  2397.     public function getProductLangDa(): ProductLangDa
  2398.     {
  2399.         return $this->productLangDa;
  2400.     }
  2401.     /**
  2402.      * @return ProductLangDe
  2403.      */
  2404.     public function getProductLangDe(): ProductLangDe
  2405.     {
  2406.         return $this->productLangDe;
  2407.     }
  2408.     /**
  2409.      * @return ProductLangEl
  2410.      */
  2411.     public function getProductLangEl(): ProductLangEl
  2412.     {
  2413.         return $this->productLangEl;
  2414.     }
  2415.     /**
  2416.      * @return ProductLangEt
  2417.      */
  2418.     public function getProductLangEt(): ProductLangEt
  2419.     {
  2420.         return $this->productLangEt;
  2421.     }
  2422.     /**
  2423.      * @return ProductLangFi
  2424.      */
  2425.     public function getProductLangFi(): ProductLangFi
  2426.     {
  2427.         return $this->productLangFi;
  2428.     }
  2429.     /**
  2430.      * @return ProductLangFr
  2431.      */
  2432.     public function getProductLangFr(): ProductLangFr
  2433.     {
  2434.         return $this->productLangFr;
  2435.     }
  2436.     /**
  2437.      * @return ProductLangHr
  2438.      */
  2439.     public function getProductLangHr(): ProductLangHr
  2440.     {
  2441.         return $this->productLangHr;
  2442.     }
  2443.     /**
  2444.      * @return ProductLangHu
  2445.      */
  2446.     public function getProductLangHu(): ProductLangHu
  2447.     {
  2448.         return $this->productLangHu;
  2449.     }
  2450.     /**
  2451.      * @return ProductLangIt
  2452.      */
  2453.     public function getProductLangIt(): ProductLangIt
  2454.     {
  2455.         return $this->productLangIt;
  2456.     }
  2457.     /**
  2458.      * @return ProductLangLt
  2459.      */
  2460.     public function getProductLangLt(): ProductLangLt
  2461.     {
  2462.         return $this->productLangLt;
  2463.     }
  2464.     /**
  2465.      * @return ProductLangLv
  2466.      */
  2467.     public function getProductLangLv(): ProductLangLv
  2468.     {
  2469.         return $this->productLangLv;
  2470.     }
  2471.     /**
  2472.      * @return ProductLangNl
  2473.      */
  2474.     public function getProductLangNl(): ProductLangNl
  2475.     {
  2476.         return $this->productLangNl;
  2477.     }
  2478.     /**
  2479.      * @return ProductLangNo
  2480.      */
  2481.     public function getProductLangNo(): ProductLangNo
  2482.     {
  2483.         return $this->productLangNo;
  2484.     }
  2485.     /**
  2486.      * @return ProductLangPl
  2487.      */
  2488.     public function getProductLangPl(): ProductLangPl
  2489.     {
  2490.         return $this->productLangPl;
  2491.     }
  2492.     /**
  2493.      * @return ProductLangPt
  2494.      */
  2495.     public function getProductLangPt(): ProductLangPt
  2496.     {
  2497.         return $this->productLangPt;
  2498.     }
  2499.     /**
  2500.      * @return ProductLangRo
  2501.      */
  2502.     public function getProductLangRo(): ProductLangRo
  2503.     {
  2504.         return $this->productLangRo;
  2505.     }
  2506.     /**
  2507.      * @return ProductLangRu
  2508.      */
  2509.     public function getProductLangRu(): ProductLangRu
  2510.     {
  2511.         return $this->productLangRu;
  2512.     }
  2513.     /**
  2514.      * @return ProductLangSi
  2515.      */
  2516.     public function getProductLangSi(): ProductLangSi
  2517.     {
  2518.         return $this->productLangSi;
  2519.     }
  2520.     /**
  2521.      * @return ProductLangSk
  2522.      */
  2523.     public function getProductLangSk(): ProductLangSk
  2524.     {
  2525.         return $this->productLangSk;
  2526.     }
  2527.     /**
  2528.      * @return ProductLangSv
  2529.      */
  2530.     public function getProductLangSv(): ProductLangSv
  2531.     {
  2532.         return $this->productLangSv;
  2533.     }
  2534.     public function isBuyBox(): bool
  2535.     {
  2536.         return $this->buyBox;
  2537.     }
  2538.     public function setBuyBox(bool $buyBox): void
  2539.     {
  2540.         $this->buyBox $buyBox;
  2541.     }
  2542.     public function getPartNumber(): ?string
  2543.     {
  2544.         return $this->partNumber;
  2545.     }
  2546.     public function setPartNumber(string $partNumber): Product
  2547.     {
  2548.         $this->partNumber $partNumber;
  2549.         return $this;
  2550.     }
  2551.     public function getCanon(): ?float
  2552.     {
  2553.         return $this->canon;
  2554.     }
  2555.     public function setCanon(float $canon): Product
  2556.     {
  2557.         $this->canon $canon;
  2558.         return $this;
  2559.     }
  2560. }