<?php
namespace App\Entity\System;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Product
*
* @ORM\Table(name="ps_product")
*
* @ORM\Entity(repositoryClass="App\Repository\System\ProductRepository")
*/
class Product
{
public const SELLING_CHANNEL_BIGBUY_EU = 'BIGBUY_EU';
public const SELLING_CHANNEL_DROPSHIPPING = 'DROPSHIPPING';
public const SELLING_CHANNELS_ALLOWED_INDEX = [
self::SELLING_CHANNEL_DROPSHIPPING => true,
self::SELLING_CHANNEL_BIGBUY_EU => true,
];
public const SHOPIFY_PRODUCTS = [95079, 95082, 95083, 95085, 95092, 95093, 95094];
public const SHOP_360_PRODUCTS = [41256, 41259, 206924, 206923, 206922, 206921, 206920, 206919, 273397, 273398];
public const INIT_AMOUNT_PRODUCT_ID = 34990;
public const COURSE_ECOMMERCE_SKU = 'SRV01028';
public const COURSE_SHOPIFY_STORE_CONTROL_ONBOARDING_SKU = 'SRV01016';
public const COURSE_SHOPIFY_SETUP_ESSENTIALS_ONBOARDING_SKU = 'SRV01022';
public const SHOPIFY_COURSES_GIFT_REFERENCES = [self::COURSE_SHOPIFY_SETUP_ESSENTIALS_ONBOARDING_SKU];
public const SHOPS_COURSES_GIFT_REFERENCES = [self::COURSE_SHOPIFY_STORE_CONTROL_ONBOARDING_SKU, self::COURSE_ECOMMERCE_SKU];
public const FEATURE_LANG_POWER_MBA = 4907;
public const FEATURE_ACADEMY_COURSE_TYPE = 4920;
public const FEATURE_ACADEMY_COURSE_TYPE_ONBOARDING = 231154;
public const FEATURE_ACADEMY_COURSE_TYPE_INTERNAL = 233082;
public const FEATURE_ACADEMY_COURSE_TYPE_EXTERNAL = 233517;
public const FEATURE_ACADEMY_COURSE_TYPE_REGISTRATION = 234032;
public const FEATURE_COUNTRY_OF_ORIGIN = 279;
public const FEATURE_PLUG_EU = 28017;
public const MONEYBOX_PRODUCT_ID = 13690;
public const REGISTRATION_COURSE_SKU = 'SRV01037';
public const RENOVATION_COURSE_SKU = 'SRV01038';
public const POWER_MBA_REGISTRATION_REFERENCES = [self::REGISTRATION_COURSE_SKU, self::RENOVATION_COURSE_SKU];
public const FEATURES_INCLUDED_FOR_API = [
self::FEATURE_COUNTRY_OF_ORIGIN,
self::FEATURE_PLUG_EU,
];
public const PACK_MARKETPLACES_ANNUAL_PRODUCT_ID = 95301;
public const PACK_MARKETPLACES_ANNUAL_PRODUCT_SKU = 'PACKMARKETPLACES-A';
public const PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID = 95303;
public const PACK_MARKETPLACES_BIANNUAL_PRODUCT_SKU = 'PACKMARKETPLACES-S';
public const PACK_MARKETPLACES_MONTHLY_PRODUCT_ID = 95302;
public const PACK_MARKETPLACES_MONTHLY_PRODUCT_SKU = 'PACKMARKETPLACES-M';
public const NEW_PACK_MARKETPLACES_ANNUAL_PRODUCT_ID = 165016;
public const NEW_PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID = 165028;
public const NEW_PACK_MARKETPLACES_MONTHLY_PRODUCT_ID = 165024;
public const NEW_PACK_ENTERPRISE_MONTHLY_PRODUCT_ID = 100197;
public const NEW_PACK_ENTERPRISE_BIANNUAL_PRODUCT_ID = 100198;
public const NEW_PACK_ENTERPRISE_ANNUAL_PRODUCT_ID = 100196;
public const NEW_PACK_PRO_MONTHLY_PRODUCT_ID = 34986;
public const NEW_PACK_PRO_BIANNUAL_PRODUCT_ID = 34989;
public const NEW_PACK_PRO_ANNUAL_PRODUCT_ID = 34988;
public const NEW_PACK_DROPSHIP_MONTHLY_PRODUCT_ID = 100194;
public const NEW_PACK_DROPSHIP_BIANNUAL_PRODUCT_ID = 100195;
public const NEW_PACK_DROPSHIP_ANNUAL_PRODUCT_ID = 100193;
public const PACK_MARKETPLACES_PRODUCT_IDS = [
self::PACK_MARKETPLACES_ANNUAL_PRODUCT_ID,
self::PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID,
self::PACK_MARKETPLACES_MONTHLY_PRODUCT_ID,
self::NEW_PACK_MARKETPLACES_ANNUAL_PRODUCT_ID,
self::NEW_PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID,
self::NEW_PACK_MARKETPLACES_MONTHLY_PRODUCT_ID,
];
public const PACK_ECOMMERCE_ANNUAL_PRODUCT_ID = 95298;
public const PACK_ECOMMERCE_ANNUAL_PRODUCT_SKU = 'PACKECOMMERCE-A';
public const PACK_ECOMMERCE_BIANNUAL_PRODUCT_ID = 95300;
public const PACK_ECOMMERCE_BIANNUAL_PRODUCT_SKU = 'PACKECOMMERCE-S';
public const PACK_ECOMMERCE_MONTHLY_PRODUCT_ID = 95299;
public const PACK_ECOMMERCE_MONTHLY_PRODUCT_SKU = 'PACKECOMMERCE-M';
public const PACK_B2B_PRODUCT_ID = 100185;
public const PACK_B2B_PRODUCT_REFERENCE = 'PACKB2B';
public const PRESTASHOP_CONNECTOR_ID = 95290;
public const WOOCOMMERCE_CONNECTOR_ID = 121732;
public const SHOPIFY_CONNECTOR_ID = 95291;
public const WIX_CONNECTOR_ID = 364343;
public const AMAZON_EBAY_CONNECTOR_ID = 95289;
public const ALIEXPRESS_CONNECTOR_ID = 102221;
public const FNAC_CONNECTOR_ID = 116983;
public const CDISCOUNT_CONNECTOR_ID = 120519;
public const RAKUTEN_CONNECTOR_ID = 102222;
public const CARREFOUR_ES_CONNECTOR_ID = 116984;
public const DARTY_CONNECTOR_ID = 120520;
public const EPRICE_CONNECTOR_ID = 121729;
public const RUEDUCOMMERCE_CONNECTOR_ID = 121731;
public const CONFORAMA_CONNECTOR_ID = 121730;
public const KAUFLAND_CONNECTOR_ID = 131973;
public const BOL_CONNECTOR_ID = 131974;
public const MAGENTO_CONECTOR_ID = 169260;
public const MARKETPLACES_5x = 218735;
public const PC_COMPONENTES_CONNECTOR_ID = 206126;
public const WORTEN_CONNECTOR_ID = 270665;
public const ALLEGRO_CONNECTOR_ID = 314083;
public const LEROY_MERLIN_CONNECTOR_ID = 347188;
public const CDON_CONNECTOR_ID = 442297;
public const BACKMARKET_CONNECTOR_ID = 448991;
public const CARREFOUR_FR_CONNECTOR_ID = 449719;
public const ELECLERC_CONNECTOR_ID = 477824;
public const AMAZON_RAKUTEN_CONNECTOR_ID = 756394;
public const AMAZON_WORTEN_CONNECTOR_ID = 758387;
public const AMAZON_KAUFLAND_CONNECTOR_ID = 758391;
public const AMAZON_FNAC_CONNECTOR_ID = 758419;
public const AMAZON_EPRICE_CONNECTOR_ID = 758421;
public const AMAZON_CDON_CONNECTOR_ID = 758422;
public const EBAY_CONNECTOR_ID = 758423;
public const AMAZON_CONNECTOR_ID = 806955;
public const MEDIAMARKT_ES_CONNECTOR_ID = 1014998;
public const MEDIAMARKT_DE_CONNECTOR_ID = 1015099;
public const MEDIAMARKT_IT_CONNECTOR_ID = 1106825;
public const MANOMANO_CONNECTOR_ID = 1118101;
public const REFURBED_CONNECTOR_ID = 1118102;
public const SPRINTER_CONNECTOR_ID = 1118103;
public const CLUBEFASHION_CONNECTOR_ID = 1118104;
public const WISH_CONNECTOR_ID = 448860;
public const SHOP_360_SUPPLY = 95079;
public const SHOP_360_DISTRICT = 95082;
public const SHOP_360_AVENNUE = 95083;
public const SHOP_360_IMPULSE = 95085;
public const SHOP_360_CAPITAL = 95092;
public const SHOP_360_PRESTIGE = 95093;
public const SHOP_360_SHOWTIME = 95094;
public const STRIPE_PACK_B2B_PRICE = 'price_1REUiiHBUTIVHMpz1IK5yImo';
public const STRIPE_PACK_ECOMMERCE_MONTHLY_PRICE = 'price_1REVLQHBUTIVHMpz2YeuUN9z';
public const STRIPE_PACK_ECOMMERCE_ANNUAL_PRICE = 'price_1REVM4HBUTIVHMpzWOuf2517';
public const STRIPE_PACK_MARKETPLACE_MONTHLY_PRICE = 'price_1REVMZHBUTIVHMpzZ8Ezg3pM';
public const STRIPE_PACK_MARKETPLACE_ANNUAL_PRICE = 'price_1REVMrHBUTIVHMpzbsPP1LBF';
public const STRIPE_INIT_AMOUNT = 'price_1RP1aMHBUTIVHMpzdbcVtnRi';
public const PACK_ECOMMERCE_PRODUCT_IDS = [
self::PACK_ECOMMERCE_ANNUAL_PRODUCT_ID,
self::PACK_ECOMMERCE_BIANNUAL_PRODUCT_ID,
self::PACK_ECOMMERCE_MONTHLY_PRODUCT_ID,
];
public const PACKS_PRODUCT_IDS = [
self::PACK_MARKETPLACES_ANNUAL_PRODUCT_ID,
self::PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID,
self::PACK_MARKETPLACES_MONTHLY_PRODUCT_ID,
self::NEW_PACK_MARKETPLACES_ANNUAL_PRODUCT_ID,
self::NEW_PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID,
self::NEW_PACK_MARKETPLACES_MONTHLY_PRODUCT_ID,
self::PACK_ECOMMERCE_ANNUAL_PRODUCT_ID,
self::PACK_ECOMMERCE_BIANNUAL_PRODUCT_ID,
self::PACK_ECOMMERCE_MONTHLY_PRODUCT_ID,
self::PACK_B2B_PRODUCT_ID,
self::NEW_PACK_ENTERPRISE_MONTHLY_PRODUCT_ID,
self::NEW_PACK_ENTERPRISE_BIANNUAL_PRODUCT_ID,
self::NEW_PACK_ENTERPRISE_ANNUAL_PRODUCT_ID,
self::NEW_PACK_PRO_MONTHLY_PRODUCT_ID,
self::NEW_PACK_PRO_BIANNUAL_PRODUCT_ID,
self::NEW_PACK_PRO_ANNUAL_PRODUCT_ID,
self::NEW_PACK_DROPSHIP_MONTHLY_PRODUCT_ID,
self::NEW_PACK_DROPSHIP_BIANNUAL_PRODUCT_ID,
self::NEW_PACK_DROPSHIP_ANNUAL_PRODUCT_ID,
];
public const AMAZON_COMBINED_CONNECTOR_PRODUCT_IDS = [
self::AMAZON_CDON_CONNECTOR_ID,
self::AMAZON_EPRICE_CONNECTOR_ID,
self::AMAZON_FNAC_CONNECTOR_ID,
self::AMAZON_KAUFLAND_CONNECTOR_ID,
self::AMAZON_RAKUTEN_CONNECTOR_ID,
self::AMAZON_WORTEN_CONNECTOR_ID,
];
public const ALLOWED_CONNECTOR_PRODUCT_IDS_BY_PACK_ID = [
Pack::PACK_FREE => [],
Pack::PACK_B2B => [],
Pack::PACK_ECOMMERCE => [
self::PRESTASHOP_CONNECTOR_ID,
self::WOOCOMMERCE_CONNECTOR_ID,
self::SHOPIFY_CONNECTOR_ID,
self::WIX_CONNECTOR_ID,
self::SHOP_360_SUPPLY,
self::SHOP_360_DISTRICT,
self::SHOP_360_AVENNUE,
self::SHOP_360_IMPULSE,
self::SHOP_360_CAPITAL,
self::SHOP_360_PRESTIGE,
self::SHOP_360_SHOWTIME,
],
Pack::PACK_MARKETPLACES => [
self::AMAZON_EBAY_CONNECTOR_ID,
self::ALIEXPRESS_CONNECTOR_ID,
self::FNAC_CONNECTOR_ID,
self::CDISCOUNT_CONNECTOR_ID,
self::RAKUTEN_CONNECTOR_ID,
self::CARREFOUR_ES_CONNECTOR_ID,
self::DARTY_CONNECTOR_ID,
self::EPRICE_CONNECTOR_ID,
self::RUEDUCOMMERCE_CONNECTOR_ID,
self::CONFORAMA_CONNECTOR_ID,
self::KAUFLAND_CONNECTOR_ID,
self::BOL_CONNECTOR_ID,
self::SHOPIFY_CONNECTOR_ID,
self::PRESTASHOP_CONNECTOR_ID,
self::WOOCOMMERCE_CONNECTOR_ID,
self::MAGENTO_CONECTOR_ID,
self::MARKETPLACES_5x,
self::PC_COMPONENTES_CONNECTOR_ID,
self::WORTEN_CONNECTOR_ID,
self::ALLEGRO_CONNECTOR_ID,
self::WIX_CONNECTOR_ID,
self::LEROY_MERLIN_CONNECTOR_ID,
self::CDON_CONNECTOR_ID,
self::BACKMARKET_CONNECTOR_ID,
self::CARREFOUR_FR_CONNECTOR_ID,
self::ELECLERC_CONNECTOR_ID,
self::WISH_CONNECTOR_ID,
self::AMAZON_RAKUTEN_CONNECTOR_ID,
self::AMAZON_WORTEN_CONNECTOR_ID,
self::AMAZON_KAUFLAND_CONNECTOR_ID,
self::AMAZON_FNAC_CONNECTOR_ID,
self::AMAZON_EPRICE_CONNECTOR_ID,
self::AMAZON_CDON_CONNECTOR_ID,
self::EBAY_CONNECTOR_ID,
self::AMAZON_CONNECTOR_ID,
self::MEDIAMARKT_ES_CONNECTOR_ID,
self::MEDIAMARKT_DE_CONNECTOR_ID,
self::MEDIAMARKT_IT_CONNECTOR_ID,
self::MANOMANO_CONNECTOR_ID,
self::REFURBED_CONNECTOR_ID,
self::SPRINTER_CONNECTOR_ID,
self::CLUBEFASHION_CONNECTOR_ID,
self::SHOP_360_SUPPLY,
self::SHOP_360_DISTRICT,
self::SHOP_360_AVENNUE,
self::SHOP_360_IMPULSE,
self::SHOP_360_CAPITAL,
self::SHOP_360_PRESTIGE,
self::SHOP_360_SHOWTIME,
],
];
/** @deprecated use feature type self::FEATURE_ACADEMY_COURSE_TYPE_REGISTRATION */
public const REGISTRATION_COURSES_LIST = [self::REGISTRATION_COURSE_SKU, self::RENOVATION_COURSE_SKU];
public const SUPPORT_PRODUCT_ID = 5022;
public const MAINTENANCE_PRODUCT_ID = 1035502;
public const SUPPORT_AND_MAINTENANCE_PRODUCTS = [
self::SUPPORT_PRODUCT_ID,
self::MAINTENANCE_PRODUCT_ID,
];
public const CONDITION_NEW_NAME = 'NEW';
public const CONDITION_NEW_ID = 1;
public const CONDITION_REFURBISHED_A_NAME = 'REFURBISHED_A';
public const CONDITION_REFURBISHED_A_ID = 2;
public const CONDITION_REFURBISHED_A_PLUS_NAME = 'REFURBISHED_A_PLUS';
public const CONDITION_REFURBISHED_A_PLUS_ID = 3;
public const CONDITION_REFURBISHED_B_NAME = 'REFURBISHED_B';
public const CONDITION_REFURBISHED_B_ID = 4;
public const CONDITION_REFURBISHED_C_NAME = 'REFURBISHED_C';
public const CONDITION_REFURBISHED_C_ID = 5;
public const CONDITION_REFURBISHED_D_NAME = 'REFURBISHED_D';
public const CONDITION_REFURBISHED_D_ID = 6;
public const CONDITION_IDS_INDEXED_BY_NAME = [
self::CONDITION_NEW_NAME => self::CONDITION_NEW_ID,
self::CONDITION_REFURBISHED_A_NAME => self::CONDITION_REFURBISHED_A_ID,
self::CONDITION_REFURBISHED_A_PLUS_NAME => self::CONDITION_REFURBISHED_A_PLUS_ID,
self::CONDITION_REFURBISHED_B_NAME => self::CONDITION_REFURBISHED_B_ID,
self::CONDITION_REFURBISHED_C_NAME => self::CONDITION_REFURBISHED_C_ID,
self::CONDITION_REFURBISHED_D_NAME => self::CONDITION_REFURBISHED_D_ID,
];
/**
* @var int
*
* @ORM\Column(name="id_product", type="integer")
*
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var Tax
*
* @ORM\ManyToOne(targetEntity="Tax")
*
* @ORM\JoinColumn(name="id_tax", referencedColumnName="id_tax")
*/
private $tax;
/**
* @ORM\ManyToOne(targetEntity="Supplier")
*
* @ORM\JoinColumn(name="id_supplier", referencedColumnName="id_plazo_aprovisionamiento_proveedor", nullable=true)
*/
private ?Supplier $supplier;
/**
* @var bool
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 0})
*/
private $onSale;
/**
* @var bool
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 0})
*/
private $onlineOnly;
/**
* @var string|null
*
* @ORM\Column(name="ean13", type="string", length=13, nullable=true)
*/
private $ean;
/**
* @var string|null
*
* @ORM\Column(type="string", length=12, nullable=true)
*/
private $upc;
/**
* @var float|null
*
* @ORM\Column(type="decimal", precision=17, scale=6, options={"default" : 0.000000}, nullable=true)
*/
private $ecotax;
/**
* @var int|null
*
* @ORM\Column(type="integer", length=10, nullable=true, options={"default" : 0})
*/
private $quantity;
/**
* @var int|null
*
* @ORM\Column(type="integer", length=10, nullable=true, options={"default" : 1})
*/
private $minimalQuantity;
/**
* @var float
*
* @ORM\Column(name="price", type="decimal", precision=20, scale=6, options={"default" : 0.000000})
*/
private $price;
/**
* @var float
*
* @ORM\Column(name="wholesale_price", type="decimal", precision=20, scale=6, options={"default" : 0.000000})
*/
private $wholesalePrice;
/**
* /**
* @var string|null
*
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $unity;
/**
* @var string
*
* @ORM\Column(name="reference", type="string", length=32)
*/
private $sku;
/**
* @var bool
*
* @ORM\Column(name="active", type="boolean")
*/
private $active;
/**
* @var ArrayCollection|ProductImage[]
*
* @ORM\OneToMany(targetEntity="ProductImage", mappedBy="product", cascade={"persist"})
*/
private $productImages;
/**
* @var ArrayCollection|ProductAttribute[]
*
* @ORM\OneToMany(targetEntity="ProductAttribute", mappedBy="product", cascade={"persist"})
*/
private $productAttributes;
/**
* @var ArrayCollection|ProductDate[]
*
* @ORM\OneToMany(targetEntity="ProductDate", mappedBy="product", cascade={"persist"})
*/
private $productDates;
/**
* @var ArrayCollection|StockAvailable[]
*
* @ORM\OneToMany(targetEntity="StockAvailable", mappedBy="product", cascade={"persist", "remove"})
*/
private $stocks;
/**
* @var ArrayCollection|SpecificPrice[]
*
* @ORM\OneToMany(targetEntity="SpecificPrice", mappedBy="product", cascade={"persist", "remove"})
*/
private $specificPrices;
/**
* @var float
*
* @ORM\Column(name="wholesale_price_old", type="float", nullable=false)
*/
private $oldWholesalePrice;
/**
* @var int|null
*
* @ORM\Column(name="id_category_default", type="integer", length=10, nullable=true)
*/
private $categoryDefault;
/**
* @var bool
*
* @ORM\Column(name="sincronizar", type="boolean")
*/
private $sincronizar;
/**
* @var float
*
* @ORM\Column(name="weight", type="float")
*/
private $weight;
/**
* @var string|null
*
* @ORM\Column(name="ean13_2", type="string", length=13)
*/
private $eanVirtual;
/**
* @var float
*
* @ORM\Column(name="height", type="float")
*/
private $height;
/**
* @var float
*
* @ORM\Column(name="width", type="float")
*/
private $width;
/**
* @var float
*
* @ORM\Column(name="depth", type="float")
*/
private $depth;
/**
* @var float
*
* @ORM\Column(name="estimate_cost_price", type="float")
*/
private $estimateCostPrice;
/** @var string
* @ORM\Column(name="intrastat", type="string", length=32)
*/
private $intrastat;
/**
* @var bool
*
* @ORM\Column(name="is_virtual", type="boolean")
*/
private $isVirtual;
/**
* @var ArrayCollection|MinimumOrderQuantity[]
*
* @ORM\OneToMany(targetEntity="MinimumOrderQuantity", mappedBy="product", cascade={"persist", "remove"})
*/
private $minimumOrderQuantitys;
/**
* @var ArrayCollection|ProductEan[]
*
* @ORM\OneToMany(targetEntity="ProductEan", mappedBy="product", cascade={"persist"})
*/
private $productEans;
/**
* @ORM\Column(name="date_add", type="datetime")
*/
private $dateAdd;
/**
* @ORM\Column(name="date_upd", type="datetime")
*/
private $dateUpd;
/**
* @ORM\Column(name="date_next", type="datetime")
*/
private $dateNext;
/**
* @ORM\Column(name="date_new_stock", type="datetime")
*/
private $dateNewStock;
/**
* @ORM\Column(name="available_date", type="datetime")
*/
private $availableDate;
/**
* @ORM\Column(name="palet", type="integer")
*/
private $palletUnits;
/**
* @ORM\Column(name="box", type="integer")
*/
private $boxUnits;
/**
* @ORM\Column(name="video", type="string")
*/
private $video;
/**
* @var Brand
*
* @ORM\ManyToOne(targetEntity="Brand")
*
* @ORM\JoinColumn(name="id_manufacturer", referencedColumnName="id_manufacturer")
*/
private $manufacturer;
/**
* @var Subscription[]|ArrayCollection
*
* @ORM\OneToMany(targetEntity="Subscription", mappedBy="product", cascade={"persist"})
*/
private $subscriptions;
/**
* @var string|null
*
* @ORM\Column(name="logistic_class", type="string")
*/
private $logisticClass;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $idShopDefault;
/**
* @var float
*
* @ORM\Column(type="decimal", precision=20, scale=6)
*/
private $unitPriceRatio;
/**
* @var float
*
* @ORM\Column(type="decimal", precision=20, scale=2)
*/
private $additionalShippingCost;
/**
* @var string
*
* @ORM\Column(type="string", length=32)
*/
private $supplierReference;
/**
* @var string
*
* @ORM\Column(type="string", length=64)
*/
private $location;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $outOfStock;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $quantityDiscount;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $customizable;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $uploadableFiles;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $textFields;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $redirectType;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $idProductRedirected;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $availableForOrder;
/**
* @var \DateTime
*
* @ORM\Column(type="date")
*/
private $dateNew;
/**
* @var int
*
* @ORM\Column(type="integer", name="container_20p")
*/
private $container20p;
/**
* @var int
*
* @ORM\Column(type="integer", name="container_40p")
*/
private $container40p;
/**
* @var string
*
* @ORM\Column(type="string", length=50)
*/
private $picking;
/**
* @var string
*
* @ORM\Column(type="string", length=50)
*/
private $locationPalet1;
/**
* @var string
*
* @ORM\Column(type="string", length=50)
*/
private $locationPalet2;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $minimumQty;
/**
* @var string
*
* @ORM\Column(type="string", name="`condition`")
*/
private $condition;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $showPrice;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $indexed;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $visibility;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $cacheIsPack;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $cacheHasAttachments;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $cacheDefaultAttribute;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $advancedStockManagement;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $etiquetas;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $traducir;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $exportar;
/**
* @var string
*
* @ORM\Column(type="string", length=64)
*/
private $videoCsv;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $oldIdProduct;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $courierBox;
/**
* @var string
*
* @ORM\Column(type="string", length=32)
*/
private $oldReference;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $delay;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $remesa;
/**
* @var bool
*
* @ORM\Column(type="boolean", options={"default" : 0})
*/
private $productoElectronico;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $oldIdCategoryDefault;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $descatalogado;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $idProductCompras;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $aleatorio;
/**
* @var bool
*
* @ORM\Column(type="boolean")
*/
private $expositor;
/**
* @var int
*
* @ORM\Column(type="integer")
*/
private $relatedProduct;
/**
* @var ProductType|null
*
* @ORM\ManyToOne(targetEntity="ProductType")
*
* @ORM\JoinColumn(name="product_type_id", referencedColumnName="id")
*/
private $productType;
/**
* @var Taxonomy|null
*
* @ORM\ManyToOne(targetEntity="Taxonomy")
*
* @ORM\JoinColumn(name="id_taxonomy_default", referencedColumnName="id")
*/
private $taxonomyDefault;
/**
* @var ProductLangBg|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangBg", mappedBy="product")
*/
private $productLangBg;
/**
* @var ProductLangCs|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangCs", mappedBy="product")
*/
private $productLangCs;
/**
* @var ProductLangDa|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangDa", mappedBy="product")
*/
private $productLangDa;
/**
* @var ProductLangDe|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangDe", mappedBy="product")
*/
private $productLangDe;
/**
* @var ProductLangEl|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangEl", mappedBy="product")
*/
private $productLangEl;
/**
* @var ProductLangEn|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangEn", mappedBy="product")
*/
private $productLangEn;
/**
* @var ProductLangEs|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangEs", mappedBy="product")
*/
private $productLangEs;
/**
* @var ProductLangEt|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangEt", mappedBy="product")
*/
private $productLangEt;
/**
* @var ProductLangFi|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangFi", mappedBy="product")
*/
private $productLangFi;
/**
* @var ProductLangFr|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangFr", mappedBy="product")
*/
private $productLangFr;
/**
* @var ProductLangHr|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangHr", mappedBy="product")
*/
private $productLangHr;
/**
* @var ProductLangHu|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangHu", mappedBy="product")
*/
private $productLangHu;
/**
* @var ProductLangIt|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangIt", mappedBy="product")
*/
private $productLangIt;
/**
* @var ProductLangLt|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangLt", mappedBy="product")
*/
private $productLangLt;
/**
* @var ProductLangLv|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangLv", mappedBy="product")
*/
private $productLangLv;
/**
* @var ProductLangNl|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangNl", mappedBy="product")
*/
private $productLangNl;
/**
* @var ProductLangNo|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangNo", mappedBy="product")
*/
private $productLangNo;
/**
* @var ProductLangPl|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangPl", mappedBy="product")
*/
private $productLangPl;
/**
* @var ProductLangPt|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangPt", mappedBy="product")
*/
private $productLangPt;
/**
* @var ProductLangRo|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangRo", mappedBy="product")
*/
private $productLangRo;
/**
* @var ProductLangRu|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangRu", mappedBy="product")
*/
private $productLangRu;
/**
* @var ProductLangSi|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangSi", mappedBy="product")
*/
private $productLangSi;
/**
* @var ProductLangSk|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangSk", mappedBy="product")
*/
private $productLangSk;
/**
* @var ProductLangSv|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\ProductLangSv", mappedBy="product")
*/
private $productLangSv;
/**
* @var Category[]|ArrayCollection<int, Category>
*
* @ORM\ManyToMany(targetEntity="Category", cascade={"persist"}, indexBy="reference")
*
* @ORM\JoinTable(name="ps_category_product",
* joinColumns={@ORM\JoinColumn(name="id_product", referencedColumnName="id_product")},
* inverseJoinColumns={@ORM\JoinColumn(name="id_category", referencedColumnName="id_category")}
* )
*/
private $categories;
/**
* @var Taxonomy[]|ArrayCollection<int, Taxonomy>
*
* @ORM\ManyToMany(targetEntity="App\Entity\System\Taxonomy", inversedBy="products", cascade={"persist"}, indexBy="reference")
*
* @ORM\JoinTable(
* name="taxonomy_product",
* joinColumns={@ORM\JoinColumn(name="id_product", referencedColumnName="id_product", fieldName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="id", referencedColumnName="id", fieldName="id")}
* )
*/
private $taxonomies;
/**
* @var CoreUrlRewrite[]|ArrayCollection
*
* @ORM\OneToMany(targetEntity="App\Entity\System\CoreUrlRewrite", mappedBy="product", cascade={"persist"}, indexBy="id_lang")
*/
private $coreUrlRewrites;
/**
* @var Collection<int, ProductCatalog>|ProductCatalog[]
*
* @ORM\OneToMany(targetEntity="ProductCatalog", mappedBy="product", orphanRemoval=true)
*/
private $productCatalogs;
/**
* @var int
*
* @ORM\Column(name="id_taxonomy_default", type="integer")
*/
private $defaultTaxonomyId;
/**
* @var bool
*
* @ORM\Column(name="buybox", type="boolean")
*/
private $buyBox;
/**
* @var FutureStock[]|Collection
*
* @ORM\OneToMany(targetEntity="FutureStock", mappedBy="product")
*/
private $futureStocks;
/**
* @ORM\Column(type="string", length=128)
*/
private ?string $partNumber = null;
/**
* * @ORM\Column(type="float")
*/
private ?float $canon = null;
/**
* @var FeatureValue[]|ArrayCollection<int, FeatureValue>
*
* @ORM\ManyToMany(targetEntity="FeatureValue", indexBy="reference")
*
* @ORM\JoinTable(
* name="ps_feature_value_product",
* joinColumns={
*
* @ORM\JoinColumn(name="id_product", referencedColumnName="id_product")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="id_feature_value", referencedColumnName="id")
* }
* )
*/
private $featureValues;
/**
* Product constructor.
*/
public function __construct()
{
$this->productAttributes = new ArrayCollection();
$this->productImages = new ArrayCollection();
$this->productDates = new ArrayCollection();
$this->minimumOrderQuantitys = new ArrayCollection();
$this->subscriptions = new ArrayCollection();
$this->productEans = new ArrayCollection();
$this->featureValues = new ArrayCollection();
$this->idShopDefault = 1;
$this->onSale = false;
$this->onlineOnly = false;
$this->ecotax = 0;
$this->quantity = 0;
$this->minimalQuantity = 1;
$this->price = 0;
$this->wholesalePrice = 0;
$this->unitPriceRatio = 0;
$this->additionalShippingCost = 0;
$this->weight = 0;
$this->height = 0;
$this->depth = 0;
$this->width = 0;
$this->outOfStock = 2;
$this->quantityDiscount = 0;
$this->customizable = 0;
$this->uploadableFiles = 0;
$this->textFields = 0;
$this->redirectType = '404';
$this->idProductRedirected = 0;
$this->availableForOrder = true;
$this->boxUnits = 0;
$this->container20p = 0;
$this->container40p = 0;
$this->palletUnits = 0;
$this->minimumQty = 0;
$this->condition = 'new';
$this->showPrice = true;
$this->indexed = false;
$this->visibility = 'both';
$this->cacheIsPack = false;
$this->cacheHasAttachments = false;
$this->isVirtual = false;
$this->advancedStockManagement = false;
$this->traducir = false;
$this->exportar = false;
$this->sincronizar = false;
$this->productoElectronico = false;
$this->oldWholesalePrice = 0;
$this->estimateCostPrice = 0;
$this->intrastat = null;
$this->taxonomies = new ArrayCollection();
$this->coreUrlRewrites = new ArrayCollection();
$this->productCatalogs = new ArrayCollection();
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
public function setId(int $id): Product
{
$this->id = $id;
return $this;
}
/**
* @return Supplier|null
*/
public function getSupplier(): ?Supplier
{
return $this->supplier;
}
public function setSupplier(?Supplier $supplier): Product
{
$this->supplier = $supplier;
return $this;
}
/**
* @return bool
*/
public function isOnSale(): bool
{
return $this->onSale;
}
/**
* @param bool $onSale
*
* @return Product
*/
public function setOnSale(bool $onSale): Product
{
$this->onSale = $onSale;
return $this;
}
/**
* @return bool
*/
public function isOnlineOnly(): bool
{
return $this->onlineOnly;
}
/**
* @param bool $onlineOnly
*
* @return Product
*/
public function setOnlineOnly(bool $onlineOnly): Product
{
$this->onlineOnly = $onlineOnly;
return $this;
}
/**
* @return string|null
*/
public function getEan(): ?string
{
return $this->ean;
}
/**
* @param string|null $ean
*
* @return Product
*/
public function setEan(?string $ean): Product
{
$this->ean = $ean;
return $this;
}
/**
* @return string|null
*/
public function getUpc(): ?string
{
return $this->upc;
}
/**
* @param string|null $upc
*
* @return Product
*/
public function setUpc(?string $upc): Product
{
$this->upc = $upc;
return $this;
}
/**
* @return float|null
*/
public function getEcotax(): ?float
{
return $this->ecotax;
}
/**
* @param float|null $ecotax
*
* @return Product
*/
public function setEcotax(?float $ecotax): Product
{
$this->ecotax = $ecotax;
return $this;
}
/**
* @return int|null
*/
public function getQuantity(): ?int
{
return $this->quantity;
}
/**
* @param int|null $quantity
*
* @return Product
*/
public function setQuantity(?int $quantity): Product
{
$this->quantity = $quantity;
return $this;
}
/**
* @return int|null
*/
public function getMinimalQuantity(): ?int
{
return $this->minimalQuantity;
}
/**
* @param int|null $minimalQuantity
*
* @return Product
*/
public function setMinimalQuantity(?int $minimalQuantity): Product
{
$this->minimalQuantity = $minimalQuantity;
return $this;
}
/**
* @return float
*/
public function getPrice(): float
{
return $this->price;
}
/**
* @param float $price
*
* @return Product
*/
public function setPrice(float $price): Product
{
$this->price = $price;
return $this;
}
/**
* @return float
*/
public function getWholesalePrice(): float
{
return $this->wholesalePrice;
}
/**
* @param float $wholesalePrice
*
* @return Product
*/
public function setWholesalePrice(float $wholesalePrice): Product
{
$this->wholesalePrice = $wholesalePrice;
return $this;
}
/**
* @return string|null
*/
public function getUnity(): ?string
{
return $this->unity;
}
/**
* @param string|null $unity
*
* @return Product
*/
public function setUnity(?string $unity): Product
{
$this->unity = $unity;
return $this;
}
/**
* @return string
*/
public function getSku(): string
{
return $this->sku;
}
/**
* @param string $sku
*
* @return Product
*/
public function setSku(string $sku): Product
{
$this->sku = $sku;
return $this;
}
/**
* @return bool
*/
public function isActive(): bool
{
return $this->active;
}
/**
* @param bool $active
*
* @return Product
*/
public function setActive(bool $active): Product
{
$this->active = $active;
return $this;
}
/**
* @return ProductImage[]|ArrayCollection<int, ProductImage>
*/
public function getProductImages()
{
return $this->productImages;
}
/**
* @param ProductImage[]|ArrayCollection<int, ProductImage> $productImages
*
* @return Product
*/
public function setProductImages($productImages): Product
{
$this->productImages = $productImages;
return $this;
}
/**
* @return ProductAttribute[]|ArrayCollection<int, ProductAttribute>
*/
public function getProductAttributes()
{
return $this->productAttributes;
}
/**
* @param ProductAttribute[] $productAttributes
*
* @return Product
*/
public function setProductAttributes($productAttributes): Product
{
$this->productAttributes = $productAttributes;
return $this;
}
/**
* @return ProductDate[]|ArrayCollection
*/
public function getProductDates()
{
return $this->productDates;
}
/**
* @param ProductDate[]|ArrayCollection $productDates
*
* @return Product
*/
public function setProductDates($productDates): Product
{
$this->productDates = $productDates;
return $this;
}
/**
* @return StockAvailable[]|ArrayCollection<int, StockAvailable>
*/
public function getStocks()
{
return $this->stocks;
}
/**
* @param StockAvailable[]|ArrayCollection $stocks
*
* @return Product
*/
public function setStocks($stocks): Product
{
$this->stocks = $stocks;
return $this;
}
/**
* @return SpecificPrice[]|ArrayCollection
*/
public function getSpecificPrices()
{
return $this->specificPrices;
}
/**
* @param SpecificPrice[]|ArrayCollection $specificPrices
*
* @return Product
*/
public function setSpecificPrices($specificPrices): Product
{
$this->specificPrices = $specificPrices;
return $this;
}
/**
* @return float
*/
public function getOldWholesalePrice(): float
{
return $this->oldWholesalePrice;
}
/**
* @param float $oldWholesalePrice
*
* @return Product
*/
public function setOldWholesalePrice(float $oldWholesalePrice): Product
{
$this->oldWholesalePrice = $oldWholesalePrice;
return $this;
}
/**
* @return int|null
*/
public function getCategoryDefault(): ?int
{
return $this->categoryDefault;
}
/**
* @param int|null $categoryDefault
*
* @return Product
*/
public function setCategoryDefault(?int $categoryDefault): Product
{
$this->categoryDefault = $categoryDefault;
return $this;
}
public function getSincronizar(): bool
{
return $this->sincronizar;
}
public function setSincronizar(bool $sincronizar): Product
{
$this->sincronizar = $sincronizar;
return $this;
}
/**
* @return float
*/
public function getWeight(): float
{
return $this->weight;
}
/**
* @param float $weight
*
* @return Product
*/
public function setWeight(float $weight): Product
{
$this->weight = $weight;
return $this;
}
/**
* @return string
*/
public function getEanVirtual(): ?string
{
return $this->eanVirtual;
}
/**
* @param string $eanVirtual
*
* @return Product
*/
public function setEanVirtual(string $eanVirtual): Product
{
$this->eanVirtual = $eanVirtual;
return $this;
}
/**
* @return float
*/
public function getHeight(): float
{
return $this->height;
}
/**
* @param float $height
*
* @return Product
*/
public function setHeight(float $height): Product
{
$this->height = $height;
return $this;
}
/**
* @return float
*/
public function getWidth(): float
{
return $this->width;
}
/**
* @param float $width
*
* @return Product
*/
public function setWidth(float $width): Product
{
$this->width = $width;
return $this;
}
/**
* @return float
*/
public function getDepth(): float
{
return $this->depth;
}
/**
* @param float $depth
*
* @return Product
*/
public function setDepth(float $depth): Product
{
$this->depth = $depth;
return $this;
}
/**
* @return float
*/
public function getEstimateCostPrice(): float
{
return $this->estimateCostPrice;
}
/**
* @param float $estimateCostPrice
*
* @return Product
*/
public function setEstimateCostPrice(float $estimateCostPrice): Product
{
$this->estimateCostPrice = $estimateCostPrice;
return $this;
}
/**
* @return bool
*/
public function isVirtual(): bool
{
return $this->isVirtual;
}
/**
* @param bool $isVirtual
*
* @return Product
*/
public function setIsVirtual(bool $isVirtual): Product
{
$this->isVirtual = $isVirtual;
return $this;
}
/**
* @return MinimumOrderQuantity[]|ArrayCollection
*/
public function getMinimumOrderQuantitys()
{
return $this->minimumOrderQuantitys;
}
/**
* @param MinimumOrderQuantity[] $minimumOrderQuantitys
*
* @return Product
*/
public function setMinimumOrderQuantitys($minimumOrderQuantitys): Product
{
$this->minimumOrderQuantitys = $minimumOrderQuantitys;
return $this;
}
/**
* @return ProductEan[]|ArrayCollection
*/
public function getProductEans()
{
return $this->productEans;
}
/**
* @param ProductEan[]|ArrayCollection<int, ProductEan> $productEans
*
* @return Product
*/
public function setProductEans($productEans): Product
{
$this->productEans = $productEans;
return $this;
}
/**
* @return mixed
*/
public function getDateAdd()
{
return $this->dateAdd;
}
/**
* @param mixed $dateAdd
*
* @return Product
*/
public function setDateAdd($dateAdd): Product
{
$this->dateAdd = $dateAdd;
return $this;
}
/**
* @return mixed
*/
public function getDateUpd()
{
return $this->dateUpd;
}
/**
* @param mixed $dateUpd
*
* @return Product
*/
public function setDateUpd($dateUpd): Product
{
$this->dateUpd = $dateUpd;
return $this;
}
/**
* @return mixed
*/
public function getDateNext()
{
return $this->dateNext;
}
/**
* @param mixed $dateNext
*
* @return Product
*/
public function setDateNext($dateNext): Product
{
$this->dateNext = $dateNext;
return $this;
}
/**
* @return mixed
*/
public function getDateNewStock()
{
return $this->dateNewStock;
}
/**
* @param mixed $dateNewStock
*
* @return Product
*/
public function setDateNewStock($dateNewStock): Product
{
$this->dateNewStock = $dateNewStock;
return $this;
}
/**
* @return mixed
*/
public function getAvailableDate()
{
return $this->availableDate;
}
/**
* @param mixed $availableDate
*
* @return Product
*/
public function setAvailableDate($availableDate): Product
{
$this->availableDate = $availableDate;
return $this;
}
/**
* @return mixed
*/
public function getPalletUnits()
{
return $this->palletUnits;
}
/**
* @param mixed $palletUnits
*
* @return Product
*/
public function setPalletUnits($palletUnits): Product
{
$this->palletUnits = $palletUnits;
return $this;
}
/**
* @return mixed
*/
public function getBoxUnits()
{
return $this->boxUnits;
}
/**
* @param mixed $boxUnits
*
* @return Product
*/
public function setBoxUnits($boxUnits): Product
{
$this->boxUnits = $boxUnits;
return $this;
}
/**
* @return mixed
*/
public function getVideo()
{
return $this->video;
}
/**
* @param mixed $video
*
* @return Product
*/
public function setVideo($video): Product
{
$this->video = $video;
return $this;
}
/**
* @return Brand
*/
public function getManufacturer(): Brand
{
return $this->manufacturer;
}
/**
* @param Brand $manufacturer
*
* @return Product
*/
public function setManufacturer(Brand $manufacturer): Product
{
$this->manufacturer = $manufacturer;
return $this;
}
/**
* @return Subscription[]|ArrayCollection
*/
public function getSubscriptions(): Subscription
{
return $this->subscriptions;
}
/**
* @param Subscription[]|ArrayCollection $subscriptions
*
* @return Product
*/
public function setSubscriptions($subscriptions): Product
{
$this->subscriptions = $subscriptions;
return $this;
}
/**
* @return string|null
*/
public function getLogisticClass(): ?string
{
return $this->logisticClass;
}
/**
* @param string|null $logisticClass
*
* @return Product
*/
public function setLogisticClass(?string $logisticClass): Product
{
$this->logisticClass = $logisticClass;
return $this;
}
/**
* @return string
*/
public function getLocation(): string
{
return $this->location;
}
/**
* @param string $location
*
* @return Product
*/
public function setLocation(string $location): Product
{
$this->location = $location;
return $this;
}
/**
* @return int
*/
public function getOutOfStock(): int
{
return $this->outOfStock;
}
/**
* @param int $outOfStock
*
* @return Product
*/
public function setOutOfStock(int $outOfStock): Product
{
$this->outOfStock = $outOfStock;
return $this;
}
/**
* @return bool
*/
public function isQuantityDiscount(): bool
{
return $this->quantityDiscount;
}
/**
* @param bool $quantityDiscount
*
* @return Product
*/
public function setQuantityDiscount(bool $quantityDiscount): Product
{
$this->quantityDiscount = $quantityDiscount;
return $this;
}
/**
* @return int
*/
public function getCustomizable(): int
{
return $this->customizable;
}
/**
* @param int $customizable
*
* @return Product
*/
public function setCustomizable(int $customizable): Product
{
$this->customizable = $customizable;
return $this;
}
/**
* @return int
*/
public function getUploadableFiles(): int
{
return $this->uploadableFiles;
}
/**
* @param int $uploadableFiles
*
* @return Product
*/
public function setUploadableFiles(int $uploadableFiles): Product
{
$this->uploadableFiles = $uploadableFiles;
return $this;
}
/**
* @return int
*/
public function getTextFields(): int
{
return $this->textFields;
}
/**
* @param int $textFields
*
* @return Product
*/
public function setTextFields(int $textFields): Product
{
$this->textFields = $textFields;
return $this;
}
/**
* @return string
*/
public function getRedirectType(): string
{
return $this->redirectType;
}
/**
* @param string $redirectType
*
* @return Product
*/
public function setRedirectType(string $redirectType): Product
{
$this->redirectType = $redirectType;
return $this;
}
/**
* @return int
*/
public function getIdProductRedirected(): int
{
return $this->idProductRedirected;
}
/**
* @param int $idProductRedirected
*
* @return Product
*/
public function setIdProductRedirected(int $idProductRedirected): Product
{
$this->idProductRedirected = $idProductRedirected;
return $this;
}
/**
* @return bool
*/
public function isAvailableForOrder(): bool
{
return $this->availableForOrder;
}
/**
* @param bool $availableForOrder
*
* @return Product
*/
public function setAvailableForOrder(bool $availableForOrder): Product
{
$this->availableForOrder = $availableForOrder;
return $this;
}
/**
* @return \DateTime
*/
public function getDateNew(): \DateTime
{
return $this->dateNew;
}
/**
* @param \DateTime $dateNew
*
* @return Product
*/
public function setDateNew(\DateTime $dateNew): Product
{
$this->dateNew = $dateNew;
return $this;
}
/**
* @return int
*/
public function getContainer20p(): int
{
return $this->container20p;
}
/**
* @param int $container20p
*
* @return Product
*/
public function setContainer20p(int $container20p): Product
{
$this->container20p = $container20p;
return $this;
}
/**
* @return int
*/
public function getContainer40p(): int
{
return $this->container40p;
}
/**
* @param int $container40p
*
* @return Product
*/
public function setContainer40p(int $container40p): Product
{
$this->container40p = $container40p;
return $this;
}
/**
* @return string
*/
public function getPicking(): string
{
return $this->picking;
}
/**
* @param string $picking
*
* @return Product
*/
public function setPicking(string $picking): Product
{
$this->picking = $picking;
return $this;
}
/**
* @return string
*/
public function getLocationPalet1(): string
{
return $this->locationPalet1;
}
/**
* @param string $locationPalet1
*
* @return Product
*/
public function setLocationPalet1(string $locationPalet1): Product
{
$this->locationPalet1 = $locationPalet1;
return $this;
}
/**
* @return string
*/
public function getLocationPalet2(): string
{
return $this->locationPalet2;
}
/**
* @param string $locationPalet2
*
* @return Product
*/
public function setLocationPalet2(string $locationPalet2): Product
{
$this->locationPalet2 = $locationPalet2;
return $this;
}
/**
* @return int
*/
public function getMinimumQty(): int
{
return $this->minimumQty;
}
/**
* @param int $minimumQty
*
* @return Product
*/
public function setMinimumQty(int $minimumQty): Product
{
$this->minimumQty = $minimumQty;
return $this;
}
/**
* @return string
*/
public function getCondition(): string
{
return $this->condition;
}
/**
* @param string $condition
*
* @return Product
*/
public function setCondition(string $condition): Product
{
$this->condition = $condition;
return $this;
}
/**
* @return bool
*/
public function isShowPrice(): bool
{
return $this->showPrice;
}
/**
* @param bool $showPrice
*
* @return Product
*/
public function setShowPrice(bool $showPrice): Product
{
$this->showPrice = $showPrice;
return $this;
}
/**
* @return bool
*/
public function isIndexed(): bool
{
return $this->indexed;
}
/**
* @param bool $indexed
*
* @return Product
*/
public function setIndexed(bool $indexed): Product
{
$this->indexed = $indexed;
return $this;
}
/**
* @return string
*/
public function getVisibility(): string
{
return $this->visibility;
}
/**
* @param string $visibility
*
* @return Product
*/
public function setVisibility(string $visibility): Product
{
$this->visibility = $visibility;
return $this;
}
/**
* @return bool
*/
public function isCacheIsPack(): bool
{
return $this->cacheIsPack;
}
/**
* @param bool $cacheIsPack
*
* @return Product
*/
public function setCacheIsPack(bool $cacheIsPack): Product
{
$this->cacheIsPack = $cacheIsPack;
return $this;
}
/**
* @return bool
*/
public function isCacheHasAttachments(): bool
{
return $this->cacheHasAttachments;
}
/**
* @param bool $cacheHasAttachments
*
* @return Product
*/
public function setCacheHasAttachments(bool $cacheHasAttachments): Product
{
$this->cacheHasAttachments = $cacheHasAttachments;
return $this;
}
/**
* @return int
*/
public function getCacheDefaultAttribute(): int
{
return $this->cacheDefaultAttribute;
}
/**
* @param int $cacheDefaultAttribute
*
* @return Product
*/
public function setCacheDefaultAttribute(int $cacheDefaultAttribute): Product
{
$this->cacheDefaultAttribute = $cacheDefaultAttribute;
return $this;
}
/**
* @return bool
*/
public function isAdvancedStockManagement(): bool
{
return $this->advancedStockManagement;
}
/**
* @param bool $advancedStockManagement
*
* @return Product
*/
public function setAdvancedStockManagement(bool $advancedStockManagement): Product
{
$this->advancedStockManagement = $advancedStockManagement;
return $this;
}
/**
* @return string
*/
public function getEtiquetas(): string
{
return $this->etiquetas;
}
/**
* @param string $etiquetas
*
* @return Product
*/
public function setEtiquetas(string $etiquetas): Product
{
$this->etiquetas = $etiquetas;
return $this;
}
/**
* @return bool
*/
public function isTraducir(): bool
{
return $this->traducir;
}
/**
* @param bool $traducir
*
* @return Product
*/
public function setTraducir(bool $traducir): Product
{
$this->traducir = $traducir;
return $this;
}
/**
* @return bool
*/
public function isExportar(): bool
{
return $this->exportar;
}
/**
* @param bool $exportar
*
* @return Product
*/
public function setExportar(bool $exportar): Product
{
$this->exportar = $exportar;
return $this;
}
/**
* @return string
*/
public function getVideoCsv(): string
{
return $this->videoCsv;
}
/**
* @param string $videoCsv
*
* @return Product
*/
public function setVideoCsv(string $videoCsv): Product
{
$this->videoCsv = $videoCsv;
return $this;
}
/**
* @return int
*/
public function getOldIdProduct(): int
{
return $this->oldIdProduct;
}
/**
* @param int $oldIdProduct
*
* @return Product
*/
public function setOldIdProduct(int $oldIdProduct): Product
{
$this->oldIdProduct = $oldIdProduct;
return $this;
}
/**
* @return bool
*/
public function isCourierBox(): bool
{
return $this->courierBox;
}
/**
* @param bool $courierBox
*
* @return Product
*/
public function setCourierBox(bool $courierBox): Product
{
$this->courierBox = $courierBox;
return $this;
}
/**
* @return string
*/
public function getOldReference(): string
{
return $this->oldReference;
}
/**
* @param string $oldReference
*
* @return Product
*/
public function setOldReference(string $oldReference): Product
{
$this->oldReference = $oldReference;
return $this;
}
/**
* @return int
*/
public function getDelay(): int
{
return $this->delay;
}
/**
* @param int $delay
*
* @return Product
*/
public function setDelay(int $delay): Product
{
$this->delay = $delay;
return $this;
}
/**
* @return int
*/
public function getRemesa(): int
{
return $this->remesa;
}
/**
* @param int $remesa
*
* @return Product
*/
public function setRemesa(int $remesa): Product
{
$this->remesa = $remesa;
return $this;
}
/**
* @return bool
*/
public function isProductoElectronico(): bool
{
return $this->productoElectronico;
}
/**
* @param bool $productoElectronico
*
* @return Product
*/
public function setProductoElectronico(bool $productoElectronico): Product
{
$this->productoElectronico = $productoElectronico;
return $this;
}
/**
* @return int
*/
public function getOldIdCategoryDefault(): int
{
return $this->oldIdCategoryDefault;
}
/**
* @param int $oldIdCategoryDefault
*
* @return Product
*/
public function setOldIdCategoryDefault(int $oldIdCategoryDefault): Product
{
$this->oldIdCategoryDefault = $oldIdCategoryDefault;
return $this;
}
/**
* @return bool
*/
public function isDescatalogado(): bool
{
return $this->descatalogado;
}
/**
* @param bool $descatalogado
*
* @return Product
*/
public function setDescatalogado(bool $descatalogado): Product
{
$this->descatalogado = $descatalogado;
return $this;
}
/**
* @return int
*/
public function getIdProductCompras(): int
{
return $this->idProductCompras;
}
/**
* @param int $idProductCompras
*
* @return Product
*/
public function setIdProductCompras(int $idProductCompras): Product
{
$this->idProductCompras = $idProductCompras;
return $this;
}
/**
* @return bool
*/
public function isAleatorio(): bool
{
return $this->aleatorio;
}
/**
* @param bool $aleatorio
*
* @return Product
*/
public function setAleatorio(bool $aleatorio): Product
{
$this->aleatorio = $aleatorio;
return $this;
}
/**
* @return bool
*/
public function isExpositor(): bool
{
return $this->expositor;
}
/**
* @param bool $expositor
*
* @return Product
*/
public function setExpositor(bool $expositor): Product
{
$this->expositor = $expositor;
return $this;
}
/**
* @return int
*/
public function getRelatedProduct(): int
{
return $this->relatedProduct;
}
/**
* @param int $relatedProduct
*
* @return Product
*/
public function setRelatedProduct(int $relatedProduct): Product
{
$this->relatedProduct = $relatedProduct;
return $this;
}
/**
* @return ProductType|null
*/
public function getProductType(): ?ProductType
{
return $this->productType;
}
/**
* @param ProductType|null $productType
*
* @return Product
*/
public function setProductType(?ProductType $productType): self
{
$this->productType = $productType;
return $this;
}
/**
* @return ProductLangInterface[]
*/
public function getLanguages(): array
{
return [
1 => $this->productLangEn,
4 => $this->productLangEs,
5 => $this->productLangFr,
6 => $this->productLangDe,
7 => $this->productLangPt,
8 => $this->productLangEl,
9 => $this->productLangHr,
10 => $this->productLangIt,
11 => $this->productLangEt,
12 => $this->productLangDa,
13 => $this->productLangFi,
14 => $this->productLangRo,
15 => $this->productLangBg,
16 => $this->productLangHu,
18 => $this->productLangSk,
19 => $this->productLangSi,
20 => $this->productLangLt,
21 => $this->productLangLv,
22 => $this->productLangPl,
24 => $this->productLangNl,
25 => $this->productLangRu,
26 => $this->productLangNo,
27 => $this->productLangSv,
28 => $this->productLangCs,
];
}
/**
* @return Taxonomy[]|ArrayCollection<int, Taxonomy>
*/
public function getTaxonomies()
{
return $this->taxonomies;
}
/**
* @param Taxonomy[]|ArrayCollection<int, Taxonomy> $taxonomies
*
* @return Product
*/
public function setTaxonomies($taxonomies): Product
{
$this->taxonomies = $taxonomies;
return $this;
}
/**
* @return Category[]|ArrayCollection<int, Category>
*/
public function getCategories()
{
return $this->categories;
}
/**
* @param Category[]|ArrayCollection<int, Category> $categories
*
* @return Product
*/
public function setCategories($categories)
{
$this->categories = $categories;
return $this;
}
/**
* @return CoreUrlRewrite[]|ArrayCollection<int, CoreUrlRewrite>
*/
public function getCoreUrlRewrites()
{
return $this->coreUrlRewrites;
}
/**
* @param CoreUrlRewrite[]|ArrayCollection<int, CoreUrlRewrite> $coreUrlRewrites
*/
public function setCoreUrlRewrites($coreUrlRewrites): Product
{
$this->coreUrlRewrites = $coreUrlRewrites;
return $this;
}
/**
* @return Collection<int, ProductCatalog>|ProductCatalog[]
*/
public function getProductCatalogs(): Collection
{
return $this->productCatalogs;
}
/**
* @param Collection<int, ProductCatalog>|ProductCatalog[] $productCatalogs
*/
public function setProductCatalogs(Collection $productCatalogs): Product
{
$this->productCatalogs = $productCatalogs;
return $this;
}
public function getProductLangEn(): ?ProductLangEn
{
return $this->productLangEn;
}
public function getProductLangEs(): ?ProductLangEs
{
return $this->productLangEs;
}
/**
* @param ProductLangEn $productLangEn
*/
public function setProductLangEn(ProductLangEn $productLangEn): void
{
$this->productLangEn = $productLangEn;
}
/**
* @param ProductLangEs $productLangEs
*/
public function setProductLangEs(ProductLangEs $productLangEs): void
{
$this->productLangEs = $productLangEs;
}
/**
* @return Taxonomy
*/
public function getTaxonomyDefault(): Taxonomy
{
return $this->taxonomyDefault;
}
/**
* @param Taxonomy|null $taxonomyDefault
*
* @return Product
*/
public function setTaxonomyDefault(?Taxonomy $taxonomyDefault): self
{
$this->taxonomyDefault = $taxonomyDefault;
return $this;
}
/**
* @return string
*/
public function getIntrastat(): ?string
{
return $this->intrastat;
}
public function setIntrastat(string $intrastat): self
{
$this->intrastat = $intrastat;
return $this;
}
/**
* @return FutureStock[]|Collection
*/
public function getFutureStocks()
{
return $this->futureStocks;
}
/**
* @param string $isoCode
*
* @return ProductLangInterface|null
*/
public function getProductLangByIsoCode(string $isoCode): ?ProductLangInterface
{
if (!array_key_exists($isoCode, Language::LANGUAGE_IDS_INDEXED_BY_ISO_CODE)) {
return null;
}
$getProductLangMethod = 'getProductLang'.ucfirst($isoCode);
return $this->$getProductLangMethod();
}
public function getProductLangBg(): ?ProductLangBg
{
return $this->productLangBg;
}
public function getProductLangCs(): ?ProductLangCs
{
return $this->productLangCs;
}
public function getProductLangDa(): ?ProductLangDa
{
return $this->productLangDa;
}
public function getProductLangDe(): ?ProductLangDe
{
return $this->productLangDe;
}
public function getProductLangEl(): ?ProductLangEl
{
return $this->productLangEl;
}
public function getProductLangEt(): ?ProductLangEt
{
return $this->productLangEt;
}
public function getProductLangFi(): ?ProductLangFi
{
return $this->productLangFi;
}
public function getProductLangFr(): ?ProductLangFr
{
return $this->productLangFr;
}
public function getProductLangHr(): ?ProductLangHr
{
return $this->productLangHr;
}
public function getProductLangHu(): ?ProductLangHu
{
return $this->productLangHu;
}
public function getProductLangIt(): ?ProductLangIt
{
return $this->productLangIt;
}
public function getProductLangLt(): ?ProductLangLt
{
return $this->productLangLt;
}
public function getProductLangLv(): ?ProductLangLv
{
return $this->productLangLv;
}
public function getProductLangNl(): ?ProductLangNl
{
return $this->productLangNl;
}
public function getProductLangNo(): ?ProductLangNo
{
return $this->productLangNo;
}
public function getProductLangPl(): ?ProductLangPl
{
return $this->productLangPl;
}
public function getProductLangPt(): ?ProductLangPt
{
return $this->productLangPt;
}
public function getProductLangRo(): ?ProductLangRo
{
return $this->productLangRo;
}
public function getProductLangRu(): ?ProductLangRu
{
return $this->productLangRu;
}
public function getProductLangSi(): ?ProductLangSi
{
return $this->productLangSi;
}
public function getProductLangSk(): ?ProductLangSk
{
return $this->productLangSk;
}
public function getProductLangSv(): ?ProductLangSv
{
return $this->productLangSv;
}
public function isBuyBox(): bool
{
return $this->buyBox;
}
public function setBuyBox(bool $buyBox): void
{
$this->buyBox = $buyBox;
}
public function getTax(): Tax
{
return $this->tax;
}
public function setTax(Tax $tax): Product
{
$this->tax = $tax;
return $this;
}
public function getPartNumber(): ?string
{
return $this->partNumber;
}
public function setPartNumber(string $partNumber): Product
{
$this->partNumber = $partNumber;
return $this;
}
public function getCanon(): ?float
{
return $this->canon;
}
public function setCanon(float $canon): Product
{
$this->canon = $canon;
return $this;
}
/**
* @return FeatureValue[]|ArrayCollection<int, FeatureValue>
*/
public function getFeatureValues()
{
return $this->featureValues;
}
/**
* @param FeatureValue[]|ArrayCollection<int, FeatureValue> $featureValues
*/
public function setFeatureValues($featureValues): Product
{
$this->featureValues = $featureValues;
return $this;
}
public function setSupplierReference(string $supplierReference): Product
{
$this->supplierReference = $supplierReference;
return $this;
}
/**
* @param FeatureValue[] $toSaveArray
*/
public function addFeatureValues(array $toSaveArray): void
{
foreach ($toSaveArray as $featureValue) {
if (!$this->featureValues->contains($featureValue)) {
$this->featureValues->add($featureValue);
}
}
}
/**
* @param FeatureValue[] $toDeleteArray
*/
public function deleteFeatureValues(array $toDeleteArray): void
{
foreach ($toDeleteArray as $featureValue) {
if ($this->featureValues->contains($featureValue)) {
$this->featureValues->removeElement($featureValue);
}
}
}
}