--- displayed_sidebar: pricingReference badge: variant: orange text: Beta slug: /references/pricing/create sidebar_label: create --- import ParameterTypes from "@site/src/components/ParameterTypes" # create - Pricing Module Reference This documentation provides a reference to the `create` method. This belongs to the Pricing Module. ## create(data, sharedContext?): Promise<[PriceSetDTO](../../pricing/interfaces/pricing.PriceSetDTO.mdx)> This method is used to create a new price set. ### Example To create a default price set, don't pass any rules. For example: ```ts import { initialize as initializePricingModule, } from "@medusajs/pricing" async function createPriceSet () { const pricingService = await initializePricingModule() const priceSet = await pricingService.create( { rules: [], prices: [ { amount: 500, currency_code: "USD", min_quantity: 0, max_quantity: 4, rules: {}, }, { amount: 400, currency_code: "USD", min_quantity: 5, max_quantity: 10, rules: {}, }, ], }, ) // do something with the price set or return it } ``` To create a price set and associate it with rule types: ```ts import { initialize as initializePricingModule, } from "@medusajs/pricing" async function createPriceSet () { const pricingService = await initializePricingModule() const priceSet = await pricingService.create( { rules: [{ rule_attribute: "region_id" }, { rule_attribute: "city" }], prices: [ { amount: 300, currency_code: "EUR", rules: { region_id: "PL", city: "krakow" }, }, { amount: 400, currency_code: "EUR", rules: { region_id: "PL" }, }, { amount: 450, currency_code: "EUR", rules: { city: "krakow" }, } ], }, ) // do something with the price set or return it } ``` ### Parameters `", "description": "The rules to add to the price. The object's keys are rule types' `rule_attribute` attribute, and values are the value of that rule associated with this price.", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "rules", "type": "`object`[]", "description": "The rules to associate with the price set.", "optional": true, "defaultValue": "", "expandable": false, "children": [ { "name": "rule_attribute", "type": "`string`", "description": "the value of the rule's `rule_attribute` attribute.", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ] } ] }, { "name": "sharedContext", "type": "[Context](../../pricing/interfaces/pricing.Context.mdx)", "description": "A context used to share resources, such as transaction manager, between the application and the module.", "optional": true, "defaultValue": "", "expandable": false, "children": [ { "name": "enableNestedTransactions", "type": "`boolean`", "description": "A boolean value indicating whether nested transactions are enabled.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "isolationLevel", "type": "`string`", "description": "A string indicating the isolation level of the context. Possible values are `READ UNCOMMITTED`, `READ COMMITTED`, `REPEATABLE READ`, or `SERIALIZABLE`.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "manager", "type": "`TManager`", "description": "An instance of a manager, typically an entity manager, of type `TManager`, which is a typed parameter passed to the context to specify the type of the `manager`.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "transactionId", "type": "`string`", "description": "A string indicating the ID of the current transaction.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "transactionManager", "type": "`TManager`", "description": "An instance of a transaction manager of type `TManager`, which is a typed parameter passed to the context to specify the type of the `transactionManager`.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ] } ]} /> ### Returns ## create(data, sharedContext?): Promise<[PriceSetDTO](../../pricing/interfaces/pricing.PriceSetDTO.mdx)[]> This method is used to create multiple price sets. ### Example To create price sets with a default price, don't pass any rules and make sure to pass the `currency_code` of the price. For example: ```ts import { initialize as initializePricingModule, } from "@medusajs/pricing" async function createPriceSets () { const pricingService = await initializePricingModule() const priceSets = await pricingService.create([ { rules: [], prices: [ { amount: 500, currency_code: "USD", rules: {}, }, ], }, ]) // do something with the price sets or return them } ``` To create price sets and associate them with rule types: ```ts import { initialize as initializePricingModule, } from "@medusajs/pricing" async function createPriceSets () { const pricingService = await initializePricingModule() const priceSets = await pricingService.create([ { rules: [{ rule_attribute: "region_id" }, { rule_attribute: "city" }], prices: [ { amount: 300, currency_code: "EUR", rules: { region_id: "PL", city: "krakow" }, }, { amount: 400, currency_code: "EUR", min_quantity: 0, max_quantity: 4, rules: { region_id: "PL" }, }, { amount: 450, currency_code: "EUR", rules: { city: "krakow" }, } ], }, ]) // do something with the price sets or return them } ``` ### Parameters `", "description": "The rules to add to the price. The object's keys are rule types' `rule_attribute` attribute, and values are the value of that rule associated with this price.", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "rules", "type": "`object`[]", "description": "The rules to associate with the price set.", "optional": true, "defaultValue": "", "expandable": false, "children": [ { "name": "rule_attribute", "type": "`string`", "description": "the value of the rule's `rule_attribute` attribute.", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ] } ] }, { "name": "sharedContext", "type": "[Context](../../pricing/interfaces/pricing.Context.mdx)", "description": "A context used to share resources, such as transaction manager, between the application and the module.", "optional": true, "defaultValue": "", "expandable": false, "children": [ { "name": "enableNestedTransactions", "type": "`boolean`", "description": "A boolean value indicating whether nested transactions are enabled.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "isolationLevel", "type": "`string`", "description": "A string indicating the isolation level of the context. Possible values are `READ UNCOMMITTED`, `READ COMMITTED`, `REPEATABLE READ`, or `SERIALIZABLE`.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "manager", "type": "`TManager`", "description": "An instance of a manager, typically an entity manager, of type `TManager`, which is a typed parameter passed to the context to specify the type of the `manager`.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "transactionId", "type": "`string`", "description": "A string indicating the ID of the current transaction.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "transactionManager", "type": "`TManager`", "description": "An instance of a transaction manager of type `TManager`, which is a typed parameter passed to the context to specify the type of the `transactionManager`.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ] } ]} /> ### Returns