Advertisement
Guest User

Untitled

a guest
May 29th, 2015
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.33 KB | None | 0 0
  1. -- ALTER TABLE `mwcatalog_product_entity_varchar`
  2. -- ADD INDEX `FK_CATALOG_TEST` (`attribute_id`, `store_id`, `value`) USING BTREE;
  3.  
  4. SET @attribute_set_id = 125;
  5.  
  6. CALL XmlImportEntityMatch_Start('annelutfen', @attribute_set_id);
  7.  
  8. -- disable existing entities first
  9. UPDATE `mwcatalog_product_entity_int` ints
  10. INNER JOIN `mwcatalog_product_entity` p ON ints.`entity_id`=p.`entity_id` AND ints.`attribute_id` = 84 AND ints.`store_id` = 0
  11. SET ints.`value` = 0
  12. WHERE p.`attribute_set_id`=@attribute_set_id;
  13.  
  14. -- update existing entities
  15. UPDATE `mwcatalog_product_entity` p
  16. LEFT JOIN `XmlImportEntities` xie ON p.`sku`=xie.`SKU`
  17. SET p.`updated_at`=NOW()
  18. WHERE xie.`EntityId` IS NOT NULL;
  19.  
  20. -- insert new entities
  21. INSERT INTO `mwcatalog_product_entity`
  22. SELECT
  23. NULL AS `entity_id`,
  24. 4 AS `entity_type_id`,
  25. @attribute_set_id AS `attribute_set_id`,
  26. 'simple' AS `type_id`,
  27. xie.`SKU` AS `sku`,
  28. 0 AS `has_options`,
  29. 0 AS `required_options`,
  30. NOW() AS `created_at`,
  31. NOW() AS `updated_at`
  32. FROM
  33. `XmlImportEntities` xie
  34. WHERE
  35. xie.`EntityId` IS NULL;
  36.  
  37. -- set entity_id of inserted entities
  38. UPDATE
  39. `XmlImportEntities` xie
  40. LEFT JOIN `mwcatalog_product_entity` p ON xie.`sku`=p.`SKU`
  41. SET
  42. xie.`EntityId`=p.`entity_id`;
  43.  
  44. -- update quantity
  45. UPDATE
  46. `mwcataloginventory_stock_item` qty
  47. INNER JOIN `XmlImportEntities` xie ON qty.`product_id`=xie.`EntityId`
  48. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  49. SET
  50. qty.`qty`=xi.Quantity;
  51.  
  52. -- insert quantity
  53. INSERT INTO `mwcataloginventory_stock_item`
  54. SELECT
  55. NULL AS `item_id`,
  56. xie.`EntityId` AS `product_id`,
  57. 1 AS `stock_id`,
  58. xi.`Quantity` AS `qty`,
  59. 0 AS `min_qty`,
  60. 1 AS `use_config_min_qty`,
  61. 0 AS `is_qty_decimal`,
  62. 0 AS `backorders`,
  63. 1 AS `use_config_backorders`,
  64. 1 AS `min_sale_qty`,
  65. 0 AS `use_config_min_sale_qty`,
  66. 0 AS `max_sale_qty`,
  67. 1 AS `use_config_max_sale_qty`,
  68. 1 AS `is_in_stock`,
  69. NULL AS `low_stock_date`,
  70. NULL AS `notify_stock_qty`,
  71. 1 AS `use_config_notify_stock_qty`,
  72. 0 AS `manage_stock`,
  73. 1 AS `use_config_manage_stock`,
  74. 0 AS `stock_status_changed_automatically`,
  75. 1 AS `use_config_qty_increments`,
  76. 0 AS `qty_increments`,
  77. 1 AS `use_config_enable_qty_increments`,
  78. 0 AS `use_config_increments`
  79. FROM
  80. `XmlImportEntities` xie
  81. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  82. LEFT JOIN `mwcataloginventory_stock_item` qty ON xie.`EntityId`=qty.`product_id`
  83. WHERE
  84. qty.`product_id` IS NULL;
  85.  
  86. -- update ints
  87. UPDATE
  88. `mwcatalog_product_entity_int` ints
  89. INNER JOIN `XmlImportEntities` xie ON ints.`entity_id`=xie.`EntityId`
  90. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  91. SET
  92. ints.`value`=CASE ints.`attribute_id`
  93. WHEN 84 THEN 1
  94. END
  95. WHERE
  96. ints.`attribute_id` IN (84) AND ints.`store_id` = 0;
  97.  
  98. -- insert ints: status
  99. INSERT INTO `mwcatalog_product_entity_int`
  100. SELECT
  101. NULL AS `value_id`,
  102. 4 AS `entity_type_id`,
  103. 84 AS `attribute_id`,
  104. 0 AS `store_id`,
  105. xie.`EntityId` AS `entity_id`,
  106. 1 AS `value`
  107. FROM
  108. `XmlImportEntities` xie
  109. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  110. LEFT JOIN `mwcatalog_product_entity_int` ints ON xie.`EntityId`=ints.`entity_id`
  111. WHERE
  112. ints.`value_id` IS NULL;
  113.  
  114. -- insert ints: tax class
  115. INSERT INTO `mwcatalog_product_entity_int`
  116. SELECT
  117. NULL AS `value_id`,
  118. 4 AS `entity_type_id`,
  119. 85 AS `attribute_id`,
  120. 0 AS `store_id`,
  121. xie.`EntityId` AS `entity_id`,
  122. 3810 AS `value`
  123. FROM
  124. `XmlImportEntities` xie
  125. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  126. LEFT JOIN `mwcatalog_product_entity_int` ints ON xie.`EntityId`=ints.`entity_id`
  127. WHERE
  128. ints.`value_id` IS NULL;
  129.  
  130. -- insert ints: visibility
  131. INSERT INTO `mwcatalog_product_entity_int`
  132. SELECT
  133. NULL AS `value_id`,
  134. 4 AS `entity_type_id`,
  135. 91 AS `attribute_id`,
  136. 0 AS `store_id`,
  137. xie.`EntityId` AS `entity_id`,
  138. 3808 AS `value`
  139. FROM
  140. `XmlImportEntities` xie
  141. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  142. LEFT JOIN `mwcatalog_product_entity_int` ints ON xie.`EntityId`=ints.`entity_id`
  143. WHERE
  144. ints.`value_id` IS NULL;
  145.  
  146. -- insert ints: brand
  147. INSERT INTO `mwcatalog_product_entity_int`
  148. SELECT
  149. NULL AS `value_id`,
  150. 4 AS `entity_type_id`,
  151. 159 AS `attribute_id`,
  152. 0 AS `store_id`,
  153. xie.`EntityId` AS `entity_id`,
  154. XmlImportUpsertValue(159, xi.`Brand`) AS `value`
  155. FROM
  156. `XmlImportEntities` xie
  157. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  158. LEFT JOIN `mwcatalog_product_entity_int` ints ON xie.`EntityId`=ints.`entity_id`
  159. WHERE
  160. ints.`value_id` IS NULL;
  161.  
  162. -- insert ints: category
  163. INSERT INTO `mwcatalog_product_entity_int`
  164. SELECT
  165. NULL AS `value_id`,
  166. 4 AS `entity_type_id`,
  167. 195 AS `attribute_id`,
  168. 0 AS `store_id`,
  169. xie.`EntityId` AS `entity_id`,
  170. XmlImportUpsertValue(195, xi.`RemoteCategoryName1`) AS `value`
  171. FROM
  172. `XmlImportEntities` xie
  173. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  174. LEFT JOIN `mwcatalog_product_entity_int` ints ON xie.`EntityId`=ints.`entity_id`
  175. WHERE
  176. ints.`value_id` IS NULL;
  177.  
  178. -- insert ints: xml_updated
  179. INSERT INTO `mwcatalog_product_entity_int`
  180. SELECT
  181. NULL AS `value_id`,
  182. 4 AS `entity_type_id`,
  183. 266 AS `attribute_id`,
  184. 0 AS `store_id`,
  185. xie.`EntityId` AS `entity_id`,
  186. 6223 AS `value`
  187. FROM
  188. `XmlImportEntities` xie
  189. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  190. LEFT JOIN `mwcatalog_product_entity_int` ints ON xie.`EntityId`=ints.`entity_id`
  191. WHERE
  192. ints.`value_id` IS NULL;
  193.  
  194. -- update decimals
  195. UPDATE
  196. `mwcatalog_product_entity_decimal` decimals
  197. INNER JOIN `XmlImportEntities` xie ON decimals.`entity_id`=xie.`EntityId`
  198. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  199. SET
  200. decimals.`value`=CASE decimals.attribute_id
  201. WHEN 64 THEN xi.`Price`
  202. WHEN 65 THEN xi.`DiscountedPrice`
  203. END
  204. WHERE
  205. decimals.`attribute_id` IN (64, 65) AND decimals.`store_id` = 0;
  206.  
  207. -- insert decimals: price
  208. INSERT INTO `mwcatalog_product_entity_decimal`
  209. SELECT
  210. NULL AS `value_id`,
  211. 4 AS `entity_type_id`,
  212. 64 AS `attribute_id`,
  213. 0 AS `store_id`,
  214. xie.`EntityId` AS `entity_id`,
  215. xi.`Price` AS `value`
  216. FROM
  217. `XmlImportEntities` xie
  218. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  219. LEFT JOIN `mwcatalog_product_entity_decimal` decimals ON xie.`EntityId`=decimals.`entity_id`
  220. WHERE
  221. decimals.`value_id` IS NULL;
  222.  
  223. -- insert decimals: discounted price
  224. INSERT INTO `mwcatalog_product_entity_decimal`
  225. SELECT
  226. NULL AS `value_id`,
  227. 4 AS `entity_type_id`,
  228. 65 AS `attribute_id`,
  229. 0 AS `store_id`,
  230. xie.`EntityId` AS `entity_id`,
  231. xi.`DiscountedPrice` AS `value`
  232. FROM
  233. `XmlImportEntities` xie
  234. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  235. LEFT JOIN `mwcatalog_product_entity_decimal` decimals ON xie.`EntityId`=decimals.`entity_id`
  236. WHERE
  237. decimals.`value_id` IS NULL;
  238.  
  239. -- update varchars
  240. UPDATE
  241. `mwcatalog_product_entity_varchar` varchars
  242. INNER JOIN `XmlImportEntities` xie ON varchars.`entity_id`=xie.`EntityId`
  243. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  244. SET
  245. varchars.`value`=CASE varchars.attribute_id
  246. WHEN 181 THEN xi.`RemoteBarcode`
  247. END
  248. WHERE
  249. varchars.`attribute_id` IN (181) AND varchars.`store_id` = 0;
  250.  
  251. -- insert varchars: barcode
  252. INSERT INTO `mwcatalog_product_entity_varchar`
  253. SELECT
  254. NULL AS `value_id`,
  255. 4 AS `entity_type_id`,
  256. 181 AS `attribute_id`,
  257. 0 AS `store_id`,
  258. xie.`EntityId` AS `entity_id`,
  259. xi.`RemoteBarcode` AS `value`
  260. FROM
  261. `XmlImportEntities` xie
  262. INNER JOIN `productstest` xi ON xie.`LocalId`=xi.`Id`
  263. LEFT JOIN `mwcatalog_product_entity_varchar` varchars ON xie.`EntityId`=varchars.`entity_id`
  264. WHERE
  265. varchars.`value_id` IS NULL;
  266.  
  267. CALL XmlImportEntityMatch_End();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement