src/Entity/System/Product.php line 39

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