@isoftdata/ebay-utility 1.4.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/Readme.md +100 -115
  2. package/lib/adapters/AuthServerRepo.d.ts +13 -0
  3. package/lib/adapters/AuthServerRepo.d.ts.map +1 -0
  4. package/lib/adapters/AuthServerRepo.js +23 -0
  5. package/lib/adapters/AuthServerRepo.js.map +1 -0
  6. package/lib/adapters/ebay/EbayAdapter.d.ts +6 -1
  7. package/lib/adapters/ebay/EbayAdapter.d.ts.map +1 -1
  8. package/lib/adapters/ebay/EbayAdapter.js +4 -0
  9. package/lib/adapters/ebay/EbayAdapter.js.map +1 -1
  10. package/lib/adapters/ebay/WebEbayAdapter.d.ts +2 -1
  11. package/lib/adapters/ebay/WebEbayAdapter.d.ts.map +1 -1
  12. package/lib/adapters/ebay/WebEbayAdapter.js +4 -0
  13. package/lib/adapters/ebay/WebEbayAdapter.js.map +1 -1
  14. package/lib/adapters/itrack/ItrackAdapter.d.ts +18 -3
  15. package/lib/adapters/itrack/ItrackAdapter.d.ts.map +1 -1
  16. package/lib/adapters/itrack/ItrackAdapter.js +86 -26
  17. package/lib/adapters/itrack/ItrackAdapter.js.map +1 -1
  18. package/lib/entities/ebay/Address.d.ts +2 -0
  19. package/lib/entities/ebay/Address.d.ts.map +1 -1
  20. package/lib/entities/ebay/Address.js +11 -0
  21. package/lib/entities/ebay/Address.js.map +1 -1
  22. package/lib/entities/ebay/EbayInventoryLocationDTO.d.ts +9 -0
  23. package/lib/entities/ebay/EbayInventoryLocationDTO.d.ts.map +1 -0
  24. package/lib/entities/ebay/EbayInventoryLocationDTO.js +24 -0
  25. package/lib/entities/ebay/EbayInventoryLocationDTO.js.map +1 -0
  26. package/lib/entities/ebay/InventoryItem.d.ts +3 -3
  27. package/lib/entities/ebay/InventoryItem.d.ts.map +1 -1
  28. package/lib/entities/ebay/InventoryItem.js +1 -3
  29. package/lib/entities/ebay/InventoryItem.js.map +1 -1
  30. package/lib/entities/ebay/InventoryLocationStoreInput.d.ts +12 -0
  31. package/lib/entities/ebay/InventoryLocationStoreInput.d.ts.map +1 -0
  32. package/lib/entities/ebay/InventoryLocationStoreInput.js +2 -0
  33. package/lib/entities/ebay/InventoryLocationStoreInput.js.map +1 -0
  34. package/lib/entities/ebay/MerchantLocationKey.d.ts +1 -0
  35. package/lib/entities/ebay/MerchantLocationKey.d.ts.map +1 -1
  36. package/lib/entities/ebay/MerchantLocationKey.js +1 -0
  37. package/lib/entities/ebay/MerchantLocationKey.js.map +1 -1
  38. package/lib/entities/itrack/EcommercePartner.d.ts +46 -0
  39. package/lib/entities/itrack/EcommercePartner.d.ts.map +1 -0
  40. package/lib/entities/itrack/EcommercePartner.js +19 -0
  41. package/lib/entities/itrack/EcommercePartner.js.map +1 -0
  42. package/lib/index.d.ts +5 -4
  43. package/lib/index.d.ts.map +1 -1
  44. package/lib/index.js +5 -3
  45. package/lib/index.js.map +1 -1
  46. package/lib/infrastructure/EbayOAuthManager.d.ts.map +1 -1
  47. package/lib/infrastructure/EbayOAuthManager.js +6 -7
  48. package/lib/infrastructure/EbayOAuthManager.js.map +1 -1
  49. package/lib/infrastructure/HttpToRepoConverter.d.ts.map +1 -1
  50. package/lib/infrastructure/HttpToRepoConverter.js +9 -2
  51. package/lib/infrastructure/HttpToRepoConverter.js.map +1 -1
  52. package/lib/infrastructure/TokenManager.d.ts.map +1 -1
  53. package/lib/infrastructure/TokenManager.js +2 -3
  54. package/lib/infrastructure/TokenManager.js.map +1 -1
  55. package/lib/ports/EbayInterface.d.ts +2 -1
  56. package/lib/ports/EbayInterface.d.ts.map +1 -1
  57. package/lib/ports/ItrackInterface.d.ts +2 -2
  58. package/lib/ports/ItrackInterface.d.ts.map +1 -1
  59. package/lib/repositories/ebay/CompanyRepo.d.ts +5 -0
  60. package/lib/repositories/ebay/CompanyRepo.d.ts.map +1 -0
  61. package/lib/repositories/ebay/CompanyRepo.js +15 -0
  62. package/lib/repositories/ebay/CompanyRepo.js.map +1 -0
  63. package/lib/repositories/ebay/ImageUploadRepo.js +4 -4
  64. package/lib/repositories/ebay/InventoryLocationRepo.d.ts +3 -1
  65. package/lib/repositories/ebay/InventoryLocationRepo.d.ts.map +1 -1
  66. package/lib/repositories/ebay/InventoryLocationRepo.js +15 -0
  67. package/lib/repositories/ebay/InventoryLocationRepo.js.map +1 -1
  68. package/lib/repositories/itrack/CompanyRepo.d.ts +5 -0
  69. package/lib/repositories/itrack/CompanyRepo.d.ts.map +1 -0
  70. package/lib/repositories/itrack/CompanyRepo.js +8 -0
  71. package/lib/repositories/itrack/CompanyRepo.js.map +1 -0
  72. package/lib/repositories/itrack/EbayInventoryItemRowRepo_deprecated.d.ts +27 -0
  73. package/lib/repositories/itrack/EbayInventoryItemRowRepo_deprecated.d.ts.map +1 -0
  74. package/lib/repositories/itrack/EbayInventoryItemRowRepo_deprecated.js +2 -0
  75. package/lib/repositories/itrack/EbayInventoryItemRowRepo_deprecated.js.map +1 -0
  76. package/lib/repositories/itrack/EbayLocationRepo.d.ts +16 -0
  77. package/lib/repositories/itrack/EbayLocationRepo.d.ts.map +1 -0
  78. package/lib/repositories/itrack/EbayLocationRepo.js +32 -0
  79. package/lib/repositories/itrack/EbayLocationRepo.js.map +1 -0
  80. package/lib/repositories/itrack/EcommercePartnerRepo.d.ts +9 -0
  81. package/lib/repositories/itrack/EcommercePartnerRepo.d.ts.map +1 -0
  82. package/lib/repositories/itrack/EcommercePartnerRepo.js +26 -0
  83. package/lib/repositories/itrack/EcommercePartnerRepo.js.map +1 -0
  84. package/lib/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.d.ts +8 -0
  85. package/lib/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.d.ts.map +1 -0
  86. package/lib/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.js +66 -0
  87. package/lib/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.js.map +1 -0
  88. package/lib/repositories/itrack/StoreRepo.d.ts +2 -2
  89. package/lib/repositories/itrack/StoreRepo.d.ts.map +1 -1
  90. package/lib/usecases/Agg_StoreEvent.d.ts +1 -10
  91. package/lib/usecases/Agg_StoreEvent.d.ts.map +1 -1
  92. package/lib/usecases/Agg_StoreEvent.js +3 -6
  93. package/lib/usecases/Agg_StoreEvent.js.map +1 -1
  94. package/lib/usecases/Location/PushInventoryLocationToEbay.d.ts +2 -2
  95. package/lib/usecases/Location/PushInventoryLocationToEbay.d.ts.map +1 -1
  96. package/lib/usecases/Location/PushInventoryLocations.d.ts +16 -0
  97. package/lib/usecases/Location/PushInventoryLocations.d.ts.map +1 -0
  98. package/lib/usecases/Location/PushInventoryLocations.js +56 -0
  99. package/lib/usecases/Location/PushInventoryLocations.js.map +1 -0
  100. package/lib/usecases/Location/ReconcileLocationToEbay.d.ts +18 -0
  101. package/lib/usecases/Location/ReconcileLocationToEbay.d.ts.map +1 -0
  102. package/lib/usecases/Location/ReconcileLocationToEbay.js +50 -0
  103. package/lib/usecases/Location/ReconcileLocationToEbay.js.map +1 -0
  104. package/lib/usecases/Location/SyncInventoryLocationToEbay.d.ts +19 -0
  105. package/lib/usecases/Location/SyncInventoryLocationToEbay.d.ts.map +1 -0
  106. package/lib/usecases/Location/SyncInventoryLocationToEbay.js +79 -0
  107. package/lib/usecases/Location/SyncInventoryLocationToEbay.js.map +1 -0
  108. package/lib/usecases/Location/SyncInventoryLocationsToEbay.d.ts +17 -0
  109. package/lib/usecases/Location/SyncInventoryLocationsToEbay.d.ts.map +1 -0
  110. package/lib/usecases/Location/SyncInventoryLocationsToEbay.js +69 -0
  111. package/lib/usecases/Location/SyncInventoryLocationsToEbay.js.map +1 -0
  112. package/lib/usecases/Location/SyncInventoryLocations_TODO.d.ts +13 -0
  113. package/lib/usecases/Location/SyncInventoryLocations_TODO.d.ts.map +1 -0
  114. package/lib/usecases/Location/SyncInventoryLocations_TODO.js +10 -0
  115. package/lib/usecases/Location/SyncInventoryLocations_TODO.js.map +1 -0
  116. package/package.json +57 -56
@@ -0,0 +1,66 @@
1
+ import Dataloader from "dataloader";
2
+ export class ItrackEbayInventoryListingDetailRepo {
3
+ // We'll need a default for category, if no match in category map
4
+ // We'll need a default for description if empty which may involve a template
5
+ // We'll need a way to get the preferred sku format and/or a default
6
+ //
7
+ // Whichever thing consumes this itrack inventory item will be responsible for figuring out
8
+ // overrides and defaults
9
+ // Note: The eBay sync utility uses f_ebay_availability_type which involves quantity on order to adjust the value
10
+ // As far as I can tell, SHIP_TO_STORE is intended for the seller's
11
+ // own warehouse locations, not vendors...especially since using it requires supplying one's merchant location key
12
+ // With that in mind, I will not be using it unless we can confirm a customer is using
13
+ // a location in the way eBay thinks of as a warehouse.
14
+ // TODO: a list of image urls is required but that should likely come from a separate step.
15
+ constructor(db) {
16
+ this.get = async (id) => {
17
+ // Not really sure a dataloader is necessary here but Mark uses it elsewhere
18
+ return await this.dataloader.load(id);
19
+ };
20
+ // TODO: this will need to be a view at some point
21
+ // TODO: join against an override table which doesn't exist yet
22
+ this.dataloader = new Dataloader(async (ids) => {
23
+ return db.query({
24
+ sql: `
25
+ SELECT
26
+ inventory.innodb_inventoryid AS id,
27
+ ebayconditionmap.ebaycondition AS ebay_condition,
28
+ inventory.condition AS condition_description,
29
+ COALESCE(inventorylistingoverride.description, IFNULL(inventory.description, '')) AS ebay_description,
30
+ inventory.inventoryid AS inventoryid,
31
+ inventory.public AS public,
32
+ f_quantityavailable(inventory.inventoryid, inventory.storeid) AS quantity_available,
33
+ COALESCE(inventorylistingoverride.price,inventory.retailprice) AS ebay_price,
34
+ inventory.shippingwidth AS shippingwidth,
35
+ inventory.shippinglength AS shippinglength,
36
+ inventory.shippingheight AS shippingheight,
37
+ inventory.shippingmeasurementunit AS shippingmeasurementunit,
38
+ inventory.storeid AS storeid,
39
+ inventory.tagnumber AS tagnumber,
40
+ inventory.upc AS upc,
41
+ inventory.weight AS weight,
42
+ inventory.weightunit AS weightunit,
43
+ ebaycategorymap.ebaycategoryid AS ebay_category_id,
44
+ 'EBAY_MOTORS' AS ebay_marketplace,
45
+ manufacturer.name AS manufacturername,
46
+ model.name AS model
47
+ FROM
48
+ inventory
49
+ LEFT JOIN
50
+ ebayconditionmap ON inventory.category = ebayconditionmap.itrackcondition
51
+ LEFT JOIN
52
+ ebaycategorymap USING (inventorytypeid)
53
+ LEFT JOIN
54
+ manufacturer USING (manufacturerid)
55
+ LEFT JOIN
56
+ model USING (modelid)
57
+ LEFT JOIN
58
+ inventorylistingoverride ON inventory.innodb_inventoryid = inventorylistingoverride.id
59
+ WHERE inventory.innodb_inventoryid IN (?)
60
+ `,
61
+ values: [ids],
62
+ }).then(rows => ids.map(id => rows.find(row => row.id === id)));
63
+ });
64
+ }
65
+ }
66
+ //# sourceMappingURL=ItrackEbayInventoryListingDetailRepo_deprecated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItrackEbayInventoryListingDetailRepo_deprecated.js","sourceRoot":"","sources":["../../../src/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,YAAY,CAAA;AAGnC,MAAM,OAAO,oCAAoC;IAIzC,iEAAiE;IACjE,6EAA6E;IAC7E,oEAAoE;IACpE,GAAG;IACH,2FAA2F;IAC3F,yBAAyB;IAEzB,iHAAiH;IACjH,mEAAmE;IACnE,mHAAmH;IACnH,uFAAuF;IACvF,uDAAuD;IAEvD,2FAA2F;IAC3F,YAAY,EAAkB;QA+C3B,QAAG,GAAG,KAAK,EAAC,EAAU,EAAiC,EAAE;YAC5D,4EAA4E;YAC5E,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACzC,CAAC,CAAA;QAjDO,kDAAkD;QAClD,+DAA+D;QAC/D,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;YACzC,OAAO,EAAE,CAAC,KAAK,CAAyB;gBACpC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAoCJ;gBACD,MAAM,EAAE,CAAE,GAAG,CAAE;aAClB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;IACN,CAAC;CASR"}
@@ -2,7 +2,7 @@ import { MysqlDatastore } from '../../infrastructure/mysql/MysqlDatastore.js';
2
2
  export interface StoreRow {
3
3
  storeid: number;
4
4
  dunsnumber: number;
5
- name: string;
5
+ companyname: string;
6
6
  code: string;
7
7
  number: string | null;
8
8
  address: string;
@@ -19,7 +19,7 @@ export interface StoreRow {
19
19
  remittancephone: string;
20
20
  remittancecountry: string;
21
21
  invoicememo: string | null;
22
- webaddress: string | null;
22
+ website: string | null;
23
23
  customlogo: string | null;
24
24
  logofileid: number | null;
25
25
  private: 'False' | 'True';
@@ -1 +1 @@
1
- {"version":3,"file":"StoreRepo.d.ts","sourceRoot":"","sources":["../../../src/repositories/itrack/StoreRepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAG7E,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,aAAa,OAAO,KAAG,WAAW,IAAI,CAEjE,CAAA;AAeD,qBAAa,SAAS;IAGT,OAAO,CAAC,QAAQ,CAAC,EAAE;IAF/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;gBAExC,EAAE,EAAE,cAAc;IAWxC,MAAM,QAAa,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGH;IAE1C,OAAO,CAAC,SAAS,CAM4B;CAC7C"}
1
+ {"version":3,"file":"StoreRepo.d.ts","sourceRoot":"","sources":["../../../src/repositories/itrack/StoreRepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAG7E,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,aAAa,OAAO,KAAG,WAAW,IAAI,CAEjE,CAAA;AAeD,qBAAa,SAAS;IAGT,OAAO,CAAC,QAAQ,CAAC,EAAE;IAF/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;gBAExC,EAAE,EAAE,cAAc;IAWxC,MAAM,QAAa,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGH;IAE1C,OAAO,CAAC,SAAS,CAM4B;CAC7C"}
@@ -1,20 +1,11 @@
1
1
  import { EbayAdapter } from '../adapters/ebay/EbayAdapter.js';
2
2
  import { ItrackAdapter } from '../adapters/itrack/ItrackAdapter.js';
3
3
  import { TokenManager } from '../infrastructure/TokenManager.js';
4
- /**
5
- * This use case is to mimic the behavior of the SyncInventoryLocations use case on a store event or something like that.
6
- */
7
- /**
8
- * This use case should get run on store inserts/updates?
9
- * Ideally we should first retrieve all of the existing ebay locations
10
- * Then compare incoming changes and determine if they should be changed
11
- * If there are any changes, add/update ebay location?
12
- * This should also get run on startup since inventory depends on location(s) existing
13
- */
14
4
  interface Input {
15
5
  ebayAdapter: EbayAdapter;
16
6
  itrackAdapter: ItrackAdapter;
17
7
  tokenManager: TokenManager;
8
+ production: boolean;
18
9
  }
19
10
  export declare const storeEvent: (params: Input) => Promise<void>;
20
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Agg_StoreEvent.d.ts","sourceRoot":"","sources":["../../src/usecases/Agg_StoreEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAGhE;;GAEG;AAKH;;;;;;GAMG;AAEH,UAAU,KAAK;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;CAC1B;AAID,eAAO,MAAM,UAAU,GAAU,QAAQ,KAAK,kBAM7C,CAAA"}
1
+ {"version":3,"file":"Agg_StoreEvent.d.ts","sourceRoot":"","sources":["../../src/usecases/Agg_StoreEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAKhE,UAAU,KAAK;IACX,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,UAAU,GAAU,QAAQ,KAAK,kBAM7C,CAAA"}
@@ -1,12 +1,9 @@
1
- import { syncInventoryLocations } from './Location/SyncInventoryLocations.js';
2
- // On store insert or update event call syncInventoryLocations
3
- // TODO: maybe we need a use case for retrieving existing, comparing incoming with existing
4
- // TODO: confirm if we can change location info on ebay
1
+ import { syncInventoryLocationsToEbay } from './Location/SyncInventoryLocationsToEbay.js';
5
2
  export const storeEvent = async (params) => {
6
- await syncInventoryLocations({
3
+ await syncInventoryLocationsToEbay({
7
4
  ebayAdapter: params.ebayAdapter,
8
5
  itrackAdapter: params.itrackAdapter,
9
- tokenManager: params.tokenManager,
6
+ production: params.production,
10
7
  });
11
8
  };
12
9
  //# sourceMappingURL=Agg_StoreEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Agg_StoreEvent.js","sourceRoot":"","sources":["../../src/usecases/Agg_StoreEvent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAsB7E,8DAA8D;AAC9D,2FAA2F;AAC3F,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,MAAa,EAAE,EAAE;IACjD,MAAM,sBAAsB,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,YAAY,EAAE,MAAM,CAAC,YAAY;KACjC,CAAC,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Agg_StoreEvent.js","sourceRoot":"","sources":["../../src/usecases/Agg_StoreEvent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAA;AAWzF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,MAAa,EAAE,EAAE;IAC9C,MAAM,4BAA4B,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU;KAChC,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -1,8 +1,8 @@
1
- import { InventoryLocationDTO } from './SyncInventoryLocations.js';
1
+ import { EbayInventoryLocationDTO } from '../../entities/ebay/EbayInventoryLocationDTO.js';
2
2
  import { EbayInterface } from '../../ports/EbayInterface.js';
3
3
  export interface PushLocationInput {
4
4
  ebay: EbayInterface;
5
- data: InventoryLocationDTO;
5
+ data: EbayInventoryLocationDTO;
6
6
  }
7
7
  /**
8
8
  * Checks if ebay location exists, creates if it doesn't
@@ -1 +1 @@
1
- {"version":3,"file":"PushInventoryLocationToEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/PushInventoryLocationToEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,oBAAoB,CAAA;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,QAAQ,iBAAiB,kBAKpE,CAAA"}
1
+ {"version":3,"file":"PushInventoryLocationToEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/PushInventoryLocationToEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAA;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,wBAAwB,CAAA;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,QAAQ,iBAAiB,kBAKpE,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { EbayInterface } from '../../ports/EbayInterface.js';
2
+ import { EbayInventoryLocationDTO } from '../../entities/ebay/EbayInventoryLocationDTO.js';
3
+ export interface PushInventoryLocationsInput {
4
+ ebayAdapter: EbayInterface;
5
+ data: EbayInventoryLocationDTO[];
6
+ }
7
+ export interface PushInventoryLocationsResult {
8
+ success: boolean;
9
+ errors: Array<{
10
+ storeId: number | null;
11
+ message: string;
12
+ details?: unknown;
13
+ }>;
14
+ }
15
+ export declare const pushInventoryLocations: (params: PushInventoryLocationsInput) => Promise<PushInventoryLocationsResult>;
16
+ //# sourceMappingURL=PushInventoryLocations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushInventoryLocations.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/PushInventoryLocations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAA;AAE1F,MAAM,WAAW,2BAA2B;IAC3C,WAAW,EAAE,aAAa,CAAA;IAC1B,IAAI,EAAE,wBAAwB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC5C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAC7E;AAED,eAAO,MAAM,sBAAsB,GAClC,QAAQ,2BAA2B,KACjC,OAAO,CAAC,4BAA4B,CA+DtC,CAAA"}
@@ -0,0 +1,56 @@
1
+ import { StoreTypeEnum } from '../../entities/ebay/InventoryLocationFull.js';
2
+ export const pushInventoryLocations = async (params) => {
3
+ try {
4
+ const locationsResponse = await params.ebayAdapter.getInventoryLocations();
5
+ if (!locationsResponse.success) {
6
+ return {
7
+ success: false,
8
+ errors: [{ storeId: null, message: 'Failed to retrieve inventory locations from eBay', details: locationsResponse }],
9
+ };
10
+ }
11
+ const ebayLocations = locationsResponse.data;
12
+ const errors = [];
13
+ for (const dto of params.data) {
14
+ const existingLocation = ebayLocations.find(l => l.merchantLocationKey === dto.key);
15
+ if (!existingLocation) {
16
+ const createResponse = await params.ebayAdapter.createInventoryLocation(dto);
17
+ if (!createResponse.success) {
18
+ errors.push({ storeId: dto.storeId, message: 'Failed to create inventory location on eBay', details: createResponse });
19
+ }
20
+ continue;
21
+ }
22
+ const isWarehouse = existingLocation.locationTypes.includes(StoreTypeEnum.Warehouse);
23
+ const nameChanged = dto.location.name !== undefined && dto.location.name !== existingLocation.name;
24
+ const phoneChanged = dto.location.phone !== undefined && dto.location.phone !== existingLocation.phone;
25
+ let addressChanged = false;
26
+ if (isWarehouse) {
27
+ const incoming = dto.location.location.address;
28
+ const existing = existingLocation.location.address;
29
+ addressChanged =
30
+ incoming.addressLine1 !== existing.addressLine1 ||
31
+ incoming.postalCode !== existing.postalCode ||
32
+ incoming.city !== existing.city ||
33
+ incoming.stateOrProvince !== existing.stateOrProvince ||
34
+ incoming.country !== existing.country;
35
+ }
36
+ if (!nameChanged && !phoneChanged && !addressChanged) {
37
+ continue;
38
+ }
39
+ const updatePayload = isWarehouse
40
+ ? { name: dto.location.name, phone: dto.location.phone, location: { address: dto.location.location.address } }
41
+ : { name: dto.location.name, phone: dto.location.phone };
42
+ const updateResponse = await params.ebayAdapter.updateInventoryLocation({ key: dto.key, location: updatePayload });
43
+ if (!updateResponse.success) {
44
+ errors.push({ storeId: dto.storeId, message: 'Failed to update inventory location on eBay', details: updateResponse });
45
+ }
46
+ }
47
+ return { success: errors.length === 0, errors };
48
+ }
49
+ catch (error) {
50
+ return {
51
+ success: false,
52
+ errors: [{ storeId: null, message: error instanceof Error ? error.message : 'Unknown error', details: error }],
53
+ };
54
+ }
55
+ };
56
+ //# sourceMappingURL=PushInventoryLocations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushInventoryLocations.js","sourceRoot":"","sources":["../../../src/usecases/Location/PushInventoryLocations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { EbayInterface } from '../../ports/EbayInterface.js';
2
+ import { InventoryLocationFull } from '../../entities/ebay/InventoryLocationFull.js';
3
+ import { EbayInventoryLocationDTO } from '../../entities/ebay/EbayInventoryLocationDTO.js';
4
+ export interface ReconcileLocationInput {
5
+ ebayAdapter: EbayInterface;
6
+ dto: EbayInventoryLocationDTO;
7
+ existing: InventoryLocationFull | null;
8
+ }
9
+ export interface ReconcileLocationResult {
10
+ action: 'create' | 'update' | 'noop' | 'skip';
11
+ success: boolean;
12
+ error?: {
13
+ message: string;
14
+ details?: unknown;
15
+ };
16
+ }
17
+ export declare const reconcileLocationToEbay: (params: ReconcileLocationInput) => Promise<ReconcileLocationResult>;
18
+ //# sourceMappingURL=ReconcileLocationToEbay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconcileLocationToEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/ReconcileLocationToEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAiB,MAAM,8CAA8C,CAAA;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAA;AAG1F,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,aAAa,CAAA;IAC1B,GAAG,EAAE,wBAAwB,CAAA;IAC7B,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACzC;AAGD,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;IAC7C,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACjD;AAED,eAAO,MAAM,uBAAuB,GAChC,QAAQ,sBAAsB,KAC/B,OAAO,CAAC,uBAAuB,CAoDjC,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { StoreTypeEnum } from '../../entities/ebay/InventoryLocationFull.js';
2
+ import { hasMinimumAddressFields } from '../../entities/ebay/Address.js';
3
+ export const reconcileLocationToEbay = async (params) => {
4
+ const { ebayAdapter, dto, existing } = params;
5
+ if (!existing) {
6
+ if (!hasMinimumAddressFields(dto.location.location.address)) {
7
+ return { action: 'skip', success: true };
8
+ }
9
+ const createResponse = await ebayAdapter.createInventoryLocation(dto);
10
+ if (!createResponse.success) {
11
+ return {
12
+ action: 'create',
13
+ success: false,
14
+ error: { message: 'Failed to create inventory location on eBay', details: createResponse },
15
+ };
16
+ }
17
+ return { action: 'create', success: true };
18
+ }
19
+ const isWarehouse = existing.locationTypes.includes(StoreTypeEnum.Warehouse);
20
+ const nameChanged = dto.location.name !== undefined && dto.location.name !== existing.name;
21
+ const phoneChanged = dto.location.phone !== undefined && dto.location.phone !== existing.phone;
22
+ const webUrlChanged = dto.location.locationWebUrl !== undefined && dto.location.locationWebUrl !== existing.locationWebUrl;
23
+ let addressChanged = false;
24
+ if (isWarehouse) {
25
+ const incoming = dto.location.location.address;
26
+ const current = existing.location.address;
27
+ addressChanged =
28
+ incoming.addressLine1 !== current.addressLine1 ||
29
+ incoming.postalCode !== current.postalCode ||
30
+ incoming.city !== current.city ||
31
+ incoming.stateOrProvince !== current.stateOrProvince ||
32
+ incoming.country !== current.country;
33
+ }
34
+ if (!nameChanged && !phoneChanged && !webUrlChanged && !addressChanged) {
35
+ return { action: 'noop', success: true };
36
+ }
37
+ const updatePayload = isWarehouse
38
+ ? { name: dto.location.name, phone: dto.location.phone, locationWebUrl: dto.location.locationWebUrl, location: { address: dto.location.location.address } }
39
+ : { name: dto.location.name, phone: dto.location.phone, locationWebUrl: dto.location.locationWebUrl };
40
+ const updateResponse = await ebayAdapter.updateInventoryLocation({ key: dto.key, location: updatePayload });
41
+ if (!updateResponse.success) {
42
+ return {
43
+ action: 'update',
44
+ success: false,
45
+ error: { message: 'Failed to update inventory location on eBay', details: updateResponse },
46
+ };
47
+ }
48
+ return { action: 'update', success: true };
49
+ };
50
+ //# sourceMappingURL=ReconcileLocationToEbay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconcileLocationToEbay.js","sourceRoot":"","sources":["../../../src/usecases/Location/ReconcileLocationToEbay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { EbayAdapter } from '../../adapters/ebay/EbayAdapter.js';
2
+ import { ItrackAdapter } from '../../adapters/itrack/ItrackAdapter.js';
3
+ import { EbayInventoryLocationDTO } from '../../entities/ebay/EbayInventoryLocationDTO.js';
4
+ export interface SyncInventoryLocationToEbayInput {
5
+ ebayAdapter: EbayAdapter;
6
+ itrackAdapter: ItrackAdapter;
7
+ production: boolean;
8
+ dto: EbayInventoryLocationDTO;
9
+ }
10
+ export interface SyncInventoryLocationToEbayResult {
11
+ success: boolean;
12
+ errors: Array<{
13
+ storeId: number | null;
14
+ message: string;
15
+ details?: unknown;
16
+ }>;
17
+ }
18
+ export declare const syncInventoryLocationToEbay: (params: SyncInventoryLocationToEbayInput) => Promise<SyncInventoryLocationToEbayResult>;
19
+ //# sourceMappingURL=SyncInventoryLocationToEbay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocationToEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocationToEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAA;AAa1F,MAAM,WAAW,gCAAgC;IAC7C,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,UAAU,EAAE,OAAO,CAAA;IACnB,GAAG,EAAE,wBAAwB,CAAA;CAChC;AAED,MAAM,WAAW,iCAAiC;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,eAAO,MAAM,2BAA2B,GACpC,QAAQ,gCAAgC,KACzC,OAAO,CAAC,iCAAiC,CA4E3C,CAAA"}
@@ -0,0 +1,79 @@
1
+ import { reconcileLocationToEbay } from './ReconcileLocationToEbay.js';
2
+ function formatEbayError(message, details) {
3
+ const d = details;
4
+ const statusPart = d?.status ? ` (HTTP ${d.status} ${d.statusText ?? ''})`.trimEnd() : '';
5
+ const ebayMessages = d?.data?.length
6
+ ? ': ' + d.data.map(e => `[${e.errorId}] ${e.message}`).join('; ')
7
+ : '';
8
+ return `${message}${statusPart}${ebayMessages}`;
9
+ }
10
+ export const syncInventoryLocationToEbay = async (params) => {
11
+ const { ebayAdapter, itrackAdapter, production, dto } = params;
12
+ const errors = [];
13
+ const existing = await itrackAdapter.getEbayLocation(dto.storeId, production);
14
+ if (!existing.success) {
15
+ return {
16
+ success: false,
17
+ errors: [{
18
+ storeId: dto.storeId,
19
+ message: existing.error?.message ?? 'Failed to load cached eBay location',
20
+ details: existing,
21
+ }],
22
+ };
23
+ }
24
+ const result = await reconcileLocationToEbay({
25
+ ebayAdapter,
26
+ dto,
27
+ existing: existing.data ?? null,
28
+ });
29
+ if (!result.success) {
30
+ return {
31
+ success: false,
32
+ errors: [{
33
+ storeId: dto.storeId,
34
+ message: formatEbayError(result.error?.message ?? 'Reconciliation failed', result.error?.details),
35
+ details: result.error?.details,
36
+ }],
37
+ };
38
+ }
39
+ if (result.action === 'noop' || result.action === 'skip') {
40
+ return { success: true, errors: [] };
41
+ }
42
+ const ebayName = dto.location.name;
43
+ if (!ebayName) {
44
+ return {
45
+ success: false,
46
+ errors: [{
47
+ storeId: dto.storeId,
48
+ message: 'DTO missing location.name; cannot persist to ebay_location',
49
+ }],
50
+ };
51
+ }
52
+ const upsertLocationResult = await itrackAdapter.upsertEbayLocation({
53
+ storeId: dto.storeId,
54
+ production,
55
+ ebayName,
56
+ details: dto.location,
57
+ });
58
+ if (!upsertLocationResult.success) {
59
+ errors.push({
60
+ storeId: dto.storeId,
61
+ message: upsertLocationResult.error?.message ?? 'Failed to upsert ebay_location',
62
+ details: upsertLocationResult,
63
+ });
64
+ }
65
+ const upsertSliceResult = await itrackAdapter.upsertEbayPartnerStoreSlice({
66
+ storeId: dto.storeId,
67
+ name: ebayName,
68
+ merchantLocationKey: dto.key,
69
+ });
70
+ if (!upsertSliceResult.success) {
71
+ errors.push({
72
+ storeId: dto.storeId,
73
+ message: upsertSliceResult.error?.message ?? 'Failed to upsert partner store slice',
74
+ details: upsertSliceResult,
75
+ });
76
+ }
77
+ return { success: errors.length === 0, errors };
78
+ };
79
+ //# sourceMappingURL=SyncInventoryLocationToEbay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocationToEbay.js","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocationToEbay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { EbayAdapter } from '../../adapters/ebay/EbayAdapter.js';
2
+ import { ItrackAdapter } from '../../adapters/itrack/ItrackAdapter.js';
3
+ export interface SyncInventoryLocationsToEbayInput {
4
+ ebayAdapter: EbayAdapter;
5
+ itrackAdapter: ItrackAdapter;
6
+ production: boolean;
7
+ }
8
+ export interface SyncInventoryLocationsToEbayResult {
9
+ success: boolean;
10
+ errors: Array<{
11
+ storeId: number | null;
12
+ message: string;
13
+ details?: unknown;
14
+ }>;
15
+ }
16
+ export declare const syncInventoryLocationsToEbay: (params: SyncInventoryLocationsToEbayInput) => Promise<SyncInventoryLocationsToEbayResult>;
17
+ //# sourceMappingURL=SyncInventoryLocationsToEbay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocationsToEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocationsToEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAGtE,MAAM,WAAW,iCAAiC;IAC9C,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,UAAU,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,kCAAkC;IAC/C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAChF;AAGD,eAAO,MAAM,4BAA4B,GACrC,QAAQ,iCAAiC,KAC1C,OAAO,CAAC,kCAAkC,CA0E5C,CAAA"}
@@ -0,0 +1,69 @@
1
+ import { reconcileLocationToEbay } from './ReconcileLocationToEbay.js';
2
+ // Loads all store/DTOs from itrack and current eBay locations, tries to match and update
3
+ export const syncInventoryLocationsToEbay = async (params) => {
4
+ const { ebayAdapter, itrackAdapter, production } = params;
5
+ const errors = [];
6
+ const dtos = await itrackAdapter.getInventoryLocations();
7
+ const liveResponse = await ebayAdapter.getInventoryLocations();
8
+ if (!liveResponse.success) {
9
+ return {
10
+ success: false,
11
+ errors: [{
12
+ storeId: null,
13
+ message: 'Failed to retrieve inventory locations from eBay',
14
+ details: liveResponse,
15
+ }],
16
+ };
17
+ }
18
+ const liveLocations = liveResponse.data;
19
+ for (const dto of dtos) {
20
+ const existing = liveLocations.find(l => l.merchantLocationKey === dto.key) ?? null;
21
+ const result = await reconcileLocationToEbay({ ebayAdapter, dto, existing });
22
+ if (!result.success) {
23
+ errors.push({
24
+ storeId: dto.storeId,
25
+ message: result.error?.message ?? 'Reconciliation failed',
26
+ details: result.error?.details,
27
+ });
28
+ continue;
29
+ }
30
+ if (result.action === 'noop' || result.action === 'skip') {
31
+ continue;
32
+ }
33
+ const ebayName = dto.location.name;
34
+ if (!ebayName) {
35
+ errors.push({
36
+ storeId: dto.storeId,
37
+ message: 'DTO missing location.name; cannot persist to ebay_location',
38
+ });
39
+ continue;
40
+ }
41
+ const upsertLocationResult = await itrackAdapter.upsertEbayLocation({
42
+ storeId: dto.storeId,
43
+ production,
44
+ ebayName,
45
+ details: dto.location,
46
+ });
47
+ if (!upsertLocationResult.success) {
48
+ errors.push({
49
+ storeId: dto.storeId,
50
+ message: upsertLocationResult.error?.message ?? 'Failed to upsert ebay_location',
51
+ details: upsertLocationResult,
52
+ });
53
+ }
54
+ const upsertSliceResult = await itrackAdapter.upsertEbayPartnerStoreSlice({
55
+ storeId: dto.storeId,
56
+ name: ebayName,
57
+ merchantLocationKey: dto.key,
58
+ });
59
+ if (!upsertSliceResult.success) {
60
+ errors.push({
61
+ storeId: dto.storeId,
62
+ message: upsertSliceResult.error?.message ?? 'Failed to upsert partner store slice',
63
+ details: upsertSliceResult,
64
+ });
65
+ }
66
+ }
67
+ return { success: errors.length === 0, errors };
68
+ };
69
+ //# sourceMappingURL=SyncInventoryLocationsToEbay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocationsToEbay.js","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocationsToEbay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { EbayAdapter } from '../../adapters/ebay/EbayAdapter.js';
2
+ import { ItrackAdapter } from '../../adapters/itrack/ItrackAdapter.js';
3
+ import { TokenManager } from '../../infrastructure/TokenManager.js';
4
+ import { InventoryLocationDTO } from './SyncInventoryLocations.js';
5
+ export interface SyncInventoryLocationsInput {
6
+ ebayAdapter: EbayAdapter;
7
+ itrackAdapter: ItrackAdapter;
8
+ tokenManager: TokenManager;
9
+ production: boolean;
10
+ data: InventoryLocationDTO[];
11
+ }
12
+ export declare const syncInventoryLocationsToEbay: (_params: SyncInventoryLocationsInput) => Promise<void>;
13
+ //# sourceMappingURL=SyncInventoryLocations_TODO.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocations_TODO.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocations_TODO.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,MAAM,WAAW,2BAA2B;IAC3C,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,oBAAoB,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,4BAA4B,GAAU,SAAS,2BAA2B,KAAG,OAAO,CAAC,IAAI,CAErG,CAAA"}
@@ -0,0 +1,10 @@
1
+ // TODO: Server-side version of pushInventoryLocations for projects that have direct
2
+ // itrack DB access (e.g. not the web context). Should follow the SyncFulfillmentPolicies
3
+ // pattern: fetch from eBay, compare, create/update on eBay, then write the
4
+ // storeId → merchantLocationKey mapping back to itrack via itrackAdapter.
5
+ //
6
+ // Core eBay logic lives in PushInventoryLocations.ts — reuse or extract it.
7
+ export const syncInventoryLocationsToEbay = async (_params) => {
8
+ throw new Error('Not implemented');
9
+ };
10
+ //# sourceMappingURL=SyncInventoryLocations_TODO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocations_TODO.js","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocations_TODO.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,yFAAyF;AACzF,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAe5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAE,OAAoC,EAAiB,EAAE;IACzG,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACnC,CAAC,CAAA"}