Carlos R. L. Rodrigues
45134e4d11
chore: local workflow proxying methods to pass context ( #6263 )
...
What:
- When calling a module's method inside a Local Workflow the MedusaContext is passed as the last argument to the method if not provided
- Add `requestId` to req
- A couple of fixes on Remote Joiner and the data fetcher for internal services
Why:
- The context used to initialize the workflow has to be shared with all modules. properties like transactionId will be used to emit events and requestId to trace logs for example.
2024-02-01 13:37:26 +00:00
Philip Korsholm
d1c18a3090
feat(medusa, stock-location, types): Add q and order params to list-stock-locations ( #6197 )
...
**What**
- add `q` and `order` params to list-stock-location endpoint
closes #6189
2024-01-29 09:14:39 +00:00
Carlos R. L. Rodrigues
d85fee42ee
chore: use loaded module reference ( #5763 )
2024-01-23 08:31:02 -03:00
Adrien de Peretti
2826605b01
fix(medusa): Order edit confirmation conflict line items update ( #5867 )
...
* fix(medusa): Order edit confirmation conflict line items update
* naming
* Create serious-flowers-provide.md
* another proposal
* fixes
2023-12-14 14:52:27 +01:00
Philip Korsholm
18afe0b9ad
Fix(medusa, inventory, stock-location, types, utils): Modules sdk build query ( #5713 )
...
* remove defaults
* take 2
* works now
* add changeset
* pricing module and pricing service list take null updates
* update handlers
* update product module service with take:null where relevant
* no spread
* note to self:default offset should be 0, not 15
2023-11-27 10:17:42 +00:00
Adrien de Peretti
154c9b43bd
feat(medusa, modules-sdk, types, utils): Re work modules loading and remove legacy functions ( #5496 )
2023-11-02 17:59:13 +01:00
Adrien de Peretti
a45da9215d
fix(medusa, modules-sdk, modules): Module loading missing dependencies + remote query reference issue ( #5468 )
2023-10-26 20:24:38 +02:00
Carlos R. L. Rodrigues
130cbc1f43
feat(*): Modules export entities and fields ( #5242 )
2023-10-03 14:20:43 -07:00
Carlos R. L. Rodrigues
4d16acf5f0
feat(link-modules,modules-sdk, utils, types, products) - Remote Link and Link modules ( #4695 )
...
What:
- Definition of all Modules links
- `link-modules` package to manage the creation of all pre-defined link or custom ones
```typescript
import { initialize as iniInventory } from "@medusajs/inventory";
import { initialize as iniProduct } from "@medusajs/product";
import {
initialize as iniLinks,
runMigrations as migrateLinks
} from "@medusajs/link-modules";
await Promise.all([iniInventory(), iniProduct()]);
await migrateLinks(); // create tables based on previous loaded modules
await iniLinks(); // load link based on previous loaded modules
await iniLinks(undefined, [
{
serviceName: "product_custom_translation_service_link",
isLink: true,
databaseConfig: {
tableName: "product_transalations",
},
alias: [
{
name: "translations",
},
],
primaryKeys: ["id", "product_id", "translation_id"],
relationships: [
{
serviceName: Modules.PRODUCT,
primaryKey: "id",
foreignKey: "product_id",
alias: "product",
},
{
serviceName: "custom_translation_service",
primaryKey: "id",
foreignKey: "translation_id",
alias: "transalation",
deleteCascade: true,
},
],
extends: [
{
serviceName: Modules.PRODUCT,
relationship: {
serviceName: "product_custom_translation_service_link",
primaryKey: "product_id",
foreignKey: "id",
alias: "translations",
isList: true,
},
},
{
serviceName: "custom_translation_service",
relationship: {
serviceName: "product_custom_translation_service_link",
primaryKey: "product_id",
foreignKey: "id",
alias: "product_link",
},
},
],
},
]); // custom links
```
Remote Link
```typescript
import { RemoteLink, Modules } from "@medusajs/modules-sdk";
// [...] initialize modules and links
const remoteLink = new RemoteLink();
// upsert the relationship
await remoteLink.create({ // one (object) or many (array)
[Modules.PRODUCT]: {
variant_id: "var_abc",
},
[Modules.INVENTORY]: {
inventory_item_id: "iitem_abc",
},
data: { // optional additional fields
required_quantity: 5
}
});
// dismiss (doesn't cascade)
await remoteLink.dismiss({ // one (object) or many (array)
[Modules.PRODUCT]: {
variant_id: "var_abc",
},
[Modules.INVENTORY]: {
inventory_item_id: "iitem_abc",
},
});
// delete
await remoteLink.delete({
// every key is a module
[Modules.PRODUCT]: {
// every key is a linkable field
variant_id: "var_abc", // single or multiple values
},
});
// restore
await remoteLink.restore({
// every key is a module
[Modules.PRODUCT]: {
// every key is a linkable field
variant_id: "var_abc", // single or multiple values
},
});
```
Co-authored-by: Riqwan Thamir <5105988+riqwan@users.noreply.github.com >
2023-08-30 14:31:32 +00:00
Carlos R. L. Rodrigues
5a8a889c6d
feat(modules-sdk): Remote Query ( #4463 )
...
* feat: Remote Query
2023-07-19 15:35:36 -03:00
Adrien de Peretti
14c0f62f84
feat: Product Module ( #4161 )
...
* chore: boilerplate setup
* wip: add Product, ProductTag, ProductType, ProductCollection models
* wip: `IProductService` definition
* wip: test function in index, build passing
* fix: where condition
* chore: get boilerplate working with modules sdk, create a boilerplate test, create product variant model, register services properly
* chore: added variant to model
* chore: changed definition details + add migrator
* cleanup and update product entity
* Update product unique index to include soft deleted
* Migrations tests
* generated migration
* update dev orm config
* add path aliases
* WIP
* chore: added boilerplate integration test + database helper + product variant migraiton + model
* chore: remove old test utils
* update ts and jest config to include path aliases
* tweak config
* WIP migrations variant
* Migrations round
* integration tests migrations polishing
* chore: fixed issues with test db
* fix path aliases when published
* use ts-alias
* fix connection loader
* fixes
* wip: product list
* (WIP): Data access layer
* (WIP): DAL cleanup services
* wip: `ProductTag` DAL
* wip: `ProductTag` expose list in product service
* (WIP): Continue DAL and test list product filtering/populate
* WIP: unit tests
* chore: added tests for service - productvariant
* chore: WIP finding issues with orm manager fork
* WIP fix fields selection
* chore: make text fixes work
* (WIP) product integration
* (WIP) product integration
* chore: create a product in variant test
* list product with relations
* wip: `ProductTag` service + integrations
* chore: added with and without serialization example
* chore: remove only in spec
* wip: `ProductCollection` service + integrations
* uncomment product.variants
* Update type IProductService
* (WIP) type work
* (WIP) Product variants relation
* WIP: replacable data layer
* (WIP): Use bundle types
* WIP: update type
* WIP upadte tests
* WIP
* wip: options/option values entites
* (WIP): cleanup
* wip: add option value to variant, fix collection
* Integration tests for custom data access layer
* update tests
* chore: merge with latest branch
* chore: scope tests to relations and add category to models/index
* chore: ignore dist folders for jest
* chore: modularize spec data file
* improve DX
* module fixture naming
* chore: added category tests + fix model
* chore: use kebab case
* chore: allow scoping products by category id
* chore: replace `kebabCase` import
* feat: add `deleted_at` to options
* improve typings
* chore: wip
* fix query util
* revert webpack
* fix: update option models, create option DTOs, tests wip, fix `deduplicateIfNecessary` returning `undefined`
* fix: merge conflict
* WIP connection
* rm unsues deps
* fix migrations
* fix query util
* chore: adds mpath on creation
* WIP update types
* improve typings
* WIP typeings improvement
* WIP
* deps
* chore: package medusa/product ot medusa-commerce/product
* chore: added product categories service + descendants filter
* add missing index
* Add support for strict categories not in
* Add support for strict categories not in
* lint
* rename module
* rename module
* Create small-ducks-doubt.md
* yarn lock
* update initialise
* chore: fix/finalise DTOs
* fix: wrong types in `IProductService`
* fix type
* Load database config from env if present (#4175 )
* Load database config from env if present
* Load database config from env if present
* options optionnal
* update util
* add defaults
* improve filterable interfaces
* fix import
* fix types
* remove medusa-telemetry from modules-sdk
* WIP fixing webpack issues when bootstraping module
* cleanup
* improve loading driver options
* cleanup
* yarn lock
* fix import
* improve sdk types and naming
* align orther modules initialise method
* fix module tests with singleton module
* fix module tests with singleton module
* add up/down migration scripts
* update types
* scripts
* cleanup migrations and scripts
* hash module singleton
* cleanup migration
* cleanup
* fix stringifyCircular usage
* improvements
* fix deps
* fix deps
* improve load config utils
* improve load config utils
* fix deps
* add declaration to the build
* update yarn
* Do not resolve a module path if the exports are explicitly given
* fix module registration resolution path when exports are provided. Explicitly check for false and assign an empty string in this scenario for segregation purpose
* add comment
* fix migration options to prevent set replica errors
* chore: update types to a proper depedency
* chore: update type package
* add seed scripts
* Add descriptive error during database config loading
* use MedusaError
* chore: added lodash to package
* add more test to the database config loader util
* create bin scripts
* add bin
* update argv retrieval
* update package.json
* chore: add product category to injected deps
* chore: replace with product category service
* move dotenv usage to the functions
* do not load db if there is custom manager
* chore: fix some tests on products repo
* chore: fixed product spec
* chore: skip products module on modules register
* stringifyCircular update
* chore: fix incorrect module resolution
* fix: circular stringify and non required module loading
* yarn lock
* target es5
* chore: mikro-orm back to 5.7.4
* revert module registry
* skip external modules
* es2020
* update indexes, migration and integration tests
* rm only
* unit test script should only run unit tests
* Exclude product integration from the unit tests and make use of the global integration script to run all packages integration tests
* fix integration tests
* improve setup
* cleanup
* log error on setup fail
* Create enum like for package names
* chore: remove EOL
* chore: review part 2
* renamve gateway to productModuleService
* chore: added filters and collections to productmoduleservice
* chore: add collection to the singleton instance
* chore: remove skipped test + add todo
* fix indexes on fields and relations + update migration
* update yarn lock
* update idx
* add foreign key
* rename interface and add listCategories
* rename product module definition
---------
Co-authored-by: fPolic <frane@medusajs.com >
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com >
Co-authored-by: Carlos R. L. Rodrigues <rodrigolr@gmail.com >
2023-06-09 20:47:24 +02:00
Adrien de Peretti
af2dc4f75a
feat(medusa, inventory, stock-location): Remove unnecessary transaction usage in the modules and the list product end points ( #4232 )
2023-06-05 12:11:12 +02:00
Frane Polić
db41995307
chore(utils): clean util package deps ( #4146 )
2023-05-26 13:20:12 +02:00
Adrien de Peretti
af710f1b48
fix(medusa): Bulk create variant + pass transaction to the inventory service context methods ( #3835 )
...
* fix(medusa): Bulk create variant and pass transaction where needed
* Create fair-penguins-stare.md
* fix unit tests
* event
* transaction orchestration
* revert options
* Prevent isolated module to use the given transaction if any in the exposed service
* Use enum
* remove changeset to re do it
* Create thick-ants-tickle.md
* update event bus local
* remove changeset to re do it
* Create thick-kings-wonder.md
* remove changeset to re do it
* Create slimy-bees-eat.md
* Update packages/utils/src/event-bus/index.ts
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
---------
Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com >
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
2023-04-19 09:27:48 +02:00
Carlos R. L. Rodrigues
bd12a95083
chore: Initialize method for modules ( #3649 )
...
What:
- Export initialize methods for all modules to be used as a package.
- Export `runMigrations` and `revertMigration` on modules that DB migrations are available
```typescript
import {
initialize as initializeInventory,
InventoryServiceInitializeOptions,
runMigrations as runMigrationsInventory,
} from "@medusajs/inventory";
import { initialize as eventBusInitialize } from "@medusajs/event-bus-redis";
import { initialize as cacheInitialize } from "@medusajs/cache-redis";
const eventBus = await eventBusInitialize({
redisUrl: "localhost",
});
const cache = await cacheInitialize({
redisUrl: "localhost",
});
const options: InventoryServiceInitializeOptions = {
database: {
type: "postgres",
url: `postgres://postgres:@localhost/inventory`,
},
};
await runMigrationsInventory({
options,
});
const inventoryService = await initializeInventory(options, {
eventBusService: eventBus,
});
const sku = "sku_123"
const item = await service.createInventoryItem({
sku,
});
cache.set(sku, { item });
```
2023-03-31 12:09:04 +00:00
Carlos R. L. Rodrigues
4e9d257d3b
Chore(medusa,utils,types,inventory,stock-location): remove core dependency modules ( #3531 )
2023-03-23 08:07:32 -03:00
Oliver Windall Juhl
ef5ef9f5a2
feat(medusa,event-bus-local,event-bus-redis): Event Bus modules ( #2599 )
2023-03-22 10:26:21 +01:00
Carlos R. L. Rodrigues
aa690beed7
feat(medusa): Modules initializer ( #3352 )
2023-03-17 12:18:52 -03:00
Carlos R. L. Rodrigues
77d46220c2
Feat(modules-sdk,inventory,stock-location): modules isolated connection ( #3329 )
...
* feat: scoped container for modules
2023-03-15 12:09:45 -03:00
Carlos R. L. Rodrigues
ad7f56506f
Feat(medusa,modules-sdk): Modules SDK package ( #3294 )
2023-02-23 13:09:35 -03:00
Adrien de Peretti
aefe5aa133
feat(medusa): Expose an activeManager_ getter in TransactionBaseService ( #3256 )
2023-02-16 10:26:23 +00:00
Riqwan Thamir
121b42acfe
chore(medusa): Typeorm upgrade to 0.3.11 ( #3041 )
2023-02-15 16:25:30 +01:00
Carlos R. L. Rodrigues
923ccece24
feat(medusa,stock-location,inventory): Integration tests ( #3149 )
2023-02-06 09:02:43 -03:00
Carlos R. L. Rodrigues
2d525237b6
fix(stock-location): Stock location address required ( #3065 )
...
What:
- Removes the requirement to have an address id while creating a new stock location.
- Add field company to Location Address
FIXES: CORE-1018
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com >
2023-01-23 12:47:04 +00:00
Oliver Windall Juhl
1547dd8143
fix(medusa): Add module config to transaction base service ( #3033 )
2023-01-15 19:37:11 +01:00
Carlos R. L. Rodrigues
9dbccd9ca7
feat(medusa, stock-location, inventory): Allow modules to integrate with core ( #2997 )
...
* feat: module shared resources
2023-01-13 10:39:43 -03:00
Carlos R. L. Rodrigues
c07ffb6165
feat(medusa): Stock location module ( #2907 )
...
* feat: stock location module
2023-01-04 13:11:59 -03:00