Config.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Ups\Helper;
  7. /**
  8. * Configuration data of carrier
  9. *
  10. * @api
  11. * @since 100.0.2
  12. */
  13. class Config
  14. {
  15. /**
  16. * Get configuration data of carrier
  17. *
  18. * @param string $type
  19. * @param string $code
  20. * @return array|string|false
  21. */
  22. public function getCode($type, $code = '')
  23. {
  24. $codes = $this->getCodes();
  25. if (!isset($codes[$type])) {
  26. return false;
  27. } elseif ('' === $code) {
  28. return $codes[$type];
  29. }
  30. if (!isset($codes[$type][$code])) {
  31. return false;
  32. } else {
  33. return $codes[$type][$code];
  34. }
  35. }
  36. /**
  37. * Get configuration data of carrier
  38. *
  39. * @return array
  40. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  41. */
  42. protected function getCodes()
  43. {
  44. return [
  45. 'action' => ['single' => '3', 'all' => '4'],
  46. 'originShipment' => [
  47. // United States Domestic Shipments
  48. 'United States Domestic Shipments' => [
  49. '01' => __('UPS Next Day Air'),
  50. '02' => __('UPS Second Day Air'),
  51. '03' => __('UPS Ground'),
  52. '07' => __('UPS Worldwide Express'),
  53. '08' => __('UPS Worldwide Expedited'),
  54. '11' => __('UPS Standard'),
  55. '12' => __('UPS Three-Day Select'),
  56. '13' => __('UPS Next Day Air Saver'),
  57. '14' => __('UPS Next Day Air Early A.M.'),
  58. '54' => __('UPS Worldwide Express Plus'),
  59. '59' => __('UPS Second Day Air A.M.'),
  60. '65' => __('UPS Saver'),
  61. ],
  62. // Shipments Originating in United States
  63. 'Shipments Originating in United States' => [
  64. '01' => __('UPS Next Day Air'),
  65. '02' => __('UPS Second Day Air'),
  66. '03' => __('UPS Ground'),
  67. '07' => __('UPS Worldwide Express'),
  68. '08' => __('UPS Worldwide Expedited'),
  69. '11' => __('UPS Standard'),
  70. '12' => __('UPS Three-Day Select'),
  71. '14' => __('UPS Next Day Air Early A.M.'),
  72. '54' => __('UPS Worldwide Express Plus'),
  73. '59' => __('UPS Second Day Air A.M.'),
  74. '65' => __('UPS Worldwide Saver'),
  75. ],
  76. // Shipments Originating in Canada
  77. 'Shipments Originating in Canada' => [
  78. '01' => __('UPS Express'),
  79. '02' => __('UPS Expedited'),
  80. '07' => __('UPS Worldwide Express'),
  81. '08' => __('UPS Worldwide Expedited'),
  82. '11' => __('UPS Standard'),
  83. '12' => __('UPS Three-Day Select'),
  84. '14' => __('UPS Express Early A.M.'),
  85. '65' => __('UPS Saver'),
  86. ],
  87. // Shipments Originating in the European Union
  88. 'Shipments Originating in the European Union' => [
  89. '07' => __('UPS Express'),
  90. '08' => __('UPS Expedited'),
  91. '11' => __('UPS Standard'),
  92. '54' => __('UPS Worldwide Express PlusSM'),
  93. '65' => __('UPS Saver'),
  94. ],
  95. // Polish Domestic Shipments
  96. 'Polish Domestic Shipments' => [
  97. '07' => __('UPS Express'),
  98. '08' => __('UPS Expedited'),
  99. '11' => __('UPS Standard'),
  100. '54' => __('UPS Worldwide Express Plus'),
  101. '65' => __('UPS Saver'),
  102. '82' => __('UPS Today Standard'),
  103. '83' => __('UPS Today Dedicated Courrier'),
  104. '84' => __('UPS Today Intercity'),
  105. '85' => __('UPS Today Express'),
  106. '86' => __('UPS Today Express Saver'),
  107. ],
  108. // Puerto Rico Origin
  109. 'Puerto Rico Origin' => [
  110. '01' => __('UPS Next Day Air'),
  111. '02' => __('UPS Second Day Air'),
  112. '03' => __('UPS Ground'),
  113. '07' => __('UPS Worldwide Express'),
  114. '08' => __('UPS Worldwide Expedited'),
  115. '14' => __('UPS Next Day Air Early A.M.'),
  116. '54' => __('UPS Worldwide Express Plus'),
  117. '65' => __('UPS Saver'),
  118. ],
  119. // Shipments Originating in Mexico
  120. 'Shipments Originating in Mexico' => [
  121. '07' => __('UPS Express'),
  122. '08' => __('UPS Expedited'),
  123. '54' => __('UPS Express Plus'),
  124. '65' => __('UPS Saver'),
  125. ],
  126. // Shipments Originating in Other Countries
  127. 'Shipments Originating in Other Countries' => [
  128. '07' => __('UPS Express'),
  129. '08' => __('UPS Worldwide Expedited'),
  130. '11' => __('UPS Standard'),
  131. '54' => __('UPS Worldwide Express Plus'),
  132. '65' => __('UPS Saver'),
  133. ],
  134. ],
  135. 'method' => [
  136. '1DM' => __('Next Day Air Early AM'),
  137. '1DML' => __('Next Day Air Early AM Letter'),
  138. '1DA' => __('Next Day Air'),
  139. '1DAL' => __('Next Day Air Letter'),
  140. '1DAPI' => __('Next Day Air Intra (Puerto Rico)'),
  141. '1DP' => __('Next Day Air Saver'),
  142. '1DPL' => __('Next Day Air Saver Letter'),
  143. '2DM' => __('2nd Day Air AM'),
  144. '2DML' => __('2nd Day Air AM Letter'),
  145. '2DA' => __('2nd Day Air'),
  146. '2DAL' => __('2nd Day Air Letter'),
  147. '3DS' => __('3 Day Select'),
  148. 'GND' => __('Ground'),
  149. 'GNDCOM' => __('Ground Commercial'),
  150. 'GNDRES' => __('Ground Residential'),
  151. 'STD' => __('Canada Standard'),
  152. 'XPR' => __('Worldwide Express'),
  153. 'WXS' => __('Worldwide Express Saver'),
  154. 'XPRL' => __('Worldwide Express Letter'),
  155. 'XDM' => __('Worldwide Express Plus'),
  156. 'XDML' => __('Worldwide Express Plus Letter'),
  157. 'XPD' => __('Worldwide Expedited'),
  158. ],
  159. 'pickup' => [
  160. 'RDP' => ["label" => 'Regular Daily Pickup', "code" => "01"],
  161. 'OCA' => ["label" => 'On Call Air', "code" => "07"],
  162. 'OTP' => ["label" => 'One Time Pickup', "code" => "06"],
  163. 'LC' => ["label" => 'Letter Center', "code" => "19"],
  164. 'CC' => ["label" => 'Customer Counter', "code" => "03"],
  165. ],
  166. 'container' => [
  167. 'CP' => '00',
  168. 'ULE' => '01',
  169. 'CSP' => '02',
  170. 'UT' => '03',
  171. 'PAK' => '04',
  172. 'UEB' => '21',
  173. 'UW25' => '24',
  174. 'UW10' => '25',
  175. 'PLT' => '30',
  176. 'SEB' => '2a',
  177. 'MEB' => '2b',
  178. 'LEB' => '2c',
  179. ],
  180. 'container_description' => [
  181. 'CP' => __('Customer Packaging'),
  182. 'ULE' => __('UPS Letter Envelope'),
  183. 'CSP' => __('Customer Supplied Package'),
  184. 'UT' => __('UPS Tube'),
  185. 'PAK' => __('PAK'),
  186. 'UEB' => __('UPS Express Box'),
  187. 'UW25' => __('UPS Worldwide 25 kilo'),
  188. 'UW10' => __('UPS Worldwide 10 kilo'),
  189. 'PLT' => __('Pallet'),
  190. 'SEB' => __('Small Express Box'),
  191. 'MEB' => __('Medium Express Box'),
  192. 'LEB' => __('Large Express Box'),
  193. ],
  194. 'dest_type' => ['RES' => '01', 'COM' => '02'],
  195. 'dest_type_description' => ['RES' => __('Residential'), 'COM' => __('Commercial')],
  196. 'unit_of_measure' => ['LBS' => __('Pounds'), 'KGS' => __('Kilograms')],
  197. 'containers_filter' => [
  198. [
  199. 'containers' => ['00'], // Customer Packaging
  200. 'filters' => [
  201. 'within_us' => [
  202. 'method' => [
  203. '01', // Next Day Air
  204. '13', // Next Day Air Saver
  205. '12', // 3 Day Select
  206. '59', // 2nd Day Air AM
  207. '03', // Ground
  208. '14', // Next Day Air Early AM
  209. '02', // 2nd Day Air
  210. ],
  211. ],
  212. 'from_us' => [
  213. 'method' => [
  214. '07', // Worldwide Express
  215. '54', // Worldwide Express Plus
  216. '08', // Worldwide Expedited
  217. '65', // Worldwide Saver
  218. '11', // Standard
  219. ],
  220. ],
  221. ],
  222. ],
  223. // Small Express Box, Medium Express Box, Large Express Box, UPS Tube
  224. [
  225. 'containers' => ['2a', '2b', '2c', '03'],
  226. 'filters' => [
  227. 'within_us' => [
  228. 'method' => [
  229. '01', // Next Day Air
  230. '13', // Next Day Air Saver
  231. '14', // Next Day Air Early AM
  232. '02', // 2nd Day Air
  233. '59', // 2nd Day Air AM
  234. '13', // Next Day Air Saver
  235. ],
  236. ],
  237. 'from_us' => [
  238. 'method' => [
  239. '07', // Worldwide Express
  240. '54', // Worldwide Express Plus
  241. '08', // Worldwide Expedited
  242. '65', // Worldwide Saver
  243. ],
  244. ],
  245. ]
  246. ],
  247. [
  248. 'containers' => ['24', '25'], // UPS Worldwide 25 kilo, UPS Worldwide 10 kilo
  249. 'filters' => [
  250. 'within_us' => ['method' => []],
  251. 'from_us' => [
  252. 'method' => [
  253. '07', // Worldwide Express
  254. '54', // Worldwide Express Plus
  255. '65', // Worldwide Saver
  256. ],
  257. ],
  258. ]
  259. ],
  260. [
  261. 'containers' => ['01', '04'], // UPS Letter, UPS PAK
  262. 'filters' => [
  263. 'within_us' => [
  264. 'method' => [
  265. '01', // Next Day Air
  266. '14', // Next Day Air Early AM
  267. '02', // 2nd Day Air
  268. '59', // 2nd Day Air AM
  269. '13', // Next Day Air Saver
  270. ],
  271. ],
  272. 'from_us' => [
  273. 'method' => [
  274. '07', // Worldwide Express
  275. '54', // Worldwide Express Plus
  276. '65', // Worldwide Saver
  277. ],
  278. ],
  279. ]
  280. ],
  281. [
  282. 'containers' => ['04'], // UPS PAK
  283. 'filters' => [
  284. 'within_us' => ['method' => []],
  285. 'from_us' => ['method' => ['08']], // Worldwide Expedited
  286. ]
  287. ],
  288. ]
  289. ];
  290. }
  291. }