From 40b451530573d1cc4cfa77355c02b75df9a5d52a Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Thu, 9 Apr 2026 14:14:10 +0700 Subject: [PATCH] Add tagged catalog import --- data/catalog-import-2026-04-08.json | 2363 +++++++++++++++++ package.json | 3 +- .../0010_add_product_tags/migration.sql | 3 + prisma/schema.prisma | 1 + scripts/import-catalog.js | 105 + src/schema.graphql | 1 + 6 files changed, 2475 insertions(+), 1 deletion(-) create mode 100644 data/catalog-import-2026-04-08.json create mode 100644 prisma/migrations/0010_add_product_tags/migration.sql create mode 100644 scripts/import-catalog.js diff --git a/data/catalog-import-2026-04-08.json b/data/catalog-import-2026-04-08.json new file mode 100644 index 0000000..0a28384 --- /dev/null +++ b/data/catalog-import-2026-04-08.json @@ -0,0 +1,2363 @@ +[ + { + "sku": "TMP-FF749EA629", + "name": "Крепп 19*20 Фрегат /П1-96/ \"19 Арт 100/4\"", + "rawName": "Крепп 19*20 Фрегат /П1-96/ \"19 Арт 100/4\"", + "productType": "Крепп", + "widthMm": 19, + "lengthM": 20, + "thicknessMicron": null, + "sleeveBrand": "П1", + "quantityPerBox": "96", + "tags": [], + "balances": { + "MSK-01": 192.0, + "SPB-01": 96.0 + } + }, + { + "sku": "TMP-05F69B927E", + "name": "Крепп 25*20 Фрегат /П1-72/ \"25 арт 100/4\"", + "rawName": "Крепп 25*20 Фрегат /П1-72/ \"25 арт 100/4\"", + "productType": "Крепп", + "widthMm": 25, + "lengthM": 20, + "thicknessMicron": null, + "sleeveBrand": "П1", + "quantityPerBox": "72", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-C11DABC615", + "name": "Крепп 30*20 Фрегат /П1-60/ \"30 арт 100/4\"", + "rawName": "Крепп 30*20 Фрегат /П1-60/ \"30 арт 100/4\"", + "productType": "Крепп", + "widthMm": 30, + "lengthM": 20, + "thicknessMicron": null, + "sleeveBrand": "П1", + "quantityPerBox": "60", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 2520.0 + } + }, + { + "sku": "TMP-8A3CECD4EA", + "name": "Крепп 38*20 Фрегат /П1-48/\"38 арт 100/4\"", + "rawName": "Крепп 38*20 Фрегат /П1-48/\"38 арт 100/4\"", + "productType": "Крепп", + "widthMm": 38, + "lengthM": 20, + "thicknessMicron": null, + "sleeveBrand": "П1", + "quantityPerBox": "48", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5616.0 + } + }, + { + "sku": "TMP-4FC73BEC72", + "name": "Крепп 48*20 Фрегат /Фр мал-36/\"48 арт 100/4\"", + "rawName": "Крепп 48*20 Фрегат /Фр мал-36/\"48 арт 100/4\"", + "productType": "Крепп", + "widthMm": 48, + "lengthM": 20, + "thicknessMicron": null, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 6948.0 + } + }, + { + "sku": "TMP-A136DD8E68", + "name": "Крепп 48*40 Б /П2-36/\"48х40\"", + "rawName": "Крепп 48*40 Б /П2-36/\"48х40\"", + "productType": "Крепп", + "widthMm": 48, + "lengthM": 40, + "thicknessMicron": null, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-18A79FF642", + "name": "Крепп 48*50 Б /П2-36/\"48х50\"", + "rawName": "Крепп 48*50 Б /П2-36/\"48х50\"", + "productType": "Крепп", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": null, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-3323AC7A4B", + "name": "Лента сигнальная красно-белая 48*100 4,2мм Б/П1-36/ \"Лента сигнальная к/б 48*100\"", + "rawName": "Лента сигнальная красно-белая 48*100 4,2мм Б/П1-36/ \"Лента сигнальная к/б 48*100\"", + "productType": "Лента сигнальная", + "widthMm": 48, + "lengthM": 100, + "thicknessMicron": null, + "sleeveBrand": "П1", + "quantityPerBox": "36", + "tags": [ + "красно-белый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-F47B91A5F8", + "name": "Лента сигнальная красно-белая 75*100 4,2мм Б/П1-24/ \"Лента сигнальная к/б 75*100\"", + "rawName": "Лента сигнальная красно-белая 75*100 4,2мм Б/П1-24/ \"Лента сигнальная к/б 75*100\"", + "productType": "Лента сигнальная", + "widthMm": 75, + "lengthM": 100, + "thicknessMicron": null, + "sleeveBrand": "П1", + "quantityPerBox": "24", + "tags": [ + "красно-белый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 72.0 + } + }, + { + "sku": "TMP-08AA02D70D", + "name": "Лента сигнальная красно-белая 75*150 4,2мм Б/П2-24/ \"Лента сигнальная к/б 75*150\"", + "rawName": "Лента сигнальная красно-белая 75*150 4,2мм Б/П2-24/ \"Лента сигнальная к/б 75*150\"", + "productType": "Лента сигнальная", + "widthMm": 75, + "lengthM": 150, + "thicknessMicron": null, + "sleeveBrand": "П2", + "quantityPerBox": "24", + "tags": [ + "красно-белый" + ], + "balances": { + "MSK-01": 72.0, + "SPB-01": 240.0 + } + }, + { + "sku": "TMP-33E110BFA4", + "name": "Скотч 2-стор ПП Фрегат 48*25 /Фр ср-36/ \"48*25 Карт.вкл.штрих-код 4690554037292\" ИТУ+ВКЛАДЫШ", + "rawName": "Скотч 2-стор ПП Фрегат 48*25 /Фр ср-36/ \"48*25 Карт.вкл.штрих-код 4690554037292\" ИТУ+ВКЛАДЫШ", + "productType": "Двусторонний ПП", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-B6FC98E720", + "name": "Скотч 38мм*55м*38мкм пр Ф /Фр мал-48/ \"381200\"", + "rawName": "Скотч 38мм*55м*38мкм пр Ф /Фр мал-48/ \"381200\"", + "productType": "Упаковочный скотч", + "widthMm": 38, + "lengthM": 55, + "thicknessMicron": 38, + "sleeveBrand": "Фр мал", + "quantityPerBox": "48", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3264.0 + } + }, + { + "sku": "TMP-B0F145E172", + "name": "Скотч 47мм*100м*38мкм пр Б /П1-36/ \"арт 488200\" Д 47*100 арт 200", + "rawName": "Скотч 47мм*100м*38мкм пр Б /П1-36/ \"арт 488200\" Д 47*100 арт 200", + "productType": "Упаковочный скотч", + "widthMm": 47, + "lengthM": 100, + "thicknessMicron": 38, + "sleeveBrand": "П1", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 180.0 + } + }, + { + "sku": "TMP-558AED5472", + "name": "Скотч 48мм 40м 38мк кор Ф/Фр бол-72/ \"480200 кор\"", + "rawName": "Скотч 48мм 40м 38мк кор Ф/Фр бол-72/ \"480200 кор\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 40, + "thicknessMicron": 38, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5976.0 + } + }, + { + "sku": "TMP-F1BDE29CF6", + "name": "Скотч 48мм 40м 38мк пр Ф/Фр бол-72/ \"480200\"", + "rawName": "Скотч 48мм 40м 38мк пр Ф/Фр бол-72/ \"480200\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 40, + "thicknessMicron": 38, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 36792.0 + } + }, + { + "sku": "TMP-B2E033425C", + "name": "Скотч 48мм*109м*38мкм пр Б /П2-36/ \"486200\" Д 48*110 арт.200", + "rawName": "Скотч 48мм*109м*38мкм пр Б /П2-36/ \"486200\" Д 48*110 арт.200", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 109, + "thicknessMicron": 38, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5112.0 + } + }, + { + "sku": "TMP-E866B342BD", + "name": "Скотч 48мм*109м*43мкм пр Б /П2-36/ \"486400\" Д 48*110 арт.400", + "rawName": "Скотч 48мм*109м*43мкм пр Б /П2-36/ \"486400\" Д 48*110 арт.400", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 109, + "thicknessMicron": 43, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 6912.0 + } + }, + { + "sku": "TMP-E04F0A77E4", + "name": "Скотч 48мм*118м*38мкм пр Б /П2-36/ \"489200\" Д 48*120 арт.200", + "rawName": "Скотч 48мм*118м*38мкм пр Б /П2-36/ \"489200\" Д 48*120 арт.200", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 118, + "thicknessMicron": 38, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 2736.0 + } + }, + { + "sku": "TMP-D793F40C2E", + "name": "Скотч 48мм*118м*43мкм пр Б /П2-36/ \"489400\" Д 48*120 арт.400", + "rawName": "Скотч 48мм*118м*43мкм пр Б /П2-36/ \"489400\" Д 48*120 арт.400", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 118, + "thicknessMicron": 43, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1980.0 + } + }, + { + "sku": "TMP-BB6941C65F", + "name": "Скотч 48мм*120м*38мкм кор Ф /Фр ср-36/ \"483200 кор.\"", + "rawName": "Скотч 48мм*120м*38мкм кор Ф /Фр ср-36/ \"483200 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 120, + "thicknessMicron": 38, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3132.0 + } + }, + { + "sku": "TMP-9B82FE7C70", + "name": "Скотч 48мм*120м*38мкм пр Ф /Фр ср-36/ \"483200\"", + "rawName": "Скотч 48мм*120м*38мкм пр Ф /Фр ср-36/ \"483200\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 120, + "thicknessMicron": 38, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-443D9A8C82", + "name": "Скотч 48мм*120м*43мкм кор Ф /Фр ср-36/ \"483400 кор.\"", + "rawName": "Скотч 48мм*120м*43мкм кор Ф /Фр ср-36/ \"483400 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 120, + "thicknessMicron": 43, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1980.0 + } + }, + { + "sku": "TMP-E2A006E1FB", + "name": "Скотч 48мм*120м*43мкм пр Ф /Фр ср-36/ \"483400\"", + "rawName": "Скотч 48мм*120м*43мкм пр Ф /Фр ср-36/ \"483400\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 120, + "thicknessMicron": 43, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-529BD49D09", + "name": "Скотч 48мм*120м*45мкм кор. Ф /Фр ср-36/ \"483500 кор.\"", + "rawName": "Скотч 48мм*120м*45мкм кор. Ф /Фр ср-36/ \"483500 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 120, + "thicknessMicron": 45, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 9504.0 + } + }, + { + "sku": "TMP-DFD395D339", + "name": "Скотч 48мм*120м*45мкм пр Ф /Фр ср-36/ \"483500\"", + "rawName": "Скотч 48мм*120м*45мкм пр Ф /Фр ср-36/ \"483500\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 120, + "thicknessMicron": 45, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5184.0 + } + }, + { + "sku": "TMP-B54979F31A", + "name": "Скотч 48мм*120м*47мкм кор Ф /Фр ср-36/ \"483600 кор. \"", + "rawName": "Скотч 48мм*120м*47мкм кор Ф /Фр ср-36/ \"483600 кор. \"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 120, + "thicknessMicron": 47, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1800.0 + } + }, + { + "sku": "TMP-443A0A9AAB", + "name": "Скотч 48мм*120м*47мкм пр Ф /Фр ср-36/ \"483600\"", + "rawName": "Скотч 48мм*120м*47мкм пр Ф /Фр ср-36/ \"483600\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 120, + "thicknessMicron": 47, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3240.0 + } + }, + { + "sku": "TMP-164F3C9313", + "name": "Скотч 48мм*148м*38мкм пр Б /П2-36/ \"487200\" Д 48*150 арт.200", + "rawName": "Скотч 48мм*148м*38мкм пр Б /П2-36/ \"487200\" Д 48*150 арт.200", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 148, + "thicknessMicron": 38, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 6696.0 + } + }, + { + "sku": "TMP-8196FF49E0", + "name": "Скотч 48мм*148м*43мкм пр Б /П2-36/ \"487400\" Д 48*150 арт.400", + "rawName": "Скотч 48мм*148м*43мкм пр Б /П2-36/ \"487400\" Д 48*150 арт.400", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 148, + "thicknessMicron": 43, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-9655A9BAC5", + "name": "Скотч 48мм*148м*45мкм пр Б /П2-36/ \"487500\" Д 48*150 арт.500", + "rawName": "Скотч 48мм*148м*45мкм пр Б /П2-36/ \"487500\" Д 48*150 арт.500", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 148, + "thicknessMicron": 45, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-6B9A5C72E7", + "name": "Скотч 48мм*148м*45мкм пр Ф /Фр ср-36/ \"487500\" Д 48*150 арт.500", + "rawName": "Скотч 48мм*148м*45мкм пр Ф /Фр ср-36/ \"487500\" Д 48*150 арт.500", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 148, + "thicknessMicron": 45, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 8208.0 + } + }, + { + "sku": "TMP-DBA8BD7879", + "name": "Скотч 48мм*18м*38 мк кор Фрег /Фр ср-72/ \"48 арт. 090/1\"", + "rawName": "Скотч 48мм*18м*38 мк кор Фрег /Фр ср-72/ \"48 арт. 090/1\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 18, + "thicknessMicron": 38, + "sleeveBrand": "Фр ср", + "quantityPerBox": "72", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 4680.0 + } + }, + { + "sku": "TMP-B1A3BE01E2", + "name": "Скотч 48мм*50м 43 мкм желт Фрег /Фр бол-72/\"48 арт 250/3\"", + "rawName": "Скотч 48мм*50м 43 мкм желт Фрег /Фр бол-72/\"48 арт 250/3\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 6480.0 + } + }, + { + "sku": "TMP-88FAE4AF4C", + "name": "Скотч 48мм*50м 43 мкм зел Фрег /Фр бол-72/\"48 арт 250/3\"", + "rawName": "Скотч 48мм*50м 43 мкм зел Фрег /Фр бол-72/\"48 арт 250/3\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 576.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-A13E8BB8F0", + "name": "Скотч 48мм*50м 43 мкм красн Фрег /Фр бол-72/\"48 арт 250/3\"", + "rawName": "Скотч 48мм*50м 43 мкм красн Фрег /Фр бол-72/\"48 арт 250/3\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "красный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1440.0 + } + }, + { + "sku": "TMP-D5F451B54A", + "name": "Скотч 48мм*50м 43 мкм оранж Фрег /Фр бол-72/\"48 арт 250/3\"", + "rawName": "Скотч 48мм*50м 43 мкм оранж Фрег /Фр бол-72/\"48 арт 250/3\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "оранжевый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3024.0 + } + }, + { + "sku": "TMP-BA060ED539", + "name": "Скотч 48мм*50м 43 мкм син Фрег /Фр бол-72/\"48 арт 250/3\"", + "rawName": "Скотч 48мм*50м 43 мкм син Фрег /Фр бол-72/\"48 арт 250/3\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "синий" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-8AD56124DD", + "name": "Скотч 48мм*50м бел Фрег /Фр бол-72/\"48 арт 250/2\"", + "rawName": "Скотч 48мм*50м бел Фрег /Фр бол-72/\"48 арт 250/2\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": null, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "белый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5400.0 + } + }, + { + "sku": "TMP-50B4E26949", + "name": "Скотч 48мм*50м*38мкм пр Б /П1-36/ \"484200\" Д 48*50 арт.200", + "rawName": "Скотч 48мм*50м*38мкм пр Б /П1-36/ \"484200\" Д 48*50 арт.200", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 38, + "sleeveBrand": "П1", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-6CF74A1F98", + "name": "Скотч 48мм*50м*43мкм бел. Ф /Фр бол-72/ \"48 арт 250/3\"", + "rawName": "Скотч 48мм*50м*43мкм бел. Ф /Фр бол-72/ \"48 арт 250/3\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "белый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 7056.0 + } + }, + { + "sku": "TMP-2A4C1DB0C1", + "name": "Скотч 48мм*50м*43мкм пр Б /П1-36/ \"484400\" Д 48*50 арт.400", + "rawName": "Скотч 48мм*50м*43мкм пр Б /П1-36/ \"484400\" Д 48*50 арт.400", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 43, + "sleeveBrand": "П1", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 11484.0 + } + }, + { + "sku": "TMP-3085033133", + "name": "Скотч 48мм*50м*43мкм черн. Ф /Фр бол-72/ \"48 арт 250/3\"", + "rawName": "Скотч 48мм*50м*43мкм черн. Ф /Фр бол-72/ \"48 арт 250/3\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "черный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3312.0 + } + }, + { + "sku": "TMP-8C71034C77", + "name": "Скотч 48мм*50м*45мкм пр Б /П1-36/ \"арт 484600\" Д 48*50 арт 500", + "rawName": "Скотч 48мм*50м*45мкм пр Б /П1-36/ \"арт 484600\" Д 48*50 арт 500", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": 45, + "sleeveBrand": "П1", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 360.0, + "SPB-01": 6552.0 + } + }, + { + "sku": "TMP-1CA3DAF399", + "name": "Скотч 48мм*55м*38мкм кор Ф /Фр бол-72/\"481200 кор.\"", + "rawName": "Скотч 48мм*55м*38мкм кор Ф /Фр бол-72/\"481200 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 55, + "thicknessMicron": 38, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 18288.0 + } + }, + { + "sku": "TMP-73C6BAD946", + "name": "Скотч 48мм*55м*38мкм пр Ф /Фр бол-72/\"481200\"", + "rawName": "Скотч 48мм*55м*38мкм пр Ф /Фр бол-72/\"481200\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 55, + "thicknessMicron": 38, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 7200.0 + } + }, + { + "sku": "TMP-1757F2E167", + "name": "Скотч 48мм*55м*38мкм пр Ф /Фр мал-36/ \"481200\"", + "rawName": "Скотч 48мм*55м*38мкм пр Ф /Фр мал-36/ \"481200\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 55, + "thicknessMicron": 38, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 20844.0 + } + }, + { + "sku": "TMP-2744406FCB", + "name": "Скотч 48мм*55м*43мкм кор Ф /Фр бол-72/\"481400 кор.\"", + "rawName": "Скотч 48мм*55м*43мкм кор Ф /Фр бол-72/\"481400 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 55, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 8856.0 + } + }, + { + "sku": "TMP-6E1A3B4262", + "name": "Скотч 48мм*55м*43мкм пр Ф /Фр бол-72/\"481400\"", + "rawName": "Скотч 48мм*55м*43мкм пр Ф /Фр бол-72/\"481400\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 55, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5832.0 + } + }, + { + "sku": "TMP-2717871899", + "name": "Скотч 48мм*55м*43мкм пр Ф /Фр мал-36/ \"481400\"", + "rawName": "Скотч 48мм*55м*43мкм пр Ф /Фр мал-36/ \"481400\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 55, + "thicknessMicron": 43, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 288.0, + "SPB-01": 2916.0 + } + }, + { + "sku": "TMP-0AF933FE36", + "name": "Скотч 48мм*55м*45мкм пр Ф /Фр бол-72/\"481500\"", + "rawName": "Скотч 48мм*55м*45мкм пр Ф /Фр бол-72/\"481500\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 55, + "thicknessMicron": 45, + "sleeveBrand": "Фр бол", + "quantityPerBox": "72", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 7200.0 + } + }, + { + "sku": "TMP-3716DDEA46", + "name": "Скотч 48мм*55м*45мкм пр Ф /Фр мал-36/\"481500\"", + "rawName": "Скотч 48мм*55м*45мкм пр Ф /Фр мал-36/\"481500\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 55, + "thicknessMicron": 45, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 13104.0 + } + }, + { + "sku": "TMP-A84D8D5273", + "name": "Скотч 48мм*59м*38мкм пр Б /П1-36/ \"485200\" Д 48*60 арт.200", + "rawName": "Скотч 48мм*59м*38мкм пр Б /П1-36/ \"485200\" Д 48*60 арт.200", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 59, + "thicknessMicron": 38, + "sleeveBrand": "П1", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5544.0 + } + }, + { + "sku": "TMP-A1698D99DC", + "name": "Скотч 48мм*59м*43мкм пр Б /П1-36/ \"485400\" Д 48*60 арт.400", + "rawName": "Скотч 48мм*59м*43мкм пр Б /П1-36/ \"485400\" Д 48*60 арт.400", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 59, + "thicknessMicron": 43, + "sleeveBrand": "П1", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 432.0 + } + }, + { + "sku": "TMP-14129E797B", + "name": "Скотч 48мм*66м*38мк кор Фр/Фр мал-36/ \"482200 кор.\"", + "rawName": "Скотч 48мм*66м*38мк кор Фр/Фр мал-36/ \"482200 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 38, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3744.0 + } + }, + { + "sku": "TMP-AB541288EF", + "name": "Скотч 48мм*66м*38мк пр Фр/Фр мал-36/ \"482200\"", + "rawName": "Скотч 48мм*66м*38мк пр Фр/Фр мал-36/ \"482200\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 38, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 11700.0 + } + }, + { + "sku": "TMP-8D82BD0BDC", + "name": "Скотч 48мм*66м*43мк кор Фр/Фр мал-36/ \"482400 кор.\"", + "rawName": "Скотч 48мм*66м*43мк кор Фр/Фр мал-36/ \"482400 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 43, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 360.0 + } + }, + { + "sku": "TMP-FB3D6DA0F9", + "name": "Скотч 48мм*66м*43мк пр Фр/Фр мал-36/ \"482400\"", + "rawName": "Скотч 48мм*66м*43мк пр Фр/Фр мал-36/ \"482400\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 43, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3384.0 + } + }, + { + "sku": "TMP-F28A6C3CE8", + "name": "Скотч 48мм*66м*45мк белый Хрупкое!!! Б /П1-36/ \"48мм*66м*45мк Будь Осторожен! Хрупкое!!!\"", + "rawName": "Скотч 48мм*66м*45мк белый Хрупкое!!! Б /П1-36/ \"48мм*66м*45мк Будь Осторожен! Хрупкое!!!\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 45, + "sleeveBrand": "П1", + "quantityPerBox": "36", + "tags": [ + "белый", + "хрупкое" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 20700.0 + } + }, + { + "sku": "TMP-0405DB4A35", + "name": "Скотч 48мм*66м*45мк кор Фр/Фр мал-36/ \"482500 кор.\"", + "rawName": "Скотч 48мм*66м*45мк кор Фр/Фр мал-36/ \"482500 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 45, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3996.0 + } + }, + { + "sku": "TMP-7C3F1D63AE", + "name": "Скотч 48мм*66м*45мк пр Фр/Фр мал-36/ \"482500\"", + "rawName": "Скотч 48мм*66м*45мк пр Фр/Фр мал-36/ \"482500\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 45, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 756.0, + "SPB-01": 9720.0 + } + }, + { + "sku": "TMP-0DD80DCA86", + "name": "Скотч 48мм*66м*47мк кор Фр/Фр мал-36/ \"482600 кор\"", + "rawName": "Скотч 48мм*66м*47мк кор Фр/Фр мал-36/ \"482600 кор\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 47, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5004.0 + } + }, + { + "sku": "TMP-FF8400ECB9", + "name": "Скотч 48мм*66м*47мк пр Фр/Фр мал-36/ \"482600\"", + "rawName": "Скотч 48мм*66м*47мк пр Фр/Фр мал-36/ \"482600\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 47, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 8568.0 + } + }, + { + "sku": "TMP-8C1C93D9E7", + "name": "Скотч 75мм*120м*38мкм кор Ф /Фр сред-24/ \"753200 кор.\"", + "rawName": "Скотч 75мм*120м*38мкм кор Ф /Фр сред-24/ \"753200 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 120, + "thicknessMicron": 38, + "sleeveBrand": "Фр сред", + "quantityPerBox": "24", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 648.0 + } + }, + { + "sku": "TMP-26D6786310", + "name": "Скотч 75мм*120м*38мкм пр Ф /Фр сред-24/ \"753200\"", + "rawName": "Скотч 75мм*120м*38мкм пр Ф /Фр сред-24/ \"753200\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 120, + "thicknessMicron": 38, + "sleeveBrand": "Фр сред", + "quantityPerBox": "24", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1200.0 + } + }, + { + "sku": "TMP-1154DEF494", + "name": "Скотч 75мм*120м*43мкм кор Ф /Фр сред-24/ \"753400 кор\"", + "rawName": "Скотч 75мм*120м*43мкм кор Ф /Фр сред-24/ \"753400 кор\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 120, + "thicknessMicron": 43, + "sleeveBrand": "Фр сред", + "quantityPerBox": "24", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1200.0 + } + }, + { + "sku": "TMP-D1CA388341", + "name": "Скотч 75мм*120м*43мкм пр Ф /Фр сред-24/ \"753400\"", + "rawName": "Скотч 75мм*120м*43мкм пр Ф /Фр сред-24/ \"753400\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 120, + "thicknessMicron": 43, + "sleeveBrand": "Фр сред", + "quantityPerBox": "24", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 2160.0 + } + }, + { + "sku": "TMP-9C45956FCB", + "name": "Скотч 75мм*120м*45мкм пр Ф /Фр сред-24/ \"753500\"", + "rawName": "Скотч 75мм*120м*45мкм пр Ф /Фр сред-24/ \"753500\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 120, + "thicknessMicron": 45, + "sleeveBrand": "Фр сред", + "quantityPerBox": "24", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 4368.0 + } + }, + { + "sku": "TMP-47D60D3E61", + "name": "Скотч 75мм*120м*47мкм пр Ф /Фр сред-24/ \"753600\"", + "rawName": "Скотч 75мм*120м*47мкм пр Ф /Фр сред-24/ \"753600\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 120, + "thicknessMicron": 47, + "sleeveBrand": "Фр сред", + "quantityPerBox": "24", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 2400.0 + } + }, + { + "sku": "TMP-97782B4E2C", + "name": "Скотч 75мм*55м*38мкм пр Ф /Фр бол-48/\"751200\"", + "rawName": "Скотч 75мм*55м*38мкм пр Ф /Фр бол-48/\"751200\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 55, + "thicknessMicron": 38, + "sleeveBrand": "Фр бол", + "quantityPerBox": "48", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 2784.0 + } + }, + { + "sku": "TMP-7F5C918C59", + "name": "Скотч 75мм*55м*43мкм кор. Ф /Фр бол-48/\"751400 кор.\"", + "rawName": "Скотч 75мм*55м*43мкм кор. Ф /Фр бол-48/\"751400 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 55, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "48", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 240.0 + } + }, + { + "sku": "TMP-D0B18A4F8D", + "name": "Скотч 75мм*55м*43мкм пр Ф /Фр бол-48/\"751400\"", + "rawName": "Скотч 75мм*55м*43мкм пр Ф /Фр бол-48/\"751400\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 55, + "thicknessMicron": 43, + "sleeveBrand": "Фр бол", + "quantityPerBox": "48", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 240.0, + "SPB-01": 192.0 + } + }, + { + "sku": "TMP-73B662D9FB", + "name": "Скотч 75мм*55м*45мкм пр Ф /Фр бол-48/\"751500\"", + "rawName": "Скотч 75мм*55м*45мкм пр Ф /Фр бол-48/\"751500\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 55, + "thicknessMicron": 45, + "sleeveBrand": "Фр бол", + "quantityPerBox": "48", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3696.0 + } + }, + { + "sku": "TMP-0C9EDA4CB3", + "name": "Скотч 75мм*66м*38мкм кор Ф /Фр мал-24/ \"752200 кор.\"", + "rawName": "Скотч 75мм*66м*38мкм кор Ф /Фр мал-24/ \"752200 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 66, + "thicknessMicron": 38, + "sleeveBrand": "Фр мал", + "quantityPerBox": "24", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1800.0 + } + }, + { + "sku": "TMP-008D3FE2D3", + "name": "Скотч 75мм*66м*38мкм пр Ф /Фр мал-24/ \"752200\"", + "rawName": "Скотч 75мм*66м*38мкм пр Ф /Фр мал-24/ \"752200\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 66, + "thicknessMicron": 38, + "sleeveBrand": "Фр мал", + "quantityPerBox": "24", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1920.0 + } + }, + { + "sku": "TMP-3A2F4B09B7", + "name": "Скотч 75мм*66м*43мкм пр Ф /Фр мал-24/ \"752400\"", + "rawName": "Скотч 75мм*66м*43мкм пр Ф /Фр мал-24/ \"752400\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 66, + "thicknessMicron": 43, + "sleeveBrand": "Фр мал", + "quantityPerBox": "24", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 480.0, + "SPB-01": 960.0 + } + }, + { + "sku": "TMP-CE95FB7557", + "name": "Скотч 75мм*66м*45мкм кор Ф /Фр мал-24/ \"752500 кор.\"", + "rawName": "Скотч 75мм*66м*45мкм кор Ф /Фр мал-24/ \"752500 кор.\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 66, + "thicknessMicron": 45, + "sleeveBrand": "Фр мал", + "quantityPerBox": "24", + "tags": [ + "коричневый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-99DC12AA3E", + "name": "Скотч 75мм*66м*45мкм пр Ф /Фр мал-24/ \"752500\"", + "rawName": "Скотч 75мм*66м*45мкм пр Ф /Фр мал-24/ \"752500\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 66, + "thicknessMicron": 45, + "sleeveBrand": "Фр мал", + "quantityPerBox": "24", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 24.0 + } + }, + { + "sku": "TMP-9462E5426B", + "name": "Скотч 75мм*66м*47мкм пр Ф /П1-24/ \"752600\"", + "rawName": "Скотч 75мм*66м*47мкм пр Ф /П1-24/ \"752600\"", + "productType": "Упаковочный скотч", + "widthMm": 75, + "lengthM": 66, + "thicknessMicron": 47, + "sleeveBrand": "П1", + "quantityPerBox": "24", + "tags": [ + "прозрачный" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1104.0 + } + }, + { + "sku": "TMP-89AE15AFDB", + "name": "скотч 2-стор PVC Black Gear 38*10/Black Gear-48/ \"38*10\"", + "rawName": "скотч 2-стор PVC Black Gear 38*10/Black Gear-48/ \"38*10\"", + "productType": "Двусторонний PVC", + "widthMm": 38, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "48", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 624.0 + } + }, + { + "sku": "TMP-66C8CABCA3", + "name": "скотч 2-стор PVC Black Gear 38*25/Black Gear-32/ \"38*25\"", + "rawName": "скотч 2-стор PVC Black Gear 38*25/Black Gear-32/ \"38*25\"", + "productType": "Двусторонний PVC", + "widthMm": 38, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "32", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 608.0 + } + }, + { + "sku": "TMP-3B75642906", + "name": "скотч 2-стор PVC Black Gear 38*5/Black Gear-48/ \"38*5\"", + "rawName": "скотч 2-стор PVC Black Gear 38*5/Black Gear-48/ \"38*5\"", + "productType": "Двусторонний PVC", + "widthMm": 38, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "48", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 384.0 + } + }, + { + "sku": "TMP-1E1D2ACFBD", + "name": "скотч 2-стор PVC Black Gear 48*10/Black Gear-36/ \"48*10\"", + "rawName": "скотч 2-стор PVC Black Gear 48*10/Black Gear-36/ \"48*10\"", + "productType": "Двусторонний PVC", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1692.0 + } + }, + { + "sku": "TMP-6F6D64284C", + "name": "скотч 2-стор PVC Black Gear 48*25/Black Gear-24/ \"48*25\"", + "rawName": "скотч 2-стор PVC Black Gear 48*25/Black Gear-24/ \"48*25\"", + "productType": "Двусторонний PVC", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "24", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1032.0 + } + }, + { + "sku": "TMP-E7A80751F2", + "name": "скотч 2-стор PVC Black Gear 48*5/Black Gear-36/ \"48*5\"", + "rawName": "скотч 2-стор PVC Black Gear 48*5/Black Gear-36/ \"48*5\"", + "productType": "Двусторонний PVC", + "widthMm": 48, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3528.0 + } + }, + { + "sku": "TMP-E57CCA367E", + "name": "скотч 2-стор PVC Ost 38*25/Ost-32/ \"38*25\"", + "rawName": "скотч 2-стор PVC Ost 38*25/Ost-32/ \"38*25\"", + "productType": "Двусторонний PVC", + "widthMm": 38, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "32", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 32.0 + } + }, + { + "sku": "TMP-1E9342882F", + "name": "скотч 2-стор PVC Ost 38*5/Ost-48/ \"38*5\"", + "rawName": "скотч 2-стор PVC Ost 38*5/Ost-48/ \"38*5\"", + "productType": "Двусторонний PVC", + "widthMm": 38, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "48", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1008.0 + } + }, + { + "sku": "TMP-C4FF03749E", + "name": "скотч 2-стор PVC Ost 48*10/Ost-36/ \"48*10\"", + "rawName": "скотч 2-стор PVC Ost 48*10/Ost-36/ \"48*10\"", + "productType": "Двусторонний PVC", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 108.0 + } + }, + { + "sku": "TMP-58CBA0CF4B", + "name": "скотч 2-стор PVC Фрегат 48*10 /Фр мал -36/ \"48*10 Карт. вкл. штрих-код 4690554037391\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч 2-стор PVC Фрегат 48*10 /Фр мал -36/ \"48*10 Карт. вкл. штрих-код 4690554037391\" ИТУ+ВКЛАДЫШ", + "productType": "Двусторонний PVC", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 792.0 + } + }, + { + "sku": "TMP-8DE2147750", + "name": "скотч 2-стор PVC Фрегат 48*20 /Фр ср-36/ \"48*20 арт. ТК4820 Этикетка ш/к 4690554038985\" ИТУ+СТИКЕР", + "rawName": "скотч 2-стор PVC Фрегат 48*20 /Фр ср-36/ \"48*20 арт. ТК4820 Этикетка ш/к 4690554038985\" ИТУ+СТИКЕР", + "productType": "Двусторонний PVC", + "widthMm": 48, + "lengthM": 20, + "thicknessMicron": null, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-866822612A", + "name": "скотч 2-стор PVC Фрегат 48*25 /Фр ср -36/ \"48*25 Карт. вкл. штрих-код 4690554037414\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч 2-стор PVC Фрегат 48*25 /Фр ср -36/ \"48*25 Карт. вкл. штрих-код 4690554037414\" ИТУ+ВКЛАДЫШ", + "productType": "Двусторонний PVC", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 144.0 + } + }, + { + "sku": "TMP-AE70EA0BF2", + "name": "скотч 2-стор ПП Black Gear 38*10 /Black Gear-48/ \"38*10\"", + "rawName": "скотч 2-стор ПП Black Gear 38*10 /Black Gear-48/ \"38*10\"", + "productType": "Двусторонний ПП", + "widthMm": 38, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "48", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-43AD6BE82A", + "name": "скотч 2-стор ПП Black Gear 38*25 /Black Gear-32/ \"38*25ПП\"", + "rawName": "скотч 2-стор ПП Black Gear 38*25 /Black Gear-32/ \"38*25ПП\"", + "productType": "Двусторонний ПП", + "widthMm": 38, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "32", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1408.0 + } + }, + { + "sku": "TMP-3E4F1B3C26", + "name": "скотч 2-стор ПП Black Gear 38*5 /Black Gear-48/ \"38*5\"", + "rawName": "скотч 2-стор ПП Black Gear 38*5 /Black Gear-48/ \"38*5\"", + "productType": "Двусторонний ПП", + "widthMm": 38, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "48", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-99FF344A3B", + "name": "скотч 2-стор ПП Black Gear 48*10 /Black Gear-36/ \"50*10\"", + "rawName": "скотч 2-стор ПП Black Gear 48*10 /Black Gear-36/ \"50*10\"", + "productType": "Двусторонний ПП", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-21162FE471", + "name": "скотч 2-стор ПП Black Gear 48*5 /Black Gear-36/ \"48*5\"", + "rawName": "скотч 2-стор ПП Black Gear 48*5 /Black Gear-36/ \"48*5\"", + "productType": "Двусторонний ПП", + "widthMm": 48, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1656.0 + } + }, + { + "sku": "TMP-FB883C942A", + "name": "скотч 2-стор ПП Фр 48*10 /Фр мал-36/ \"48мм*10м арт. ПП4810 Карт. вкл. ш/к 4690554037261\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч 2-стор ПП Фр 48*10 /Фр мал-36/ \"48мм*10м арт. ПП4810 Карт. вкл. ш/к 4690554037261\" ИТУ+ВКЛАДЫШ", + "productType": "Двусторонний ПП", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-F08F7B0A23", + "name": "скотч 48мм*66м*45мкм Жёлт АКЦИЯ! Ф /Фр мал-36/48*66*45мк АКЦИЯ!", + "rawName": "скотч 48мм*66м*45мкм Жёлт АКЦИЯ! Ф /Фр мал-36/48*66*45мк АКЦИЯ!", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 45, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "желтый", + "акция" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 360.0 + } + }, + { + "sku": "TMP-054BE5869B", + "name": "скотч 48мм*66м*45мкм Жёлт ПОДАРОК Ф /Фр мал-36/ \"48*66*45мк ПОДАРОК\"", + "rawName": "скотч 48мм*66м*45мкм Жёлт ПОДАРОК Ф /Фр мал-36/ \"48*66*45мк ПОДАРОК\"", + "productType": "Упаковочный скотч", + "widthMm": 48, + "lengthM": 66, + "thicknessMicron": 45, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [ + "желтый", + "подарок" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3672.0 + } + }, + { + "sku": "TMP-CA93BDEBBB", + "name": "скотч алюмин Black Gear 48*10*40 /Black Gear-36/ \"48*10\"", + "rawName": "скотч алюмин Black Gear 48*10*40 /Black Gear-36/ \"48*10\"", + "productType": "Алюминиевый скотч", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-7EBB1E3E8A", + "name": "скотч алюмин Black Gear 48*25*40 /Black Gear-24/ \"48*25\"", + "rawName": "скотч алюмин Black Gear 48*25*40 /Black Gear-24/ \"48*25\"", + "productType": "Алюминиевый скотч", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "24", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 168.0 + } + }, + { + "sku": "TMP-D7AC929464", + "name": "скотч алюмин Фрегат 48*10*40 /Фр мал-36/ \"48*10 Карт. вкл. штрих-код 4690554037353\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч алюмин Фрегат 48*10*40 /Фр мал-36/ \"48*10 Карт. вкл. штрих-код 4690554037353\" ИТУ+ВКЛАДЫШ", + "productType": "Алюминиевый скотч", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-D1E7C76D67", + "name": "скотч алюмин Фрегат 48*10*40/Фр мал-36/\"48*10*40 арт.АЛ481040В Карт.вкл. ш/к 4690554079049\" ИТУ+ВКЛ", + "rawName": "скотч алюмин Фрегат 48*10*40/Фр мал-36/\"48*10*40 арт.АЛ481040В Карт.вкл. ш/к 4690554079049\" ИТУ+ВКЛ", + "productType": "Алюминиевый скотч", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-38017BBB2D", + "name": "скотч алюмин Фрегат 48*25*40 /Фр мал-36/ \"48*25 Карт. вкл. штрих-код 4690554037377\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч алюмин Фрегат 48*25*40 /Фр мал-36/ \"48*25 Карт. вкл. штрих-код 4690554037377\" ИТУ+ВКЛАДЫШ", + "productType": "Алюминиевый скотч", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-546C98DEA7", + "name": "скотч алюмин Фрегат 48*25*40/Фр мал-36/\"48*25*40 арт.АЛ482540В Карт.вкл. ш/к 4690554079056\" ИТУ+ВКЛ", + "rawName": "скотч алюмин Фрегат 48*25*40/Фр мал-36/\"48*25*40 арт.АЛ482540В Карт.вкл. ш/к 4690554079056\" ИТУ+ВКЛ", + "productType": "Алюминиевый скотч", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-F3E41A2561", + "name": "скотч алюмин Фрегат 48*50 /Фр ср-36/ \"48*50 арт АЛ4850 Этикет. ш/к 4690554037919\" ИТУ+СТИКЕР", + "rawName": "скотч алюмин Фрегат 48*50 /Фр ср-36/ \"48*50 арт АЛ4850 Этикет. ш/к 4690554037919\" ИТУ+СТИКЕР", + "productType": "Алюминиевый скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": null, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 108.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-8038A28D44", + "name": "скотч армир Black Gear 48*10 /Black Gear-36/ \"48*10\"", + "rawName": "скотч армир Black Gear 48*10 /Black Gear-36/ \"48*10\"", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-C9668C7903", + "name": "скотч армир Black Gear 48*25/П2-36/ \"48*25\"", + "rawName": "скотч армир Black Gear 48*25/П2-36/ \"48*25\"", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 72.0 + } + }, + { + "sku": "TMP-014F5E414A", + "name": "скотч армир Black Gear 48*5 /Black Gear-36/ \"48*5\"", + "rawName": "скотч армир Black Gear 48*5 /Black Gear-36/ \"48*5\"", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 2592.0 + } + }, + { + "sku": "TMP-1595C8938D", + "name": "скотч армир ББ 48*40 /П2-36/ \"48*40\"", + "rawName": "скотч армир ББ 48*40 /П2-36/ \"48*40\"", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 40, + "thicknessMicron": null, + "sleeveBrand": "П2", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-6E193A74D2", + "name": "скотч армир ББ 48*50 /П3-36/ \"48*50\"", + "rawName": "скотч армир ББ 48*50 /П3-36/ \"48*50\"", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": null, + "sleeveBrand": "П3", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-2CCBCA4125", + "name": "скотч армир Фрегат 48*10 /Фр мал-36/ \"48мм*10м арт. АР4810 Карт. вкл. ш/к 4690554037308\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч армир Фрегат 48*10 /Фр мал-36/ \"48мм*10м арт. АР4810 Карт. вкл. ш/к 4690554037308\" ИТУ+ВКЛАДЫШ", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Фр мал", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-5FF5D29C5A", + "name": "скотч армир Фрегат 48*25 /Фр ср-36/ \"48*25 арт. АР4825 Карт. вкл. ш/к 4690554037322\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч армир Фрегат 48*25 /Фр ср-36/ \"48*25 арт. АР4825 Карт. вкл. ш/к 4690554037322\" ИТУ+ВКЛАДЫШ", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Фр ср", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-44B749DB9E", + "name": "скотч армир Фрегат 48*25 /Фрегат ср-36/ \"48*25 Карт. вкл. штрих-код 4690554037339\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч армир Фрегат 48*25 /Фрегат ср-36/ \"48*25 Карт. вкл. штрих-код 4690554037339\" ИТУ+ВКЛАДЫШ", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 25, + "thicknessMicron": null, + "sleeveBrand": "Фрегат ср", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-66869BBD59", + "name": "скотч армир Фрегат 48*40 /Фр бол-36/ \"48мм*40м арт. АР4840 Этикет. ш/к 4690554039005\" ИТУ+СТИКЕР", + "rawName": "скотч армир Фрегат 48*40 /Фр бол-36/ \"48мм*40м арт. АР4840 Этикет. ш/к 4690554039005\" ИТУ+СТИКЕР", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 40, + "thicknessMicron": null, + "sleeveBrand": "Фр бол", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-CDFF971D2F", + "name": "скотч армир Фрегат 48*50 /Фр бол-36/ \"48мм*50м арт. АР4850В Карт. вкл. ш/к 4690554039142\" ИТУ+ВКЛАД", + "rawName": "скотч армир Фрегат 48*50 /Фр бол-36/ \"48мм*50м арт. АР4850В Карт. вкл. ш/к 4690554039142\" ИТУ+ВКЛАД", + "productType": "Армированный скотч", + "widthMm": 48, + "lengthM": 50, + "thicknessMicron": null, + "sleeveBrand": "Фр бол", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-B027FDCC5A", + "name": "скотч вспен желт. Black Gear 12*10 /Black Gear-50/\"12*10\"", + "rawName": "скотч вспен желт. Black Gear 12*10 /Black Gear-50/\"12*10\"", + "productType": "Вспененный скотч", + "widthMm": 12, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "50", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 200.0 + } + }, + { + "sku": "TMP-59E71DFDC1", + "name": "скотч вспен желт. Black Gear 12*5 /Black Gear-75/\"12*5\"", + "rawName": "скотч вспен желт. Black Gear 12*5 /Black Gear-75/\"12*5\"", + "productType": "Вспененный скотч", + "widthMm": 12, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "75", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 900.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-674E67F630", + "name": "скотч вспен желт. Black Gear 15*5 /Black Gear-60/\"15*5\"", + "rawName": "скотч вспен желт. Black Gear 15*5 /Black Gear-60/\"15*5\"", + "productType": "Вспененный скотч", + "widthMm": 15, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "60", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1320.0 + } + }, + { + "sku": "TMP-C97EEB2661", + "name": "скотч вспен желт. Black Gear 19*10 /Black Gear-32/\"19*10\"", + "rawName": "скотч вспен желт. Black Gear 19*10 /Black Gear-32/\"19*10\"", + "productType": "Вспененный скотч", + "widthMm": 19, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "32", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 352.0, + "SPB-01": 384.0 + } + }, + { + "sku": "TMP-02A6DD9A3C", + "name": "скотч вспен желт. Ost 15*10 /Ost-40/\"15*10\"", + "rawName": "скотч вспен желт. Ost 15*10 /Ost-40/\"15*10\"", + "productType": "Вспененный скотч", + "widthMm": 15, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "40", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 600.0 + } + }, + { + "sku": "TMP-B637A36B79", + "name": "скотч вспен желт. Ost 15*5 /Ost-60/\"15*5\"", + "rawName": "скотч вспен желт. Ost 15*5 /Ost-60/\"15*5\"", + "productType": "Вспененный скотч", + "widthMm": 15, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "60", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 60.0 + } + }, + { + "sku": "TMP-A51224B4B7", + "name": "скотч вспен желт. Ost 19*10 /Ost-32/\"19*10\"", + "rawName": "скотч вспен желт. Ost 19*10 /Ost-32/\"19*10\"", + "productType": "Вспененный скотч", + "widthMm": 19, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "32", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 544.0 + } + }, + { + "sku": "TMP-B503D1840A", + "name": "скотч вспен желт. Ost 25*10 /Ost-24/\"25*10\"", + "rawName": "скотч вспен желт. Ost 25*10 /Ost-24/\"25*10\"", + "productType": "Вспененный скотч", + "widthMm": 25, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "24", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1344.0 + } + }, + { + "sku": "TMP-7C7E53F5BB", + "name": "скотч вспен желт. Ost 25*5 /Ost-36/\"25*5\"", + "rawName": "скотч вспен желт. Ost 25*5 /Ost-36/\"25*5\"", + "productType": "Вспененный скотч", + "widthMm": 25, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "36", + "tags": [ + "желтый" + ], + "balances": { + "MSK-01": 36.0, + "SPB-01": 1044.0 + } + }, + { + "sku": "TMP-A7B2700879", + "name": "скотч вспен зел. Black Gear 12*10 /Black Gear-50/\"12*10\"", + "rawName": "скотч вспен зел. Black Gear 12*10 /Black Gear-50/\"12*10\"", + "productType": "Вспененный скотч", + "widthMm": 12, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "50", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1200.0 + } + }, + { + "sku": "TMP-6860D0AEE8", + "name": "скотч вспен зел. Black Gear 12*5 /Black Gear-75/\"12*5\"", + "rawName": "скотч вспен зел. Black Gear 12*5 /Black Gear-75/\"12*5\"", + "productType": "Вспененный скотч", + "widthMm": 12, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "75", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3150.0 + } + }, + { + "sku": "TMP-4493BB0EC6", + "name": "скотч вспен зел. Black Gear 15*10 /Black Gear-40/\"15*10\"", + "rawName": "скотч вспен зел. Black Gear 15*10 /Black Gear-40/\"15*10\"", + "productType": "Вспененный скотч", + "widthMm": 15, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "40", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 40.0, + "SPB-01": 1080.0 + } + }, + { + "sku": "TMP-04B4A0CF48", + "name": "скотч вспен зел. Black Gear 15*5 /Black Gear-60/\"15*5\"", + "rawName": "скотч вспен зел. Black Gear 15*5 /Black Gear-60/\"15*5\"", + "productType": "Вспененный скотч", + "widthMm": 15, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "60", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 600.0 + } + }, + { + "sku": "TMP-895487BB5B", + "name": "скотч вспен зел. Black Gear 19*10 /Black Gear-32/\"19*10\"", + "rawName": "скотч вспен зел. Black Gear 19*10 /Black Gear-32/\"19*10\"", + "productType": "Вспененный скотч", + "widthMm": 19, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "32", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 352.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-1FD2BDF25C", + "name": "скотч вспен зел. Black Gear 19*5 /Black Gear-48/\"19*5\"", + "rawName": "скотч вспен зел. Black Gear 19*5 /Black Gear-48/\"19*5\"", + "productType": "Вспененный скотч", + "widthMm": 19, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "48", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1872.0 + } + }, + { + "sku": "TMP-CE186E61EC", + "name": "скотч вспен зел. Black Gear 25*10 /Black Gear-24/\"25*10\"", + "rawName": "скотч вспен зел. Black Gear 25*10 /Black Gear-24/\"25*10\"", + "productType": "Вспененный скотч", + "widthMm": 25, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "24", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 1056.0 + } + }, + { + "sku": "TMP-96B3ADA5BF", + "name": "скотч вспен зел. Black Gear 25*5 /Black Gear-36/\"25*5\"", + "rawName": "скотч вспен зел. Black Gear 25*5 /Black Gear-36/\"25*5\"", + "productType": "Вспененный скотч", + "widthMm": 25, + "lengthM": 5, + "thicknessMicron": null, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 3564.0 + } + }, + { + "sku": "TMP-B0470A49F7", + "name": "скотч вспен зел. Ost 25*10 /Ost-24/\"25*10\"", + "rawName": "скотч вспен зел. Ost 25*10 /Ost-24/\"25*10\"", + "productType": "Вспененный скотч", + "widthMm": 25, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "Ost", + "quantityPerBox": "24", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 24.0, + "SPB-01": 168.0 + } + }, + { + "sku": "TMP-77368C29BF", + "name": "скотч вспен зел. Фрегат 15*10 /П1-40/ \"15*10 Карт. вкл. штрих-код 4690554037452\" ИТУ+ВКЛАДЫШ", + "rawName": "скотч вспен зел. Фрегат 15*10 /П1-40/ \"15*10 Карт. вкл. штрих-код 4690554037452\" ИТУ+ВКЛАДЫШ", + "productType": "Вспененный скотч", + "widthMm": 15, + "lengthM": 10, + "thicknessMicron": null, + "sleeveBrand": "П1", + "quantityPerBox": "40", + "tags": [ + "зеленый" + ], + "balances": { + "MSK-01": 0.0, + "SPB-01": 0.0 + } + }, + { + "sku": "TMP-6918210434", + "name": "скотч метал Black Gear 48мм*10м*50мкм/Black Gear-36/ \"48*10\"", + "rawName": "скотч метал Black Gear 48мм*10м*50мкм/Black Gear-36/ \"48*10\"", + "productType": "Металлизированный скотч", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": 50, + "sleeveBrand": "Black Gear", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 0.0, + "SPB-01": 5328.0 + } + }, + { + "sku": "TMP-6B7D20B09B", + "name": "скотч метал Ost 48мм*10м*50мкм/Ost-36/ \"48*10\"", + "rawName": "скотч метал Ost 48мм*10м*50мкм/Ost-36/ \"48*10\"", + "productType": "Металлизированный скотч", + "widthMm": 48, + "lengthM": 10, + "thicknessMicron": 50, + "sleeveBrand": "Ost", + "quantityPerBox": "36", + "tags": [], + "balances": { + "MSK-01": 36.0, + "SPB-01": 6948.0 + } + } +] diff --git a/package.json b/package.json index 5965a7b..4d9e29f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "prisma:migrate": "prisma migrate deploy", "prisma:push": "prisma db push", "seed": "node scripts/seed.js", - "seed:demo": "node scripts/seed-demo.js" + "seed:demo": "node scripts/seed-demo.js", + "import:catalog": "node scripts/import-catalog.js" }, "keywords": [], "author": "", diff --git a/prisma/migrations/0010_add_product_tags/migration.sql b/prisma/migrations/0010_add_product_tags/migration.sql new file mode 100644 index 0000000..a78e7e8 --- /dev/null +++ b/prisma/migrations/0010_add_product_tags/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "Product" ADD COLUMN "tags" TEXT[] DEFAULT ARRAY[]::TEXT[]; + diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 98c4dd5..d3de7e0 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -179,6 +179,7 @@ model Product { thicknessMicron Int? sleeveBrand String? quantityPerBox String? + tags String[] @default([]) description String? isCustomizable Boolean @default(false) isActive Boolean @default(true) diff --git a/scripts/import-catalog.js b/scripts/import-catalog.js new file mode 100644 index 0000000..78c99ee --- /dev/null +++ b/scripts/import-catalog.js @@ -0,0 +1,105 @@ +import 'dotenv/config'; + +import { readFileSync } from 'node:fs'; + +import { prisma } from '../src/prisma-client.js'; + +const IMPORT_DESCRIPTION_PREFIX = 'Импорт каталога 2026-04-08: '; +const dataset = JSON.parse( + readFileSync(new URL('../data/catalog-import-2026-04-08.json', import.meta.url), 'utf8'), +); + +const warehouses = [ + { code: 'MSK-01', name: 'Склад Москва' }, + { code: 'SPB-01', name: 'Склад СПб' }, +]; + +function formatQuantity(value) { + return Number(value ?? 0).toFixed(3); +} + +for (const warehouse of warehouses) { + await prisma.warehouse.upsert({ + where: { code: warehouse.code }, + update: { name: warehouse.name }, + create: warehouse, + }); +} + +const warehouseIds = Object.fromEntries( + await Promise.all( + warehouses.map(async (warehouse) => { + const persistedWarehouse = await prisma.warehouse.findUniqueOrThrow({ + where: { code: warehouse.code }, + select: { id: true }, + }); + + return [warehouse.code, persistedWarehouse.id]; + }), + ), +); + +await prisma.product.updateMany({ + data: { + isActive: false, + }, +}); + +let importedCount = 0; + +for (const item of dataset) { + const product = await prisma.product.upsert({ + where: { sku: item.sku }, + update: { + name: item.name, + productType: item.productType, + widthMm: item.widthMm, + lengthM: item.lengthM, + thicknessMicron: item.thicknessMicron, + sleeveBrand: item.sleeveBrand, + quantityPerBox: item.quantityPerBox, + tags: item.tags, + description: `${IMPORT_DESCRIPTION_PREFIX}${item.rawName}`, + isCustomizable: false, + isActive: true, + }, + create: { + sku: item.sku, + name: item.name, + productType: item.productType, + widthMm: item.widthMm, + lengthM: item.lengthM, + thicknessMicron: item.thicknessMicron, + sleeveBrand: item.sleeveBrand, + quantityPerBox: item.quantityPerBox, + tags: item.tags, + description: `${IMPORT_DESCRIPTION_PREFIX}${item.rawName}`, + isCustomizable: false, + isActive: true, + }, + }); + + for (const warehouse of warehouses) { + await prisma.productStock.upsert({ + where: { + productId_warehouseId: { + productId: product.id, + warehouseId: warehouseIds[warehouse.code], + }, + }, + update: { + availableQty: formatQuantity(item.balances[warehouse.code]), + }, + create: { + productId: product.id, + warehouseId: warehouseIds[warehouse.code], + availableQty: formatQuantity(item.balances[warehouse.code]), + }, + }); + } + + importedCount += 1; +} + +console.log(`Imported ${importedCount} catalog products from 2026-04-08 stock reports.`); +await prisma.$disconnect(); diff --git a/src/schema.graphql b/src/schema.graphql index a9973d5..e1b6d96 100644 --- a/src/schema.graphql +++ b/src/schema.graphql @@ -242,6 +242,7 @@ type Product { thicknessMicron: Int sleeveBrand: String quantityPerBox: String + tags: [String!]! isCustomizable: Boolean! isActive: Boolean! availableInWarehouses: [ProductWarehouseBalance!]!