{"owner":"medusajs","repo":"medusa","hasSkills":true,"totalSkillsCount":695,"totalTokensCount":536671,"categories":["plugin-manifest","anthropic-skill","cursor-rule"],"hasMcp":false,"mcpConfig":null,"found":["docs-util/typedoc-plugins/typedoc-frontmatter-plugin/README.md","docs/content/development/plugins/create.md","docs/content/development/plugins/publish.md","docs/content/plugins/analytics/segment.md","docs/content/plugins/cms/contentful/customize-contentful.md","docs/content/plugins/cms/contentful/index.md","docs/content/plugins/cms/strapi.md","docs/content/plugins/file-service/minio.md","docs/content/plugins/file-service/s3.md","docs/content/plugins/file-service/spaces.md","docs/content/plugins/notifications/mailchimp.md","docs/content/plugins/notifications/slack.md","docs/content/plugins/notifications/twilio-sms.md","docs/content/plugins/payment/klarna.md","docs/content/plugins/payment/paypal.md","docs/content/plugins/payment/stripe.md","docs/content/plugins/search/algolia.md","docs/content/plugins/search/meilisearch.md","docs/content/references/entities/classes/Address.md","docs/content/references/entities/classes/AnalyticsConfig.md","docs/content/references/entities/classes/BatchJob.md","docs/content/references/entities/classes/Cart.md","docs/content/references/entities/classes/ClaimImage.md","docs/content/references/entities/classes/ClaimItem.md","docs/content/references/entities/classes/ClaimOrder.md","docs/content/references/entities/classes/ClaimTag.md","docs/content/references/entities/classes/Country.md","docs/content/references/entities/classes/Currency.md","docs/content/references/entities/classes/CustomShippingOption.md","docs/content/references/entities/classes/Customer.md","docs/content/references/entities/classes/CustomerGroup.md","docs/content/references/entities/classes/Discount.md","docs/content/references/entities/classes/DiscountCondition.md","docs/content/references/entities/classes/DiscountConditionCustomerGroup.md","docs/content/references/entities/classes/DiscountConditionProduct.md","docs/content/references/entities/classes/DiscountConditionProductCollection.md","docs/content/references/entities/classes/DiscountConditionProductTag.md","docs/content/references/entities/classes/DiscountConditionProductType.md","docs/content/references/entities/classes/DiscountRule.md","docs/content/references/entities/classes/DraftOrder.md","docs/content/references/entities/classes/Fulfillment.md","docs/content/references/entities/classes/FulfillmentItem.md","docs/content/references/entities/classes/FulfillmentProvider.md","docs/content/references/entities/classes/GiftCard.md","docs/content/references/entities/classes/GiftCardTransaction.md","docs/content/references/entities/classes/IdempotencyKey.md","docs/content/references/entities/classes/Image.md","docs/content/references/entities/classes/Invite.md","docs/content/references/entities/classes/LineItem.md","docs/content/references/entities/classes/LineItemAdjustment.md","docs/content/references/entities/classes/LineItemTaxLine.md","docs/content/references/entities/classes/MoneyAmount.md","docs/content/references/entities/classes/Note.md","docs/content/references/entities/classes/Notification.md","docs/content/references/entities/classes/Oauth.md","docs/content/references/entities/classes/Order.md","docs/content/references/entities/classes/OrderEdit.md","docs/content/references/entities/classes/OrderItemChange.md","docs/content/references/entities/classes/Payment.md","docs/content/references/entities/classes/PaymentCollection.md","docs/content/references/entities/classes/PaymentProvider.md","docs/content/references/entities/classes/PaymentSession.md","docs/content/references/entities/classes/PriceList.md","docs/content/references/entities/classes/Product.md","docs/content/references/entities/classes/ProductCollection.md","docs/content/references/entities/classes/ProductOption.md","docs/content/references/entities/classes/ProductOptionValue.md","docs/content/references/entities/classes/ProductTag.md","docs/content/references/entities/classes/ProductTaxRate.md","docs/content/references/entities/classes/ProductType.md","docs/content/references/entities/classes/ProductTypeTaxRate.md","docs/content/references/entities/classes/ProductVariant.md","docs/content/references/entities/classes/PublishableApiKey.md","docs/content/references/entities/classes/PublishableApiKeySalesChannel.md","docs/content/references/entities/classes/Refund.md","docs/content/references/entities/classes/Region.md","docs/content/references/entities/classes/Return.md","docs/content/references/entities/classes/ReturnItem.md","docs/content/references/entities/classes/ReturnReason.md","docs/content/references/entities/classes/SalesChannel.md","docs/content/references/entities/classes/ShippingMethod.md","docs/content/references/entities/classes/ShippingMethodTaxLine.md","docs/content/references/entities/classes/ShippingOption.md","docs/content/references/entities/classes/ShippingOptionRequirement.md","docs/content/references/entities/classes/ShippingProfile.md","docs/content/references/entities/classes/ShippingTaxRate.md","docs/content/references/entities/classes/StagedJob.md","docs/content/references/entities/classes/Store.md","docs/content/references/entities/classes/Swap.md","docs/content/references/entities/classes/TaxProvider.md","docs/content/references/entities/classes/TaxRate.md","docs/content/references/entities/classes/TrackingLink.md","docs/content/references/entities/classes/User.md","docs/content/references/entities/enums/AllocationType.md","docs/content/references/entities/enums/CartType.md","docs/content/references/entities/enums/ClaimFulfillmentStatus.md","docs/content/references/entities/enums/ClaimPaymentStatus.md","docs/content/references/entities/enums/ClaimReason.md","docs/content/references/entities/enums/ClaimType.md","docs/content/references/entities/enums/DiscountConditionOperator.md","docs/content/references/entities/enums/DiscountConditionType.md","docs/content/references/entities/enums/DiscountRuleType.md","docs/content/references/entities/enums/DraftOrderStatus.md","docs/content/references/entities/enums/FulfillmentStatus.md","docs/content/references/entities/enums/OrderEditItemChangeType.md","docs/content/references/entities/enums/OrderEditStatus.md","docs/content/references/entities/enums/OrderStatus.md","docs/content/references/entities/enums/PaymentCollectionStatus.md","docs/content/references/entities/enums/PaymentCollectionType.md","docs/content/references/entities/enums/PaymentSessionStatus.md","docs/content/references/entities/enums/PaymentStatus.md","docs/content/references/entities/enums/ProductStatus.md","docs/content/references/entities/enums/RefundReason.md","docs/content/references/entities/enums/RequirementType.md","docs/content/references/entities/enums/ReturnStatus.md","docs/content/references/entities/enums/ShippingOptionPriceType.md","docs/content/references/entities/enums/ShippingProfileType.md","docs/content/references/entities/enums/SwapFulfillmentStatus.md","docs/content/references/entities/enums/SwapPaymentStatus.md","docs/content/references/entities/enums/UserRoles.md","docs/content/references/entities/index.md","docs/content/references/js-client/classes/AddressesResource.md","docs/content/references/js-client/classes/Admin.md","docs/content/references/js-client/classes/AdminAuthResource.md","docs/content/references/js-client/classes/AdminBatchJobsResource.md","docs/content/references/js-client/classes/AdminCollectionsResource.md","docs/content/references/js-client/classes/AdminCurrenciesResource.md","docs/content/references/js-client/classes/AdminCustomerGroupsResource.md","docs/content/references/js-client/classes/AdminCustomersResource.md","docs/content/references/js-client/classes/AdminDiscountsResource.md","docs/content/references/js-client/classes/AdminDraftOrdersResource.md","docs/content/references/js-client/classes/AdminGiftCardsResource.md","docs/content/references/js-client/classes/AdminInvitesResource.md","docs/content/references/js-client/classes/AdminNotesResource.md","docs/content/references/js-client/classes/AdminNotificationsResource.md","docs/content/references/js-client/classes/AdminOrderEditsResource.md","docs/content/references/js-client/classes/AdminOrdersResource.md","docs/content/references/js-client/classes/AdminPaymentCollectionsResource.md","docs/content/references/js-client/classes/AdminPaymentsResource.md","docs/content/references/js-client/classes/AdminPriceListResource.md","docs/content/references/js-client/classes/AdminProductTagsResource.md","docs/content/references/js-client/classes/AdminProductTypesResource.md","docs/content/references/js-client/classes/AdminProductsResource.md","docs/content/references/js-client/classes/AdminPublishableApiKeyResource.md","docs/content/references/js-client/classes/AdminRegionsResource.md","docs/content/references/js-client/classes/AdminReturnReasonsResource.md","docs/content/references/js-client/classes/AdminReturnsResource.md","docs/content/references/js-client/classes/AdminSalesChannelsResource.md","docs/content/references/js-client/classes/AdminShippingOptionsResource.md","docs/content/references/js-client/classes/AdminShippingProfilesResource.md","docs/content/references/js-client/classes/AdminStoresResource.md","docs/content/references/js-client/classes/AdminSwapsResource.md","docs/content/references/js-client/classes/AdminTaxRatesResource.md","docs/content/references/js-client/classes/AdminUploadsResource.md","docs/content/references/js-client/classes/AdminUsersResource.md","docs/content/references/js-client/classes/AdminVariantsResource.md","docs/content/references/js-client/classes/AuthResource.md","docs/content/references/js-client/classes/CartsResource.md","docs/content/references/js-client/classes/CollectionsResource.md","docs/content/references/js-client/classes/CustomerResource.md","docs/content/references/js-client/classes/GiftCardsResource.md","docs/content/references/js-client/classes/LineItemsResource.md","docs/content/references/js-client/classes/OrderEditsResource.md","docs/content/references/js-client/classes/OrdersResource.md","docs/content/references/js-client/classes/PaymentCollectionsResource.md","docs/content/references/js-client/classes/PaymentMethodsResource.md","docs/content/references/js-client/classes/ProductTypesResource.md","docs/content/references/js-client/classes/ProductVariantsResource.md","docs/content/references/js-client/classes/ProductsResource.md","docs/content/references/js-client/classes/RegionsResource.md","docs/content/references/js-client/classes/ReturnReasonsResource.md","docs/content/references/js-client/classes/ReturnsResource.md","docs/content/references/js-client/classes/ShippingOptionsResource.md","docs/content/references/js-client/classes/SwapsResource.md","docs/content/references/js-client/classes/internal-1.AdminPostAuthReq.md","docs/content/references/js-client/classes/internal-1.User.md","docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptReq.md","docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptUserReq.md","docs/content/references/js-client/classes/internal-10.AdminPostInvitesReq.md","docs/content/references/js-client/classes/internal-10.Invite.md","docs/content/references/js-client/classes/internal-11.AdminGetNotesParams.md","docs/content/references/js-client/classes/internal-11.AdminPostNotesNoteReq.md","docs/content/references/js-client/classes/internal-11.AdminPostNotesReq.md","docs/content/references/js-client/classes/internal-11.Note.md","docs/content/references/js-client/classes/internal-12.AdminGetNotificationsParams.md","docs/content/references/js-client/classes/internal-12.AdminPostNotificationsNotificationResendReq.md","docs/content/references/js-client/classes/internal-12.Notification.md","docs/content/references/js-client/classes/internal-12.NotificationProvider.md","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsReq.md","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsOrderEditReq.md","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsReq.md","docs/content/references/js-client/classes/internal-13.GetOrderEditsOrderEditParams.md","docs/content/references/js-client/classes/internal-13.GetOrderEditsParams.md","docs/content/references/js-client/classes/internal-14.AdditionalItem-1.md","docs/content/references/js-client/classes/internal-14.AdditionalItem.md","docs/content/references/js-client/classes/internal-14.AdminGetOrdersParams.md","docs/content/references/js-client/classes/internal-14.AdminListOrdersSelector.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderFulfillmentsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderRefundsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReturnsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShipmentReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShippingMethodsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md","docs/content/references/js-client/classes/internal-14.CustomShippingOption.md","docs/content/references/js-client/classes/internal-14.Image.md","docs/content/references/js-client/classes/internal-14.Item-1.md","docs/content/references/js-client/classes/internal-14.Item-2.md","docs/content/references/js-client/classes/internal-14.Item.md","docs/content/references/js-client/classes/internal-14.OrdersReturnItem.md","docs/content/references/js-client/classes/internal-14.PaymentMethod.md","docs/content/references/js-client/classes/internal-14.ReturnItem.md","docs/content/references/js-client/classes/internal-14.ReturnShipping-1.md","docs/content/references/js-client/classes/internal-14.ReturnShipping-2.md","docs/content/references/js-client/classes/internal-14.ReturnShipping.md","docs/content/references/js-client/classes/internal-14.ShippingMethod-1.md","docs/content/references/js-client/classes/internal-14.ShippingMethod-2.md","docs/content/references/js-client/classes/internal-14.ShippingMethod.md","docs/content/references/js-client/classes/internal-14.Tag.md","docs/content/references/js-client/classes/internal-15.AdminUpdatePaymentCollectionsReq.md","docs/content/references/js-client/classes/internal-15.GetPaymentCollectionsParams.md","docs/content/references/js-client/classes/internal-16.AdminPostPaymentRefundsReq.md","docs/content/references/js-client/classes/internal-16.GetPaymentsParams.md","docs/content/references/js-client/classes/internal-17.AdminDeletePriceListPricesPricesReq.md","docs/content/references/js-client/classes/internal-17.AdminGetPriceListPaginationParams.md","docs/content/references/js-client/classes/internal-17.AdminGetPriceListsPriceListProductsParams.md","docs/content/references/js-client/classes/internal-17.AdminPostPriceListPricesPricesReq.md","docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListPriceListReq.md","docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListReq.md","docs/content/references/js-client/classes/internal-17.AdminPriceListPricesCreateReq.md","docs/content/references/js-client/classes/internal-17.AdminPriceListPricesUpdateReq.md","docs/content/references/js-client/classes/internal-17.CustomerGroup-1.md","docs/content/references/js-client/classes/internal-17.CustomerGroup.md","docs/content/references/js-client/classes/internal-17.FilterablePriceListProps.md","docs/content/references/js-client/classes/internal-18.AdminGetProductTagsPaginationParams.md","docs/content/references/js-client/classes/internal-18.AdminGetProductTagsParams.md","docs/content/references/js-client/classes/internal-19.AdminGetProductTypesParams.md","docs/content/references/js-client/classes/internal-2.AdminGetBatchPaginationParams.md","docs/content/references/js-client/classes/internal-2.AdminGetBatchParams.md","docs/content/references/js-client/classes/internal-2.AdminPostBatchesReq.md","docs/content/references/js-client/classes/internal-2.BatchJob.md","docs/content/references/js-client/classes/internal-2.DateComparisonOperator.md","docs/content/references/js-client/classes/internal-20.AdminGetProductsParams.md","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductMetadataReq.md","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsOption.md","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsReq.md","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductReq.md","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsReq.md","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsVariantReq.md","docs/content/references/js-client/classes/internal-20.AdminPostProductsReq.md","docs/content/references/js-client/classes/internal-20.FilterableProductProps.md","docs/content/references/js-client/classes/internal-20.ProductOptionReq.md","docs/content/references/js-client/classes/internal-20.ProductSalesChannelReq.md","docs/content/references/js-client/classes/internal-20.ProductTagReq.md","docs/content/references/js-client/classes/internal-20.ProductTypeReq.md","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-1.md","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-2.md","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-3.md","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq.md","docs/content/references/js-client/classes/internal-20.ProductVariantPricesCreateReq.md","docs/content/references/js-client/classes/internal-20.ProductVariantPricesUpdateReq.md","docs/content/references/js-client/classes/internal-20.ProductVariantReq-1.md","docs/content/references/js-client/classes/internal-20.ProductVariantReq.md","docs/content/references/js-client/classes/internal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysReq.md","docs/content/references/js-client/classes/internal-21.GetPublishableApiKeySalesChannelsParams.md","docs/content/references/js-client/classes/internal-21.GetPublishableApiKeysParams.md","docs/content/references/js-client/classes/internal-21.ProductBatchSalesChannel.md","docs/content/references/js-client/classes/internal-21.PublishableApiKey.md","docs/content/references/js-client/classes/internal-22.AdminGetRegionsPaginationParams.md","docs/content/references/js-client/classes/internal-22.AdminGetRegionsParams.md","docs/content/references/js-client/classes/internal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionCountriesReq.md","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionPaymentProvidersReq.md","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionReq.md","docs/content/references/js-client/classes/internal-22.AdminPostRegionsReq.md","docs/content/references/js-client/classes/internal-22.AdminRegionsRes.md","docs/content/references/js-client/classes/internal-22.FulfillmentOption.md","docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReasonReq.md","docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReq.md","docs/content/references/js-client/classes/internal-24.AdminGetReturnsParams.md","docs/content/references/js-client/classes/internal-24.AdminPostReturnsReturnReceiveReq.md","docs/content/references/js-client/classes/internal-24.Item.md","docs/content/references/js-client/classes/internal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md","docs/content/references/js-client/classes/internal-25.AdminGetSalesChannelsParams.md","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsChannelProductsBatchReq.md","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsReq.md","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsSalesChannelReq.md","docs/content/references/js-client/classes/internal-26.AdminGetShippingOptionsParams.md","docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsOptionReq.md","docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsReq.md","docs/content/references/js-client/classes/internal-26.OptionRequirement-1.md","docs/content/references/js-client/classes/internal-26.OptionRequirement.md","docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesProfileReq.md","docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesReq.md","docs/content/references/js-client/classes/internal-28.AdminPostStoreReq.md","docs/content/references/js-client/classes/internal-28.Store.md","docs/content/references/js-client/classes/internal-29.AdminGetSwapsParams.md","docs/content/references/js-client/classes/internal-3.AdminDeleteProductsFromCollectionReq.md","docs/content/references/js-client/classes/internal-3.AdminGetCollectionsPaginationParams.md","docs/content/references/js-client/classes/internal-3.AdminGetCollectionsParams.md","docs/content/references/js-client/classes/internal-3.AdminPostCollectionsCollectionReq.md","docs/content/references/js-client/classes/internal-3.AdminPostCollectionsReq.md","docs/content/references/js-client/classes/internal-3.AdminPostProductsToCollectionReq.md","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsParams.md","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsReq.md","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md","docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesParams.md","docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesTaxRateParams.md","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesReq.md","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductTypesReq.md","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductsReq.md","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateReq.md","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md","docs/content/references/js-client/classes/internal-30.NumericalComparisonOperator.md","docs/content/references/js-client/classes/internal-31.AdminDeleteUploadsReq.md","docs/content/references/js-client/classes/internal-31.AdminPostUploadsDownloadUrlReq.md","docs/content/references/js-client/classes/internal-31.IAdminPostUploadsFileReq.md","docs/content/references/js-client/classes/internal-32.AdminCreateUserRequest.md","docs/content/references/js-client/classes/internal-32.AdminResetPasswordRequest.md","docs/content/references/js-client/classes/internal-32.AdminResetPasswordTokenRequest.md","docs/content/references/js-client/classes/internal-32.AdminUpdateUserRequest.md","docs/content/references/js-client/classes/internal-33.AdminGetVariantsParams.md","docs/content/references/js-client/classes/internal-33.AdminPriceSelectionParams.md","docs/content/references/js-client/classes/internal-33.PriceSelectionParams.md","docs/content/references/js-client/classes/internal-34.StorePostAuthReq.md","docs/content/references/js-client/classes/internal-35.Discount.md","docs/content/references/js-client/classes/internal-35.GiftCard.md","docs/content/references/js-client/classes/internal-35.Item.md","docs/content/references/js-client/classes/internal-35.StorePostCartReq.md","docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionReq.md","docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionUpdateReq.md","docs/content/references/js-client/classes/internal-35.StorePostCartsCartReq.md","docs/content/references/js-client/classes/internal-35.StorePostCartsCartShippingMethodReq.md","docs/content/references/js-client/classes/internal-36.StoreGetCollectionsParams.md","docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersPaginationParams.md","docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersParams.md","docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerPasswordTokenReq.md","docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerReq.md","docs/content/references/js-client/classes/internal-37.StorePostCustomersReq.md","docs/content/references/js-client/classes/internal-37.StorePostCustomersResetPasswordReq.md","docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsItemReq.md","docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsReq.md","docs/content/references/js-client/classes/internal-4.AdminGetCurrenciesParams.md","docs/content/references/js-client/classes/internal-4.AdminPostCurrenciesCurrencyReq.md","docs/content/references/js-client/classes/internal-4.FindPaginationParams.md","docs/content/references/js-client/classes/internal-40.StorePostOrderEditsOrderEditDecline.md","docs/content/references/js-client/classes/internal-41.ShippingAddressPayload.md","docs/content/references/js-client/classes/internal-41.StoreGetOrdersParams.md","docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerAcceptClaimReq.md","docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerOrderClaimReq.md","docs/content/references/js-client/classes/internal-42.StorePaymentCollectionSessionsReq.md","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsReq.md","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsSessionsReq.md","docs/content/references/js-client/classes/internal-44.StoreGetProductTypesParams.md","docs/content/references/js-client/classes/internal-45.StoreGetVariantsParams.md","docs/content/references/js-client/classes/internal-46.StoreGetProductsPaginationParams.md","docs/content/references/js-client/classes/internal-46.StoreGetProductsParams.md","docs/content/references/js-client/classes/internal-46.StorePostSearchReq.md","docs/content/references/js-client/classes/internal-49.Item.md","docs/content/references/js-client/classes/internal-49.ReturnShipping.md","docs/content/references/js-client/classes/internal-49.StorePostReturnsReq.md","docs/content/references/js-client/classes/internal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md","docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsGroupParams.md","docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsParams.md","docs/content/references/js-client/classes/internal-5.AdminGetCustomersParams.md","docs/content/references/js-client/classes/internal-5.AdminListCustomerSelector.md","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupReq.md","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsReq.md","docs/content/references/js-client/classes/internal-5.CustomerGroupsBatchCustomer.md","docs/content/references/js-client/classes/internal-5.FilterableCustomerGroupProps.md","docs/content/references/js-client/classes/internal-5.FindParams.md","docs/content/references/js-client/classes/internal-5.StringComparisonOperator.md","docs/content/references/js-client/classes/internal-50.StoreGetShippingOptionsParams.md","docs/content/references/js-client/classes/internal-51.AdditionalItem.md","docs/content/references/js-client/classes/internal-51.Item.md","docs/content/references/js-client/classes/internal-51.StorePostSwapsReq.md","docs/content/references/js-client/classes/internal-6.AdminPostCustomersCustomerReq.md","docs/content/references/js-client/classes/internal-6.AdminPostCustomersReq.md","docs/content/references/js-client/classes/internal-6.Group.md","docs/content/references/js-client/classes/internal-7.AdminCreateCondition.md","docs/content/references/js-client/classes/internal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountConditionsConditionParams.md","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountRuleParams.md","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsParams.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditions.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsCondition.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionParams.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsParams.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountDynamicCodesReq.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountReq.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountRule.md","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsReq.md","docs/content/references/js-client/classes/internal-7.AdminUpdateDiscountRule.md","docs/content/references/js-client/classes/internal-7.AdminUpsertCondition.md","docs/content/references/js-client/classes/internal-7.AdminUpsertConditionsReq.md","docs/content/references/js-client/classes/internal-8.AdminGetDraftOrdersParams.md","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderReq.md","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersReq.md","docs/content/references/js-client/classes/internal-8.Discount-1.md","docs/content/references/js-client/classes/internal-8.Discount.md","docs/content/references/js-client/classes/internal-8.Item.md","docs/content/references/js-client/classes/internal-8.ShippingMethod.md","docs/content/references/js-client/classes/internal-9.AdminGetGiftCardsParams.md","docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsGiftCardReq.md","docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsReq.md","docs/content/references/js-client/classes/internal.Address.md","docs/content/references/js-client/classes/internal.AddressCreatePayload.md","docs/content/references/js-client/classes/internal.AddressPayload.md","docs/content/references/js-client/classes/internal.Axios.md","docs/content/references/js-client/classes/internal.BaseEntity.md","docs/content/references/js-client/classes/internal.Cart.md","docs/content/references/js-client/classes/internal.ClaimImage.md","docs/content/references/js-client/classes/internal.ClaimItem.md","docs/content/references/js-client/classes/internal.ClaimOrder.md","docs/content/references/js-client/classes/internal.ClaimTag.md","docs/content/references/js-client/classes/internal.Client.md","docs/content/references/js-client/classes/internal.Country.md","docs/content/references/js-client/classes/internal.Currency.md","docs/content/references/js-client/classes/internal.Customer.md","docs/content/references/js-client/classes/internal.CustomerGroup.md","docs/content/references/js-client/classes/internal.Discount.md","docs/content/references/js-client/classes/internal.DiscountCondition.md","docs/content/references/js-client/classes/internal.DiscountRule.md","docs/content/references/js-client/classes/internal.DraftOrder.md","docs/content/references/js-client/classes/internal.Fulfillment.md","docs/content/references/js-client/classes/internal.FulfillmentItem.md","docs/content/references/js-client/classes/internal.FulfillmentProvider.md","docs/content/references/js-client/classes/internal.GiftCard.md","docs/content/references/js-client/classes/internal.GiftCardTransaction.md","docs/content/references/js-client/classes/internal.Image.md","docs/content/references/js-client/classes/internal.LineItem.md","docs/content/references/js-client/classes/internal.LineItemAdjustment.md","docs/content/references/js-client/classes/internal.LineItemTaxLine.md","docs/content/references/js-client/classes/internal.MoneyAmount.md","docs/content/references/js-client/classes/internal.Order.md","docs/content/references/js-client/classes/internal.OrderEdit.md","docs/content/references/js-client/classes/internal.OrderItemChange.md","docs/content/references/js-client/classes/internal.Payment.md","docs/content/references/js-client/classes/internal.PaymentCollection.md","docs/content/references/js-client/classes/internal.PaymentProvider.md","docs/content/references/js-client/classes/internal.PaymentSession.md","docs/content/references/js-client/classes/internal.PriceList.md","docs/content/references/js-client/classes/internal.Product.md","docs/content/references/js-client/classes/internal.ProductCollection.md","docs/content/references/js-client/classes/internal.ProductOption.md","docs/content/references/js-client/classes/internal.ProductOptionValue.md","docs/content/references/js-client/classes/internal.ProductTag.md","docs/content/references/js-client/classes/internal.ProductType.md","docs/content/references/js-client/classes/internal.ProductVariant.md","docs/content/references/js-client/classes/internal.Refund.md","docs/content/references/js-client/classes/internal.Region.md","docs/content/references/js-client/classes/internal.Return.md","docs/content/references/js-client/classes/internal.ReturnItem.md","docs/content/references/js-client/classes/internal.ReturnReason.md","docs/content/references/js-client/classes/internal.SalesChannel.md","docs/content/references/js-client/classes/internal.ShippingMethod.md","docs/content/references/js-client/classes/internal.ShippingMethodTaxLine.md","docs/content/references/js-client/classes/internal.ShippingOption.md","docs/content/references/js-client/classes/internal.ShippingOptionRequirement.md","docs/content/references/js-client/classes/internal.ShippingProfile.md","docs/content/references/js-client/classes/internal.SoftDeletableEntity.md","docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesAddressReq.md","docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesReq.md","docs/content/references/js-client/classes/internal.Swap.md","docs/content/references/js-client/classes/internal.TaxLine.md","docs/content/references/js-client/classes/internal.TaxProvider.md","docs/content/references/js-client/classes/internal.TaxRate.md","docs/content/references/js-client/classes/internal.TrackingLink.md","docs/content/references/js-client/enums/internal-1.UserRoles.md","docs/content/references/js-client/enums/internal-16.RefundReason.md","docs/content/references/js-client/enums/internal-2.BatchJobStatus.md","docs/content/references/js-client/enums/internal.AllocationType.md","docs/content/references/js-client/enums/internal.CartType.md","docs/content/references/js-client/enums/internal.ClaimFulfillmentStatus.md","docs/content/references/js-client/enums/internal.ClaimPaymentStatus.md","docs/content/references/js-client/enums/internal.ClaimReason.md","docs/content/references/js-client/enums/internal.ClaimType.md","docs/content/references/js-client/enums/internal.DiscountConditionOperator.md","docs/content/references/js-client/enums/internal.DiscountConditionType.md","docs/content/references/js-client/enums/internal.DiscountRuleType.md","docs/content/references/js-client/enums/internal.DraftOrderStatus.md","docs/content/references/js-client/enums/internal.FulfillmentStatus.md","docs/content/references/js-client/enums/internal.OrderEditItemChangeType.md","docs/content/references/js-client/enums/internal.OrderEditStatus.md","docs/content/references/js-client/enums/internal.OrderStatus.md","docs/content/references/js-client/enums/internal.PaymentCollectionStatus.md","docs/content/references/js-client/enums/internal.PaymentStatus.md","docs/content/references/js-client/enums/internal.PriceListStatus.md","docs/content/references/js-client/enums/internal.PriceListType.md","docs/content/references/js-client/enums/internal.ProductStatus.md","docs/content/references/js-client/enums/internal.RequirementType.md","docs/content/references/js-client/enums/internal.ReturnStatus.md","docs/content/references/js-client/enums/internal.ShippingOptionPriceType.md","docs/content/references/js-client/enums/internal.ShippingProfileType.md","docs/content/references/js-client/enums/internal.SwapFulfillmentStatus.md","docs/content/references/js-client/enums/internal.SwapPaymentStatus.md","docs/content/references/js-client/index.md","docs/content/references/js-client/interfaces/internal.AxiosAdapter.md","docs/content/references/js-client/interfaces/internal.AxiosBasicCredentials.md","docs/content/references/js-client/interfaces/internal.AxiosDefaults.md","docs/content/references/js-client/interfaces/internal.AxiosError.md","docs/content/references/js-client/interfaces/internal.AxiosInstance.md","docs/content/references/js-client/interfaces/internal.AxiosInterceptorManager.md","docs/content/references/js-client/interfaces/internal.AxiosPromise.md","docs/content/references/js-client/interfaces/internal.AxiosProxyConfig.md","docs/content/references/js-client/interfaces/internal.AxiosRequestConfig.md","docs/content/references/js-client/interfaces/internal.AxiosRequestTransformer.md","docs/content/references/js-client/interfaces/internal.AxiosResponse.md","docs/content/references/js-client/interfaces/internal.AxiosResponseTransformer.md","docs/content/references/js-client/interfaces/internal.Cancel.md","docs/content/references/js-client/interfaces/internal.CancelToken.md","docs/content/references/js-client/interfaces/internal.Config.md","docs/content/references/js-client/interfaces/internal.HTTPResponse.md","docs/content/references/js-client/interfaces/internal.HeadersDefaults.md","docs/content/references/js-client/interfaces/internal.RequestOptions.md","docs/content/references/js-client/interfaces/internal.RetryConfig.md","docs/content/references/js-client/interfaces/internal.TransitionalOptions.md","docs/content/references/js-client/modules/internal-1.md","docs/content/references/js-client/modules/internal-10.md","docs/content/references/js-client/modules/internal-11.md","docs/content/references/js-client/modules/internal-12.md","docs/content/references/js-client/modules/internal-13.md","docs/content/references/js-client/modules/internal-14.md","docs/content/references/js-client/modules/internal-15.md","docs/content/references/js-client/modules/internal-16.md","docs/content/references/js-client/modules/internal-17.md","docs/content/references/js-client/modules/internal-18.md","docs/content/references/js-client/modules/internal-19.md","docs/content/references/js-client/modules/internal-2.md","docs/content/references/js-client/modules/internal-20.md","docs/content/references/js-client/modules/internal-21.md","docs/content/references/js-client/modules/internal-22.md","docs/content/references/js-client/modules/internal-23.md","docs/content/references/js-client/modules/internal-24.md","docs/content/references/js-client/modules/internal-25.md","docs/content/references/js-client/modules/internal-26.md","docs/content/references/js-client/modules/internal-27.md","docs/content/references/js-client/modules/internal-28.md","docs/content/references/js-client/modules/internal-29.md","docs/content/references/js-client/modules/internal-3.md","docs/content/references/js-client/modules/internal-30.md","docs/content/references/js-client/modules/internal-31.md","docs/content/references/js-client/modules/internal-32.md","docs/content/references/js-client/modules/internal-33.md","docs/content/references/js-client/modules/internal-34.md","docs/content/references/js-client/modules/internal-35.md","docs/content/references/js-client/modules/internal-36.md","docs/content/references/js-client/modules/internal-37.md","docs/content/references/js-client/modules/internal-38.md","docs/content/references/js-client/modules/internal-39.md","docs/content/references/js-client/modules/internal-4.md","docs/content/references/js-client/modules/internal-40.md","docs/content/references/js-client/modules/internal-41.md","docs/content/references/js-client/modules/internal-42.md","docs/content/references/js-client/modules/internal-43.md","docs/content/references/js-client/modules/internal-44.md","docs/content/references/js-client/modules/internal-45.md","docs/content/references/js-client/modules/internal-46.md","docs/content/references/js-client/modules/internal-47.md","docs/content/references/js-client/modules/internal-48.md","docs/content/references/js-client/modules/internal-49.md","docs/content/references/js-client/modules/internal-5.md","docs/content/references/js-client/modules/internal-50.md","docs/content/references/js-client/modules/internal-51.md","docs/content/references/js-client/modules/internal-6.md","docs/content/references/js-client/modules/internal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md","docs/content/references/js-client/modules/internal-7.md","docs/content/references/js-client/modules/internal-8.md","docs/content/references/js-client/modules/internal-9.md","docs/content/references/js-client/modules/internal.md","docs/content/references/services/classes/AnalyticsConfigService.md","docs/content/references/services/classes/AuthService.md","docs/content/references/services/classes/BatchJobService.md","docs/content/references/services/classes/CartService.md","docs/content/references/services/classes/ClaimItemService.md","docs/content/references/services/classes/ClaimService.md","docs/content/references/services/classes/CurrencyService.md","docs/content/references/services/classes/CustomShippingOptionService.md","docs/content/references/services/classes/CustomerGroupService.md","docs/content/references/services/classes/CustomerService.md","docs/content/references/services/classes/DiscountConditionService.md","docs/content/references/services/classes/DiscountService.md","docs/content/references/services/classes/DraftOrderService.md","docs/content/references/services/classes/EventBusService.md","docs/content/references/services/classes/FulfillmentProviderService.md","docs/content/references/services/classes/FulfillmentService.md","docs/content/references/services/classes/GiftCardService.md","docs/content/references/services/classes/IdempotencyKeyService.md","docs/content/references/services/classes/LineItemAdjustmentService.md","docs/content/references/services/classes/LineItemService.md","docs/content/references/services/classes/MiddlewareService.md","docs/content/references/services/classes/NewTotalsService.md","docs/content/references/services/classes/NoteService.md","docs/content/references/services/classes/NotificationService.md","docs/content/references/services/classes/OauthService.md","docs/content/references/services/classes/OrderEditItemChangeService.md","docs/content/references/services/classes/OrderEditService.md","docs/content/references/services/classes/OrderService.md","docs/content/references/services/classes/PaymentCollectionService.md","docs/content/references/services/classes/PaymentProviderService.md","docs/content/references/services/classes/PaymentService.md","docs/content/references/services/classes/PriceListService.md","docs/content/references/services/classes/PricingService.md","docs/content/references/services/classes/ProductCategoryService.md","docs/content/references/services/classes/ProductCollectionService.md","docs/content/references/services/classes/ProductService.md","docs/content/references/services/classes/ProductTypeService.md","docs/content/references/services/classes/ProductVariantInventoryService.md","docs/content/references/services/classes/ProductVariantService.md","docs/content/references/services/classes/RegionService.md","docs/content/references/services/classes/ReturnReasonService.md","docs/content/references/services/classes/ReturnService.md","docs/content/references/services/classes/SalesChannelInventoryService.md","docs/content/references/services/classes/SalesChannelLocationService.md","docs/content/references/services/classes/SalesChannelService.md","docs/content/references/services/classes/SearchService.md","docs/content/references/services/classes/ShippingOptionService.md","docs/content/references/services/classes/ShippingProfileService.md","docs/content/references/services/classes/StagedJobService.md","docs/content/references/services/classes/StoreService.md","docs/content/references/services/classes/StrategyResolverService.md","docs/content/references/services/classes/SwapService.md","docs/content/references/services/classes/SystemPaymentProviderService.md","docs/content/references/services/classes/TaxProviderService.md","docs/content/references/services/classes/TaxRateService.md","docs/content/references/services/classes/TokenService.md","docs/content/references/services/classes/TotalsService.md","docs/content/references/services/classes/UserService.md","docs/content/references/services/index.md","docs/content/upgrade-guides/plugins/_category_.json","docs/content/upgrade-guides/plugins/algolia/1-0-0.md","docs/content/upgrade-guides/plugins/algolia/_category_.json","docs/content/upgrade-guides/plugins/meilisearch/1-0-0.md","docs/content/upgrade-guides/plugins/meilisearch/_category_.json","packages/admin-ui/README.md","packages/admin/README.md","packages/cache-inmemory/README.md","packages/cache-redis/README.md","packages/event-bus-local/README.md","packages/event-bus-redis/README.md","packages/gatsby-source-medusa/README.md","packages/generated/client-types/README.md","packages/medusa-dev-cli/README.md","packages/medusa-file-minio/README.md","packages/medusa-file-s3/README.md","packages/medusa-file-spaces/README.md","packages/medusa-fulfillment-manual/README.md","packages/medusa-fulfillment-webshipper/README.md","packages/medusa-js/README.md","packages/medusa-payment-adyen/README.md","packages/medusa-payment-klarna/README.md","packages/medusa-payment-manual/README.md","packages/medusa-payment-paypal/README.md","packages/medusa-payment-stripe/README.md","packages/medusa-plugin-algolia/README.md","packages/medusa-plugin-brightpearl/README.md","packages/medusa-plugin-contentful/README.md","packages/medusa-plugin-discount-generator/README.md","packages/medusa-plugin-economic/README.md","packages/medusa-plugin-ip-lookup/README.md","packages/medusa-plugin-mailchimp/README.md","packages/medusa-plugin-meilisearch/README.md","packages/medusa-plugin-restock-notification/README.md","packages/medusa-plugin-segment/README.md","packages/medusa-plugin-sendgrid/README.md","packages/medusa-plugin-slack-notification/README.md","packages/medusa-plugin-twilio-sms/README.md","packages/medusa-plugin-wishlist/README.md","packages/medusa-react/README.md","packages/medusa-source-shopify/README.md","packages/medusa/README.md","packages/oas/medusa-oas-cli/README.md","packages/oas/oas-github-ci/README.md","packages/oas/openapi-typescript-codegen/README.md",".cursorrules (medusa.mdc)"],"skills":{"docs-util/typedoc-plugins/typedoc-frontmatter-plugin/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs-util%2Ftypedoc-plugins%2Ftypedoc-frontmatter-plugin%2FREADME.md -->","docs/content/development/plugins/create.md":"---\ndescription: 'Learn how to create a plugin in Medusa. This guide explains how to develop, configure, and test a plugin.'\naddHowToData: true\n---\n\n# How to Create a Plugin\n\nIn this document, you’ll learn how to create a plugin and some tips for develoment. If you’re interested to learn more about what plugins are and where to find available official and community plugins, check out the [overview document](./overview.mdx).\n\n## Prerequisites\n\nThis guide uses the Medusa CLI throughout different steps. If you don’t have the Medusa CLI installed you can install it with the following command:\n\n```bash npm2yarn\nnpm install @medusajs/medusa-cli -g\n```\n\n:::note\n\nIf you run into any errors while installing the CLI tool, check out the [troubleshooting guide](../../troubleshooting/cli-installation-errors.mdx).\n\n:::\n\n---\n\n## Initialize Project\n\nThe recommended way to create a plugin is using the Medusa CLI. Run the following command to create a new Medusa project:\n\n```bash\nmedusa new medusa-plugin-custom\n```\n\nWhere `medusa-plugin-custom` is the name of the plugin you’re creating. In Medusa, plugins are named based on their functionalities.\n\nBy convention, all plugin names start with `medusa` followed by a descriptive name of what the plugin does. For example, the Stripe plugin is named `medusa-payment-stripe`.\n\n---\n\n## Changes to package.json\n\n### Change Dependencies\n\nA basic Medusa backend installed with the `medusa new` command has dependencies similar to this:\n\n```json title=package.json\n\"dependencies\": {\n  \"@medusajs/medusa\": \"^1.3.1\",\n  \"@medusajs/medusa-cli\": \"^1.3.0\",\n  \"medusa-fulfillment-manual\": \"^1.1.31\",\n  \"medusa-interfaces\": \"^1.3.0\",\n  \"medusa-payment-manual\": \"^1.0.16\",\n  \"medusa-payment-stripe\": \"^1.1.38\",\n  \"typeorm\": \"^0.2.36\"\n},\n\"devDependencies\": {\n  \"@babel/cli\": \"^7.14.3\",\n  \"@babel/core\": \"^7.14.3\",\n  \"@babel/preset-typescript\": \"^7.14.5\",\n  \"babel-preset-medusa-package\": \"^1.1.19\"\n}\n```\n\nFor a plugin, some dependencies are not necessary. You can remove the packages `medusa-fulfillment-manual`, `medusa-payment-manual`, and `medusa-payment-stripe` as they are fulfillment and payment plugins necessary for a Medusa backend, but not for a plugin.\n\nAdditionally, you can remove `@medusajs/medusa-cli` as you don’t need to use the Medusa CLI while developing a plugin.\n\nOnce you’re done making these changes, re-run the install command to update your `node_modules` directory:\n\n```bash npm2yarn\nnpm install\n```\n\n### Recommended: Change scripts\n\nIt's recommended to remove the `seed` and `start` scripts from your `package.json` as they aren't necessary for plugin development.\n\nFurthermore, it's recommended to change the `build` command and add a new `watch` command:\n\n```json title=package.json\n\"scripts\": {\n  \"build\": \"babel src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\",\n  \"watch\": \"babel -w src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\"\n}\n```\n\nThe change to the `build` command ensures that the built files are placed as explained in the [plugin structure section](#plugin-structure). The `watch` command makes the [testing of the plugin](#test-your-plugin) easier.\n\n:::caution\n\nIf you don't make changes to the `build` and `watch` commands, please be aware of the [expected plugin structure](#plugin-structure).\n\n:::\n\n---\n\n## Develop your Plugin\n\nNow, You can start developing your plugin. This can include adding services, endpoints, entities, or anything that's relevant to your plugin.\n\n### Plugin Structure\n\nWhile developing your plugin, you can create your TypeScript or JavaScript files under the `src` directory. This includes creating services, endpoints, migrations, etc...\n\nHowever, before you test the changes on a Medusa backend or publish your plugin, you must transpile your files, which moves them into the root of your plugin directory.\n\nFor example, if you have an endpoint in `src/api/index.js`, after running the `build` or `watch` commands [as defined earlier](#change-scripts), the file should be transpiled into `api/index.js` in your plugin's root.\n\nIf files and directories aren't placed in the root of your plugin, the Medusa backend won't detect or load them.\n\nAn example of a plugin's directory before testing or publishing:\n\n```bash noReport\nmedusa-plugin-custom\n|\n|_ _ _ api\n|      |\n|      |_ _ _ index.js\n|\n|_ _ _ migrations\n|      |\n|      |_ _ _ <TIMESTAMP>_UserChanged.js\n|\n|_ _ _ src\n|      |\n|      |_ _ _ api\n|      |     |\n|      |     |_ _ _ index.ts\n|      |\n|      |_ _ _ migrations\n|      |\n|      |_ _ _ <TIMESTAMP>_UserChanged.ts\n|\n|_ _ _ package.json\n//... other files\n```\n\n### Development Resources\n\nThis guide doesn't cover how to create different files and components. If you’re interested in learning how to do that, you can check out these guides:\n\n- How to [create endpoints](../endpoints/create.md)\n- How to [create a service](../services/create-service.md)\n- How to [create a subscriber](../events/create-subscriber.md)\n- How to [create an entity](../entities/create.md)\n- How to [create a migration](../entities/migrations/create.md)\n\n---\n\n## Add Plugin Configuration\n\nPlugins often allow developers that will later use them to enter their own configuration. For example, you can allow developers to specify the API key of a service you’re integrating.\n\nTo pass a plugin its configurations on a Medusa backend, you have to add it to the `plugins` array in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-custom`,\n    options: {\n      name: \"My Store\",\n    },\n  },\n]\n```\n\nThen, you can have access to your plugin configuration in the constructor of services in your plugin:\n\n```jsx title=src/service/test.ts\n  // In a service in your plugin\nclass MyService extends TransactionBaseService {\n  constructor(container, options) {\n    super(container)\n    // options contains plugin configurations\n    this.name = options.name\n  }\n  // ...\n}\n```\n\nYou can also have access to the configurations in endpoints in your plugin:\n\n```jsx title=src/api/index.ts\n// in an endpoint in your plugin\nexport default (rootDirectory, options) => {\n  // options contain the plugin configurations\n  const router = Router()\n\n  router.get(\"/hello-world\", (req, res) => {\n    res.json({\n      message: \n      `Welcome to ${options.name ? options.name : \"Medusa\"}!`,\n    })\n  })\n\n  return router\n}\n```\n\n:::tip\n\nMake sure to include in the README of your plugin the configurations that can be passed to a plugin.\n\n:::\n\n---\n\n## Test Your Plugin\n\nWhile you develop your plugin, you’ll need to test it on an actual Medusa backend. This can be done by using the [npm link](https://docs.npmjs.com/cli/v8/commands/npm-link) command.\n\nIn the root of your plugin directory, run the following command:\n\n```bash npm2yarn\nnpm link\n```\n\nThen, change to the directory of the Medusa backend you want to test the plugin on and run the following command:\n\n```bash npm2yarn\nnpm link medusa-plugin-custom\n```\n\nWhere `medusa-plugin-custom` is the package name of your plugin.\n\nAfter linking to your plugin in a local Medusa backend, either run the `build` or `watch` commands in your plugin directory:\n\n```bash npm2yarn\n# in the directory of the plugin\nnpm run watch\n```\n\n:::tip\n\nIf you’re running the `watch` command, you don’t need to run the `build` command every time you make a change to your plugin.\n\n:::\n\nThen, add your plugin into the array of plugins in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-custom`,\n    // if your plugin has configurations\n    options: {\n      name: \"My Store\",\n    },\n  },\n]\n```\n\n:::note\n\nIf your plugin has migrations, you must run them before you start the backend. Check out the [Migrations guide](../entities/migrations/overview.mdx#migrate-command) for more details.\n\n:::\n\nFinally, start your backend and test your plugin’s functionalities:\n\n```bash npm2yarn\nnpm run start\n```\n\n### Troubleshoot Errors\n\n#### Error: The class must be a valid service implementation\n\nPlease make sure that your plugin is following the correct structure. If the error persists then please try the following fix:\n\n```bash npm2yarn\ncd <BACKEND_PATH>/node_modules/medusa-interfaces\nnpm link\ncd <BACKEND_PATH>/node_modules/@medusajs/medusa\nnpm link\ncd <PLUGIN_PATH>\nrm -rf node_modules/medusa-interfaces\nrm -rf node_modules/@medusajs/medusa\nnpm link medusa-interfaces\nnpm link @medusajs/medusa\nnpm link\ncd <BACKEND_PATH>\nnpm link your-plugin\n```\n\nWhere `<BACKEND_PATH>` is the path to your Medusa backend and `<PLUGIN_PATH>` is the path to your plugin.\n\nThis links the `medusa-interfaces` and `@medusajs/medusa` packages from your `medusa-backend` to your plugin directory and then links your plugin to your `medusa-backend`.\n\n#### APIs not loading\n\nIf the APIs you added to your Medussa backend are not loading then please try the following steps:\n\n```bash npm2yarn\ncd <PLUGIN_PATH>\nrm -rf node_modules\ncd <BACKEND_PATH>/node_modules/<PLUGIN_NAME>\nnpm install\ncd <PLUGIN_PATH>\nnpm run build\ncd <BACKEND_PATH>\nnpm run start\n```\n\nWhere `<BACKEND_PATH>` is the path to your Medusa backend, `<PLUGIN_PATH>` is the path to your plugin and `<PLUGIN_NAME>` is the name of your plugin as it is in your plugin `package.json` file.\n\n:::note\n\nIt is safe to ignore any `cross-env: command not found` error you may receive.\n\n:::\n\n---\n\n## Publish Plugin\n\nOnce you're done with the development of the plugin, you can publish it to NPM so that other Medusa developers and users can use it.\n\nPlease refer to [this guide on required steps to publish a plugin](./publish.md).\n","docs/content/development/plugins/publish.md":"---\ndescription: 'Learn how to publish a Medusa plugin to NPM. This guide lists some check lists to ensure you have implemented before publishing, as well as required steps.'\naddHowToData: true\n---\n\n# How to Publish a Plugin\n\nIn this document, you'll learn how to publish a Medusa plugin to NPM and what are some requirements to keep in mind before publishing. Afterwards, your plugin will be published on the [Medusa Plugins page](https://medusajs.com/plugins/).\n\n## Prerequisites\n\nIf you haven't created a plugin yet, please check [this guide to learn how to create a plugin](./create.md).\n\n---\n\n## Prepare the Plugin\n\n### package.json Checklist\n\nBefore publishing your plugin, make sure you've set the following fields in your plugin's package.json:\n\n- `name`: The name of your plugin. By convention, all plugin names start with `medusa` followed by a descriptive name of what the plugin does. For example, `medusa-payment-stripe`.\n- `description`: A short description of what the plugin does.\n- `author`: Your name or your company's name.\n- `repository`: This includes details about the repository that holds the source code of the plugin. It's an object that holds the following properties:\n  - `type`: Should be `git`.\n  - `url`: The URL to the repository (for example, the GitHub repository holding the code of your plugin).\n- `keywords`: An array of keywords that are related to the plugin. It's required for all Medusa plugins to use the keywords `medusa-plugin`. Other recommended keywords are:\n  - `medusa-plugin-analytics`: For plugins that add analytics functionalities or integrations.\n  - `medusa-plugin-cms`: For plugins that add CMS functionalities or integrations.\n  - `medusa-plugin-notification`: For plugins that add notification functionalities or integrations.\n  - `medusa-plugin-payment`: For plugins that add payment functionalities or integrations.\n  - `medusa-plugin-search`: For plugins that add search functionalities or integrations.\n  - `medusa-plugin-shipping`: For plugins that add shipping functionalities or integrations.\n  - `medusa-plugin-storage`: For plugins that add a file service or storage integration.\n  - `medusa-plugin-source`: For plugins that help migrate or import data into Medusa from another platform.\n  - `medusa-plugin-storefront`: For storefronts that can be integrated with a Medusa backend.\n  - `medusa-plugin-other`: For any other type of plugin.\n\n### Scripts in package.json\n\nMake sure you add the `publish` command to your `scripts` field and make the following change to the `build` command:\n\n```json title=package.json\n\"build\": \"babel src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\",\n\"prepare\": \"cross-env NODE_ENV=production npm run build\"\n```\n\nThe `build` command ensures that the plugin's built files are placed as explained in the [plugin structure](./create.md#plugin-structure) section of the Create Plugin documentation.\n\nThe `prepare` command facilitates your publishing process. You would typically run this script before publishing your plugin.\n\nThis new script requires installing the package `cross-env` as a development dependency:\n\n```bash npm2yarn\nnpm install --save-dev cross-env\n```\n\n### Plugin Structure\n\nMake sure your plugin's structure is as described in the [Create Plugin](./create.md#plugin-structure) documentation. If you've made the changes mentioned in [the above section to the scripts](#scripts-in-packagejson) in `package.json`, you should have the correct structure when you run the `prepare` command.\n\n### NPM Ignore File\n\nNot all files that you use while developing your plugin are necessary to be published.\n\nFor example, the files you add in the `src` directory are compiled to the root of the plugin directory before publishing. Then, when a developer installs your plugin, they’ll just be using the files in the root.\n\nSo, you can ignore files and directories like `src` from the final published NPM package.\n\nTo do that, create the file `.npmignore` with the following content:\n\n```bash title=.npmignore\n/lib\nnode_modules\n.DS_store\n.env*\n/*.js\n!index.js\nyarn.lock\nsrc\n.gitignore\n.eslintrc\n.babelrc\n.prettierrc\n\n# These are files that are included in a\n# Medusa project and can be removed from a\n# plugin project\nmedusa-config.js\nDockerfile\nmedusa-db.sql\ndevelop.sh\n```\n\n---\n\n## Publish Plugin\n\nThis section explains how to publish your plugin to NPM.\n\nBefore you publish a plugin, you must [create an account on NPM](https://www.npmjs.com/signup).\n\n### Run Prepare Command\n\nBefore you publish or update your plugin, make sure to run the `prepare` command [defined earlier](#packagejson-checklist):\n\n```bash npm2yarn\nnpm run prepare\n```\n\n### Login\n\nIn your terminal, log in with your NPM account:\n\n```bash\nnpm login\n```\n\nYou’ll be asked to enter your NPM email and password.\n\n### Publish Plugin Package\n\nOnce you’re logged in, you can publish your package with the following command:\n\n```bash\nnpm publish\n```\n\nYour package is then published on NPM and everyone can use it and install it.\n\n### Install Plugin\n\nTo install your published plugin, you can run the following command on any Medusa backend project:\n\n```bash npm2yarn\nnpm install medusa-plugin-custom\n```\n\n### Update Plugin\n\nTo update your plugin at a later point, you can run the following command to change the NPM version:\n\n```bash\nnpm version <type>\n```\n\nWhere `<type>` indicates the type of version update you’re publishing. For example, it can be `major` or `minor`. You can see the [full list of types in NPM’s documentation](https://docs.npmjs.com/cli/v8/commands/npm-version).\n\nThen, publish the new update:\n\n```bash\nnpm publish\n```\n","docs/content/plugins/analytics/segment.md":"---\ndescription: 'Learn how to integrate Segment with the Medusa backend. Learn how to add custom tracking with Segment and Medusa.'\naddHowToData: true\n---\n\n# Segment\n\nIn this document, you’ll learn about the [Segment plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-segment), what it does, and how to install and use it.\n\n## Overview\n\n[Segment](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-segment) is a powerful Customer Data Platform that allows users to collect, transform, send and archive their customer data.\n\nSegment allows users to manage different tracking and marketing tools using one API and interface, making it very simple to try out and integrate with different services in your ecommerce stack.\n\nCommon integration use cases that can be implemented with Segment include:\n\n- Google Analytics\n- Mailchimp\n- Zendesk\n- Data warehousing for advanced data analytics and segmentation through services like Snowflake\n\nThe Segment plugin in Medusa allows you to track ecommerce events and record them in Segment. Then, you can push these events to other destinations using Segment.\n\n### Events That the Segment Plugin Tracks\n\nBy default, the Segment plugin tracks the following events:\n\n1. `order.placed`: Triggered when an order is placed.\n2. `order.shipment_created`: Triggered when a shipment is created for an order.\n3. `claim.created`: Triggered when a new claim is created.\n4. `order.items_returned`: Triggered when an item in an order is returned.\n5. `order.canceled`: Triggered when an order is canceled.\n6. `swap.created`: Triggered when a swap is created.\n7. `swap.shipment_created`: Triggered when a shipment is created for a swap.\n8. `swap.payment_completed`: Triggered when payment for a swap is completed.\n\n:::tip\n\nCheck out the [Event Reference](../../development/events/events-list.md) to learn about all available events in Medusa.\n\n:::\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nIt is assumed you already have a Medusa backend installed. If not, please follow the [Quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa starter.\n\n### Segment Account\n\nYou need to [create a Segment account](https://app.segment.com/signup/) to follow along with the tutorial. Segment offers a free plan to get started quickly.\n\n---\n\n## Create a Segment Source\n\nOn your Segment dashboard, choose Catalog from the sidebar under Connections.\n\n![Under Connections in the sidebar choose Catalog](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000661/Medusa%20Docs/Segment/rAeJkP3_ybyutz.png)\n\nThen, in the catalog list find the Backend category and choose Node.js from the list.\n\n![Choose Node.js under the Backend category](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000672/Medusa%20Docs/Segment/6RxQbW6_wjphte.png)\n\nThis opens a new side menu. In the side menu, click on Add Source.\n\n![Click on Add Source in the side menu showing information about the Node.js source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000683/Medusa%20Docs/Segment/0VZJnpd_ehagat.png)\n\nThis opens a new page to create a Node.js source. Enter the name of the source then click Add Source.\n\n![Enter a name under the Name field then click on the Add Source button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000693/Medusa%20Docs/Segment/u2hzkB5_t59yhj.png)\n\nOn the new source dashboard, you should find a Write Key. You’ll use this key in the next section after you install the Segment plugin on your Medusa backend.\n\n![The Write Key is available on the new source's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000708/Medusa%20Docs/Segment/OTJVsz7_v95qla.png)\n\n### Optional: Add Destination\n\nAfter you create the Segment source, you can add destinations. This is where the data is sent when you send them to Segment. You can add more than one destination.\n\nTo add a destination, on the same Segment source page, click on Add Destination in the Destinations section.\n\n![Click on the Add Destination button on the source page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000718/Medusa%20Docs/Segment/FrKlUxh_zlnkww.png)\n\nYou can then choose from a list of destinations such as Google Universal Analytics or Facebook Pixel.\n\n![List of some of the available destinations in Segment's catalog](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000730/Medusa%20Docs/Segment/y2YnPUh_mgfqdo.png)\n\nThe process of integrating each destination is different, so you must follow the steps detailed in Segment for each destination you choose.\n\n---\n\n## Install the Segment Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Segment plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-segment\n```\n\nThen, add the following environment variable:\n\n```bash\nSEGMENT_WRITE_KEY=<YOUR_SEGMENT_WRITE_KEY>\n```\n\nWhere `<YOUR_SEGMENT_WRITE_KEY>` is the Write Key shown on the page of the Segment source you created in the previous section.\n\nFinally, in `medusa-config.js`, add the following new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-segment`,\n    options: {\n      write_key: process.env.SEGMENT_WRITE_KEY,\n    },\n  },\n]\n```\n\n---\n\n## Test the Plugin\n\nRun your backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, try triggering one of the [mentioned events earlier in this document](#events-that-the-segment-plugin-tracks). For example, you can place an order either using the [REST APIs](https://docs.medusajs.com/api/store) or using the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx).\n\nAfter you place an order, on the Segment source that you created, click on the Debugger tab. You should see at least one event triggered for each order you place. If you click on the event, you can see the order details are passed to the event.\n\n![The order completed event is recorded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000743/Medusa%20Docs/Segment/LQVJTGg_i5jyge.png)\n\nIf you added a destination, you can also check your destination to make sure the data is reflected there.\n\n:::note\n\nIf the data is not appearing on the destination, the issue is related to your configuration between the Segment source and destination and not related to the Segment plugin. Go over the steps that Segment showed you when you added the destination to figure out the issue.\n\n:::\n\n---\n\n## Add Custom Tracking\n\nIn some cases, you might want to track more events or custom events. You can do that using the `SegmentService` provided by the Segment Plugin.\n\nFor example, you can add the following subscriber to listen to the `customer.created` event and add tracking for every customer created:\n\n```jsx title=src/subscribers/customer.ts\nclass CustomerSubscriber {\n  constructor({ segmentService, eventBusService }) {\n    this.segmentService = segmentService\n\n    eventBusService.subscribe(\n      \"customer.created\",\n      this.handleCustomer\n    )\n  }\n\n  handleCustomer = async (data) => {\n    const customerData = data\n    delete customerData[\"password_hash\"]\n\n    this.segmentService.track({\n      event: \"Customer Created\",\n      userId: data.id,\n      properties: customerData,\n    })\n  }\n}\n\nexport default CustomerSubscriber\n```\n\nYou resolve the `SegmentService` using dependency injection. Then, when the `customer.created` event is triggered, you use the `track` method available in the `SegmentService` to send tracking data to Segment.\n\n:::info\n\nServices can be resolved and used in Subscribers, endpoints, and other Services. Learn [how to resolve services in the Services documentation](../../development/services/create-service.md#using-your-custom-service).\n\n:::\n\n`track` accepts an object of data, where the keys `event` and `userId` are required. Instead of `userId`, you can use `anonymousId` to pass an anonymous user ID.\n\nIf you want to pass additional data to Segment, pass them under the `properties` object key.\n\nThe `SegmentService` also provides the method `identify` to tie a user to their actions or specific traits.\n\n### Test Custom Tracking\n\nAfter adding the above subscriber, run your backend again if it isn’t running and create a customer using the REST APIs or one of the Medusa storefronts. If you check the Debugger in your Segment source, you should see a new event “Customer Created” tracked. If you click on it, you’ll see the data you passed to the `track` method.\n\n![The customer created event is recoreded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000759/Medusa%20Docs/Segment/4LD41xE_qungdw.png)\n\n---\n\n## See Also\n\n- [Services Overview](../../development/services/create-service.md)\n- [Subscribers Overview](../../development/events/create-subscriber.md)\n- [Events Reference](../../development/events/events-list.md)\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n","docs/content/plugins/cms/contentful/customize-contentful.md":"---\ndescription: 'Learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.'\naddHowToData: true\n---\n\n# Customize your Medusa and Contentful Integration\n\nIn this document, you’ll learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.\n\n## Overview\n\nPart of what makes the integration between Medusa and Contentful powerful is that it’s completely customizable.\n\nOn the backend, you can create Contentful migrations that allow you to add or edit Content Types in Contentful. Although this can be done through Contentful’s interface, this solution allows you to create a reusable codebase for your store that is independent of a specific Contentful Space.\n\nOn your storefront, you can add any necessary components that can render the Content Types you create.\n\nAs an example to explain this process, in this documentation, you’ll create a migration that creates a Rich Text content model in Contentful and edits the Page and Product content models to allow using Rich Text content as a tile in pages and products. Then, you’ll modify the Gatsby storefront to render the Rich Text content model.\n\n---\n\n## Prerequisites\n\nIt’s assumed you already have set up a Medusa backend integrated with Contentful and have a Gatsby storefront integrated with Contentful. If not, [please follow this documentation first](index.md).\n\n---\n\n## Create a Contentful Migration\n\nThe Contentful migrations are located in the `contentful-migrations` directory in the Medusa Contentful backend starter. So, if you want to create your own Contentful migrations, you can create them under that directory.\n\nHere’s an example of a migration created in a new file `contentful-migrations/rich-text.js`:\n\n```jsx title=contentful-migrations/rich-text.js\n#! /usr/bin/env node\n\nrequire(\"dotenv\").config()\n\nconst { runMigration } = require(\"contentful-migration\")\n\nconst options = {\n  spaceId: process.env.CONTENTFUL_SPACE_ID,\n  accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,\n  environment: process.env.CONTENTFUL_ENVIRONMENT,\n  yes: true,\n}\n\nconst migration = async () => {\n  await runMigration({\n    ...options,\n    migrationFunction: function (migration, context) {\n\n      // create Rich Text content model\n      const richText = migration\n        .createContentType(\"richText\")\n        .name(\"Rich Text\")\n        .displayField(\"title\")\n    \n      richText\n        .createField(\"title\")\n        .name(\"Title (Internal)\")\n        .type(\"Symbol\")\n      richText\n        .createField(\"body\")\n        .name(\"Body\")\n        .type(\"RichText\")\n\n      // edit Page content model\n      const page = migration.editContentType(\"page\")\n\n      page.editField(\"contentModules\").items({\n        type: \"Link\",\n        linkType: \"Entry\",\n        validations: [\n          {\n            linkContentType: [\n              \"hero\", \"tileSection\", \"richText\",\n            ],\n          },\n        ],\n      })\n\n      // edit Product content model\n      const product = migration.editContentType(\"product\")\n\n      product\n        .createField(\"contentModules\")\n        .name(\"Content Modules\")\n        .type(\"Array\")\n        .items({\n          type: \"Link\",\n          linkType: \"Entry\",\n          validations: [\n            {\n              linkContentType: [\"richText\"],\n            },\n          ],\n        })\n    },\n  })\n}\n\nmigration()\n```\n\nThis example creates a new content model Rich Text that has two fields: title and body. It also edits the Page content model to allow using Rich Text content models on the page.\n\nIn addition, it edits the Product content model by adding a new field `contentModules`. This field accepts an array of sections that can be of type Rich Text. This allows you to display rich details on a product page.\n\nYou can also add other types of content models the `contentModules` should accept. For example, to accept `tileSection` add it to the `linkContentType` option:\n\n```jsx\nproduct\n  .createField(\"contentModules\")\n  .name(\"Content Modules\")\n  .type(\"Array\")\n  .items({\n    type: \"Link\",\n    linkType: \"Entry\",\n    validations: [\n      {\n        linkContentType: [\"richText\", \"tileSection\"],\n      },\n    ],\n  })\n```\n\n### Run a Contentful Migration\n\nTo run a Contentful Migration that you create you can use the following command:\n\n```bash\nnode <file_path>\n```\n\nWhere `<file_path>` is the path of the file you created.\n\nTo run the Contentful migration in the previous example, you can use the following command:\n\n```bash\nnode contentful-migrations/rich-text.js\n```\n\nThis runs the Contentful migration in that file and makes the necessary changes in your Contentful Space.\n\n### Test if Contentful Migration Worked\n\nTo check if the above migration worked, in your Contentful Space dashboard go to Content Models from the navigation bar. You should see the new content model Rich Text.\n\n![Rich Text can be found among content models](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001241/Medusa%20Docs/Contentful/W5WzcTG_vau6c9.png)\n\nThe above migration also allows you to add Rich Text content to pages. To test this out, go to Content from the navigation bar and choose Page in the select field next to the search bar. This shows the available pages in your Contentful Space.\n\n![Filter content to only show pages by choosing Page in the Content Type select field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001251/Medusa%20Docs/Contentful/ht87z4e_gmbk6c.png)\n\nChoose one of the pages. For example, the About page. Then, scroll down to the Add content button. If you click on it, you should be able to choose Rich Text under New Content.\n\n![Click on add content and choose from the dropdown Rich Text](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001261/Medusa%20Docs/Contentful/pJ5yM0m_dfb7vp.png)\n\nClick on Rich Text and a new form will open to create new Rich Text content. It has the same fields that you defined in the migration file.\n\n![The Rich Text form is filled with data](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001271/Medusa%20Docs/Contentful/lAglhc9_ejfs2i.png)\n\nAfter adding the content you want, click on the Publish button on the right then go back to the About page editor.\n\n![Click on the Publish button at the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001281/Medusa%20Docs/Contentful/oYpQKsc_piobfk.png)\n\nSimilarly, in the About page editor, click on the Publish Changes button on the right to view these changes later in the storefront.\n\n![Click on the Publish changes button at the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001296/Medusa%20Docs/Contentful/DIMo3hd_ylxkr3.png)\n\nSimilarly, you can add Rich Text content to any product page.\n\n![A rich text content is added to a product](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001305/Medusa%20Docs/Contentful/wgI8mEB_wbukpd.png)\n\n---\n\n## Render New Content Models in the Storefront\n\nAfter creating a new content model in your Contentful Space, you must add the necessary component to render it in your Gatsby storefront.\n\n### Create Component\n\nTo render the Rich Text content you created in the previous example, create the file `src/components/rich-text/rich-text.js` with the following content:\n\n```jsx title=src/components/rich-text/rich-text.js\nimport React from \"react\"\nimport { \n  renderRichText,\n} from \"gatsby-source-contentful/rich-text\"\n\nconst RichText = ({ data }) => {\n  return (\n    <div style={{\n      maxWidth: \"870px\",\n      margin: \"0 auto\",\n      paddingTop: \"20px\",\n      paddingBottom: \"20px\",\n    }}>\n      {data.body ? renderRichText(data.body) : \"\"}\n    </div>\n  )\n}\n\nexport default RichText\n```\n\nThis creates the component `RichText` responsible for rendering the Rich Text content model. Notice that the fields of the content model are available under the `data` prop variable.\n\n### Render Component in a Page\n\nSince the Rich Text model can be added to any page, you must edit `src/pages/{ContentfulPage.slug}.js` to show it.\n\nIn `src/pages/{ContentfulPage.slug}.js`, import the `RichText` component at the top of the file:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nimport RichText from \"../components/rich-text/rich-text\"\n```\n\nThen, in the returned JSX add a new case to the switch statement:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nswitch (cm.internal.type) {\n  // ...\n  case \"ContentfulRichText\":\n      return <RichText key={cm.id} data={cm} />\n  default:\n    return null\n}\n```\n\nIf the content model of a tile is Rich Text, you’ll display it with the `RichText` component.\n\nFinally, to retrieve all necessary data of the Rich Text content, in the `query` GraphQL variable add the following after the `... on ContentfulTileSection` fragment:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nexport const query = graphql`\n        # find the following line\n        ... on ContentfulTileSection {\n\n        }\n        # add the following\n        ... on ContentfulRichText {\n          id\n          body {\n            raw\n          }\n          internal {\n            type\n          }\n        }\n      }\n    }\n  }\n`\n```\n\n### Test Rich Text in Page Content\n\nTo test this out, run your Medusa backend by running this command in its directory:\n\n```bash\nnpm run start\n```\n\nThen run the Gatsby storefront by running this command in its directory:\n\n```bash\nnpm run start\n```\n\nThis runs the Gatsby storefront on `localhost:8000`. Go to the storefront in your browser and open the About page. You should see the Rich Text content you added.\n\n![Rich Text content you added to the about page should be visible now](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001320/Medusa%20Docs/Contentful/aQAY9Vz_yw4eop.png)\n\n### Render Component in a Product Page\n\nIn the example migration, you also edited the product page to include a new Content Modules field that allows inserting Rich Text content.\n\nTo render them on the Product Page, add the following in the GraphQL query defined in the `query` variable inside `product`:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nexport const query = graphql`\n  query ($id: String!) {\n    product: contentfulProduct(id: { eq: $id }) {\n      # Other fields\n      contentModules {\n        ... on ContentfulRichText {\n          id\n          body {\n            raw\n          }\n          internal {\n            type\n          }\n        }\n      }\n    }\n  }\n`\n```\n\n:::note\n\nIf you added other accepted Content Models to the `contentModules` field of the Product content type, make sure to add them here.\n\n:::\n\nThen, in `src/views/product.js` import the `RichText` component:\n\n```jsx title=src/views/product.js\nimport RichText from \"../components/rich-text/rich-text\"\n```\n\nAnd in the returned JSX add the following before the last `</div>`:\n\n```jsx title=src/views/product.js\n<div className={styles.contentModules}>\n  {product.contentModules?.map((cm) => {\n    switch (cm.internal.type) {\n      case \"ContentfulRichText\":\n        return <RichText key={cm.id} data={cm} />\n      default:\n        return null\n    }\n  })}\n</div>\n```\n\n:::note\n\nIf you added other accepted Content Models to the `contentModules` field of the Product content type, make sure to add cases for them here to display them.\n\n:::\n\nThis loops over `contentModules` and if the type of the content is Rich Text, it is rendered with the `RichText` component.\n\n### Test Rich Text on a Product Page\n\nRestart the Gatsby storefront then open a product that you added Rich Text content to. You should see the Rich Text component at the end of the page.\n\n![Rich Text content you added to the product should be visible at the end of the page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001342/Medusa%20Docs/Contentful/LGiVMxx_rqsr2l.png)\n\n---\n\n## See Also\n\n- Deploy your Medusa backend to [Heroku](../../../deployments/server/deploying-on-heroku.mdx), [Qovery](../../../deployments/server/deploying-on-qovery.md), or [DigitalOcean](../../../deployments/server/deploying-on-digital-ocean.md).\n- [How to deploy your Gatsby storefront to Netlify](../../../deployments/storefront/deploying-gatsby-on-netlify.md).\n","docs/content/plugins/cms/contentful/index.md":"---\ndescription: 'Learn how to integrate Contentful with the Medusa backend and a Gatsby storefront. Contentful is a headless CMS backend that provides rich CMS functionalities.'\naddHowToData: true\n---\n\n# Contentful\n\nIn this document, you’ll learn how to integrate a Medusa backend with Contentful to add rich Content Management System (CMS) functionalities\n\n## Overview\n\n[Contentful](https://www.contentful.com/) is a headless CMS service that allows developers to integrate rich CMS functionalities into any platform.\n\nBy integrating Contentful to Medusa, you can benefit from powerful features in your ecommerce store including detailed product CMS details, easy-to-use interface to use for static content and pages, localization, and much more.\n\n---\n\n## Prerequisites\n\n### Needed Accounts\n\n- [Contentful](https://www.contentful.com/sign-up/) account with a space created. A space is created by default when you create a new account.\n\n### Required Tools\n\n- PostgreSQL with an empty database created. You can follow [this documentation to learn how to install it for your operating system](../../../development/backend/prepare-environment.mdx#postgres).\n- Redis. You can follow [their documentation to learn how to install it](https://redis.io/docs/getting-started/installation/).\n- Git’s CLI tool. You can follow [this documentation to learn how to install it for your operating system](../../../development/backend/prepare-environment.mdx#git).\n- Gatsby’s CLI tool. You can follow [this documentation to install it](https://www.gatsbyjs.com/docs/reference/gatsby-cli/#how-to-use-gatsby-cli).\n- Medusa’s CLI tool. You can follow [this documentation to install it](../../../cli/reference.md#how-to-install-cli-tool).\n\n---\n\n## Install Medusa Backend Using Contentful Starter\n\nInstead of using the default Medusa backend starter, you must use the [Contentful starter](https://github.com/medusajs/medusa-starter-contentful) to install a backend that is ready to be used with Contentful. This backend contains all the necessary files to make the integration work.\n\nIn your terminal, run the following command to install the backend:\n\n```bash\nmedusa new medusa-contentful https://github.com/medusajs/medusa-starter-contentful\n```\n\nThis installs a new Medusa backend in the directory `medusa-contentful`.\n\n### Add Contentful Environment Variables\n\nChange to the `medusa-contentful` directory. In `.env` you’ll find three variables:\n\n```bash title=.env\nCONTENTFUL_SPACE_ID=\nCONTENTFUL_ACCESS_TOKEN=\nCONTENTFUL_ENV=\n```\n\n#### Value of CONTENTFUL_ENV\n\nSet the value for `CONTENTFUL_ENV` to `master`.\n\n#### Value of CONTENTFUL_SPACE_ID\n\nTo retrieve the value of `CONTENTFUL_SPACE_ID`, go to your [Contentful Space dashboard](https://app.contentful.com/). Then, choose Settings in the navigation bar and select API keys from the dropdown.\n\n![Click on Settings then select API keys from the dropdown](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001360/Medusa%20Docs/Contentful/hvp6zo5_uaqtmi.png)\n\nOn the APIs page, click Add API Key.\n\n![Click on the Add API Key button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001375/Medusa%20Docs/Contentful/KlH2BDg_fiqd80.png)\n\nIn the form, enter a name for the API key and click Save.\n\n![A form with the name of API key entered](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001385/Medusa%20Docs/Contentful/hOG1RqM_tmctae.png)\n\nThen, copy the value of Space ID and set it as the value of `CONTENTFUL_SPACE_ID`.\n\n#### Value of CONTENTFUL_ACCESS_TOKEN\n\nGo back to the API Keys page and click on the Content management tokens tab.\n\n![API Keys page with Content management tokens tab opened](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001394/Medusa%20Docs/Contentful/7nWx1xk_co8ykw.png)\n\nClick on Generate personal token. A pop-up will open where you have to enter a name for the token.\n\n![Pop up model for Personal Access Token with token name entered](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001403/Medusa%20Docs/Contentful/y6R81pH_yhbg1u.png)\n\nOnce you click Generate, a personal access token will be generated. Use it to set the value of `CONTENTFUL_ACCESS_TOKEN`.\n\n:::warning\n\nOnce you close the pop-up, you won’t be able to get the value of the personal access token again. Make sure to copy it first.\n\n:::\n\n### Configure Redis\n\nIn `.env` set the value of your Redis URL:\n\n```bash\nREDIS_URL=<YOUR_REDIS_URL>\n```\n\nWhere `<YOUR_REDIS_URL>` is the URL of your Redis service.\n\n:::tip\n\nThe default Redis URL is `redis://localhost:6379`.\n\n:::\n\n### Configure PostgreSQL\n\nIn `.env` set the value of your PostgreSQL URL:\n\n```bash\nDATABASE_URL=<YOUR_DB_URL>\n```\n\nWhere `<YOUR_DB_URL>` is the URL of your PostgreSQL database.\n\n:::tip\n\nYou can find the format of the PostgreSQL database URL in [PostgreSQL’s documentation](https://www.postgresql.org/docs/current/libpq-connect.html).\n\n:::\n\nThen, in `medusa-config.js` in the exported object, comment out or remove the SQLite database configurations and add the PostgreSQL database configurations:\n\n```jsx title=medusa-config.js\nmodule.exports = {\n  projectConfig: {\n    // ...\n    database_url: DATABASE_URL,\n    database_type: \"postgres\",\n    // REMOVE OR COMMENT OUT THE BELOW:\n    // database_database: \"./medusa-db.sql\",\n    // database_type: \"sqlite\",\n  },\n}\n```\n\n### Migrate Content Types to Contentful\n\nThe Contentful starter provides the necessary scripts to create content types in your Contentful space.\n\nRun the following commands to migrate the content types into Contentful:\n\n```bash\nnpm run migrate:contentful\n```\n\nOnce this command finishes executing, in your Contentful Space dashboard click on Content Model in the navigation bar. You should see a list of new content models added.\n\n![Content Model page filled with new content models](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001419/Medusa%20Docs/Contentful/ZDJPNkr_avr7gy.png)\n\n### Seed Content to Contentful\n\nThe next step is to seed the Contentful Space with some content data.\n\nRun the following command to seed some data into it:\n\n```bash\nnpm run seed:contentful\n```\n\nAfter this command finishes running, in your Contentful Space dashboard click on Content in the navigation bar. You should see a list of new content added.\n\n![Content page filled with new content](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001429/Medusa%20Docs/Contentful/bfgFxPg_jb4zok.png)\n\n### (Optional) Seed Medusa Database\n\nThis step seeds your Medusa database with demo data to easily add products as well as other data to your Medusa backend.\n\nRun the following command to seed the Medusa database:\n\n```bash\nnpm run seed\n```\n\n### Start the Backend\n\nTo start the backend run the following command:\n\n```bash\nnpm run start\n```\n\nIf you seeded the database with demo data, you should see that events related to the products are triggered.\n\n![Seed the database](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001440/Medusa%20Docs/Contentful/ci4accp_okaro3.png)\n\nThe Contentful integration ensures a two-way sync between the Medusa backend and Contentful. So, when new products are added to Medusa, these products will be added to your Contentful Space as well.\n\n---\n\n## (Optional) Add Products with the Medusa Admin\n\nUsing the Medusa admin, you can add products to your Medusa backend. This will trigger product events that subsequently add these products to Contentful.\n\n---\n\n## Manage Contentful Data\n\n### Publish Products\n\nProducts added through the integration with the Medusa backend are by default saved as drafts. To show them on the storefront, you must set them as published.\n\nTo do that, open your Contentful Space Dashboard and click on Content in the Navigation bar. Then, change Any to Product in the select field next to the search bar. This shows only the content of the type Product, rather than all content.\n\nClick on the checkbox at the top of the table to select all products then click Publish to publish these products.\n\n![Select all products' checkboxes and click the publish button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001452/Medusa%20Docs/Contentful/3NrH5tJ_f16iym.png)\n\n### Added Featured Products\n\nOn the homepage of the storefront, there’s a featured products tile that shows a set of products. Before running the storefront, you must add at least one product to the list.\n\nTo do that, open your Contentful Space Dashboard and click on Content in the Navigation bar. Make sure the select field next to the search bar is set to Any and search for Featured Products. You should find one content of the type Tile Section.\n\n![Search for the featured products tile section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001462/Medusa%20Docs/Contentful/2gS0ozY_b2tpsb.png)\n\nClick on it. You should find on the page an empty Tiles section where you can add tiles and products.\n\n![On the content's page find the empty tiles section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001472/Medusa%20Docs/Contentful/inuN1OB_ipiszl.png)\n\nClick on Add content then on Add existing content and pick some of the products you want to show on the homepage.\n\n![Add at least 1 product as a tile](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001500/Medusa%20Docs/Contentful/N5m4LbF_fb97tm.png)\n\nOnce you’re done adding products, click on Publish changes in the right sidebar.\n\n![Click on the publish changes button on the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001508/Medusa%20Docs/Contentful/URNpkXq_cb5ppp.png)\n\n---\n\n## Setup Gatsby Storefront\n\nIn this section, you’ll set up the Gatsby storefront of your Medusa backend.\n\nIn your terminal in a different directory of the Medusa backend, run the following command:\n\n```bash\ngatsby new medusa-contentful-storefront https://github.com/medusajs/medusa-contentful-storefront\n```\n\nThis will install the storefront in the directory `medusa-contentful-storefront`.\n\n### Set Contentful Environment Variables\n\nChange to the newly created directory and rename `.env.template`:\n\n```bash\nmv .env.template .env\n```\n\nThen, open `.env`. You should find the following environment variables:\n\n```bash title=.env\nCONTENTFUL_SPACE_ID=\nCONTENTFUL_ACCESS_TOKEN=\n```\n\nThe value of `CONTENTFUL_SPACE_ID` is the same value you [retrieved while setting up the Medusa backend](#value-of-contentful_space_id).\n\nTo retrieve the value of `CONTENTFUL_ACCESS_TOKEN`, on your Contentful Space dashboard click on Settings then API keys. Then, choose the API key you created in the previous section.\n\nYou should find the field \"Content Delivery API - access token”. Copy its value and set it as the value of `CONTENTFUL_ACCESS_TOKEN`.\n\n![Copy the value of the Content Delivery API access token](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001522/Medusa%20Docs/Contentful/a7dl7DI_mziogm.png)\n\n### Start Storefront\n\nMake sure the Medusa backend is still running. Then, start the storefront:\n\n```bash\nnpm run start\n```\n\nThis starts the storefront at `localhost:8000`. Open it in your browser and you should see on the homepage the Featured Product section with the products you chose on Contentful.\n\n![The storefront with the featured products section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001537/Medusa%20Docs/Contentful/f6xwYbS_w1v993.png)\n\n---\n\n## Make Changes to Content\n\nYou can update the CMS content of your storefront in your Contentful Space. This includes the CMS pages or product details.\n\n:::note\n\nIf you make changes to the data while your Gatsby storefront is running, the changes are not reflected instantly. That’s because the data is fetched from Contentful during build time. Instead, you must restart your Gatsby storefront to see the changes you make.\n\n:::\n\n---\n\n## What’s Next\n\nLearn [How to customize your Contentful backend and storefront](./customize-contentful.md).\n\n## See Also\n\n- How to deploy your Medusa backend to [Heroku](../../../deployments/server/deploying-on-heroku.mdx), [Qovery](../../../deployments/server/deploying-on-qovery.md), or [DigitalOcean](../../../deployments/server/deploying-on-digital-ocean.md).\n- [How to deploy your Gatsby storefront to Netlify](../../../deployments/storefront/deploying-gatsby-on-netlify.md).\n","docs/content/plugins/cms/strapi.md":"---\ndescription: 'Learn how to integrate Strapi with the Medusa backend. Learn how to install the plugin and test two-way sync between the ecommerce and CMS services.'\naddHowToData: true\n---\n\n# Strapi\n\nIn this document, you’ll learn how to integrate Strapi with Medusa to add rich Content Management System (CMS) functionalities.\n\n:::info\n\nThis plugin is a [community plugin](https://github.com/Deathwish98/medusa-plugin-strapi) and is not managed by the official Medusa team. At the moment, it supports v4 of Strapi.\n\n:::\n\n## Overview\n\n[Strapi](https://strapi.io/) is an open source headless CMS service that allows developers to have complete control over their content models. It can be integrated into many other frameworks, including Medusa.\n\nBy integrating Strapi to Medusa, you can benefit from powerful features in your ecommerce store including detailed product CMS details, [two-way sync](#test-two-way-sync), an easy-to-use interface to use for static content and pages, and much more.\n\n---\n\n## Prerequisites\n\n### Medusa CLI\n\n[Medusa’s CLI tool](../../cli/reference.md#how-to-install-cli-tool) is required to set up a new Medusa backend.\n\n### Redis\n\nRedis is required for the Strapi plugin to work as expected on your Medusa backend. If you don’t have it installed, you can learn [how to install it in this documentation](../../development/backend/prepare-environment.mdx#redis).\n\n---\n\n## Create Strapi Project\n\nThe first step is to create a Strapi project using the Medusa template:\n\n```bash\nnpx create-strapi-app strapi-medusa --template shahednasser/strapi-medusa-template\n```\n\nThis creates the Strapi project in the directory `strapi-medusa`.\n\nOnce the installation is finished, the Strapi development backend will run on `localhost:1337`. A new page will also open in your default browser to create a new admin user and log in.\n\n![Create User Form in Strapi](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001083/Medusa%20Docs/Strapi/9pFE1Ij_h2dicv.png)\n\nOnce you log in, you can access the Strapi dashboard.\n\n### Create a Strapi User\n\nThe Strapi plugin in Medusa requires the credentials of a Strapi user. To create a new user, go to Content Manager, then choose User under Collection Types.\n\n![Showing the users under Content Manager](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001096/Medusa%20Docs/Strapi/YyGJPUf_mr5sx7.png)\n\nClick on the Create new entry button at the top right. This opens a new form to enter the user’s details.\n\n![Create User Form on Strapi](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001105/Medusa%20Docs/Strapi/mdMhSlV_vy7ygv.png)\n\nEnter the user’s username, email, and password. Once you’re done, click on the Save button at the top right.\n\n---\n\n## Modify Permissions\n\nBy default, created users have the “Authenticated” role. Before you start using the Strapi plugin on your Medusa backend, you must modify this role’s permissions to allow making changes to Medusa’s models in Strapi.\n\nOn your Strapi dashboard, go to Settings → Roles → Authenticated. Then, under the Permissions section, expand the accordion of each content model type and check the Select All checkbox.\n\n![An example of modifying permissions on the Product content type](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001116/Medusa%20Docs/Strapi/QgckXqS_wlyxe8.png)\n\nOnce you’re done, click the Save button at the top right.\n\n---\n\n## Create Medusa Backend\n\n:::note\n\nYou can use the Strapi plugin on an existing Medusa backend, however, existing data (such as existing products) will not be imported. Only newer data will be imported.\n\n:::\n\nTo create your Medusa backend, run the following command:\n\n```bash\nmedusa new medusa-backend --seed\n```\n\nThe `--seed` flag creates an SQLite database and seeds it with some demo data.\n\n### Configure your Backend\n\nOnce the command is done executing, change to the newly created `medusa-backend` directory. Then, in `medusa-config.js`, change the exported object at the end of the file to enable Redis:\n\n```jsx title=medusa-config.js\nmodule.exports = {\n  projectConfig: {\n    redis_url: REDIS_URL,\n    // ...\n  },\n  // ...\n}\n```\n\nThis uses the default Redis configurations. If you want to learn more about configuring Redis, [check out this documentation](../../development/backend/configurations.md#redis).\n\n:::tip\n\nIt is also recommended to use PostgreSQL for an optimal experience, however, it is not required. Learn how to [install](../../development/backend/prepare-environment.mdx#postgres) and [configure](../../development/backend/configurations.md#postgresql-configurations) it on your Medusa backend.\n\n:::\n\n---\n\n## Install the Strapi Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Strapi plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-strapi\n```\n\nThen, add the following environment variables:\n\n```bash\nSTRAPI_USER=<STRAPI_IDENTIFIER>\nSTRAPI_PASSWORD=<STRAPI_PASSWORD>\nSTRAPI_PROTOCOL=http # Optional\nSTRAPI_URL=<STRAPI_URL> # Optional\nSTRAPI_PORT=<STRAPI_PORT> # Optional\n```\n\nWhere:\n\n- `<STRAPI_IDENTIFIER>` is either the email address or username of the user you created in the previous step.\n- `<STRAPI_PASSWORD>` is the password of the user you created in the previous step.\n- `<STRAPI_PROTOCOL>` is the protocol of your Strapi backend. If you’re using a local Strapi backend, set this to `http`. The default value is `https`.\n- `<STRAPI_URL>` is the URL of your Strapi backend. By default, the URL is `localhost`.\n- `<STRAPI_PORT>` is the port the Strapi backend runs on. By default, the port is `1337`.\n\nFinally, open `medusa-config.js` and add the following new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-strapi`,\n    options: {\n      strapi_medusa_user: process.env.STRAPI_USER,\n      strapi_medusa_password: process.env.STRAPI_PASSWORD,\n      strapi_url: process.env.STRAPI_URL, // optional\n      strapi_port: process.env.STRAPI_PORT, // optional\n      strapi_protocol: process.env.STRAPI_PROTOCOL, // optional\n    },\n  },\n]\n```\n\n---\n\n## Run Medusa Backend\n\nMake sure the Strapi backend is still running. If not, you can run the following command to run the Strapi backend in the directory of the Strapi project:\n\n```bash npm2yarn\nnpm run develop\n```\n\nThen, in the directory of your Medusa backend, run the following command to start the Medusa backend:\n\n```bash npm2yarn\nnpm run start\n```\n\nOnce you start your Medusa backend, if you ran the `--seed` command when you created your Medusa backend, you’ll see that `product.created` events have been triggered along with similar events. This will update Strapi with the products you seeded.\n\n---\n\n## Test Two-Way Sync\n\nThis plugin ensures a two-way sync between the Medusa backend and the Strapi backend. So, if you update data on Strapi, it will be reflected on your Medusa backend, and vice-versa.\n\n### Update Products on Strapi\n\nTry updating any products on Strapi by going to Content Manager → Products and choosing a product from the list. Then, make changes to the product and click Save. If you view the products on your backend now, either using the [REST APIs](/api/admin/#tag/Product/operation/GetProducts) or using [the Medusa Admin](../../user-guide/products/index.mdx), you’ll see that the product has been updated.\n\n### Update Products on Medusa\n\nIf you try to update products on Medusa either using the [REST APIs](/api/admin/#tag/Product/operation/PostProductsProduct) or using [the Medusa Admin](../../user-guide/products/manage.mdx), you’ll see that the product is also updated on Strapi.\n\n---\n\n## See Also\n\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n- [Create your own plugin](../../development/plugins/create.md)\n","docs/content/plugins/file-service/minio.md":"---\ndescription: 'Learn how to integrate MinIO with the Medusa backend. Learn how to install the MinIO plugin on the Medusa backend and configure it.'\naddHowToData: true\n---\n\n# MinIO\n\nThis document will guide you through installing the MinIO file service plugin on your Medusa backend.\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document will focus on setting up [MinIO](https://min.io) on your local machine and connecting Medusa to it.\n\n---\n\n## Prerequisites\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n---\n\n## Set up MinIO\n\nYou can follow [MinIO’s guide to install it](https://docs.min.io/minio/baremetal/quickstart/quickstart.html) on your machine based on your operating system.\n\nAfter installing it, make sure MinIO is always running when your Medusa backend is running. It’s recommended that you set up an alias to quickly start the MinIO backend as instructed at the end of the installation guides in MinIO.\n\n### Change MinIO port\n\nIn MinIO’s documentation, port `9000` is used for the address of the MinIO backend. However, this collides with the port for the Medusa backend. You must change the port for MinIO to another one (for example, port `9001`).\n\nAfter setting up and installing MinIO on your system/sub-system, you can run the following command to change MinIO port to `9001` (or any other available port) instead of `9000` to avoid the port clash:\n\n```bash\nminio backend ~/minio --console-address :9090 --address :9001\n```\n\n### Create a MinIO bucket\n\nAfter installing MinIO and logging into the Console, you can create a bucket that will store the files of your Medusa backend by following these steps:\n\n1. Click on the “Create Bucket” button\n2. For the Bucket Name field, enter a name for the bucket. By MinIO’s requirement, the name can only consist of lower case characters, numbers, dots (`.`), and hyphens (`-`).\n3. Click on the Create Bucket button.\n4. On the bucket's page, click on the cog icon at the top right to configure the bucket.\n5. Click on the edit icon next to Access Policy.\n6. In the pop-up that opens, change the selected value to “public” and click Set.\n\n:::warning\n\nChanging the Access Policy to public will allow anyone to access your bucket. Avoid storing sensitive data in the bucket.\n\n:::\n\n### Generate Access Keys\n\nTo generate access keys for your plugin:\n\n1. From the sidebar of your MinIO console, click on Access Keys\n2. Click on the \"Create access key\" button\n3. This will open a new form with randomly-generated keys. Click on the Create button.\n4. A pop-up will then show the value for your Access Key and Secret Key. Copy them to use in the next section.\n\n:::caution\n\nYou will not be able to access the Secret Key after closing the pop-up. So, make sure to store it somewhere to use later when configuring the plugin.\n\n:::\n\n---\n\n## Plugin Installation\n\nIn the directory of your Medusa backend, run the following command to install the MinIO plugin:\n\n```bash npm2yarn\nnpm install medusa-file-minio\n```\n\nThen, add the following environment variables in `.env`:\n\n```bash\nMINIO_ENDPOINT=<ENDPOINT>\nMINIO_BUCKET=<BUCKET>\nMINIO_ACCESS_KEY=<ACCESS_KEY>\nMINIO_SECRET_KEY=<SECRET_KEY>\n```\n\nWhere `<ENDPOINT>` is the URL of your MinIO backend, `<BUCKET>` is the name of the bucket you created earlier, and `<ACCESS_KEY>` and `<SECRET_KEY>` are the keys you generated in the previous section.\n\nFinally, configure your `medusa-config.js` to include the plugin with the required options:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        endpoint: process.env.MINIO_ENDPOINT,\n        bucket: process.env.MINIO_BUCKET,\n        access_key_id: process.env.MINIO_ACCESS_KEY,\n        secret_access_key: process.env.MINIO_SECRET_KEY,\n    },\n  },\n]\n```\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test it Out\n\nRun your Medusa backend alongside the [Medusa Admin](../../admin/quickstart.mdx) to try out your new file service. Upon editing or creating products, you can now upload thumbnails and images, that are stored in a MinIO backend.\n\n![Image Uploaded on Admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000429/Medusa%20Docs/MinIO/alabX2i_dzg2mh.png)\n\n---\n\n## Private Buckets\n\n### Handle Exports\n\nMedusa provides export functionalities including exporting products and orders. For exports to work, you must [set up a private bucket](#create-private-bucket).\n\n### Handle Imports\n\nMedusa provides import functionalities including importing products. For imports to work, you must [set the private bucket](#add-private-bucket-environment-variable) to be the same as the public bucket.\n\n### Create Private Bucket\n\nTo create a private bucket, follow along the [steps mentioned earlier](#create-a-minio-bucket), but keep Access Policy set to private.\n\n### Add Private Bucket Environment Variable\n\nAdd the following environment variable on your Medusa backend:\n\n```bash\nMINIO_PRIVATE_BUCKET=exports\n```\n\nThen, add a new option to the plugin’s options in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        // ...\n        private_bucket: process.env.MINIO_PRIVATE_BUCKET,\n    },\n  },\n]\n```\n\n### Use Different Secret and Access Keys\n\nIf you only add the `private_bucket` option, the same secret and access keys that you used for the public bucket will be used to access the private bucket.\n\nIf you want to use different keys, set the following environment variables:\n\n```bash\nMINIO_PRIVATE_ACCESS_KEY=<YOUR_PRIVATE_ACCESS_KEY>\nMINIO_PRIVATE_SECRET_KEY=<YOUR_PRIVATE_SECRET_KEY>\n```\n\nWhere `<YOUR_PRIVATE_ACCESS_KEY>` and `<YOUR_PRIVATE_SECRET_KEY>` are the access key and secret access key that have access to the private MinIO bucket.\n\nThen, add two new options to the plugin’s options in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        // ...\n        private_access_key_id: \n          process.env.MINIO_PRIVATE_ACCESS_KEY,\n        private_secret_access_key: \n          process.env.MINIO_PRIVATE_SECRET_KEY,\n    },\n  },\n]\n```\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the MinIO domain name into the configured images domain names. This is because all URLs of product images will be from the MinIO backend.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"127.0.0.1\",\n    ],\n  },\n})\n```\n\nWhere `127.0.0.1` is the domain of your local MinIO backend.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","docs/content/plugins/file-service/s3.md":"---\ndescription: 'Learn how to integrate the S3 plugin with the Medusa backend. Learn how to configure and use S3 to store images related to the Medusa backend.'\naddHowToData: true\n---\n\n# S3\n\nIn this document, you’ll learn how to install the [S3 plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-s3) on your Medusa backend and use it for storage.\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting the images. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document focuses on using [S3](https://aws.amazon.com/s3/) to store images and files uploaded to the Medusa backend.\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n### Required Accounts\n\nYou need to [create an AWS account](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin) to follow along with this documentation.\n\n---\n\n## Create S3 Bucket\n\nOn your AWS Console, search for S3 in the search box at the top. Then, choose the first result you see which should be S3 under the Services category.\n\n![Enter S3 in the search box and choose S3 from the result in the Services category](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000547/Medusa%20Docs/S3/wuPTfQ8_bzbm8n.png)\n\nThen, on the new page that opens, click on Create Bucket button at the top right of the Buckets table.\n\n![Click on the Create bucket button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000527/Medusa%20Docs/S3/h95D38T_gptwpr.png)\n\nThe Create Bucket form will open. In the General Configuration section enter a name for the bucket and choose a region for the bucket. Both of the values of these fields are important as you’ll use them throughout the documentation.\n\n![Enter bucket name and choose region in the General Configuration section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000559/Medusa%20Docs/S3/wlxUU8I_m4ngqd.png)\n\nNext, in the Object Ownership section, choose ACLs enabled. Then, two radio buttons will show below it. Choose Bucket owner preferred.\n\n![In the Object Ownership section choose ACLs enabled, then choose Bucket owner preferred for the Object ownership field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000572/Medusa%20Docs/S3/ChUXQPt_eg8mn1.png)\n\nThen, in the “Block Public Access settings for this bucket” section, uncheck the “Block all public access” checkbox. This shows a warning message at the bottom of the section with another checkbox. Check the checkbox to ensure you understand that objects in the bucket are publicly accessible.\n\n![Uncheck Block all public access and all fields under it, and check the checkbox field \"I acknowledge that the current settings might result in this bucket and the objects within becoming public\"](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000586/Medusa%20Docs/S3/abHquFh_wypfbx.png)\n\nYou can leave the rest of the fields in the form as is and scroll down to the end of the page. Then, click on the Create Bucket button.\n\n---\n\n## Manage Bucket Policies\n\nOn the page of the bucket you just created, click on the Permissions tab. Then, scroll down until you find the Bucket policy section. Click on Edit in that section.\n\n![Find the bucket policy section which should be empty and click on the Edit button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000607/Medusa%20Docs/S3/I6BBLwv_zoknft.png)\n\nIn the Edit Bucket Policy page, enter the following in the field:\n\n```json\n{\n  \"Version\": \"2012-10-17\",\n  \"Id\": \"Policy1397632521960\",\n  \"Statement\": [\n    {\n      \"Sid\": \"Stmt1397633323327\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"AWS\": \"*\"\n      },\n      \"Action\": \"s3:GetObject\",\n      \"Resource\": \"arn:aws:s3:::<YOUR_BUCKET_NAME>/*\"\n    }\n  ]\n}\n```\n\nMake sure to replace `<YOUR_BUCKET_NAME>` with the name of the bucket you created.\n\nOnce you’re done, scroll down and click on the Save changes button.\n\n### User Permissions\n\nYour user must have the `AmazonS3FullAccess` policy attached to it. You can refer to [this guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-and-attach-iam-policy.html) to learn how to add a policy if necessary.\n\n### Obtain Access Keys\n\nYou must obtain access keys for your user as you’ll use them to integrate the S3 plugin in Medusa with your bucket. To obtain the Access Key ID and the Secret Access Key, check out [this guide](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\n\n---\n\n## Install the S3 Plugin\n\nIn the directory of your Medusa backend, run the following command to install the S3 Plugin:\n\n```bash npm2yarn\nnpm install medusa-file-s3\n```\n\nThen, add the following environment variables:\n\n```bash\nS3_URL=<YOUR_BUCKET_URL>\nS3_BUCKET=<YOUR_BUCKET_NAME>\nS3_REGION=<YOUR_BUCKET_REGION>\nS3_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>\nS3_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>\n```\n\nWhere:\n\n1. `<YOUR_BUCKET_URL>` is the URL to your bucket. It’s in the form `https://<BUCKET_NAME>.s3.<REGION>.amazonaws.com`, where `<BUCKET_NAME>` is the name of the bucket and the `<REGION>` is the region the bucket is created in. If you’re not sure which region, on your bucket’s page on S3 click on Properties. You can then find the region under AWS Region. Make sure to only copy the code (for example, `us-east-1`).\n2. `<YOUR_BUCKET_NAME>` is the name of the bucket you created.\n3. `<YOUR_BUCKET_REGION>` is the region code of your bucket. For example, `us-east-1`.\n4. `<YOUR_ACCESS_KEY_ID>` is the Access Key ID that you created for your user.\n5. `<YOUR_SECRET_ACCESS_KEY>` is the Secret Access Key that you created for your user.\n\nFinally, in `medusa-config.js`, add to the `plugins` array the following new item:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-s3`,\n    options: {\n        s3_url: process.env.S3_URL,\n        bucket: process.env.S3_BUCKET,\n        region: process.env.S3_REGION,\n        access_key_id: process.env.S3_ACCESS_KEY_ID,\n        secret_access_key: process.env.S3_SECRET_ACCESS_KEY,\n    },\n  },\n]\n```\n\n### Add AWS Configurations\n\nYou can pass AWS configurations in the plugin's options under the property `aws_config_object`. This property is an object that accepts [AWS Configurations](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html) as its properties.\n\nFor example, you can pass the `region`, `access_key_id` and `secret_access_key` in `aws_config_object`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-s3`,\n    options: {\n        s3_url: process.env.S3_URL,\n        bucket: process.env.S3_BUCKET,\n        aws_config_object: {\n          region: process.env.S3_REGION,\n          access_key_id: process.env.S3_ACCESS_KEY_ID,\n          secret_access_key: process.env.S3_SECRET_ACCESS_KEY,\n        },\n    },\n  },\n]\n```\n\nMake sure to define `S3_REGION`, `S3_ACCESS_KEY_ID`, and `S3_SECRET_ACCESS_KEY` in your environment variables first.\n\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test the S3 Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, you can either test the plugin using the [REST APIs](/api/store) or using the [Medusa Admin](../../admin/quickstart.mdx).\n\nOn the Medusa Admin, create a new product and, in the Images section, upload an image then click Save. If the integration was successful, the product image will be uploaded successfully.\n\n![An image is successfully uploaded on the Medusa Admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000619/Medusa%20Docs/S3/zPC9qFH_dgqf76.png)\n\nYou can also check that the image was uploaded on the S3 bucket’s page.\n\n![Image is now available in the S3 Bucket](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000630/Medusa%20Docs/S3/NJZ5bP8_ovv9rc.png)\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the S3 bucket domain name into the configured images’ domain names. This is because all URLs of product images will be from the S3 bucket.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"<BUCKET_NAME>.s3.amazonaws.com\",\n    ],\n  },\n})\n```\n\nWhere `<BUCKET_NAME>` is the name of the S3 bucket you’re using.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","docs/content/plugins/file-service/spaces.md":"---\ndescription: 'Learn how to integrate Spaces with the Medusa backend. Learn how to install and configure the Spaces plugin on the Medusa backend.'\naddHowToData: true\n---\n\n# Spaces\n\nIn this document, you’ll learn how to install the [Spaces plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-spaces) on your Medusa backend and use it for storage.\n\n<div>\n  <video width=\"100%\" height=\"100%\" playsinline autoplay muted controls>\n    <source src=\"https://user-images.githubusercontent.com/59018053/154808767-7c030254-1879-41fd-a71c-b31c5508d8a4.mp4\" type=\"video/mp4\" />\n  </video>\n</div>\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting the images. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document focuses on using [Spaces](https://www.digitalocean.com/products/spaces) to store images and files uploaded to the Medusa backend.\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n### Required Accounts\n\nYou need to [create a DigitalOcean account](https://cloud.digitalocean.com/registrations/new) to follow along with this documentation. A credit card is required during registration.\n\n---\n\n## Create DigitalOcean Space\n\nIn your DigitalOcean account, click on the Create button at the top right, then choose Spaces from the dropdown.\n\n![Click on the green Create button at the top right, then choose Spaces in the dropdown](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000907/Medusa%20Docs/Spaces/AQqMRoJ_uhkywh.png)\n\nIn the Create a Space form, you can choose any of the regions listed. You can alternatively leave all settings as they are and scroll down to the Finalize and Create section.\n\n![The Space form can be left as is and move towards the Finalize and Create section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000929/Medusa%20Docs/Spaces/ipsIqoA_zeyfkf.png)\n\nIn the Finalize and Create section, enter a name for the field “Choose a unique name”. You’ll use this name later in the integration with Medusa. Also, select the project you want to add the new Space to.\n\n![Enter a name for the Space in the Choose a unique name field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000949/Medusa%20Docs/Spaces/NhlRX0h_ptdhpk.png)\n\nOnce you’re done, click on the Create a Space button. This creates the Space and redirects you to the Space’s page.\n\n---\n\n## Create Space Access Keys\n\nChoose API from the bottom of the sidebar.\n\n![Choose API from the bottom of the sidebar.](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000964/Medusa%20Docs/Spaces/6zNoDOW_tqbeqv.png)\n\nThis opens the Application & API page. Scroll down to Spaces Access Keys and click the Generate New Key button.\n\n![In the Spaces access keys section, click the Generate New Key button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000977/Medusa%20Docs/Spaces/NUocdgh_doi0dq.png)\n\nThis shows a table with the Name field editable. Enter a name for the Access Keys and click on the checkmark button to save and generate the Spaces access keys.\n\n![Enter a name for the Space access key in the field under the Name column](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000987/Medusa%20Docs/Spaces/ihJBx0T_xfe4rh.png)\n\nThen, two keys will be available under the Key column of the table. The first one is the Access Key ID and the second is the Secret Access Key. Copy both as you’ll use them later.\n\n:::caution\n\nThe secret access key will not be shown again after you leave the page. Make sure to copy it when you see it or you’ll need to re-generate a new one.\n\n:::\n\n---\n\n## Install the Spaces Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Spaces plugin:\n\n```bash npm2yarn\nnpm install medusa-file-spaces\n```\n\nThen, add the following environment variables:\n\n```bash\nSPACE_URL=<YOUR_SPACE_URL>\nSPACE_BUCKET=<YOUR_SPACE_NAME>\nSPACE_ENDPOINT=<YOUR_SPACE_ENDPOINT>\nSPACE_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>\nSPACE_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>\n```\n\nWhere:\n\n1. `<YOUR_SPACE_URL>` is the URL of your Space which you can find on the Space’s page below the Space’s name.\n\n![The URL is available under the Space's name on the Space's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001004/Medusa%20Docs/Spaces/cA3vkvh_maixr0.png)\n\n2. `<YOUR_SPACE_NAME>` is the name of your Space.\n3. `<YOUR_SPACE_ENDPOINT>` is your Space’s endpoint which can be found by going to your Space’s page, clicking on the Settings tab, and scrolling to the Endpoint section.\n\n![Endpoint can be found on the Settings tab in the Space's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001017/Medusa%20Docs/Spaces/CnvLr6R_tudlhu.png)\n\n4. `<YOUR_ACCESS_KEY_ID>` and `<YOUR_SECRET_ACCESS_KEY>` are the keys you created in the previous section.\n\nFinally, in `medusa-config.js` add a new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-spaces`,\n    options: {\n        spaces_url: process.env.SPACE_URL,\n        bucket: process.env.SPACE_BUCKET,\n        endpoint: process.env.SPACE_ENDPOINT,\n        access_key_id: process.env.SPACE_ACCESS_KEY_ID,\n        secret_access_key: process.env.SPACE_SECRET_ACCESS_KEY,\n    },\n  },\n]\n```\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test the Space Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, you can either test the plugin using the [REST APIs](/api/store) or using the [Medusa Admin](../../admin/quickstart.mdx).\n\nOn the Medusa Admin, create a new product and, in the Images section, upload an image then click Save. If the integration was successful, the product image will be uploaded successfully.\n\n![Image successfully uploaded on Medusa's admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001039/Medusa%20Docs/Spaces/oTi4jIw_c6vefa.png)\n\nYou can also check that the image was uploaded on the Space’s page.\n\n![Image can be seen on the Space's page on DigitalOcean](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001050/Medusa%20Docs/Spaces/BexmRkg_gimk1d.png)\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the Space’s domain name into the configured images’ domain names. This is because all URLs of product images will be from the Space.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"<YOUR_SPACE_DOMAIN>\",\n    ],\n  },\n})\n```\n\nWhere `<YOUR_SPACE_DOMAIN>` is the domain name for your Space which can be retrieved from the Space URL. For example, `medusa-backend.digitaloceanspaces.com`.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n- [Deploy the Medusa backend on DigitalOcean](../../deployments/server/deploying-on-digital-ocean.md).\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","docs/content/plugins/notifications/mailchimp.md":"---\ndescription: 'Learn how to integrate Mailchimp with the Medusa backend. Learn how to install the plugin on the Medusa backend and how to add a subscription form.'\naddHowToData: true\n---\n\n# Mailchimp\n\nIn this document, you’ll learn about the Mailchimp plugin, what it does, and how to use it.\n\n## Overview\n\n[Mailchimp](https://mailchimp.com) is an email marketing service that can be used to create newsletters and subscriptions.\n\nBy integrating Mailchimp with Medusa, customers will be able to subscribe from Medusa to your Mailchimp newsletter and will be automatically added to your Mailchimp subscribers list.\n\n:::note\n\nThis plugin is only used to allow your customers to subscribe but does not actually do any email sending. If you want to send emails to customers based on specific events, for example, when an order is placed, you should check out the [SendGrid plugin](./sendgrid.mdx) instead.\n\n:::\n\n---\n\n## Prerequisites\n\nBefore going further with this guide make sure you have a Medusa backend set up. You can follow the [Quickstart guide](../../development/backend/install.mdx).\n\nYou also need a Mailchimp account, so please [create one](https://mailchimp.com/signup) before you start.\n\n---\n\n## Obtain Mailchimp Keys\n\nTo integrate the plugin into Medusa you need two keys: The API Key and the Newsletter list or Audience ID. The API Key acts as a credential for your account, whereas the Newsletter list ID determines which audience should the subscribed customers be added to.\n\nYou can follow [this guide](https://mailchimp.com/help/about-api-keys/#Find_or_generate_your_API_key) from Mailchimp’s documentation to obtain an API Key.\n\nYou can follow [this guide](https://mailchimp.com/help/find-audience-id/) from Mailchimp’s documentation to obtain your Newsletter list or Audience ID.\n\n---\n\n## Install the Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Mailchimp plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-mailchimp\n```\n\n### Add Keys\n\nOpen `.env` and add the following keys:\n\n```bash\nMAILCHIMP_API_KEY=<YOUR_API_KEY>\nMAILCHIMP_NEWSLETTER_LIST_ID=<YOUR_NEWSLETTER_LIST_ID>\n```\n\nMake sure to replace `<YOUR_API_KEY>` with your API Key and `<YOUR_NEWSLETTER_LIST_ID>` with your Newsletter list or Audience ID.\n\n### Add Plugin to Medusa Config\n\nOpen `medusa-config.js` and add the new plugin into the `plugins` array:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...,\n  {\n    resolve: `medusa-plugin-mailchimp`,\n    options: {\n      api_key: process.env.MAILCHIMP_API_KEY,\n      newsletter_list_id: \n        process.env.MAILCHIMP_NEWSLETTER_LIST_ID,\n    },\n  },\n]\n```\n\n---\n\n## Test it Out\n\nThis plugin adds a new `POST` endpoint at `/mailchimp/subscribe`. This endpoint requires in the body of the request an `email` field. You can also optionally include a `data` object that holds any additional data you want to send to Mailchimp. You can check out [Mailchimp’s subscription documentation](https://mailchimp.com/developer/marketing/api/list-members/add-member-to-list/) for more details on the data you can send.\n\n### Without Additional Data\n\nTry sending a `POST` request to `/mailchimp/subscribe` with the following JSON body:\n\n```json noReport\n{\n  \"email\": \"example@gmail.com\"\n}\n```\n\nIf the subscription is successful, a `200` response code will be returned with `OK` message.\n\n![Postman](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000185/Medusa%20Docs/Mailchimp/tpr7uCF_g4rymn.png)\n\nIf you check your Mailchimp dashboard, you should find the email added to your Audience list.\n\n![Email Added](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000199/Medusa%20Docs/Mailchimp/ALz6WUq_e4mkcs.png)\n\n### With Additional Data\n\nHere’s an example of sending additional data with the subscription:\n\n```json noReport\n{\n    \"email\": \"example@gmail.com\",\n    \"data\": {\n        \"tags\": [\"customer\"]\n    }\n}\n```\n\nAll fields inside `data` will be sent to Mailchimp’s API along with the email.\n\n---\n\n## Use Mailchimp Service\n\nIf you want to subscribe to users without using this endpoint or at a specific place in your code, you can use Mailchimp’s service `mailchimpService` in your endpoints, services, or subscribers. This service has a method `subscribeNewsletter` which lets you use the subscribe functionality.\n\nHere’s an example of using the `mailchimpService` inside an endpoint:\n\n```jsx title=src/api/index.ts\nconst mailchimpService = req.scope.resolve(\"mailchimpService\")\n\nmailchimpService.subscribeNewsletter(\n  \"example@gmail.com\",\n  { tags: [\"customer\"] } // optional\n)\n```\n\n:::tip\n\nYou can learn more about how you can use services in your endpoints, services, and subscribers in the [Services documentation](../../development/services/create-service.md#using-your-custom-service).\n\n:::\n\n---\n\n## Add Subscription Form\n\nThis section has a simple example of adding a subscription form in your storefront. The code is for React-based frameworks but you can use the same logic for your storefronts regardless of the framework you are using.\n\nYou’ll need to use [axios](https://github.com/axios/axios) to send API requests, so if you don’t have it installed make sure you install it first:\n\n```bash npm2yarn\nnpm install axios\n```\n\nThen, in the component you want to add the subscription form add the following code:\n\n```tsx\nimport axios from \"axios\"\nimport { useState } from \"react\"\n\nexport default function NewsletterForm() {\n  const [email, setEmail] = useState(\"\")\n\n  function subscribe(e) {\n    e.preventDefault()\n    if (!email) {\n      return\n    }\n\n    axios.post(\"http://localhost:9000/mailchimp/subscribe\", {\n      email,\n    })\n      .then((e) => {\n        alert(\"Subscribed sucessfully!\")\n        setEmail(\"\")\n      })\n      .catch((e) => {\n        console.error(e)\n        alert(\"An error occurred\")\n      })\n  }\n\n  return (\n    <form onSubmit={subscribe}>\n      <h2>Sign Up for our newsletter</h2>\n      <input \n        type=\"email\"\n        name=\"email\" \n        id=\"email\" \n        placeholder=\"example@gmail.com\"\n        value={email} \n        onChange={(e) => setEmail(e.target.value)}\n      />\n      <button type=\"submit\">Subscribe</button>\n    </form>\n  )\n}\n```\n\nThis will result in a subscription form similar to the following:\n\n![Subscription Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000210/Medusa%20Docs/Mailchimp/JHIFEwe_fu4rkv.png)\n\nIf you try entering an email and clicking Subscribe, the email will be subscribed to your Mailchimp newsletter successfully.\n\n---\n\n## See Also\n\n- Check out [SendGrid plugin](./sendgrid.mdx) for more Email functionalities.\n- [Plugins Overview](../../development/plugins/overview.mdx)\n","docs/content/plugins/notifications/slack.md":"---\ndescription: 'Learn how to integrate Slack with the Medusa backend. Learn how to create and configure a Slack app and install the Slack plugin on the Medusa backend.'\naddHowToData: true\n---\n\n# Slack\n\nIn this documentation, you'll learn how to add the [Slack plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-slack-notification) to your Medusa backend to start receiving order notifications.\n\n## Overview\n\nWhen you add this plugin, the store owner can receive order notifications into their Slack workspace.\n\nThe notification contains details about the order including:\n\n- Customer's details and address\n- Items ordered, their quantity, and the price\n- Order totals including Tax amount.\n- Promotion details if there are any (this is optional and can be turned off).\n\nThe plugin registers a subscriber to the `order.placed` event. When an order is placed, the subscriber handler method uses the ID of the order to retrieve order details mentioned above.\n\nThen, the order notificaiton is sent to Slack using Webhooks. So, you'll need to create a Slack App, add it into your workspace, and activate Incoming Webhooks.\n\n---\n\n## Prerequisites\n\n### Slack Account\n\nTo follow along with this guide, you need to have a Slack account with a connected workspace. If you don’t have one, you can [create a free account on Slack](https://slack.com/).\n\n### Medusa Backend\n\nThis tutorial assumes you already have a Medusa backend installed. If you don’t, please follow along with the [quickstart guide](../../development/backend/install.mdx). The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n---\n\n## Create Slack App\n\nThe first step is to create a Slack app. This app will be connected to your workspace and will have Incoming Webhooks activated to receive notifications from the Medusa backend using a Webhook URL.\n\nGo to [Slack API](https://api.slack.com/) and click Create app. This will take you to a new page with a pop-up. In the pop-up, choose From scratch.\n\n![Create Slack App](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000844/Medusa%20Docs/Slack/liVfwF8_ryzly3.png)\n\nYou’ll then need to enter some info like the App name and the workspace it will be connected to. Once you’re done, the app will be created.\n\n### Activate Incoming Webhooks\n\nTo activate Incoming Webhooks, choose Features > Incoming Webhooks from the sidebar. At first, it will be disabled so make sure to enable it by switching the toggle.\n\n![Incoming Webhooks](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000856/Medusa%20Docs/Slack/5Y0nv4p_mugzkb.png)\n\n### Add New Webhook\n\nAfter activating Incoming Webhooks, on the same page scroll down and click on the Add New Webhook to Workspace button.\n\n![Add New Webhook](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000867/Medusa%20Docs/Slack/sejdIqH_wyqgs5.png)\n\nAfter that, choose the channel to send the notifications to. You can also choose a DM to send the notifications to. Once you’re done click Allow.\n\n![Choose channel or DM](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000882/Medusa%20Docs/Slack/Zw3f5uF_hljfpr.png)\n\nThis will create a new Webhook with a URL which you can see in the table at the end of the Incoming Webhooks page. Copy the URL as you’ll use it in the next section.\n\n---\n\n## Install Slack Plugin\n\nThe next step is to install Medusa’s [Slack plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-slack-notification) into your Medusa backend.\n\nOpen the terminal in the Medusa backend’s directory and run the following command:\n\n```bash npm2yarn\nnpm install medusa-plugin-slack-notification\n```\n\nAfter that, open `medusa-config.js` and add the new plugin with its configurations in the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...,\n  {\n    resolve: `medusa-plugin-slack-notification`,\n    options: {\n      show_discount_code: false,\n      slack_url: `<WEBHOOK_URL>`,\n      admin_orders_url: `http://localhost:7001/a/orders`,\n    },\n  },\n]\n```\n\n- Make sure to change `<WEBHOOK_URL>` with the Webhook URL you copied after creating the Slack app.\n- The `show_discount_code` option enables or disables showing the discount code in the notification sent to Slack. \n- The `admin_orders_url` is the prefix of the URL of the order detail pages on your admin panel. If you’re using Medusa’s Admin locally, it should be `http://localhost:7001/a/orders`. This will result in a URL like `http://localhost:7001/a/orders/order_01FYP7DM7PS43H9VQ1PK59ZR5G`.\n\nThat’s all you need to do to integrate Slack into Medusa!\n\n---\n\n## See Also\n\n- Install [Medusa's Admin](../../admin/quickstart.mdx) for the full order-management experience.\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","docs/content/plugins/notifications/twilio-sms.md":"---\ndescription: 'Learn how to integrate Twilio SMS with the Medusa backend. Learn how to install the Twilio SMS plugin and test it out.'\naddHowToData: true\n---\n\n# Twilio SMS\n\nIn this document, you’ll learn about the Twilio SMS Plugin, what it does, and how to use it in Medusa.\n\n## Overview\n\n[Twilio’s SMS API](https://www.twilio.com/sms) can be used to send users SMS messages instantly. It has a lot of additional features such as Whatsapp messaging and conversations.\n\nBy integrating Twilio SMS into Medusa, you’ll have easy access to Twilio’s SMS API to send SMS messages to your users and customers. You can use it to send Order confirmations, verification codes, reset password messages, and more.\n\n:::note\n\nThis plugin only gives you access to the Twilio SMS API but does not implement sending messages at any given point. You’ll have to add this yourself where you need it. You can look at the [example later in this tutorial](#example-usage-of-the-plugin) to check how you can send an SMS for a new order.\n\n:::\n\n---\n\n## Prerequisites\n\nBefore going further with this guide make sure you have a Medusa backend set up. You can follow the [Quickstart guide](../../development/backend/install.mdx) if you don’t.\n\nYou also must have a [Twilio account created](https://www.twilio.com/sms) so if you don’t already please go ahead and create one.\n\n---\n\n## Retrieve Credentials\n\nFor the [Twilio SMS plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-twilio-sms), you need three credentials from your Twilio account: Account SID, Auth Token, and a Twilio phone number to send from. You can find these three from your [Twilio Console’s homepage](https://console.twilio.com).\n\n---\n\n## Install Plugin\n\nIn the directory of your Medusa backend, run the following command to install [Twilio SMS plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-twilio-sms):\n\n```bash npm2yarn\nnpm install medusa-plugin-twilio-sms\n```\n\nThen, you’ll need to add your credentials in `.env`:\n\n```bash\nTWILIO_SMS_ACCOUNT_SID=<YOUR_ACCOUNT_SID>\nTWILIO_SMS_AUTH_TOKEN=<YOUR_AUTH_TOKEN>\nTWILIO_SMS_FROM_NUMBER=<YOUR_TWILIO_NUMBER>\n```\n\nMake sure to replace `<YOUR_ACCOUNT_SID>`, `<YOUR_AUTH_TOKEN>`, and `<YOUR_TWILIO_NUMBER>` with the credentials you obtained from your Twilio Console.\n\nFinally, add the plugin and its options in the `medusa-config.js` file to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-twilio-sms`,\n    options: {\n      account_sid: process.env.TWILIO_SMS_ACCOUNT_SID,\n      auth_token: process.env.TWILIO_SMS_AUTH_TOKEN,\n      from_number: process.env.TWILIO_SMS_FROM_NUMBER,\n    },\n  },\n]\n```\n\n---\n\n## Example Usage of the Plugin\n\nThis plugin adds the service `twilioSmsService` to your Medusa backend. To send SMS using it, all you have to do is resolve it in your file as explained in the [Services](../../development/services/create-service.md#using-your-custom-service) documentation.\n\nIn this example, you’ll create a subscriber that listens to the `order.placed` event and sends an SMS to the customer to confirm their order.\n\n:::tip\n\nFor this example to work, you'll need to have an event bus module installed and configured, which should be available by default.\n\n:::\n\nCreate the file `src/services/sms.js` in your Medusa backend with the following content:\n\n```jsx title=src/services/sms.js\nclass SmsSubscriber {\n  constructor({ \n    twilioSmsService, \n    orderService, \n    eventBusService,\n  }) {\n    this.twilioSmsService_ = twilioSmsService\n    this.orderService = orderService\n\n    eventBusService.subscribe(\"order.placed\", this.sendSMS)\n  }\n\n  sendSMS = async (data) => {\n    const order = await this.orderService.retrieve(data.id, {\n      relations: [\"shipping_address\"],\n    })\n\n    if (order.shipping_address.phone) {\n      this.twilioSmsService_.sendSms({\n        to: order.shipping_address.phone,\n        body: \"We have received your order #\" + data.id,\n      })\n    }\n  }\n}\n\nexport default SmsSubscriber\n```\n\nIn the `constructor`, you resolve the `twilioSmsService` and `orderService` using dependency injection to use it later in the `sendSMS` method.\n\nYou also subscribe to the event `order.placed` and sets the event handler to be `sendSMS`.\n\nIn `sendSMS`, you first retrieve the order with its relation to `shipping_address` which contains a `phone` field. If the phone is set, you send an SMS to the customer using the method `sendSms` in the `twilioSmsService`.\n\nThis method accepts an object of parameters. These parameters are based on Twilio’s SMS APIs. You can check their [API documentation](https://www.twilio.com/docs/sms/api/message-resource#create-a-message-resource) for more fields that you can add.\n\nIf you create an order now on your storefront, you should receive a message from Twilio on the phone number you entered in the shipping address.\n\n:::tip\n\nIf you don’t have a storefront set up yet, you can install the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx).\n\n:::\n\n:::caution\n\nIf you’re on a Twilio trial make sure that the phone number you entered on checkout is a [verified Twilio number on your console](https://console.twilio.com/us1/develop/phone-numbers/manage/verified).\n\n:::\n\n![Twilio Dashboard](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001219/Medusa%20Docs/Stripe/MXtQMiL_kb7kxe.png)\n\n---\n\n## See Also\n\n- [Notifications Overview](../../development/notification/overview.mdx).\n- Install the [Medusa admin](../../admin/quickstart.mdx) for functionalities like Gift Cards creation, swaps, claims, order return requests, and more.\n","docs/content/plugins/payment/klarna.md":"---\ndescription: 'Learn how to integrate Klarna as a payment provider with the Medusa backend. Learn how to install Klarna and enable the payment provider in a region.'\naddHowToData: true\n---\n\n# Klarna\n\nIn this document, you’ll learn how to integrate Klarna as a payment provider in Medusa.\n\n:::tip\n\nFollowing the release of v1.8 of the core Medusa package, the naming of payment providers have changed to payment processors with the introduction of the Payment Processor API. However, plugins or implementation that still don't implement the Payment Processor API are still called payment providers.\n\n:::\n\n## Introduction\n\n[Klarna](https://www.klarna.com/) is a payment provider that allows customers to pay in different ways including direct payment, installment payments, payment after delivery, and more.\n\nYou can integrate Klarna into Medusa using the [official plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-klarna).\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is assumed that you already have a Medusa backend installed and set up. If not, you can follow the [quickstart guide](../../development/backend/install.mdx).\n\nIn addition, you’ll need to use the [Medusa Admin](../../admin/quickstart.mdx) to enable the payment provider in later steps. You can alternatively use the [REST APIs](/api/admin/#tag/Region/operation/PostRegionsRegionPaymentProviders).\n\n### Needed Accounts\n\n- A [Klarna business account](https://portal.klarna.com/)\n\n---\n\n## Install Plugin\n\nOn your Medusa backend, run the following command to install the plugin:\n\n```bash\nnpm install medusa-payment-klarna\n```\n\nThen, add the following environment variables:\n\n```bash\nKLARNA_BACKEND_URL=<YOUR_KLARNA_BACKEND_URL>\nKLARNA_URL=<YOUR_KLARNA_URL>\nKLARNA_USER=<YOUR_KLARNA_USER>\nKLARNA_PASSWORD=<YOUR_KLARNA_PASSWORD>\nKLARNA_TERMS_URL=<YOUR_KLARNA_TERMS_URL>\nKLARNA_CHECKOUT_URL=<YOUR_KLARNA_CHECKOUT_URL>\nKLARNA_CONFIRMATION_URL=<YOUR_KLARNA_CONFIRMATION_URL>\n```\n\nWhere:\n\n- `<YOUR_KLARNA_BACKEND_URL>` is your Klarna URL.\n- `<YOUR_KLARNA_URL>` is the [base Klarna URL based on your environment](https://docs.klarna.com/api/api-urls/).\n- `<YOUR_KLARNA_USER>` and `<YOUR_KLARNA_PASSWORD>` are your [API credentials](https://docs.klarna.com/api/authentication/).\n- `<YOUR_KLARNA_TERMS_URL>`, `<YOUR_KLARNA_CHECKOUT_URL>`, and `<YOUR_KLARNA_CONFIRMATION_URL>` are the terms, checkout, and confirmation URL of your Klarna account.\n\nFinally, in `medusa-config.js`, add the Klarna plugin to the `plugins` array with the necessary configurations:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // other plugins...\n  {\n    resolve: `medusa-payment-klarna`,\n    options: {\n      backend_url: process.env.KLARNA_BACKEND_URL,\n      url: process.env.KLARNA_URL,\n      user: process.env.KLARNA_USER,\n      password: process.env.KLARNA_PASSWORD,\n      merchant_urls: {\n        terms: process.env.KLARNA_TERMS_URL,\n        checkout: process.env.KLARNA_CHECKOUT_URL,\n        confirmation: process.env.KLARNA_CONFIRMATION_URL,\n      },\n    },\n  },\n]\n```\n\n---\n\n## Enable Klarna in Regions\n\nTo use Klarna in your store, you must enable it in at least one region.\n\nYou can follow [this user guide to learn how to enable a payment provider in a region](../../user-guide/regions/providers#manage-payment-providers). You can alternatively use the [REST APIs](/api/admin/#tag/Region/operation/PostRegionsRegionPaymentProviders).\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","docs/content/plugins/payment/paypal.md":"---\ndescription: 'Learn how to integrate PayPal with the Medusa backend. Learn how to install the PayPal plugin on the Medusa backend and integrate into a storefront.'\naddHowToData: true\n---\n\n# PayPal\n\nThis document guides you through setting up PayPal as a payment processor in your Medusa backend, admin, and storefront using the [PayPal plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-paypal).\n\n## Overview\n\n[PayPal](https://www.paypal.com) is a payment processor used by millions around the world. It allows customers to purchase orders from your website using their PayPal account rather than the need to enter their card details.\n\nAs a developer, you can use PayPal’s SDKs and APIs to integrate PayPal as a payment method into your ecommerce store. You can test out the payment method in sandbox mode before going live with it as a payment method.\n\nUsing the `medusa-payment-paypal` plugin, this guide shows you how to set up your Medusa backend with PayPal as a payment processor.\n\n---\n\n## Prerequisites\n\nBefore you proceed with this guide, make sure you create a [PayPal account](https://www.paypal.com). You also need a PayPal Developer account and retrieve the Client ID and Client Secret. You can learn more about how to do that in [PayPal’s documentation](https://developer.paypal.com/api/rest/).\n\nIn addition, you need to configure a webhook listener on your PayPal Developer Dashboard and obtain the webhook ID. This is necessary for Webhooks to work.\n\nWebhooks are used in scenarios where the customer might leave the page during the authorization and before the checkout flow is fully complete. It will then create the order or swap after the payment is authorized if they weren’t created\n\nAdditionally, you need a Medusa backend installed and set up. If not, you can follow the [quickstart guide](../../development/backend/install.mdx) to get started.\n\nYou also need [Medusa Admin](../../admin/quickstart.mdx) installed to enable PayPal as a payment processor. You can alternatively use the [REST APIs](/api/admin).\n\n---\n\n## Medusa Backend\n\n### Install the PayPal Plugin\n\nIn the root of your Medusa backend, run the following command to install the PayPal plugin:\n\n```bash npm2yarn\nnpm install medusa-payment-paypal\n```\n\n### Configure the PayPal Plugin\n\nNext, you need to add configurations for your PayPal plugin.\n\nIn the `.env` file add the following new environment variables:\n\n```bash\nPAYPAL_SANDBOX=true\nPAYPAL_CLIENT_ID=<CLIENT_ID>\nPAYPAL_CLIENT_SECRET=<CLIENT_SECRET>\nPAYPAL_AUTH_WEBHOOK_ID=<WEBHOOK_ID>\n```\n\nWhere `<CLIENT_ID>`, `<CLIENT_SECRET>`, and `<WEBHOOK_ID>` are the keys you retrieved from the PayPal Developer dashboard as explained in the [Prerequisites](#prerequisites) section.\n\nNotice that during development it’s highly recommended to set `PAYPAL_SANDBOX` to `true` and ensure you have [sandbox accounts set up in PayPal](https://developer.paypal.com/api/rest/sandbox/).\n\nThen, in `medusa-config.js`, add the PayPal plugin to the `plugins` array with the configurations necessary:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // other plugins...\n  {\n    resolve: `medusa-payment-paypal`,\n    options: {\n      sandbox: process.env.PAYPAL_SANDBOX,\n      client_id: process.env.PAYPAL_CLIENT_ID,\n      client_secret: process.env.PAYPAL_CLIENT_SECRET,\n      auth_webhook_id: process.env.PAYPAL_AUTH_WEBHOOK_ID,\n    },\n  },\n]\n```\n\nThat’s all you need to install PayPal on your Medusa backend!\n\n---\n\n## Admin Setup\n\nThis section will guide you through adding PayPal as a payment processor in a region using your Medusa admin dashboard.\n\nThis step is required for you to be able to use PayPal as a payment processor in your storefront.\n\n### Admin Prerequisites\n\nIf you don’t have a Medusa admin installed, make sure to follow along with [the guide on how to install it](../../admin/quickstart.mdx) before continuing with this section.\n\n### Add PayPal to Regions\n\nYou can refer to [this documentation in the user guide](../../user-guide/regions/providers.mdx#manage-payment-providers) to learn how to add a payment processor like PayPal to a region.\n\n---\n\n## Storefront Setup\n\nThis section will take you through the steps to add PayPal as a payment method on the storefront. It includes the steps necessary when using one of Medusa’s official storefronts as well as your own custom React-based storefront.\n\n### Storefront Prerequisites\n\nAll storefronts require that you obtain your PayPal Client ID. You can retrieve it from your PayPal developer dashboard.\n\n### Process Overview\n\nAside from the Next.js Storefront, you need to add the implementation with PayPal manually.\n\n:::note\n\nIt is recommended to read through the [Frontend Checkout Flow](../../modules/carts-and-checkout/storefront/implement-checkout-flow.mdx) first to fully understand how payment is implemented on the storefront.\n\n:::\n\nAlthough the next sections have different implementations to add PayPal into your storefront, they essentially follow the same process:\n\n1. Show PayPal’s button if the PayPal processor is available for the current cart.\n2. When the button is clicked, open PayPal’s payment portal and wait for the customer to authorize the payment.\n3. If the payment is authorized successfully, set PayPal’s [Payment Session](../../modules/carts-and-checkout/payment.md#payment-session) as the session used to perform the payment for the current cart, then update the Payment Session on the backend with the data received from PayPal’s payment portal. This data is essential to the backend to verify the authorization and perform additional payment processing later such as capturing payment.\n4. Complete the cart to create the order.\n\n:::info\n\nIn Medusa, by default, payments are authorized during checkout, but the payment is not captured right away. The payment should be manually [captured from the Medusa Admin](#capture-payment).\n\n:::\n\n### Add to Next.js Storefront\n\nMedusa has a Next.js storefront that you can easily use with your Medusa backend. If you don’t have the storefront installed, you can follow [this quickstart guide](../../starters/nextjs-medusa-starter.mdx).\n\nIn your `.env.local` file (or the file you’re using for your environment variables), add the following variable:\n\n```bash title=.env.local\nNEXT_PUBLIC_PAYPAL_CLIENT_ID=<YOUR_CLIENT_ID>\n```\n\nMake sure to replace `<YOUR_CLIENT_ID>` with your PayPal Client ID.\n\nNow, if you run your Medusa backend and your storefront, on checkout you’ll be able to use PayPal].\n\n![PayPal Button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000463/Medusa%20Docs/PayPal/F8OvsOJ_v3ctol.png)\n\nYou can test out the payment with PayPal using your sandbox account.\n\n### Add to Custom Storefront\n\nThis section guides you to add PayPal into a React-based framework. The instructions are general instructions that you can use in your storefront.\n\nIn your storefront, you need to install the [PayPal React components library](https://www.npmjs.com/package/@paypal/react-paypal-js) and the [Medusa JS Client library](https://www.npmjs.com/package/@medusajs/medusa-js):\n\n```bash npm2yarn\nnpm install @paypal/react-paypal-js @medusajs/medusa-js\n```\n\nThen, add the Client ID as an environment variable based on the framework you’re using.\n\nNext, create the file that will hold the PayPal component with the following content:\n\n```jsx\nimport { \n  PayPalButtons, \n  PayPalScriptProcessor,\n} from \"@paypal/react-paypal-js\"\nimport { useEffect, useState } from \"react\"\n\nimport Medusa from \"@medusajs/medusa-js\"\n\nfunction Paypal() {\n  const client = new Medusa()\n  const [errorMessage, setErrorMessage] = useState(undefined)\n  const [processing, setProcessing] = useState(false)\n  const cart = \"...\" // TODO retrieve the cart here\n\n  const handlePayment = (data, actions) => {\n    actions.order.authorize().then(async (authorization) => {\n      if (authorization.status !== \"COMPLETED\") {\n        setErrorMessage(\n          `An error occurred, status: ${authorization.status}`\n        )\n        setProcessing(false)\n        return\n      }\n\n      const response = await client\n        .carts\n        .setPaymentSession(cart.id, {\n          \"processor_id\": \"paypal\",\n        })\n\n      if (!response.cart) {\n        setProcessing(false)\n        return\n      }\n\n      await client\n        .carts\n        .updatePaymentSession(cart.id, \"paypal\", {\n        data: {\n          data: {\n            ...authorization,\n          },\n        },\n      })\n\n      const { data } = await client.carts.complete(cart.id)\n\n      if (!data || data.object !== \"order\") {\n        setProcessing(false)\n        return\n      }\n      \n      // order successful\n      alert(\"success\")\n    })\n  }\n\n  return (\n    <div style={{ marginTop: \"10px\", marginLeft: \"10px\" }}>\n      {cart !== undefined && (\n        <PayPalScriptProcessor options={{ \n          \"client-id\": \"<CLIENT_ID>\",\n          \"currency\": \"EUR\",\n          \"intent\": \"authorize\",\n        }}>\n            {errorMessage && (\n              <span className=\"text-rose-500 mt-4\">\n                {errorMessage}\n              </span>\n            )}\n            <PayPalButtons \n              style={{ layout: \"horizontal\" }}\n              onApprove={handlePayment}\n              disabled={processing}\n            />\n        </PayPalScriptProcessor>\n      )}\n    </div>\n  )\n}\n\nexport default Paypal\n```\n\nHere’s briefly what this code snippet does:\n\n1. At the beginning of the component, the Medusa client is initialized using the JS Client you installed.\n2. You also need to retrieve the cart. Ideally, the cart should be managed through a context. So, every time the cart has been updated the cart should be updated in the context to be accessed from all components.\n3. This component renders a PayPal button to initialize the payment using PayPal. You use the components from the PayPal React components library to render the button and you pass the `PayPalScriptProcessor` component the Client ID. Make sure to replace `<CLIENT_ID>` with the environment variable you added.\n4. When the button is clicked, the `handlePayment` function is executed. In this method, you initialize the payment authorization using `actions.order.authorize()`. It takes the customer to another page to log in with PayPal and authorize the payment.\n5. After the payment is authorized successfully on PayPal’s portal, the fulfillment function passed to `actions.order.authorize().then` will be executed.\n6. In the fulfillment function, you first ensure that the payment session for the PayPal payment processor is set as the [selected Payment Session in the cart](/api/store/#tag/Cart/operation/PostCartsCartPaymentSession). Then, you send a request to the backend to [update the payment session](/api/store/#tag/Cart/operation/PostCartsCartPaymentSessionUpdate) data with the authorization data received from PayPal.\n7. You then [complete the cart and place the order](/api/store/#tag/Cart/operation/PostCartsCartComplete). If that is done successfully, you just show a success alert. You can change this based on the behavior you want in your storefront.\n\nYou can then import this component where you want to show it in your storefront.\n\nIf you run the Medusa backend and the storefront backend, you should see the PayPal button on checkout.\n\n![PayPal Button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000492/Medusa%20Docs/PayPal/PsibgPY_xtqdli.png)\n\n---\n\n## Capture Payments\n\nAfter the customer places an order, you can see the order on the admin panel. In the payment information under the “Payment” section, you should see a “Capture” button.\n\n![Capture Payment](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000502/Medusa%20Docs/PayPal/Mx357yY_xsandw.png)\n\nClicking this button lets you capture the payment for an order. You can also refund payments if an order has captured payments.\n\nRefunding or Capturing payments is reflected in your PayPal dashboard as well.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","docs/content/plugins/payment/stripe.md":"---\ndescription: 'Learn how to integrate Stripe with the Medusa backend. Learn how to install the Stripe plugin on the Medusa backend and integrate it into a storefront.'\naddHowToData: true\n---\n\n# Stripe\n\nThis document guides you through setting up Stripe payments in your Medusa backend, admin, and storefront using the [Stripe Plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-stripe).\n\n## Video Guide\n\nYou can also follow this video guide to learn how the setup works:\n\n<div>\n  <video width=\"100%\" height=\"100%\" playsinline autoplay muted controls>\n    <source src=\"https://user-images.githubusercontent.com/59018053/154807206-6fbda0a6-bf3e-4e39-9fc2-f11710afe0b9.mp4\" type=\"video/mp4\" />\n  </video>\n</div>\n\n## Overview\n\n[Stripe](https://stripe.com/) is a battle-tested and unified platform for transaction handling. Stripe supplies you with the technical components needed to handle transactions safely and all the analytical features necessary to gain insight into your sales. These features are also available in a safe test environment which allows for a concern-free development process.\n\nUsing the `medusa-payment-stripe` plugin, this guide shows you how to set up your Medusa project with Stripe as a payment processor.\n\n---\n\n## Prerequisites\n\nBefore you proceed with this guide, make sure you create a [Stripe account](https://stripe.com). You’ll later retrieve the API Keys and secrets from your account to connect Medusa to your Stripe account.\n\n---\n\n## Medusa Backend\n\nThis section guides you over the steps necessary to add Stripe as a payment processor to your Medusa backend.\n\nIf you don’t have a Medusa backend installed yet, you must follow the [quickstart guide](../../development/backend/install.mdx) first.\n\n### Install the Stripe Plugin\n\nIn the root of your Medusa backend, run the following command to install the stripe plugin:\n\n```bash npm2yarn\nnpm install medusa-payment-stripe\n```\n\n### Configure the Stripe Plugin\n\nNext, you need to add configurations for your stripe plugin.\n\nIn `medusa-config.js` add the following at the end of the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-payment-stripe`,\n    options: {\n      api_key: process.env.STRIPE_API_KEY,\n      webhook_secret: process.env.STRIPE_WEBHOOK_SECRET,\n    },\n  },\n]\n```\n\n:::note\n\nYou might find that this code is already available but commented out. You can proceed with removing the comments instead of adding the code again, but make sure to replace `STRIPE_API_KEY` and `STRIPE_WEBHOOK_SECRET` with `process.env.STRIPE_API_KEY` and `process.env.STRIPE_WEBHOOK_SECRET` respectively.\n\n:::\n\nThe Stripe plugin uses two configuration options. The `api_key` is essential to both your development and production environments. As for the `webhook_secret`, it’s essential for your production environment. So, if you’re only using Stripe for development you can skip adding the value for this option at the moment.\n\n### Retrieve Stripe's Keys\n\nOn the [dashboard](https://dashboard.stripe.com) of your Stripe account click on the Developers link at the top right. This will take you to the developer dashboard.\n\nYou’ll first retrieve the API key. You can find it by choosing API Keys from the sidebar and copying the Secret key.\n\nNext, you need to add the key to your environment variables. In your Medusa backend, create `.env` if it doesn’t already exist and add the Stripe key:\n\n```bash\nSTRIPE_API_KEY=sk_...\n```\n\n:::note\n\nIf you store environment variables differently on your backend, for example, using the hosting processor’s UI, then you don’t need to add it in `.env`. Add the environment variables in a way relevant to your backend.\n\n:::\n\nNext, if you’re installing this plugin for production use, you need to retrieve the Webhook secret. Webhooks allows you to track different events on your Medusa backend, such as failed payments.\n\nGo to Webhooks on Stripe’s developer dashboard. Then, choose the Add an Endpoint button.\n\nThe endpoint for Stripe’s webhook on your Medusa backend is `{BACKEND_URL}/stripe/hooks`. So, add that endpoint in its field. Make sure to replace `{BACKEND_URL}` with the URL to your backend.\n\nThen, you can add a description. You must select at least one event to listen to. Once you’re done, click “Add endpoint”.\n\nAfter the Webhook is created, you’ll see \"Signing secret\" in the Webhook details. Click on \"Reveal\" to reveal the secret key. Copy that key and in your Medusa backend add the Webhook secret environment variable:\n\n```bash\nSTRIPE_WEBHOOK_SECRET=whsec_...\n```\n\n---\n\n## Admin Setup\n\nThis section will guide you through adding Stripe as a payment processor in a region using your Medusa admin dashboard.\n\nThis step is required for you to be able to use Stripe as a payment processor in your storefront.\n\n### Admin Prerequisites\n\nIf you don’t have a Medusa admin installed, make sure to follow along with [the guide on how to install it](https://github.com/medusajs/admin#-quickstart) before continuing with this section.\n\n### Add Stripe to Regions\n\nYou can refer to [this documentation in the user guide](../../user-guide/regions/providers.mdx#manage-payment-providers) to learn how to add a payment processor like Stripe to a region.\n\n---\n\n## Storefront Setup\n\nThis guide will take you through how to set up Stripe payments in your Medusa storefront. It includes the steps necessary when using one of Medusa’s official storefronts as well as your own custom React-based storefront.\n\n### Storefront Prerequisites\n\nAll storefronts require that you obtain your Stripe’s Publishable Key. You can retrieve it from your Stripe’s developer dashboard by choosing API Keys and then copying the Publishable Key.\n\n### Add to Next.js Storefront\n\nMedusa has a Next.js storefront that you can easily use with your Medusa backend. If you don’t have the storefront installed, you can follow [this quickstart guide](../../starters/nextjs-medusa-starter).\n\nIn your `.env.local` file (or the file you’re using for your environment variables), add the following variable:\n\n```bash title=.env.local\nNEXT_PUBLIC_STRIPE_KEY=<YOUR_PUBLISHABLE_KEY>\n```\n\nMake sure to replace `<YOUR_PUBLISHABLE_KEY>` with your Stripe Publishable Key.\n\nNow, if you run your Medusa backend and your storefront, on checkout you’ll be able to use Stripe.\n\n![Next.js Stripe Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001145/Medusa%20Docs/Stripe/h5mWdJT_n1bktt.png)\n\n### Add to Custom Storefront\n\nThis section will go over how to add Stripe into a React-based framework. The instructions are general instructions that you can use in your storefront.\n\n#### Workflow Overview\n\nThe integration with stripe must have the following workflow:\n\n1. During checkout when the user reaches the payment section, you should [create payment sessions](/api/store/#tag/Cart/operation/PostCartsCartPaymentSessions). This will initialize the `payment_sessions` array in the `cart` object received. The `payment_sessions` is an array of available payment processors.\n2. If Stripe is available as a payment processor, you should select Stripe as [the payment session](/api/store/#tag/Cart/operation/PostCartsCartPaymentSession) for the current cart. This will initialize the `payment_session` object in the `cart` object to include data related to Stripe and the current payment session. This includes the payment intent and client secret.\n3. After the user enters their card details and submits the form, confirm the payment with Stripe.\n4. If the payment is confirmed successfully, [complete the order](/api/store/#tag/Cart/operation/PostCartsCartComplete) in Medusa. Otherwise show an error.\n\n#### Install Dependencies\n\nBefore you start the implementations you need to install the necessary dependencies. You’ll be using Stripe’s React libraries to show the UI and handle the payment confirmation:\n\n```bash npm2yarn\nnpm install --save @stripe/react-stripe-js @stripe/stripe-js\n```\n\nYou’ll also use Medusa’s JS Client to easily call Medusa’s REST APIs:\n\n```bash npm2yarn\nnpm install @medusajs/medusa-js\n```\n\n#### Initialize Stripe\n\nIn this section, you’ll initialize Stripe without Medusa’s checkout workflow. Please note that this is one approach to add Stripe into your React project. You can check out [Stripe’s React documentation](https://stripe.com/docs/stripe-js/react) for other methods or components.\n\nCreate a container component that will hold the payment card component:\n\n```jsx\nimport { useState } from \"react\"\n\nimport { Elements } from \"@stripe/react-stripe-js\"\nimport Form from \"./Form\"\nimport { loadStripe } from \"@stripe/stripe-js\"\n\nconst stripePromise = loadStripe(\"pk_...\")\n\nexport default function Container() {\n  const [clientSecret, setClientSecret] = useState()\n\n  // TODO set clientSecret\n\n  return (\n    <div>\n      {clientSecret && (\n        <Elements stripe={stripePromise} options={{\n          clientSecret,\n        }}>\n        <Form clientSecret={clientSecret} cartId={cartId} />\n      </Elements>\n      )}\n    </div>\n  )\n};\n```\n\nIn this component, you need to use Stripe’s `loadStripe` function outside of the component’s implementation to ensure that Stripe doesn’t re-load with every change. The function accepts the Publishable Key.\n\n:::note\n\nYou’ll probably store this Publishable Key in an environment variable depending on your framework. It’s hard-coded here for simplicity.\n\n:::\n\nThen, inside the component’s implementation, you add a state variable `clientSecret` which you’ll retrieve in the next section. \n\nOnce the clientSecret is set, the `Elements` Stripe component will wrap a `Form` component you’ll create next. This is necessary because the `Elements` component allows child elements to get access to the card’s inputs and their data using Stripe’s `useElements` hook.\n\nCreate a new file for the `Form` component with the following content:\n\n```jsx\nimport { \n  CardElement,\n  useElements,\n  useStripe,\n} from \"@stripe/react-stripe-js\"\n\nexport default function Form({ clientSecret, cartId }) {\n  const stripe = useStripe()\n  const elements = useElements()\n\n  async function handlePayment(e) {\n    e.preventDefault()\n    // TODO handle payment\n  }\n\n  return (\n    <form>\n      <CardElement />\n      <button onClick={handlePayment}>Submit</button>\n  </form>\n  )\n};\n```\n\nThis component shows a CardElement component from Stripe’s React library. You can use `stripe` to be able to confirm the payment later. The `elements` variable will be used to retrieve the entered card details safely.\n\n#### Implement the Workflow\n\nYou’ll now implement the workflow explained earlier. You’ll use Medusa’s JS Client, so make sure to import it and initialize it in your `Container` component:\n\n```jsx\nimport Medusa from \"@medusajs/medusa-js\"\n\nexport default function Container() {\n  const client = new Medusa()\n  // ...\n}\n```\n\n:::note\n\nIn your storefront, you’ll probably be managing the Medusa client through a context for better performance.\n\n:::\n\nThen, in the place of the `//TODO` inside the `Container` element, initialize the payment sessions and create a payment session if Stripe is available:\n\n```tsx\nclient.carts.createPaymentSessions(cart.id)\n  .then(({ cart }) => {\n    // check if stripe is selected\n    const isStripeAvailable = cart.payment_sessions?.some(\n      (session) => (\n        session.processor_id === \"stripe\"\n      )\n    )\n    if (!isStripeAvailable) {\n      return\n    }\n\n    // select stripe payment session\n    client.carts.setPaymentSession(cart.id, {\n      processor_id: \"stripe\",\n    }).then(({ cart }) => {\n      setClientSecret(cart.payment_session.data.client_secret)\n    })\n  })\n```\n\n:::note\n\nNotice that here it’s assumed you have access to the `cart` object throughout your storefront. Ideally, the `cart` should be managed through a context. So, every time the cart is updated, for example, when the `createPaymentSessions` or `setPaymentSession` are called, the cart should be updated in the context to be accessed from other elements. In this case, you probably wouldn’t need a `clientSecret` state variable as you can use the client secret directly from the `cart` object.\n\n:::\n\nOnce the client secret is set, the form will be shown to the user.\n\nThe last step in the workflow is confirming the payment with Stripe and if it’s done successfully, completing the user’s order. This part is done in the `Form` component.\n\nAs you’ll use Medusa’s client again make sure to import it and initialize it:\n\n```jsx\nimport Medusa from \"@medusajs/medusa-js\"\n\nexport default function Form() {\n  const client = new Medusa()\n  // ...\n}\n```\n\nThen, replace the `//TODO` in the `handlePayment` function with the following content:\n\n```jsx\nreturn stripe.confirmCardPayment(clientSecret, {\n  payment_method: {\n    card: elements.getElement(CardElement),\n    billing_details: {\n      name,\n      email,\n      phone,\n      address: {\n        city,\n        country,\n        line1,\n        line2,\n        postal_code,\n      },\n    },\n  },\n}).then(({ error, paymentIntent }) => {\n  // TODO handle errors\n  client.carts.complete(cartId).then(\n    (resp) => console.log(resp)\n  )\n})\n```\n\nYou use the `confirmCardPayment` method in the `stripe` object. You’ll need to pass it the client secret, which you can have access to from the cart object if it’s available through the context.\n\nThis method also requires the customer’s information like `name`, `email`, and their address. Make sure to place the values for each based on your implementation.\n\nOnce the promise resolves you can handle the errors, if there are any. If not, you can complete the customer’s order using `complete` from Medusa’s client. This request expects the cart ID which you should have access to as well.\n\nIf you run your backend and storefront now, you’ll see the Stripe UI element and you’ll be able to make orders.\n\n![Stripe Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001190/Medusa%20Docs/Stripe/NOi8THw_xv3zsx.png)\n\n---\n\n## Capture Payments\n\nAfter the customer places an order, you’ll be able to see the order on the admin panel. In the payment information under the “Payment” section, you should see a “Capture” button.\n\n![Capture Payment](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001205/Medusa%20Docs/Stripe/Iz55PVZ_p6hiz6.png)\n\nClicking this button allows you to capture the payment for an order. You can also refund payments if an order has captured payments.\n\nRefunding or Capturing payments is reflected in your Stripe’s dashboard as well. This gives you access to all of Stripe’s analytical capabilities.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","docs/content/plugins/search/algolia.md":"---\ndescription: 'Learn how to integrate Algolia with the Medusa backend. Learn how to install the Algolia plugin into the Medusa backend and how to integrate it into a storefront.'\naddHowToData: true\n---\n\n# Algolia\n\nIn this document, you’ll learn how to install the [Algolia plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-algolia) and use it on both your Medusa backend and your storefront.\n\n---\n\n## Overview\n\n[Algolia](https://www.algolia.com/) is a search engine service that allows developers to integrate advanced search functionalities into their websites including typo tolerance, recommended results, and quick responses.\n\nAlgolia can be used for a wide range of use cases, including ecommerce websites. By integrating Algolia into your ecommerce website, you can provide your customers with a better user experience and help them find what they’re looking for swifltly.\n\nThrough Medusa's flexible plugin system, it is possible to add a search engine to your Medusa backend and storefront using Algolia with just a few steps.\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is required to have a Medusa backend installed before starting with this documentation. If not, please follow along with the [quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n### Algolia Account\n\nYou need to [create an Algolia account](https://www.algolia.com/users/sign_up) before you follow this documentation. Algolia offers a free plan to get started quickly.\n\n---\n\n## Create an Algolia App\n\nThe first step is to create an Algolia app for your Medusa backend. To create one, open the [Applications page](https://www.algolia.com/account/applications) or, on your dashboard, go to Settings then choose Applications.\n\nOn the Applications page, click on the New application button at the top right.\n\n![Click on New application button at the top right](https://res.cloudinary.com/dza7lstvk/image/upload/v1667999820/Medusa%20Docs/Algolia/WxckgS2_eygl8l.png)\n\nIn the new page that opens, optionally enter a name for the application and choose a subscription plan. You can choose the Free plan for now, but it’s recommended to switch to the Pay-as-you-go plan as your business grows.\n\n![Optionally enter a name for the application and choose a subscription plan](https://res.cloudinary.com/dza7lstvk/image/upload/v1667999980/Medusa%20Docs/Algolia/jpM2EBU_fui1lg.png)\n\nOnce you’re done, click on the Next Step button. If you picked Pay as you go service, you’ll need to enter billing details before you proceed.\n\nThen, you’ll be asked to pick a region for your application. Once you’re done, click on Review Application Details.\n\n![Select a region then click on Review Application Details at the bottom right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000005/Medusa%20Docs/Algolia/fahf2J2_qgm7sa.png)\n\nIn the last step, you’ll see a summary of your order. If all looks good, check the checkboxes at the end of the form to indicate that you agree to the terms and conditions. Then, click on the Create Application button.\n\n![Summary of your application's order with the terms and agreement checkboxes checked](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000019/Medusa%20Docs/Algolia/PTI2Swq_a1qbi5.png)\n\n---\n\n## Retrieve API Keys\n\nTo retrieve the API keys that you’ll use in the next sections, go to Settings, then choose API Keys in the Team and Access section.\n\n![Click on API Keys in the Team and Access section of your settings](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000028/Medusa%20Docs/Algolia/gnORibC_msuur5.png)\n\nOn this page, you’ll find the Application ID, Search-Only API Key, and Admin API Key. You’ll need the Application ID and Admin API Key for the Medusa backend. As for the storefront, you’ll need the Application ID and Search-Only API Key.\n\n:::note\n\nIf you have more than one application in your Algolia account, make sure you’re viewing the keys of the correct application by checking the Application dropdown at the top left.\n\n:::\n\n![Application ID, Search-Only API Key, and Admin API Key can be found in the API Keys page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000037/Medusa%20Docs/Algolia/i50Irki_jmtyk6.png)\n\n---\n\n## Install the Algolia Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Algolia plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-algolia\n```\n\nThen, add the following environment variables to your Medusa backend:\n\n```bash\nALGOLIA_APP_ID=<YOUR_APP_ID>\nALGOLIA_ADMIN_API_KEY=<YOUR_ADMIN_API_KEY>\n```\n\nWhere `<YOUR_APP_ID>` and `<YOUR_ADMIN_API_KEY>` are respectively the Application ID and Admin API Key found on the [API Keys page](#retrieve-api-keys).\n\nFinally, in `medusa-config.js` add the following item into the `plugins` array:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      applicationId: process.env.ALGOLIA_APP_ID,\n      adminApiKey: process.env.ALGOLIA_ADMIN_API_KEY,\n      settings: {\n        // index settings...\n      },\n    },\n  },\n]\n```\n\n### Index Settings\n\nUnder the `settings` key of the plugin's options, you can add settings specific to each index. The settings are of the following format:\n\n```js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      // other options...\n    settings: {\n      indexName: {\n        indexSettings: {\n          searchableAttributes,\n          attributesToRetrieve,\n        },\n        transformer,\n      },\n    },\n    },\n  },\n]\n```\n\nWhere:\n\n- `indexName`: the name of the index to create in Algolia. For example, `products`. Its value is an object containing the following properties:\n  - `indexSettings`: an object that includes the following properties:\n    - `searchableAttributes`: an array of strings indicating the attributes in the product entity that can be searched.\n    - `attributesToRetrieve`: an array of strings indicating the attributes in the product entity that should be retrieved in the search results.\n  - `transformer`: an optional function that accepts a product as a parameter and returns an object to be indexed. This allows you to have more control over what you're indexing. For example, you can add details related to variants or custom relations, or you can filter out certain products.\n\nUsing this index settings structure, you can add more than one index.\n\n:::tip\n\nThese settings are just examples of what you can pass to the Algolia provider. If you need to pass more settings to the Algolia SDK you can pass it inside `indexSettings`.\n\n:::\n\nHere's an example of the settings you can use:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      // other options...\n      settings: {\n        products: {\n          indexSettings: {\n            searchableAttributes: [\"title\", \"description\"],\n            attributesToRetrieve: [\n              \"id\",\n              \"title\",\n              \"description\",\n              \"handle\",\n              \"thumbnail\",\n              \"variants\",\n              \"variant_sku\",\n              \"options\",\n              \"collection_title\",\n              \"collection_handle\",\n              \"images\",\n            ],\n          },\n          transform: (product) => ({ \n            id: product.id, \n            // other attributes...\n          }),\n        },\n      },\n    },\n  },\n]\n```\n\n---\n\n## Test the Algolia Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThe quickest way to test that the integration is working is by sending a `POST` request to `/store/products/search`. This endpoint accepts a `q` body parameter of the query to search for and returns in the result the products that match this query.\n\n![Postman request send to the search endpoint that retrieves products using Algolia](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000054/Medusa%20Docs/Algolia/IHeTsi7_ymhb2p.png)\n\nYou can also check that the products are properly indexed by opening your Algolia dashboard and choosing Search from the left sidebar. You’ll find your products that are on your Medusa backend added there.\n\n:::note\n\nIf you have more than one application on your Algolia account, make sure you’re viewing the keys of the correct one by checking the Application dropdown at the top left.\n\n:::\n\n![Products from the Medusa backend can be seen on the Algolia dashboard](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000071/Medusa%20Docs/Algolia/wkXzUH0_dowyxj.png)\n\n### Add or Update Products\n\nIf you add or update products on your Medusa backend, the addition or update will be reflected in the Algolia indices.\n\n:::note\n\nThis feature is only available if you have an event module installed in your Medusa backend, as explained in the Prerequisites section.\n\n:::\n\n---\n\n## Add Search to your Storefront\n\nIn this section, you’ll learn how to add the UI on your storefront to allow searching with Algolia. This section has instructions for Medusa’s [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront as well as React-based frameworks.\n\n### Storefront Prerequisites\n\nIt is assumed you already have a storefront set up and working with the Medusa backend, as this section only covers how to add the search UI.\n\n:::tip\n\nIf you don’t have a storefront set up, you can use the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx) that Medusa provides.\n\n:::\n\n### Add to Next.js Storefront\n\nThe Next.js storefront has the Algolia integration available out of the box. To get it working, you just need to follow three steps.\n\nFirst, ensure that the search feature is enabled in `store.config.json`:\n\n```json title=store.config.json\n{\n  \"features\": {\n    \"search\": true\n  }\n}\n```\n\nThen, add the necessary environment variables:\n\n```bash\nNEXT_PUBLIC_SEARCH_APP_ID=<YOUR_APP_ID>\nNEXT_PUBLIC_SEARCH_API_KEY=<YOUR_SEARCH_API_KEY>\nNEXT_PUBLIC_SEARCH_INDEX_NAME=products\n```\n\nWhere `<YOUR_APP_ID>` and `<YOUR_SEARCH_API_KEY>` are respectively the Application ID and Search-Only API Key on the [API Keys page](#retrieve-api-keys).\n\nFinally, change the code in `src/lib/search-client.ts` to the following:\n\n```jsx title=src/lib/search-client.ts\nimport algoliasearch from \"algoliasearch/lite\"\n\nconst appId = process.env.NEXT_PUBLIC_SEARCH_APP_ID || \"\"\n\nconst apiKey = \n  process.env.NEXT_PUBLIC_SEARCH_API_KEY || \"test_key\"\n\nexport const searchClient = algoliasearch(appId, apiKey)\n\nexport const SEARCH_INDEX_NAME =\n  process.env.NEXT_PUBLIC_INDEX_NAME || \"products\"\n```\n\nIf you run your Next.js storefront now while the Medusa backend is running, the search functionality will be available in your storefront.\n\n:::note\n\nTo make sure the Next.js storefront properly displays the products in the search result, include in the `attributesToRetrieve` setting of the Algolia plugin on the Medusa backend at least the fields `title`, `handle`, `description`, and `thumbnail`.\n\n:::\n\n![Search pop up in the Next.js storefront](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000082/Medusa%20Docs/Algolia/1f9qqK6_c0z8zi.png)\n\n### Add to Other Storefronts\n\nTo integrate Algolia's search functionalities in your storefront, please refer to [Algolia's InstantSearch.js documentation](https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/). You'll find packages for different frontend frameworks and how you can use them.\n\n---\n\n## See Also\n\n- [Deploy your Medusa backend](../../deployments/server/index.mdx)\n- [Deploy your storefront](../../deployments/storefront/index.mdx)\n","docs/content/plugins/search/meilisearch.md":"---\ndescription: 'Learn how to integrate MeiliSearch with the Medusa backend. Learn how to install the MeiliSearch plugin on the Medusa backend and integrate it into the storefront.'\naddHowToData: true\n---\n\n# MeiliSearch\n\nIn this document, you’ll learn how to install the [MeiliSearch plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-meilisearch) and use it on both your Medusa Backend and your storefront.\n\n## Overview\n\n[MeiliSearch](https://www.meilisearch.com/) is a super-fast, open source search engine built in Rust. It comes with a wide range of features including typo-tolerance, filtering, and sorting.\n\nMeiliSearch also provides a pleasant developer experience, as it is extremely intuitive and newcomer-friendly. So, even if you're new to the search engine ecosystem, [their documentation](https://docs.meilisearch.com/) is resourceful enough for everyone to go through and understand.\n\nThrough Medusa's flexible plugin system, it is possible to add a search engine to your Medusa backend and storefront using MeiliSearch with just a few steps.\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is required to have a Medusa backend installed before starting with this documentation. If not, please follow along with the [quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n### MeiliSearch Instance\n\nYou must install MeiliSearch to use it with Medusa. You can follow [this documentation to install MeiliSearch](https://docs.meilisearch.com/learn/getting_started/quick_start.html#setup-and-installation) either locally or on a cloud.\n\nFurthermore, you should create a master key for your MeiliSearch instance. If you don’t have one created, follow [this guide](https://docs.meilisearch.com/learn/security/master_api_keys.html#protecting-a-meilisearch-instance) to create a master key.\n\n---\n\n## Install the MeiliSearch Plugin\n\nIn the directory of your Medusa backend, run the following command to install the MeiliSearch plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-meilisearch\n```\n\nThen, add the following environment variables to your Medusa backend:\n\n```bash\nMEILISEARCH_HOST=<YOUR_MEILISEARCH_HOST>\nMEILISEARCH_API_KEY=<YOUR_MASTER_KEY>\n```\n\nWhere `<YOUR_MEILISEARCH_HOST>` is the host of your MeiliSearch instance. By default, if MeiliSearch is installed locally, the host is `http://127.0.0.1:7700`.\n\n`<YOUR_MASTER_KEY>` is the master key of your MeiliSearch instance.\n\nFinally, in `medusa-config.js` add the following item into the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // config object passed when creating an instance\n      // of the MeiliSearch client\n      config: {\n        host: process.env.MEILISEARCH_HOST,\n        apiKey: process.env.MEILISEARCH_API_KEY,\n      },\n      settings: {\n        // index settings...\n      },\n    },\n  },\n]\n```\n\n### Index Settings\n\nUnder the `settings` key of the plugin's options, you can add settings specific to each index. The settings are of the following format:\n\n```js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // other options...\n    settings: {\n      indexName: {\n        indexSettings: {\n          searchableAttributes,\n          displayedAttributes,\n        },\n        primaryKey,\n        transformer,\n      },\n    },\n    },\n  },\n]\n```\n\nWhere:\n\n- `indexName`: the name of the index to create in MeiliSearch. For example, `products`. Its value is an object containing the following properties:\n  - `indexSettings`: an object that includes the following properties:\n    - `searchableAttributes`: an array of strings indicating the attributes in the product entity that can be searched.\n    - `displayedAttributes`: an array of strings indicating the attributes in the product entity that should be displayed in the search results.\n  - `primaryKey`: an optional string indicating which property acts as a primary key of a document. It's used to enforce unique documents in an index. The default value is `id`. You can learn more in [MeiliSearch's documentation](https://docs.meilisearch.com/learn/core_concepts/primary_key.html#primary-field).\n  - `transformer`: an optional function that accepts a product as a parameter and returns an object to be indexed. This allows you to have more control over what you're indexing. For example, you can add details related to variants or custom relations, or you can filter out certain products.\n\nUsing this index settings structure, you can add more than one index.\n\n:::tip\n\nThese settings are just examples of what you can pass to the MeiliSearch provider. If you need to pass more settings to the MeiliSearch SDK you can pass it inside `indexSettings`.\n\n:::\n\nHere's an example of the settings you can use:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // other options...\n      settings: {\n        products: {\n          indexSettings: {\n            searchableAttributes: [\n              \"title\", \n              \"description\",\n              \"variant_sku\",\n            ],\n            displayedAttributes: [\n              \"title\", \n              \"description\", \n              \"variant_sku\", \n              \"thumbnail\", \n              \"handle\",\n            ],\n          },\n          primaryKey: \"id\",\n          transform: (product) => ({ \n            id: product.id, \n            // other attributes...\n          }),\n        },\n      },\n    },\n  },\n]\n```\n\n---\n\n## Test MeiliSearch Plugin\n\nMake sure your MeiliSearch instance is running. If you’re unsure how to run it, you can check the [installation documentation](https://docs.meilisearch.com/learn/getting_started/quick_start.html#setup-and-installation) for the command to run the MeiliSearch instance.\n\nThen, run the Medusa backend:\n\n```bash npm2yarn\nnpm run start\n```\n\nThe quickest way to test that the integration is working is by sending a `POST` request to `/store/products/search`. This endpoint accepts a `q` body parameter of the query to search for and returns in the result the products that match this query.\n\n![Postman request to search endpoint that shows results returned from the search engine](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000265/Medusa%20Docs/MeiliSearch/RCGquxU_um3dvn.png)\n\nYou can also check that the products are properly indexed by opening the MeiliSearch host URL in your browser, which is `http://127.0.0.1:7700/` by default. You’ll find your products that are on your Medusa backend added there.\n\n![MeiliSearch dashboard showing products from the Medusa backend indexed](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000277/Medusa%20Docs/MeiliSearch/5sk3jyP_i3swkn.png)\n\n### Add or Update Products\n\nIf you add or update products on your Medusa backend, the addition or update will be reflected in the MeiliSearch indices.\n\n:::note\n\nThis feature is only available if you have an event module installed in your Medusa backend, as explained in the Prerequisites section.\n\n:::\n\n---\n\n## Add Search to your Storefront\n\nIn this section, you’ll learn how to add the UI on your storefront to allow searching with MeiliSearch. This section has instructions for Medusa’s [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront as well as React-based frameworks.\n\n### Storefront Prerequisites\n\nIt is assumed you already have a storefront set up and working with the Medusa backend, as this section only covers how to add the search UI.\n\n:::tip\n\nIf you don’t have a storefront set up, you can use the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx) that Medusa provides.\n\n:::\n\nFurthermore, you must create an API key in your MeiliSearch instance that will be used to search on the storefront. To do that, run the following command in your terminal while the MeiliSearch instance is running:\n\n```bash\ncurl \\\n  -X POST '<MEILISEARCH_HOST>/keys' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer <MEILISEARCH_MASTER_KEY>' \\\n  --data-binary '{\n    \"description\": \"Search products\",\n    \"actions\": [\"search\"],\n    \"indexes\": [\"products\"],\n    \"expiresAt\": \"2024-01-01T00:00:00Z\"\n  }'\n```\n\nMake sure to replace `<MEILISEARCH_HOST>` and `<MEILISEARCH_MASTER_KEY>` accordingly.\n\nIf this request is successful, the API key will be available under the `key` property returned in the JSON response.\n\n### Add to Next.js Storefront\n\nThe Next.js storefront has the MeiliSearch integration available out of the box. To get it working, you just need to follow two steps.\n\nFirst, ensure that the search feature is enabled in `store.config.json`:\n\n```json title=store.config.json\n{\n  \"features\": {\n    \"search\": true\n  }\n}\n```\n\nThen, add the necessary environment variables:\n\n```bash\nNEXT_PUBLIC_SEARCH_ENDPOINT=<YOUR_MEILISEARCH_HOST>\nNEXT_PUBLIC_SEARCH_API_KEY=<YOUR_API_KEY>\nNEXT_PUBLIC_SEARCH_INDEX_NAME=products\n```\n\nMake sure to replace `<YOUR_MEILISEARCH_HOST>` with your MeiliSearch host and `<YOUR_API_KEY>` with the API key you created as instructed in the [Storefront Prerequisites](#storefront-prerequisites) section.\n\nIf you run your Next.js storefront now while the Medusa backend and the MeiliSearch services are running, the search functionality will be available in your storefront.\n\n:::note\n\nTo make sure the Next.js storefront properly displays the products in the search result, include in the `displayedAttributes` setting of the MeiliSearch plugin on the Medusa backend at least the fields `title`, `handle`, `description`, and `thumbnail`.\n\n:::\n\n![Search Result on Next.js storefront](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000298/Medusa%20Docs/MeiliSearch/gQVWvH2_datei5.png)\n\n### Add to Other Storefronts\n\nTo integrate MeiliSearch's search functionalities in your storefront, please refer to [MeiliSearch's documentation](https://docs.meilisearch.com/learn/what_is_meilisearch/sdks.html#front-end-tools). They offer different tools that you can use based on the frontend framework of your storefront.\n\n---\n\n## See Also\n\n- [Deploy your Medusa backend](../../deployments/server/index.mdx).\n- [Deploy your storefront](../../deployments/storefront/index.mdx).\n","docs/content/references/entities/classes/Address.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Address\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Address`**\n\n## Constructors\n\n### constructor\n\n• **new Address**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### address\\_1\n\n• **address\\_1**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L36)\n\n___\n\n### address\\_2\n\n• **address\\_2**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L39)\n\n___\n\n### city\n\n• **city**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L42)\n\n___\n\n### company\n\n• **company**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L27)\n\n___\n\n### country\n\n• **country**: ``null`` \\| [`Country`](Country.md)\n\n#### Defined in\n\n[models/address.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L49)\n\n___\n\n### country\\_code\n\n• **country\\_code**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L45)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\n\n• **customer**: ``null`` \\| [`Customer`](Customer.md)\n\n#### Defined in\n\n[models/address.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L24)\n\n___\n\n### customer\\_id\n\n• **customer\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L20)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### first\\_name\n\n• **first\\_name**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L30)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### last\\_name\n\n• **last\\_name**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L33)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/address.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L61)\n\n___\n\n### phone\n\n• **phone**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:58](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L58)\n\n___\n\n### postal\\_code\n\n• **postal\\_code**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:55](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L55)\n\n___\n\n### province\n\n• **province**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L52)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/address.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L63)\n","docs/content/references/entities/classes/AnalyticsConfig.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: AnalyticsConfig\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`AnalyticsConfig`**\n\n## Constructors\n\n### constructor\n\n• **new AnalyticsConfig**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### anonymize\n\n• **anonymize**: `boolean`\n\n#### Defined in\n\n[models/analytics-config.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L17)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### opt\\_out\n\n• **opt\\_out**: `boolean`\n\n#### Defined in\n\n[models/analytics-config.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L14)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### user\\_id\n\n• **user\\_id**: `string`\n\n#### Defined in\n\n[models/analytics-config.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L11)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/analytics-config.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L19)\n","docs/content/references/entities/classes/BatchJob.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: BatchJob\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`BatchJob`**\n\n## Constructors\n\n### constructor\n\n• **new BatchJob**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• `Optional` **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:62](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L62)\n\n___\n\n### completed\\_at\n\n• `Optional` **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:59](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L59)\n\n___\n\n### confirmed\\_at\n\n• `Optional` **confirmed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L56)\n\n___\n\n### context\n\n• **context**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/batch-job.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L33)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### created\\_by\n\n• **created\\_by**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/batch-job.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L26)\n\n___\n\n### created\\_by\\_user\n\n• **created\\_by\\_user**: [`User`](User.md)\n\n#### Defined in\n\n[models/batch-job.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L30)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### dry\\_run\n\n• **dry\\_run**: `boolean` = `false`\n\n#### Defined in\n\n[models/batch-job.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L47)\n\n___\n\n### failed\\_at\n\n• `Optional` **failed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:65](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L65)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### pre\\_processed\\_at\n\n• `Optional` **pre\\_processed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L50)\n\n___\n\n### processing\\_at\n\n• `Optional` **processing\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L53)\n\n___\n\n### result\n\n• **result**: { `advancement_count?`: `number` ; `count?`: `number` ; `errors?`: `BatchJobResultError`[] ; `file_key?`: `string` ; `file_size?`: `number` ; `progress?`: `number` ; `stat_descriptors?`: `BatchJobResultStatDescriptor`[]  } & `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/batch-job.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L36)\n\n___\n\n### status\n\n• **status**: `BatchJobStatus`\n\n#### Defined in\n\n[models/batch-job.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L67)\n\n___\n\n### type\n\n• **type**: `string`\n\n#### Defined in\n\n[models/batch-job.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L23)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/batch-job.ts:94](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L94)\n\n___\n\n### loadStatus\n\n▸ **loadStatus**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/batch-job.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L69)\n\n___\n\n### toJSON\n\n▸ **toJSON**(): [`BatchJob`](BatchJob.md)\n\n#### Returns\n\n[`BatchJob`](BatchJob.md)\n\n#### Defined in\n\n[models/batch-job.ts:99](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L99)\n","docs/content/references/entities/classes/Cart.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Cart\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Cart`**\n\n## Constructors\n\n### constructor\n\n• **new Cart**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### billing\\_address\n\n• **billing\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/cart.ts:226](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L226)\n\n___\n\n### billing\\_address\\_id\n\n• **billing\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:220](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L220)\n\n___\n\n### completed\\_at\n\n• **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/cart.ts:311](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L311)\n\n___\n\n### context\n\n• **context**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/cart.ts:320](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L320)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\n\n• **customer**: [`Customer`](Customer.md)\n\n#### Defined in\n\n[models/cart.ts:285](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L285)\n\n___\n\n### customer\\_id\n\n• **customer\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:281](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L281)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### discount\\_total\n\n• `Optional` **discount\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:335](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L335)\n\n___\n\n### discounts\n\n• **discounts**: [`Discount`](Discount.md)[]\n\n#### Defined in\n\n[models/cart.ts:263](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L263)\n\n___\n\n### email\n\n• **email**: `string`\n\n#### Defined in\n\n[models/cart.ts:216](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L216)\n\n___\n\n### gift\\_card\\_tax\\_total\n\n• `Optional` **gift\\_card\\_tax\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:344](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L344)\n\n___\n\n### gift\\_card\\_total\n\n• `Optional` **gift\\_card\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:343](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L343)\n\n___\n\n### gift\\_cards\n\n• **gift\\_cards**: [`GiftCard`](GiftCard.md)[]\n\n#### Defined in\n\n[models/cart.ts:277](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L277)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/cart.ts:317](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L317)\n\n___\n\n### item\\_tax\\_total\n\n• `Optional` **item\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:336](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L336)\n\n___\n\n### items\n\n• **items**: [`LineItem`](LineItem.md)[]\n\n#### Defined in\n\n[models/cart.ts:241](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L241)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/cart.ts:323](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L323)\n\n___\n\n### object\n\n• `Readonly` **object**: ``\"cart\"``\n\n#### Defined in\n\n[models/cart.ts:213](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L213)\n\n___\n\n### payment\n\n• **payment**: [`Payment`](Payment.md)\n\n#### Defined in\n\n[models/cart.ts:300](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L300)\n\n___\n\n### payment\\_authorized\\_at\n\n• **payment\\_authorized\\_at**: `Date`\n\n#### Defined in\n\n[models/cart.ts:314](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L314)\n\n___\n\n### payment\\_id\n\n• **payment\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:296](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L296)\n\n___\n\n### payment\\_session\n\n• **payment\\_session**: ``null`` \\| [`PaymentSession`](PaymentSession.md)\n\n#### Defined in\n\n[models/cart.ts:287](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L287)\n\n___\n\n### payment\\_sessions\n\n• **payment\\_sessions**: [`PaymentSession`](PaymentSession.md)[]\n\n#### Defined in\n\n[models/cart.ts:292](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L292)\n\n___\n\n### refundable\\_amount\n\n• `Optional` **refundable\\_amount**: `number`\n\n#### Defined in\n\n[models/cart.ts:342](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L342)\n\n___\n\n### refunded\\_total\n\n• `Optional` **refunded\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:339](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L339)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/cart.ts:249](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L249)\n\n___\n\n### region\\_id\n\n• **region\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:245](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L245)\n\n___\n\n### sales\\_channel\n\n• **sales\\_channel**: [`SalesChannel`](SalesChannel.md)\n\n#### Defined in\n\n[models/cart.ts:332](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L332)\n\n___\n\n### sales\\_channel\\_id\n\n• **sales\\_channel\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/cart.ts:326](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L326)\n\n___\n\n### shipping\\_address\n\n• **shipping\\_address**: ``null`` \\| [`Address`](Address.md)\n\n#### Defined in\n\n[models/cart.ts:236](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L236)\n\n___\n\n### shipping\\_address\\_id\n\n• **shipping\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:230](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L230)\n\n___\n\n### shipping\\_methods\n\n• **shipping\\_methods**: [`ShippingMethod`](ShippingMethod.md)[]\n\n#### Defined in\n\n[models/cart.ts:305](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L305)\n\n___\n\n### shipping\\_tax\\_total\n\n• `Optional` **shipping\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:337](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L337)\n\n___\n\n### shipping\\_total\n\n• `Optional` **shipping\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:334](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L334)\n\n___\n\n### subtotal\n\n• `Optional` **subtotal**: `number`\n\n#### Defined in\n\n[models/cart.ts:341](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L341)\n\n___\n\n### tax\\_total\n\n• `Optional` **tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:338](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L338)\n\n___\n\n### total\n\n• `Optional` **total**: `number`\n\n#### Defined in\n\n[models/cart.ts:340](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L340)\n\n___\n\n### type\n\n• **type**: [`CartType`](../enums/CartType.md)\n\n#### Defined in\n\n[models/cart.ts:308](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L308)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### afterLoad\n\n▸ `Private` **afterLoad**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/cart.ts:346](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L346)\n\n___\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/cart.ts:353](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L353)\n","docs/content/references/entities/classes/ClaimImage.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimImage\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimImage`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimImage**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### claim\\_item\n\n• **claim\\_item**: [`ClaimItem`](ClaimItem.md)\n\n#### Defined in\n\n[models/claim-image.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L23)\n\n___\n\n### claim\\_item\\_id\n\n• **claim\\_item\\_id**: `string`\n\n#### Defined in\n\n[models/claim-image.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L19)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-image.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L29)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### url\n\n• **url**: `string`\n\n#### Defined in\n\n[models/claim-image.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L26)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-image.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L31)\n","docs/content/references/entities/classes/ClaimItem.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimItem\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimItem`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimItem**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/claim-item.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L42)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L38)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### images\n\n• **images**: [`ClaimImage`](ClaimImage.md)[]\n\n#### Defined in\n\n[models/claim-item.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L34)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/claim-item.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L50)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L46)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-item.ts:84](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L84)\n\n___\n\n### note\n\n• **note**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:64](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L64)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/claim-item.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L67)\n\n___\n\n### reason\n\n• **reason**: [`ClaimReason`](../enums/ClaimReason.md)\n\n#### Defined in\n\n[models/claim-item.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L61)\n\n___\n\n### tags\n\n• **tags**: [`ClaimTag`](ClaimTag.md)[]\n\n#### Defined in\n\n[models/claim-item.ts:81](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L81)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### variant\n\n• **variant**: [`ProductVariant`](ProductVariant.md)\n\n#### Defined in\n\n[models/claim-item.ts:58](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L58)\n\n___\n\n### variant\\_id\n\n• **variant\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L54)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-item.ts:86](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L86)\n","docs/content/references/entities/classes/ClaimOrder.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimOrder\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimOrder`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimOrder**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### additional\\_items\n\n• **additional\\_items**: [`LineItem`](LineItem.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L69)\n\n___\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/claim-order.ts:107](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L107)\n\n___\n\n### claim\\_items\n\n• **claim\\_items**: [`ClaimItem`](ClaimItem.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:66](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L66)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[models/claim-order.ts:110](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L110)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[models/claim-order.ts:116](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L116)\n\n___\n\n### fulfillment\\_status\n\n• **fulfillment\\_status**: [`ClaimFulfillmentStatus`](../enums/ClaimFulfillmentStatus.md)\n\n#### Defined in\n\n[models/claim-order.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L63)\n\n___\n\n### fulfillments\n\n• **fulfillments**: [`Fulfillment`](Fulfillment.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:101](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L101)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:125](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L125)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-order.ts:122](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L122)\n\n___\n\n### no\\_notification\n\n• **no\\_notification**: `boolean`\n\n#### Defined in\n\n[models/claim-order.ts:119](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L119)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/claim-order.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L80)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:76](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L76)\n\n___\n\n### payment\\_status\n\n• **payment\\_status**: [`ClaimPaymentStatus`](../enums/ClaimPaymentStatus.md)\n\n#### Defined in\n\n[models/claim-order.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L56)\n\n___\n\n### refund\\_amount\n\n• **refund\\_amount**: `number`\n\n#### Defined in\n\n[models/claim-order.ts:104](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L104)\n\n___\n\n### return\\_order\n\n• **return\\_order**: [`Return`](Return.md)\n\n#### Defined in\n\n[models/claim-order.ts:83](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L83)\n\n___\n\n### shipping\\_address\n\n• **shipping\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/claim-order.ts:91](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L91)\n\n___\n\n### shipping\\_address\\_id\n\n• **shipping\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:87](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L87)\n\n___\n\n### shipping\\_methods\n\n• **shipping\\_methods**: [`ShippingMethod`](ShippingMethod.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:96](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L96)\n\n___\n\n### type\n\n• **type**: [`ClaimType`](../enums/ClaimType.md)\n\n#### Defined in\n\n[models/claim-order.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L72)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[models/claim-order.ts:113](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L113)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-order.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L127)\n","docs/content/references/entities/classes/ClaimTag.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimTag\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimTag`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimTag**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-tag.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L14)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `string`\n\n#### Defined in\n\n[models/claim-tag.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L11)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-tag.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L16)\n","docs/content/references/entities/classes/Country.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Country\n\n## Constructors\n\n### constructor\n\n• **new Country**()\n\n## Properties\n\n### display\\_name\n\n• **display\\_name**: `string`\n\n#### Defined in\n\n[models/country.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L31)\n\n___\n\n### id\n\n• **id**: `number`\n\n#### Defined in\n\n[models/country.ts:15](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L15)\n\n___\n\n### iso\\_2\n\n• **iso\\_2**: `string`\n\n#### Defined in\n\n[models/country.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L19)\n\n___\n\n### iso\\_3\n\n• **iso\\_3**: `string`\n\n#### Defined in\n\n[models/country.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L22)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/country.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L28)\n\n___\n\n### num\\_code\n\n• **num\\_code**: `number`\n\n#### Defined in\n\n[models/country.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L25)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/country.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L39)\n\n___\n\n### region\\_id\n\n• **region\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/country.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L35)\n","docs/content/references/entities/classes/Currency.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Currency\n\n## Constructors\n\n### constructor\n\n• **new Currency**()\n\n## Properties\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/currency.ts:8](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L8)\n\n___\n\n### includes\\_tax\n\n• `Optional` **includes\\_tax**: `boolean`\n\n#### Defined in\n\n[models/currency.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L20)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/currency.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L17)\n\n___\n\n### symbol\n\n• **symbol**: `string`\n\n#### Defined in\n\n[models/currency.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L11)\n\n___\n\n### symbol\\_native\n\n• **symbol\\_native**: `string`\n\n#### Defined in\n\n[models/currency.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L14)\n","docs/content/references/entities/classes/CustomShippingOption.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: CustomShippingOption\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`CustomShippingOption`**\n\n## Constructors\n\n### constructor\n\n• **new CustomShippingOption**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/custom-shipping-option.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L37)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L33)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/custom-shipping-option.ts:40](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L40)\n\n___\n\n### price\n\n• **price**: `number`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:21](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L21)\n\n___\n\n### shipping\\_option\n\n• **shipping\\_option**: [`ShippingOption`](ShippingOption.md)\n\n#### Defined in\n\n[models/custom-shipping-option.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L29)\n\n___\n\n### shipping\\_option\\_id\n\n• **shipping\\_option\\_id**: `string`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L25)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L42)\n","docs/content/references/entities/classes/Customer.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Customer\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Customer`**\n\n## Constructors\n\n### constructor\n\n• **new Customer**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### billing\\_address\n\n• **billing\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/customer.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L38)\n\n___\n\n### billing\\_address\\_id\n\n• **billing\\_address\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/customer.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L34)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### email\n\n• **email**: `string`\n\n#### Defined in\n\n[models/customer.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L24)\n\n___\n\n### first\\_name\n\n• **first\\_name**: `string`\n\n#### Defined in\n\n[models/customer.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L27)\n\n___\n\n### groups\n\n• **groups**: [`CustomerGroup`](CustomerGroup.md)[]\n\n#### Defined in\n\n[models/customer.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L69)\n\n___\n\n### has\\_account\n\n• **has\\_account**: `boolean`\n\n#### Defined in\n\n[models/customer.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L50)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### last\\_name\n\n• **last\\_name**: `string`\n\n#### Defined in\n\n[models/customer.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L30)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/customer.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L72)\n\n___\n\n### orders\n\n• **orders**: [`Order`](Order.md)[]\n\n#### Defined in\n\n[models/customer.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L53)\n\n___\n\n### password\\_hash\n\n• **password\\_hash**: `string`\n\n#### Defined in\n\n[models/customer.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L44)\n\n___\n\n### phone\n\n• **phone**: `string`\n\n#### Defined in\n\n[models/customer.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L47)\n\n___\n\n### shipping\\_addresses\n\n• **shipping\\_addresses**: [`Address`](Address.md)[]\n\n#### Defined in\n\n[models/customer.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L41)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/customer.ts:74](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L74)\n","docs/content/references/entities/classes/CustomerGroup.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: CustomerGroup\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`CustomerGroup`**\n\n## Constructors\n\n### constructor\n\n• **new CustomerGroup**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customers\n\n• **customers**: [`Customer`](Customer.md)[]\n\n#### Defined in\n\n[models/customer-group.ts:18](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L18)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/customer-group.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L26)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/customer-group.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L13)\n\n___\n\n### price\\_lists\n\n• **price\\_lists**: [`PriceList`](PriceList.md)[]\n\n#### Defined in\n\n[models/customer-group.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L23)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/customer-group.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L28)\n","docs/content/references/entities/classes/Discount.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Discount\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Discount`**\n\n## Constructors\n\n### constructor\n\n• **new Discount**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/discount.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L22)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### ends\\_at\n\n• **ends\\_at**: ``null`` \\| `Date`\n\n#### Defined in\n\n[models/discount.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L52)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### is\\_disabled\n\n• **is\\_disabled**: `boolean`\n\n#### Defined in\n\n[models/discount.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L36)\n\n___\n\n### is\\_dynamic\n\n• **is\\_dynamic**: `boolean`\n\n#### Defined in\n\n[models/discount.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L25)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount.ts:78](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L78)\n\n___\n\n### parent\\_discount\n\n• **parent\\_discount**: [`Discount`](Discount.md)\n\n#### Defined in\n\n[models/discount.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L43)\n\n___\n\n### parent\\_discount\\_id\n\n• **parent\\_discount\\_id**: `string`\n\n#### Defined in\n\n[models/discount.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L39)\n\n___\n\n### regions\n\n• **regions**: [`Region`](Region.md)[]\n\n#### Defined in\n\n[models/discount.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L69)\n\n___\n\n### rule\n\n• **rule**: [`DiscountRule`](DiscountRule.md)\n\n#### Defined in\n\n[models/discount.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L33)\n\n___\n\n### rule\\_id\n\n• **rule\\_id**: `string`\n\n#### Defined in\n\n[models/discount.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L29)\n\n___\n\n### starts\\_at\n\n• **starts\\_at**: `Date`\n\n#### Defined in\n\n[models/discount.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L49)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### usage\\_count\n\n• **usage\\_count**: `number`\n\n#### Defined in\n\n[models/discount.ts:75](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L75)\n\n___\n\n### usage\\_limit\n\n• **usage\\_limit**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/discount.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L72)\n\n___\n\n### valid\\_duration\n\n• **valid\\_duration**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/discount.ts:55](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L55)\n\n## Methods\n\n### upperCaseCodeAndTrim\n\n▸ `Private` **upperCaseCodeAndTrim**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L80)\n","docs/content/references/entities/classes/DiscountCondition.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountCondition\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`DiscountCondition`**\n\n## Constructors\n\n### constructor\n\n• **new DiscountCondition**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\\_groups\n\n• **customer\\_groups**: [`CustomerGroup`](CustomerGroup.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L127)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### discount\\_rule\n\n• **discount\\_rule**: [`DiscountRule`](DiscountRule.md)\n\n#### Defined in\n\n[models/discount-condition.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L57)\n\n___\n\n### discount\\_rule\\_id\n\n• **discount\\_rule\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L53)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition.ts:130](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L130)\n\n___\n\n### operator\n\n• **operator**: [`DiscountConditionOperator`](../enums/DiscountConditionOperator.md)\n\n#### Defined in\n\n[models/discount-condition.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L49)\n\n___\n\n### product\\_collections\n\n• **product\\_collections**: [`ProductCollection`](ProductCollection.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:113](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L113)\n\n___\n\n### product\\_tags\n\n• **product\\_tags**: [`ProductTag`](ProductTag.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:99](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L99)\n\n___\n\n### product\\_types\n\n• **product\\_types**: [`ProductType`](ProductType.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L85)\n\n___\n\n### products\n\n• **products**: [`Product`](Product.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:71](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L71)\n\n___\n\n### type\n\n• **type**: [`DiscountConditionType`](../enums/DiscountConditionType.md)\n\n#### Defined in\n\n[models/discount-condition.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L43)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount-condition.ts:132](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L132)\n","docs/content/references/entities/classes/DiscountConditionCustomerGroup.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionCustomerGroup\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionCustomerGroup**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L31)\n\n___\n\n### customer\\_group\n\n• `Optional` **customer\\_group**: [`CustomerGroup`](CustomerGroup.md)\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L24)\n\n___\n\n### customer\\_group\\_id\n\n• **customer\\_group\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L17)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L37)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L34)\n","docs/content/references/entities/classes/DiscountConditionProduct.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProduct\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProduct**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L37)\n\n___\n\n### product\n\n• `Optional` **product**: [`Product`](Product.md)\n\n#### Defined in\n\n[models/discount-condition-product.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L24)\n\n___\n\n### product\\_id\n\n• **product\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L34)\n","docs/content/references/entities/classes/DiscountConditionProductCollection.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductCollection\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductCollection**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L37)\n\n___\n\n### product\\_collection\n\n• `Optional` **product\\_collection**: [`ProductCollection`](ProductCollection.md)\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L24)\n\n___\n\n### product\\_collection\\_id\n\n• **product\\_collection\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L34)\n","docs/content/references/entities/classes/DiscountConditionProductTag.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductTag\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductTag**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L37)\n\n___\n\n### product\\_tag\n\n• `Optional` **product\\_tag**: [`ProductTag`](ProductTag.md)\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L24)\n\n___\n\n### product\\_tag\\_id\n\n• **product\\_tag\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L34)\n","docs/content/references/entities/classes/DiscountConditionProductType.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductType\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductType**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L37)\n\n___\n\n### product\\_type\n\n• `Optional` **product\\_type**: [`ProductType`](ProductType.md)\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L24)\n\n___\n\n### product\\_type\\_id\n\n• **product\\_type\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L34)\n","docs/content/references/entities/classes/DiscountRule.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountRule\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`DiscountRule`**\n\n## Constructors\n\n### constructor\n\n• **new DiscountRule**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### allocation\n\n• **allocation**: [`AllocationType`](../enums/AllocationType.md)\n\n#### Defined in\n\n[models/discount-rule.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L38)\n\n___\n\n### conditions\n\n• **conditions**: [`DiscountCondition`](DiscountCondition.md)[]\n\n#### Defined in\n\n[models/discount-rule.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L41)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/discount-rule.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L22)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-rule.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L44)\n\n___\n\n### type\n\n• **type**: [`DiscountRuleType`](../enums/DiscountRuleType.md)\n\n#### Defined in\n\n[models/discount-rule.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L28)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `number`\n\n#### Defined in\n\n[models/discount-rule.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L31)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount-rule.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L46)\n","docs/content/references/entities/classes/DraftOrder.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DraftOrder\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`DraftOrder`**\n\n## Constructors\n\n### constructor\n\n• **new DraftOrder**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/draft-order.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L54)\n\n___\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/draft-order.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L43)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L39)\n\n___\n\n### completed\\_at\n\n• **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/draft-order.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L57)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### display\\_id\n\n• **display\\_id**: `number`\n\n#### Defined in\n\n[models/draft-order.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L35)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:66](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L66)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/draft-order.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L63)\n\n___\n\n### no\\_notification\\_order\n\n• **no\\_notification\\_order**: `boolean`\n\n#### Defined in\n\n[models/draft-order.ts:60](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L60)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/draft-order.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L51)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L47)\n\n___\n\n### status\n\n• **status**: [`DraftOrderStatus`](../enums/DraftOrderStatus.md)\n\n#### Defined in\n\n[models/draft-order.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L30)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `Promise`<`void`\\>\n\n#### Returns\n\n`Promise`<`void`\\>\n\n#### Defined in\n\n[models/draft-order.ts:68](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L68)\n","docs/content/references/entities/classes/Fulfillment.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Fulfillment\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`Fulfillment`**\n\n## Constructors\n\n### constructor\n\n• **new Fulfillment**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/fulfillment.ts:79](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L79)\n\n___\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/fulfillment.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L29)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L25)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### data\n\n• **data**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/fulfillment.ts:73](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L73)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L85)\n\n___\n\n### items\n\n• **items**: [`FulfillmentItem`](FulfillmentItem.md)[]\n\n#### Defined in\n\n[models/fulfillment.ts:62](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L62)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/fulfillment.ts:82](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L82)\n\n___\n\n### no\\_notification\n\n• **no\\_notification**: `boolean`\n\n#### Defined in\n\n[models/fulfillment.ts:48](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L48)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/fulfillment.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L45)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L41)\n\n___\n\n### provider\n\n• **provider**: [`FulfillmentProvider`](FulfillmentProvider.md)\n\n#### Defined in\n\n[models/fulfillment.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L56)\n\n___\n\n### provider\\_id\n\n• **provider\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L52)\n\n___\n\n### shipped\\_at\n\n• **shipped\\_at**: `Date`\n\n#### Defined in\n\n[models/fulfillment.ts:76](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L76)\n\n___\n\n### swap\n\n• **swap**: [`Swap`](Swap.md)\n\n#### Defined in\n\n[models/fulfillment.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L37)\n\n___\n\n### swap\\_id\n\n• **swap\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L33)\n\n___\n\n### tracking\\_links\n\n• **tracking\\_links**: [`TrackingLink`](TrackingLink.md)[]\n\n#### Defined in\n\n[models/fulfillment.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L67)\n\n___\n\n### tracking\\_numbers\n\n• **tracking\\_numbers**: `string`[]\n\n#### Defined in\n\n[models/fulfillment.ts:70](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L70)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/fulfillment.ts:87](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L87)\n","docs/content/references/entities/classes/FulfillmentItem.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: FulfillmentItem\n\n## Constructors\n\n### constructor\n\n• **new FulfillmentItem**()\n\n## Properties\n\n### fulfillment\n\n• **fulfillment**: [`Fulfillment`](Fulfillment.md)\n\n#### Defined in\n\n[models/fulfillment-item.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L16)\n\n___\n\n### fulfillment\\_id\n\n• **fulfillment\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment-item.ts:9](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L9)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/fulfillment-item.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L20)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment-item.ts:12](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L12)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/fulfillment-item.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L23)\n","docs/content/references/entities/classes/FulfillmentProvider.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: FulfillmentProvider\n\n## Constructors\n\n### constructor\n\n• **new FulfillmentProvider**()\n\n## Properties\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/fulfillment-provider.ts:6](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-provider.ts#L6)\n\n___\n\n### is\\_installed\n\n• **is\\_installed**: `boolean`\n\n#### Defined in\n\n[models/fulfillment-provider.ts:9](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-provider.ts#L9)\n","docs/content/references/entities/classes/GiftCard.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: GiftCard\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`GiftCard`**\n\n## Constructors\n\n### constructor\n\n• **new GiftCard**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### balance\n\n• **balance**: `number`\n\n#### Defined in\n\n[models/gift-card.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L26)\n\n___\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### ends\\_at\n\n• **ends\\_at**: `Date`\n\n#### Defined in\n\n[models/gift-card.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L51)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### is\\_disabled\n\n• **is\\_disabled**: `boolean`\n\n#### Defined in\n\n[models/gift-card.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L45)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/gift-card.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L54)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/gift-card.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L42)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L38)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/gift-card.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L34)\n\n___\n\n### region\\_id\n\n• **region\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L30)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `number`\n\n#### Defined in\n\n[models/gift-card.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L23)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/gift-card.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L56)\n","docs/content/references/entities/classes/GiftCardTransaction.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: GiftCardTransaction\n\n## Constructors\n\n### constructor\n\n• **new GiftCardTransaction**()\n\n## Properties\n\n### amount\n\n• **amount**: `number`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:40](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L40)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L43)\n\n___\n\n### gift\\_card\n\n• **gift\\_card**: [`GiftCard`](GiftCard.md)\n\n#### Defined in\n\n[models/gift-card-transaction.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L29)\n\n___\n\n### gift\\_card\\_id\n\n• **gift\\_card\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L25)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L22)\n\n___\n\n### is\\_taxable\n\n• **is\\_taxable**: `boolean`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L46)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/gift-card-transaction.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L37)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L33)\n\n___\n\n### tax\\_rate\n\n• **tax\\_rate**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L49)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L51)\n","docs/content/references/entities/classes/IdempotencyKey.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: IdempotencyKey\n\n## Constructors\n\n### constructor\n\n• **new IdempotencyKey**()\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/idempotency-key.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L23)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L16)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L20)\n\n___\n\n### locked\\_at\n\n• **locked\\_at**: `Date`\n\n#### Defined in\n\n[models/idempotency-key.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L26)\n\n___\n\n### recovery\\_point\n\n• **recovery\\_point**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L44)\n\n___\n\n### request\\_method\n\n• **request\\_method**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L29)\n\n___\n\n### request\\_params\n\n• **request\\_params**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/idempotency-key.ts:32](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L32)\n\n___\n\n### request\\_path\n\n• **request\\_path**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L35)\n\n___\n\n### response\\_body\n\n• **response\\_body**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/idempotency-key.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L41)\n\n___\n\n### response\\_code\n\n• **response\\_code**: `number`\n\n#### Defined in\n\n[models/idempotency-key.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L38)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/idempotency-key.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L46)\n","docs/content/references/entities/classes/Image.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Image\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Image`**\n\n## Constructors\n\n### constructor\n\n• **new Image**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/image.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L13)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### url\n\n• **url**: `string`\n\n#### Defined in\n\n[models/image.ts:10](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L10)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/image.ts:15](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L15)\n","docs/content/references/entities/classes/Invite.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Invite\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Invite`**\n\n## Constructors\n\n### constructor\n\n• **new Invite**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### accepted\n\n• **accepted**: `boolean`\n\n#### Defined in\n\n[models/invite.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L23)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### expires\\_at\n\n• **expires\\_at**: `Date`\n\n#### Defined in\n\n[models/invite.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L29)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/invite.ts:32](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L32)\n\n___\n\n### role\n\n• **role**: [`UserRoles`](../enums/UserRoles.md)\n\n#### Defined in\n\n[models/invite.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L20)\n\n___\n\n### token\n\n• **token**: `string`\n\n#### Defined in\n\n[models/invite.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L26)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### user\\_email\n\n• **user\\_email**: `string`\n\n#### Defined in\n\n[models/invite.ts:12](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L12)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/invite.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L34)\n","docs/content/references/entities/classes/LineItem.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItem\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`LineItem`**\n\n## Constructors\n\n### constructor\n\n• **new LineItem**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### adjustments\n\n• **adjustments**: [`LineItemAdjustment`](LineItemAdjustment.md)[]\n\n#### Defined in\n\n[models/line-item.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L85)\n\n___\n\n### allow\\_discounts\n\n• **allow\\_discounts**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L127)\n\n___\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/line-item.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L53)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L49)\n\n___\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/line-item.ts:77](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L77)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:73](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L73)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/line-item.ts:112](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L112)\n\n___\n\n### discount\\_total\n\n• `Optional` **discount\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:167](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L167)\n\n___\n\n### fulfilled\\_quantity\n\n• **fulfilled\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:147](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L147)\n\n___\n\n### gift\\_card\\_total\n\n• `Optional` **gift\\_card\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:168](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L168)\n\n___\n\n### has\\_shipping\n\n• **has\\_shipping**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:130](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L130)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### includes\\_tax\n\n• **includes\\_tax**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:159](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L159)\n\n___\n\n### is\\_giftcard\n\n• **is\\_giftcard**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:121](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L121)\n\n___\n\n### is\\_return\n\n• **is\\_return**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:118](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L118)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/line-item.ts:156](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L156)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/line-item.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L61)\n\n___\n\n### order\\_edit\n\n• `Optional` **order\\_edit**: ``null`` \\| [`OrderEdit`](OrderEdit.md)\n\n#### Defined in\n\n[models/line-item.ts:106](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L106)\n\n___\n\n### order\\_edit\\_id\n\n• `Optional` **order\\_edit\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:97](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L97)\n\n___\n\n### order\\_id\n\n• **order\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L57)\n\n___\n\n### original\\_item\\_id\n\n• `Optional` **original\\_item\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:91](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L91)\n\n___\n\n### original\\_tax\\_total\n\n• `Optional` **original\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:166](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L166)\n\n___\n\n### original\\_total\n\n• `Optional` **original\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:165](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L165)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:144](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L144)\n\n___\n\n### refundable\n\n• `Optional` **refundable**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:161](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L161)\n\n___\n\n### returned\\_quantity\n\n• **returned\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:150](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L150)\n\n___\n\n### shipped\\_quantity\n\n• **shipped\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:153](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L153)\n\n___\n\n### should\\_merge\n\n• **should\\_merge**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:124](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L124)\n\n___\n\n### subtotal\n\n• `Optional` **subtotal**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:162](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L162)\n\n___\n\n### swap\n\n• **swap**: [`Swap`](Swap.md)\n\n#### Defined in\n\n[models/line-item.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L69)\n\n___\n\n### swap\\_id\n\n• **swap\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:65](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L65)\n\n___\n\n### tax\\_lines\n\n• **tax\\_lines**: [`LineItemTaxLine`](LineItemTaxLine.md)[]\n\n#### Defined in\n\n[models/line-item.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L80)\n\n___\n\n### tax\\_total\n\n• `Optional` **tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:163](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L163)\n\n___\n\n### thumbnail\n\n• **thumbnail**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:115](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L115)\n\n___\n\n### title\n\n• **title**: `string`\n\n#### Defined in\n\n[models/line-item.ts:109](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L109)\n\n___\n\n### total\n\n• `Optional` **total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:164](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L164)\n\n___\n\n### unit\\_price\n\n• **unit\\_price**: `number`\n\n#### Defined in\n\n[models/line-item.ts:133](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L133)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### variant\n\n• **variant**: [`ProductVariant`](ProductVariant.md)\n\n#### Defined in\n\n[models/line-item.ts:141](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L141)\n\n___\n\n### variant\\_id\n\n• **variant\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:137](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L137)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item.ts:170](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L170)\n","docs/content/references/entities/classes/LineItemAdjustment.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItemAdjustment\n\n## Constructors\n\n### constructor\n\n• **new LineItemAdjustment**()\n\n## Properties\n\n### amount\n\n• **amount**: `number`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L45)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L34)\n\n___\n\n### discount\n\n• **discount**: [`Discount`](Discount.md)\n\n#### Defined in\n\n[models/line-item-adjustment.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L38)\n\n___\n\n### discount\\_id\n\n• **discount\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L42)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L23)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/line-item-adjustment.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L31)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L27)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/line-item-adjustment.ts:48](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L48)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L50)\n","docs/content/references/entities/classes/LineItemTaxLine.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItemTaxLine\n\n## Hierarchy\n\n- `TaxLine`\n\n  ↳ **`LineItemTaxLine`**\n\n## Constructors\n\n### constructor\n\n• **new LineItemTaxLine**()\n\n#### Inherited from\n\nTaxLine.constructor\n\n## Properties\n\n### code\n\n• **code**: ``null`` \\| `string`\n\n#### Inherited from\n\nTaxLine.code\n\n#### Defined in\n\n[models/tax-line.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L13)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nTaxLine.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nTaxLine.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/line-item-tax-line.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L24)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-tax-line.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L20)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Inherited from\n\nTaxLine.metadata\n\n#### Defined in\n\n[models/tax-line.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L16)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Inherited from\n\nTaxLine.name\n\n#### Defined in\n\n[models/tax-line.ts:10](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L10)\n\n___\n\n### rate\n\n• **rate**: `number`\n\n#### Inherited from\n\nTaxLine.rate\n\n#### Defined in\n\n[models/tax-line.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L7)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nTaxLine.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item-tax-line.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L26)\n","docs/content/references/entities/classes/MoneyAmount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FMoneyAmount.md -->","docs/content/references/entities/classes/Note.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FNote.md -->","docs/content/references/entities/classes/Notification.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FNotification.md -->","docs/content/references/entities/classes/Oauth.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOauth.md -->","docs/content/references/entities/classes/Order.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrder.md -->","docs/content/references/entities/classes/OrderEdit.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrderEdit.md -->","docs/content/references/entities/classes/OrderItemChange.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrderItemChange.md -->","docs/content/references/entities/classes/Payment.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPayment.md -->","docs/content/references/entities/classes/PaymentCollection.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentCollection.md -->","docs/content/references/entities/classes/PaymentProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentProvider.md -->","docs/content/references/entities/classes/PaymentSession.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentSession.md -->","docs/content/references/entities/classes/PriceList.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPriceList.md -->","docs/content/references/entities/classes/Product.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProduct.md -->","docs/content/references/entities/classes/ProductCollection.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductCollection.md -->","docs/content/references/entities/classes/ProductOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductOption.md -->","docs/content/references/entities/classes/ProductOptionValue.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductOptionValue.md -->","docs/content/references/entities/classes/ProductTag.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTag.md -->","docs/content/references/entities/classes/ProductTaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTaxRate.md -->","docs/content/references/entities/classes/ProductType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductType.md -->","docs/content/references/entities/classes/ProductTypeTaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTypeTaxRate.md -->","docs/content/references/entities/classes/ProductVariant.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductVariant.md -->","docs/content/references/entities/classes/PublishableApiKey.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPublishableApiKey.md -->","docs/content/references/entities/classes/PublishableApiKeySalesChannel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPublishableApiKeySalesChannel.md -->","docs/content/references/entities/classes/Refund.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FRefund.md -->","docs/content/references/entities/classes/Region.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FRegion.md -->","docs/content/references/entities/classes/Return.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturn.md -->","docs/content/references/entities/classes/ReturnItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturnItem.md -->","docs/content/references/entities/classes/ReturnReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturnReason.md -->","docs/content/references/entities/classes/SalesChannel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FSalesChannel.md -->","docs/content/references/entities/classes/ShippingMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingMethod.md -->","docs/content/references/entities/classes/ShippingMethodTaxLine.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingMethodTaxLine.md -->","docs/content/references/entities/classes/ShippingOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingOption.md -->","docs/content/references/entities/classes/ShippingOptionRequirement.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingOptionRequirement.md -->","docs/content/references/entities/classes/ShippingProfile.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingProfile.md -->","docs/content/references/entities/classes/ShippingTaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingTaxRate.md -->","docs/content/references/entities/classes/StagedJob.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FStagedJob.md -->","docs/content/references/entities/classes/Store.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FStore.md -->","docs/content/references/entities/classes/Swap.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FSwap.md -->","docs/content/references/entities/classes/TaxProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTaxProvider.md -->","docs/content/references/entities/classes/TaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTaxRate.md -->","docs/content/references/entities/classes/TrackingLink.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTrackingLink.md -->","docs/content/references/entities/classes/User.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FUser.md -->","docs/content/references/entities/enums/AllocationType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FAllocationType.md -->","docs/content/references/entities/enums/CartType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FCartType.md -->","docs/content/references/entities/enums/ClaimFulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimFulfillmentStatus.md -->","docs/content/references/entities/enums/ClaimPaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimPaymentStatus.md -->","docs/content/references/entities/enums/ClaimReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimReason.md -->","docs/content/references/entities/enums/ClaimType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimType.md -->","docs/content/references/entities/enums/DiscountConditionOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountConditionOperator.md -->","docs/content/references/entities/enums/DiscountConditionType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountConditionType.md -->","docs/content/references/entities/enums/DiscountRuleType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountRuleType.md -->","docs/content/references/entities/enums/DraftOrderStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDraftOrderStatus.md -->","docs/content/references/entities/enums/FulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FFulfillmentStatus.md -->","docs/content/references/entities/enums/OrderEditItemChangeType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderEditItemChangeType.md -->","docs/content/references/entities/enums/OrderEditStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderEditStatus.md -->","docs/content/references/entities/enums/OrderStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderStatus.md -->","docs/content/references/entities/enums/PaymentCollectionStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentCollectionStatus.md -->","docs/content/references/entities/enums/PaymentCollectionType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentCollectionType.md -->","docs/content/references/entities/enums/PaymentSessionStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentSessionStatus.md -->","docs/content/references/entities/enums/PaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentStatus.md -->","docs/content/references/entities/enums/ProductStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FProductStatus.md -->","docs/content/references/entities/enums/RefundReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FRefundReason.md -->","docs/content/references/entities/enums/RequirementType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FRequirementType.md -->","docs/content/references/entities/enums/ReturnStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FReturnStatus.md -->","docs/content/references/entities/enums/ShippingOptionPriceType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FShippingOptionPriceType.md -->","docs/content/references/entities/enums/ShippingProfileType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FShippingProfileType.md -->","docs/content/references/entities/enums/SwapFulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FSwapFulfillmentStatus.md -->","docs/content/references/entities/enums/SwapPaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FSwapPaymentStatus.md -->","docs/content/references/entities/enums/UserRoles.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FUserRoles.md -->","docs/content/references/entities/index.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Findex.md -->","docs/content/references/js-client/classes/AddressesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAddressesResource.md -->","docs/content/references/js-client/classes/Admin.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdmin.md -->","docs/content/references/js-client/classes/AdminAuthResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminAuthResource.md -->","docs/content/references/js-client/classes/AdminBatchJobsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminBatchJobsResource.md -->","docs/content/references/js-client/classes/AdminCollectionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCollectionsResource.md -->","docs/content/references/js-client/classes/AdminCurrenciesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCurrenciesResource.md -->","docs/content/references/js-client/classes/AdminCustomerGroupsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCustomerGroupsResource.md -->","docs/content/references/js-client/classes/AdminCustomersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCustomersResource.md -->","docs/content/references/js-client/classes/AdminDiscountsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminDiscountsResource.md -->","docs/content/references/js-client/classes/AdminDraftOrdersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminDraftOrdersResource.md -->","docs/content/references/js-client/classes/AdminGiftCardsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminGiftCardsResource.md -->","docs/content/references/js-client/classes/AdminInvitesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminInvitesResource.md -->","docs/content/references/js-client/classes/AdminNotesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminNotesResource.md -->","docs/content/references/js-client/classes/AdminNotificationsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminNotificationsResource.md -->","docs/content/references/js-client/classes/AdminOrderEditsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminOrderEditsResource.md -->","docs/content/references/js-client/classes/AdminOrdersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminOrdersResource.md -->","docs/content/references/js-client/classes/AdminPaymentCollectionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPaymentCollectionsResource.md -->","docs/content/references/js-client/classes/AdminPaymentsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPaymentsResource.md -->","docs/content/references/js-client/classes/AdminPriceListResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPriceListResource.md -->","docs/content/references/js-client/classes/AdminProductTagsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductTagsResource.md -->","docs/content/references/js-client/classes/AdminProductTypesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductTypesResource.md -->","docs/content/references/js-client/classes/AdminProductsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductsResource.md -->","docs/content/references/js-client/classes/AdminPublishableApiKeyResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPublishableApiKeyResource.md -->","docs/content/references/js-client/classes/AdminRegionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminRegionsResource.md -->","docs/content/references/js-client/classes/AdminReturnReasonsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminReturnReasonsResource.md -->","docs/content/references/js-client/classes/AdminReturnsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminReturnsResource.md -->","docs/content/references/js-client/classes/AdminSalesChannelsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminSalesChannelsResource.md -->","docs/content/references/js-client/classes/AdminShippingOptionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminShippingOptionsResource.md -->","docs/content/references/js-client/classes/AdminShippingProfilesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminShippingProfilesResource.md -->","docs/content/references/js-client/classes/AdminStoresResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminStoresResource.md -->","docs/content/references/js-client/classes/AdminSwapsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminSwapsResource.md -->","docs/content/references/js-client/classes/AdminTaxRatesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminTaxRatesResource.md -->","docs/content/references/js-client/classes/AdminUploadsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminUploadsResource.md -->","docs/content/references/js-client/classes/AdminUsersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminUsersResource.md -->","docs/content/references/js-client/classes/AdminVariantsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminVariantsResource.md -->","docs/content/references/js-client/classes/AuthResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAuthResource.md -->","docs/content/references/js-client/classes/CartsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCartsResource.md -->","docs/content/references/js-client/classes/CollectionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCollectionsResource.md -->","docs/content/references/js-client/classes/CustomerResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCustomerResource.md -->","docs/content/references/js-client/classes/GiftCardsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FGiftCardsResource.md -->","docs/content/references/js-client/classes/LineItemsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FLineItemsResource.md -->","docs/content/references/js-client/classes/OrderEditsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FOrderEditsResource.md -->","docs/content/references/js-client/classes/OrdersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FOrdersResource.md -->","docs/content/references/js-client/classes/PaymentCollectionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FPaymentCollectionsResource.md -->","docs/content/references/js-client/classes/PaymentMethodsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FPaymentMethodsResource.md -->","docs/content/references/js-client/classes/ProductTypesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductTypesResource.md -->","docs/content/references/js-client/classes/ProductVariantsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductVariantsResource.md -->","docs/content/references/js-client/classes/ProductsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductsResource.md -->","docs/content/references/js-client/classes/RegionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FRegionsResource.md -->","docs/content/references/js-client/classes/ReturnReasonsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FReturnReasonsResource.md -->","docs/content/references/js-client/classes/ReturnsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FReturnsResource.md -->","docs/content/references/js-client/classes/ShippingOptionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FShippingOptionsResource.md -->","docs/content/references/js-client/classes/SwapsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FSwapsResource.md -->","docs/content/references/js-client/classes/internal-1.AdminPostAuthReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-1.AdminPostAuthReq.md -->","docs/content/references/js-client/classes/internal-1.User.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-1.User.md -->","docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesInviteAcceptReq.md -->","docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptUserReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesInviteAcceptUserReq.md -->","docs/content/references/js-client/classes/internal-10.AdminPostInvitesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesReq.md -->","docs/content/references/js-client/classes/internal-10.Invite.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.Invite.md -->","docs/content/references/js-client/classes/internal-11.AdminGetNotesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminGetNotesParams.md -->","docs/content/references/js-client/classes/internal-11.AdminPostNotesNoteReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminPostNotesNoteReq.md -->","docs/content/references/js-client/classes/internal-11.AdminPostNotesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminPostNotesReq.md -->","docs/content/references/js-client/classes/internal-11.Note.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.Note.md -->","docs/content/references/js-client/classes/internal-12.AdminGetNotificationsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.AdminGetNotificationsParams.md -->","docs/content/references/js-client/classes/internal-12.AdminPostNotificationsNotificationResendReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.AdminPostNotificationsNotificationResendReq.md -->","docs/content/references/js-client/classes/internal-12.Notification.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.Notification.md -->","docs/content/references/js-client/classes/internal-12.NotificationProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.NotificationProvider.md -->","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md -->","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsEditLineItemsReq.md -->","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsOrderEditReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsOrderEditReq.md -->","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsReq.md -->","docs/content/references/js-client/classes/internal-13.GetOrderEditsOrderEditParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.GetOrderEditsOrderEditParams.md -->","docs/content/references/js-client/classes/internal-13.GetOrderEditsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.GetOrderEditsParams.md -->","docs/content/references/js-client/classes/internal-14.AdditionalItem-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdditionalItem-1.md -->","docs/content/references/js-client/classes/internal-14.AdditionalItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdditionalItem.md -->","docs/content/references/js-client/classes/internal-14.AdminGetOrdersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminGetOrdersParams.md -->","docs/content/references/js-client/classes/internal-14.AdminListOrdersSelector.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminListOrdersSelector.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderFulfillmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderFulfillmentsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderRefundsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderRefundsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReturnsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderReturnsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShipmentReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderShipmentReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShippingMethodsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderShippingMethodsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md -->","docs/content/references/js-client/classes/internal-14.CustomShippingOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.CustomShippingOption.md -->","docs/content/references/js-client/classes/internal-14.Image.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Image.md -->","docs/content/references/js-client/classes/internal-14.Item-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item-1.md -->","docs/content/references/js-client/classes/internal-14.Item-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item-2.md -->","docs/content/references/js-client/classes/internal-14.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item.md -->","docs/content/references/js-client/classes/internal-14.OrdersReturnItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.OrdersReturnItem.md -->","docs/content/references/js-client/classes/internal-14.PaymentMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.PaymentMethod.md -->","docs/content/references/js-client/classes/internal-14.ReturnItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnItem.md -->","docs/content/references/js-client/classes/internal-14.ReturnShipping-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping-1.md -->","docs/content/references/js-client/classes/internal-14.ReturnShipping-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping-2.md -->","docs/content/references/js-client/classes/internal-14.ReturnShipping.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping.md -->","docs/content/references/js-client/classes/internal-14.ShippingMethod-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod-1.md -->","docs/content/references/js-client/classes/internal-14.ShippingMethod-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod-2.md -->","docs/content/references/js-client/classes/internal-14.ShippingMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod.md -->","docs/content/references/js-client/classes/internal-14.Tag.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Tag.md -->","docs/content/references/js-client/classes/internal-15.AdminUpdatePaymentCollectionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-15.AdminUpdatePaymentCollectionsReq.md -->","docs/content/references/js-client/classes/internal-15.GetPaymentCollectionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-15.GetPaymentCollectionsParams.md -->","docs/content/references/js-client/classes/internal-16.AdminPostPaymentRefundsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-16.AdminPostPaymentRefundsReq.md -->","docs/content/references/js-client/classes/internal-16.GetPaymentsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-16.GetPaymentsParams.md -->","docs/content/references/js-client/classes/internal-17.AdminDeletePriceListPricesPricesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminDeletePriceListPricesPricesReq.md -->","docs/content/references/js-client/classes/internal-17.AdminGetPriceListPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminGetPriceListPaginationParams.md -->","docs/content/references/js-client/classes/internal-17.AdminGetPriceListsPriceListProductsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminGetPriceListsPriceListProductsParams.md -->","docs/content/references/js-client/classes/internal-17.AdminPostPriceListPricesPricesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListPricesPricesReq.md -->","docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListPriceListReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListsPriceListPriceListReq.md -->","docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListsPriceListReq.md -->","docs/content/references/js-client/classes/internal-17.AdminPriceListPricesCreateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPriceListPricesCreateReq.md -->","docs/content/references/js-client/classes/internal-17.AdminPriceListPricesUpdateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPriceListPricesUpdateReq.md -->","docs/content/references/js-client/classes/internal-17.CustomerGroup-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.CustomerGroup-1.md -->","docs/content/references/js-client/classes/internal-17.CustomerGroup.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.CustomerGroup.md -->","docs/content/references/js-client/classes/internal-17.FilterablePriceListProps.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.FilterablePriceListProps.md -->","docs/content/references/js-client/classes/internal-18.AdminGetProductTagsPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-18.AdminGetProductTagsPaginationParams.md -->","docs/content/references/js-client/classes/internal-18.AdminGetProductTagsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-18.AdminGetProductTagsParams.md -->","docs/content/references/js-client/classes/internal-19.AdminGetProductTypesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-19.AdminGetProductTypesParams.md -->","docs/content/references/js-client/classes/internal-2.AdminGetBatchPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminGetBatchPaginationParams.md -->","docs/content/references/js-client/classes/internal-2.AdminGetBatchParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminGetBatchParams.md -->","docs/content/references/js-client/classes/internal-2.AdminPostBatchesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminPostBatchesReq.md -->","docs/content/references/js-client/classes/internal-2.BatchJob.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.BatchJob.md -->","docs/content/references/js-client/classes/internal-2.DateComparisonOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.DateComparisonOperator.md -->","docs/content/references/js-client/classes/internal-20.AdminGetProductsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminGetProductsParams.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductMetadataReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductMetadataReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductOptionsOption.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductOptionsReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductVariantsReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsVariantReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductVariantsVariantReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsReq.md -->","docs/content/references/js-client/classes/internal-20.FilterableProductProps.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.FilterableProductProps.md -->","docs/content/references/js-client/classes/internal-20.ProductOptionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductOptionReq.md -->","docs/content/references/js-client/classes/internal-20.ProductSalesChannelReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductSalesChannelReq.md -->","docs/content/references/js-client/classes/internal-20.ProductTagReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductTagReq.md -->","docs/content/references/js-client/classes/internal-20.ProductTypeReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductTypeReq.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-1.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-2.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-3.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-3.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantPricesCreateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantPricesCreateReq.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantPricesUpdateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantPricesUpdateReq.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantReq-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantReq-1.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantReq.md -->","docs/content/references/js-client/classes/internal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md -->","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md -->","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md -->","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeysReq.md -->","docs/content/references/js-client/classes/internal-21.GetPublishableApiKeySalesChannelsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.GetPublishableApiKeySalesChannelsParams.md -->","docs/content/references/js-client/classes/internal-21.GetPublishableApiKeysParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.GetPublishableApiKeysParams.md -->","docs/content/references/js-client/classes/internal-21.ProductBatchSalesChannel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.ProductBatchSalesChannel.md -->","docs/content/references/js-client/classes/internal-21.PublishableApiKey.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.PublishableApiKey.md -->","docs/content/references/js-client/classes/internal-22.AdminGetRegionsPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsPaginationParams.md -->","docs/content/references/js-client/classes/internal-22.AdminGetRegionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsParams.md -->","docs/content/references/js-client/classes/internal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionCountriesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionCountriesReq.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionPaymentProvidersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionPaymentProvidersReq.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionReq.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsReq.md -->","docs/content/references/js-client/classes/internal-22.AdminRegionsRes.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminRegionsRes.md -->","docs/content/references/js-client/classes/internal-22.FulfillmentOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.FulfillmentOption.md -->","docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReasonReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-23.AdminPostReturnReasonsReasonReq.md -->","docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-23.AdminPostReturnReasonsReq.md -->","docs/content/references/js-client/classes/internal-24.AdminGetReturnsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.AdminGetReturnsParams.md -->","docs/content/references/js-client/classes/internal-24.AdminPostReturnsReturnReceiveReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.AdminPostReturnsReturnReceiveReq.md -->","docs/content/references/js-client/classes/internal-24.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.Item.md -->","docs/content/references/js-client/classes/internal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md -->","docs/content/references/js-client/classes/internal-25.AdminGetSalesChannelsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminGetSalesChannelsParams.md -->","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsChannelProductsBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsChannelProductsBatchReq.md -->","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsReq.md -->","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsSalesChannelReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsSalesChannelReq.md -->","docs/content/references/js-client/classes/internal-26.AdminGetShippingOptionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminGetShippingOptionsParams.md -->","docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsOptionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminPostShippingOptionsOptionReq.md -->","docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminPostShippingOptionsReq.md -->","docs/content/references/js-client/classes/internal-26.OptionRequirement-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.OptionRequirement-1.md -->","docs/content/references/js-client/classes/internal-26.OptionRequirement.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.OptionRequirement.md -->","docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesProfileReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-27.AdminPostShippingProfilesProfileReq.md -->","docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-27.AdminPostShippingProfilesReq.md -->","docs/content/references/js-client/classes/internal-28.AdminPostStoreReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-28.AdminPostStoreReq.md -->","docs/content/references/js-client/classes/internal-28.Store.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-28.Store.md -->","docs/content/references/js-client/classes/internal-29.AdminGetSwapsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-29.AdminGetSwapsParams.md -->","docs/content/references/js-client/classes/internal-3.AdminDeleteProductsFromCollectionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminDeleteProductsFromCollectionReq.md -->","docs/content/references/js-client/classes/internal-3.AdminGetCollectionsPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminGetCollectionsPaginationParams.md -->","docs/content/references/js-client/classes/internal-3.AdminGetCollectionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminGetCollectionsParams.md -->","docs/content/references/js-client/classes/internal-3.AdminPostCollectionsCollectionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostCollectionsCollectionReq.md -->","docs/content/references/js-client/classes/internal-3.AdminPostCollectionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostCollectionsReq.md -->","docs/content/references/js-client/classes/internal-3.AdminPostProductsToCollectionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostProductsToCollectionReq.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductsParams.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductsReq.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md -->","docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminGetTaxRatesParams.md -->","docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesTaxRateParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminGetTaxRatesTaxRateParams.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesReq.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductTypesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateProductTypesReq.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateProductsReq.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateReq.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md -->","docs/content/references/js-client/classes/internal-30.NumericalComparisonOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.NumericalComparisonOperator.md -->","docs/content/references/js-client/classes/internal-31.AdminDeleteUploadsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.AdminDeleteUploadsReq.md -->","docs/content/references/js-client/classes/internal-31.AdminPostUploadsDownloadUrlReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.AdminPostUploadsDownloadUrlReq.md -->","docs/content/references/js-client/classes/internal-31.IAdminPostUploadsFileReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.IAdminPostUploadsFileReq.md -->","docs/content/references/js-client/classes/internal-32.AdminCreateUserRequest.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminCreateUserRequest.md -->","docs/content/references/js-client/classes/internal-32.AdminResetPasswordRequest.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminResetPasswordRequest.md -->","docs/content/references/js-client/classes/internal-32.AdminResetPasswordTokenRequest.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminResetPasswordTokenRequest.md -->","docs/content/references/js-client/classes/internal-32.AdminUpdateUserRequest.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminUpdateUserRequest.md -->","docs/content/references/js-client/classes/internal-33.AdminGetVariantsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.AdminGetVariantsParams.md -->","docs/content/references/js-client/classes/internal-33.AdminPriceSelectionParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.AdminPriceSelectionParams.md -->","docs/content/references/js-client/classes/internal-33.PriceSelectionParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.PriceSelectionParams.md -->","docs/content/references/js-client/classes/internal-34.StorePostAuthReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-34.StorePostAuthReq.md -->","docs/content/references/js-client/classes/internal-35.Discount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.Discount.md -->","docs/content/references/js-client/classes/internal-35.GiftCard.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.GiftCard.md -->","docs/content/references/js-client/classes/internal-35.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.Item.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartReq.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartPaymentSessionReq.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionUpdateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartPaymentSessionUpdateReq.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartsCartReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartReq.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartsCartShippingMethodReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartShippingMethodReq.md -->","docs/content/references/js-client/classes/internal-36.StoreGetCollectionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-36.StoreGetCollectionsParams.md -->","docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StoreGetCustomersCustomerOrdersPaginationParams.md -->","docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StoreGetCustomersCustomerOrdersParams.md -->","docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerPasswordTokenReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersCustomerPasswordTokenReq.md -->","docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersCustomerReq.md -->","docs/content/references/js-client/classes/internal-37.StorePostCustomersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersReq.md -->","docs/content/references/js-client/classes/internal-37.StorePostCustomersResetPasswordReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersResetPasswordReq.md -->","docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsItemReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-39.StorePostCartsCartLineItemsItemReq.md -->","docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-39.StorePostCartsCartLineItemsReq.md -->","docs/content/references/js-client/classes/internal-4.AdminGetCurrenciesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.AdminGetCurrenciesParams.md -->","docs/content/references/js-client/classes/internal-4.AdminPostCurrenciesCurrencyReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.AdminPostCurrenciesCurrencyReq.md -->","docs/content/references/js-client/classes/internal-4.FindPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.FindPaginationParams.md -->","docs/content/references/js-client/classes/internal-40.StorePostOrderEditsOrderEditDecline.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-40.StorePostOrderEditsOrderEditDecline.md -->","docs/content/references/js-client/classes/internal-41.ShippingAddressPayload.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.ShippingAddressPayload.md -->","docs/content/references/js-client/classes/internal-41.StoreGetOrdersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StoreGetOrdersParams.md -->","docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerAcceptClaimReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StorePostCustomersCustomerAcceptClaimReq.md -->","docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerOrderClaimReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StorePostCustomersCustomerOrderClaimReq.md -->","docs/content/references/js-client/classes/internal-42.StorePaymentCollectionSessionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePaymentCollectionSessionsReq.md -->","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md -->","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsBatchSessionsReq.md -->","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsSessionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsSessionsReq.md -->","docs/content/references/js-client/classes/internal-44.StoreGetProductTypesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-44.StoreGetProductTypesParams.md -->","docs/content/references/js-client/classes/internal-45.StoreGetVariantsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-45.StoreGetVariantsParams.md -->","docs/content/references/js-client/classes/internal-46.StoreGetProductsPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StoreGetProductsPaginationParams.md -->","docs/content/references/js-client/classes/internal-46.StoreGetProductsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StoreGetProductsParams.md -->","docs/content/references/js-client/classes/internal-46.StorePostSearchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StorePostSearchReq.md -->","docs/content/references/js-client/classes/internal-49.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.Item.md -->","docs/content/references/js-client/classes/internal-49.ReturnShipping.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.ReturnShipping.md -->","docs/content/references/js-client/classes/internal-49.StorePostReturnsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.StorePostReturnsReq.md -->","docs/content/references/js-client/classes/internal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md -->","docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsGroupParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomerGroupsGroupParams.md -->","docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomerGroupsParams.md -->","docs/content/references/js-client/classes/internal-5.AdminGetCustomersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomersParams.md -->","docs/content/references/js-client/classes/internal-5.AdminListCustomerSelector.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminListCustomerSelector.md -->","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md -->","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsGroupReq.md -->","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsReq.md -->","docs/content/references/js-client/classes/internal-5.CustomerGroupsBatchCustomer.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.CustomerGroupsBatchCustomer.md -->","docs/content/references/js-client/classes/internal-5.FilterableCustomerGroupProps.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.FilterableCustomerGroupProps.md -->","docs/content/references/js-client/classes/internal-5.FindParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.FindParams.md -->","docs/content/references/js-client/classes/internal-5.StringComparisonOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.StringComparisonOperator.md -->","docs/content/references/js-client/classes/internal-50.StoreGetShippingOptionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-50.StoreGetShippingOptionsParams.md -->","docs/content/references/js-client/classes/internal-51.AdditionalItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.AdditionalItem.md -->","docs/content/references/js-client/classes/internal-51.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.Item.md -->","docs/content/references/js-client/classes/internal-51.StorePostSwapsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.StorePostSwapsReq.md -->","docs/content/references/js-client/classes/internal-6.AdminPostCustomersCustomerReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.AdminPostCustomersCustomerReq.md -->","docs/content/references/js-client/classes/internal-6.AdminPostCustomersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.AdminPostCustomersReq.md -->","docs/content/references/js-client/classes/internal-6.Group.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.Group.md -->","docs/content/references/js-client/classes/internal-7.AdminCreateCondition.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminCreateCondition.md -->","docs/content/references/js-client/classes/internal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md -->","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountConditionsConditionParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsDiscountConditionsConditionParams.md -->","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountRuleParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsDiscountRuleParams.md -->","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsParams.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditions.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditions.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsCondition.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsCondition.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionParams.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsParams.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountDynamicCodesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountDynamicCodesReq.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountReq.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountRule.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountRule.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsReq.md -->","docs/content/references/js-client/classes/internal-7.AdminUpdateDiscountRule.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpdateDiscountRule.md -->","docs/content/references/js-client/classes/internal-7.AdminUpsertCondition.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpsertCondition.md -->","docs/content/references/js-client/classes/internal-7.AdminUpsertConditionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpsertConditionsReq.md -->","docs/content/references/js-client/classes/internal-8.AdminGetDraftOrdersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminGetDraftOrdersParams.md -->","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md -->","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md -->","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderReq.md -->","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersReq.md -->","docs/content/references/js-client/classes/internal-8.Discount-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Discount-1.md -->","docs/content/references/js-client/classes/internal-8.Discount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Discount.md -->","docs/content/references/js-client/classes/internal-8.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Item.md -->","docs/content/references/js-client/classes/internal-8.ShippingMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.ShippingMethod.md -->","docs/content/references/js-client/classes/internal-9.AdminGetGiftCardsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminGetGiftCardsParams.md -->","docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsGiftCardReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminPostGiftCardsGiftCardReq.md -->","docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminPostGiftCardsReq.md -->","docs/content/references/js-client/classes/internal.Address.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Address.md -->","docs/content/references/js-client/classes/internal.AddressCreatePayload.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.AddressCreatePayload.md -->","docs/content/references/js-client/classes/internal.AddressPayload.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.AddressPayload.md -->","docs/content/references/js-client/classes/internal.Axios.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Axios.md -->","docs/content/references/js-client/classes/internal.BaseEntity.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.BaseEntity.md -->","docs/content/references/js-client/classes/internal.Cart.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Cart.md -->","docs/content/references/js-client/classes/internal.ClaimImage.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimImage.md -->","docs/content/references/js-client/classes/internal.ClaimItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimItem.md -->","docs/content/references/js-client/classes/internal.ClaimOrder.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimOrder.md -->","docs/content/references/js-client/classes/internal.ClaimTag.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimTag.md -->","docs/content/references/js-client/classes/internal.Client.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Client.md -->","docs/content/references/js-client/classes/internal.Country.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Country.md -->","docs/content/references/js-client/classes/internal.Currency.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Currency.md -->","docs/content/references/js-client/classes/internal.Customer.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Customer.md -->","docs/content/references/js-client/classes/internal.CustomerGroup.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.CustomerGroup.md -->","docs/content/references/js-client/classes/internal.Discount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Discount.md -->","docs/content/references/js-client/classes/internal.DiscountCondition.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DiscountCondition.md -->","docs/content/references/js-client/classes/internal.DiscountRule.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DiscountRule.md -->","docs/content/references/js-client/classes/internal.DraftOrder.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DraftOrder.md -->","docs/content/references/js-client/classes/internal.Fulfillment.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Fulfillment.md -->","docs/content/references/js-client/classes/internal.FulfillmentItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.FulfillmentItem.md -->","docs/content/references/js-client/classes/internal.FulfillmentProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.FulfillmentProvider.md -->","docs/content/references/js-client/classes/internal.GiftCard.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.GiftCard.md -->","docs/content/references/js-client/classes/internal.GiftCardTransaction.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.GiftCardTransaction.md -->","docs/content/references/js-client/classes/internal.Image.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Image.md -->","docs/content/references/js-client/classes/internal.LineItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItem.md -->","docs/content/references/js-client/classes/internal.LineItemAdjustment.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItemAdjustment.md -->","docs/content/references/js-client/classes/internal.LineItemTaxLine.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItemTaxLine.md -->","docs/content/references/js-client/classes/internal.MoneyAmount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.MoneyAmount.md -->","docs/content/references/js-client/classes/internal.Order.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Order.md -->","docs/content/references/js-client/classes/internal.OrderEdit.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.OrderEdit.md -->","docs/content/references/js-client/classes/internal.OrderItemChange.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.OrderItemChange.md -->","docs/content/references/js-client/classes/internal.Payment.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Payment.md -->","docs/content/references/js-client/classes/internal.PaymentCollection.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentCollection.md -->","docs/content/references/js-client/classes/internal.PaymentProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentProvider.md -->","docs/content/references/js-client/classes/internal.PaymentSession.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentSession.md -->","docs/content/references/js-client/classes/internal.PriceList.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PriceList.md -->","docs/content/references/js-client/classes/internal.Product.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Product.md -->","docs/content/references/js-client/classes/internal.ProductCollection.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductCollection.md -->","docs/content/references/js-client/classes/internal.ProductOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductOption.md -->","docs/content/references/js-client/classes/internal.ProductOptionValue.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductOptionValue.md -->","docs/content/references/js-client/classes/internal.ProductTag.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductTag.md -->","docs/content/references/js-client/classes/internal.ProductType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductType.md -->","docs/content/references/js-client/classes/internal.ProductVariant.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductVariant.md -->","docs/content/references/js-client/classes/internal.Refund.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Refund.md -->","docs/content/references/js-client/classes/internal.Region.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Region.md -->","docs/content/references/js-client/classes/internal.Return.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Return.md -->","docs/content/references/js-client/classes/internal.ReturnItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ReturnItem.md -->","docs/content/references/js-client/classes/internal.ReturnReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ReturnReason.md -->","docs/content/references/js-client/classes/internal.SalesChannel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.SalesChannel.md -->","docs/content/references/js-client/classes/internal.ShippingMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingMethod.md -->","docs/content/references/js-client/classes/internal.ShippingMethodTaxLine.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingMethodTaxLine.md -->","docs/content/references/js-client/classes/internal.ShippingOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingOption.md -->","docs/content/references/js-client/classes/internal.ShippingOptionRequirement.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingOptionRequirement.md -->","docs/content/references/js-client/classes/internal.ShippingProfile.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingProfile.md -->","docs/content/references/js-client/classes/internal.SoftDeletableEntity.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.SoftDeletableEntity.md -->","docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesAddressReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.StorePostCustomersCustomerAddressesAddressReq.md -->","docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.StorePostCustomersCustomerAddressesReq.md -->","docs/content/references/js-client/classes/internal.Swap.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Swap.md -->","docs/content/references/js-client/classes/internal.TaxLine.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxLine.md -->","docs/content/references/js-client/classes/internal.TaxProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxProvider.md -->","docs/content/references/js-client/classes/internal.TaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxRate.md -->","docs/content/references/js-client/classes/internal.TrackingLink.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TrackingLink.md -->","docs/content/references/js-client/enums/internal-1.UserRoles.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-1.UserRoles.md -->","docs/content/references/js-client/enums/internal-16.RefundReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-16.RefundReason.md -->","docs/content/references/js-client/enums/internal-2.BatchJobStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-2.BatchJobStatus.md -->","docs/content/references/js-client/enums/internal.AllocationType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.AllocationType.md -->","docs/content/references/js-client/enums/internal.CartType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.CartType.md -->","docs/content/references/js-client/enums/internal.ClaimFulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimFulfillmentStatus.md -->","docs/content/references/js-client/enums/internal.ClaimPaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimPaymentStatus.md -->","docs/content/references/js-client/enums/internal.ClaimReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimReason.md -->","docs/content/references/js-client/enums/internal.ClaimType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimType.md -->","docs/content/references/js-client/enums/internal.DiscountConditionOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountConditionOperator.md -->","docs/content/references/js-client/enums/internal.DiscountConditionType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountConditionType.md -->","docs/content/references/js-client/enums/internal.DiscountRuleType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountRuleType.md -->","docs/content/references/js-client/enums/internal.DraftOrderStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DraftOrderStatus.md -->","docs/content/references/js-client/enums/internal.FulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.FulfillmentStatus.md -->","docs/content/references/js-client/enums/internal.OrderEditItemChangeType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderEditItemChangeType.md -->","docs/content/references/js-client/enums/internal.OrderEditStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderEditStatus.md -->","docs/content/references/js-client/enums/internal.OrderStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderStatus.md -->","docs/content/references/js-client/enums/internal.PaymentCollectionStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PaymentCollectionStatus.md -->","docs/content/references/js-client/enums/internal.PaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PaymentStatus.md -->","docs/content/references/js-client/enums/internal.PriceListStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PriceListStatus.md -->","docs/content/references/js-client/enums/internal.PriceListType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PriceListType.md -->","docs/content/references/js-client/enums/internal.ProductStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ProductStatus.md -->","docs/content/references/js-client/enums/internal.RequirementType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.RequirementType.md -->","docs/content/references/js-client/enums/internal.ReturnStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ReturnStatus.md -->","docs/content/references/js-client/enums/internal.ShippingOptionPriceType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ShippingOptionPriceType.md -->","docs/content/references/js-client/enums/internal.ShippingProfileType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ShippingProfileType.md -->","docs/content/references/js-client/enums/internal.SwapFulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.SwapFulfillmentStatus.md -->","docs/content/references/js-client/enums/internal.SwapPaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.SwapPaymentStatus.md -->","docs/content/references/js-client/index.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Findex.md -->","docs/content/references/js-client/interfaces/internal.AxiosAdapter.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosAdapter.md -->","docs/content/references/js-client/interfaces/internal.AxiosBasicCredentials.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosBasicCredentials.md -->","docs/content/references/js-client/interfaces/internal.AxiosDefaults.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosDefaults.md -->","docs/content/references/js-client/interfaces/internal.AxiosError.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosError.md -->","docs/content/references/js-client/interfaces/internal.AxiosInstance.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosInstance.md -->","docs/content/references/js-client/interfaces/internal.AxiosInterceptorManager.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosInterceptorManager.md -->","docs/content/references/js-client/interfaces/internal.AxiosPromise.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosPromise.md -->","docs/content/references/js-client/interfaces/internal.AxiosProxyConfig.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosProxyConfig.md -->","docs/content/references/js-client/interfaces/internal.AxiosRequestConfig.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosRequestConfig.md -->","docs/content/references/js-client/interfaces/internal.AxiosRequestTransformer.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosRequestTransformer.md -->","docs/content/references/js-client/interfaces/internal.AxiosResponse.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosResponse.md -->","docs/content/references/js-client/interfaces/internal.AxiosResponseTransformer.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosResponseTransformer.md -->","docs/content/references/js-client/interfaces/internal.Cancel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.Cancel.md -->","docs/content/references/js-client/interfaces/internal.CancelToken.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.CancelToken.md -->","docs/content/references/js-client/interfaces/internal.Config.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.Config.md -->","docs/content/references/js-client/interfaces/internal.HTTPResponse.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.HTTPResponse.md -->","docs/content/references/js-client/interfaces/internal.HeadersDefaults.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.HeadersDefaults.md -->","docs/content/references/js-client/interfaces/internal.RequestOptions.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.RequestOptions.md -->","docs/content/references/js-client/interfaces/internal.RetryConfig.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.RetryConfig.md -->","docs/content/references/js-client/interfaces/internal.TransitionalOptions.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.TransitionalOptions.md -->","docs/content/references/js-client/modules/internal-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-1.md -->","docs/content/references/js-client/modules/internal-10.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-10.md -->","docs/content/references/js-client/modules/internal-11.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-11.md -->","docs/content/references/js-client/modules/internal-12.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-12.md -->","docs/content/references/js-client/modules/internal-13.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-13.md -->","docs/content/references/js-client/modules/internal-14.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-14.md -->","docs/content/references/js-client/modules/internal-15.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-15.md -->","docs/content/references/js-client/modules/internal-16.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-16.md -->","docs/content/references/js-client/modules/internal-17.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-17.md -->","docs/content/references/js-client/modules/internal-18.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-18.md -->","docs/content/references/js-client/modules/internal-19.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-19.md -->","docs/content/references/js-client/modules/internal-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-2.md -->","docs/content/references/js-client/modules/internal-20.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-20.md -->","docs/content/references/js-client/modules/internal-21.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-21.md -->","docs/content/references/js-client/modules/internal-22.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-22.md -->","docs/content/references/js-client/modules/internal-23.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-23.md -->","docs/content/references/js-client/modules/internal-24.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-24.md -->","docs/content/references/js-client/modules/internal-25.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-25.md -->","docs/content/references/js-client/modules/internal-26.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-26.md -->","docs/content/references/js-client/modules/internal-27.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-27.md -->","docs/content/references/js-client/modules/internal-28.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-28.md -->","docs/content/references/js-client/modules/internal-29.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-29.md -->","docs/content/references/js-client/modules/internal-3.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-3.md -->","docs/content/references/js-client/modules/internal-30.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-30.md -->","docs/content/references/js-client/modules/internal-31.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-31.md -->","docs/content/references/js-client/modules/internal-32.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-32.md -->","docs/content/references/js-client/modules/internal-33.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-33.md -->","docs/content/references/js-client/modules/internal-34.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-34.md -->","docs/content/references/js-client/modules/internal-35.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-35.md -->","docs/content/references/js-client/modules/internal-36.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-36.md -->","docs/content/references/js-client/modules/internal-37.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-37.md -->","docs/content/references/js-client/modules/internal-38.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-38.md -->","docs/content/references/js-client/modules/internal-39.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-39.md -->","docs/content/references/js-client/modules/internal-4.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-4.md -->","docs/content/references/js-client/modules/internal-40.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-40.md -->","docs/content/references/js-client/modules/internal-41.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-41.md -->","docs/content/references/js-client/modules/internal-42.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-42.md -->","docs/content/references/js-client/modules/internal-43.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-43.md -->","docs/content/references/js-client/modules/internal-44.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-44.md -->","docs/content/references/js-client/modules/internal-45.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-45.md -->","docs/content/references/js-client/modules/internal-46.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-46.md -->","docs/content/references/js-client/modules/internal-47.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-47.md -->","docs/content/references/js-client/modules/internal-48.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-48.md -->","docs/content/references/js-client/modules/internal-49.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-49.md -->","docs/content/references/js-client/modules/internal-5.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-5.md -->","docs/content/references/js-client/modules/internal-50.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-50.md -->","docs/content/references/js-client/modules/internal-51.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-51.md -->","docs/content/references/js-client/modules/internal-6.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-6.md -->","docs/content/references/js-client/modules/internal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md -->","docs/content/references/js-client/modules/internal-7.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-7.md -->","docs/content/references/js-client/modules/internal-8.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-8.md -->","docs/content/references/js-client/modules/internal-9.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-9.md -->","docs/content/references/js-client/modules/internal.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal.md -->","docs/content/references/services/classes/AnalyticsConfigService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FAnalyticsConfigService.md -->","docs/content/references/services/classes/AuthService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FAuthService.md -->","docs/content/references/services/classes/BatchJobService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FBatchJobService.md -->","docs/content/references/services/classes/CartService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCartService.md -->","docs/content/references/services/classes/ClaimItemService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FClaimItemService.md -->","docs/content/references/services/classes/ClaimService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FClaimService.md -->","docs/content/references/services/classes/CurrencyService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCurrencyService.md -->","docs/content/references/services/classes/CustomShippingOptionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomShippingOptionService.md -->","docs/content/references/services/classes/CustomerGroupService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomerGroupService.md -->","docs/content/references/services/classes/CustomerService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomerService.md -->","docs/content/references/services/classes/DiscountConditionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDiscountConditionService.md -->","docs/content/references/services/classes/DiscountService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDiscountService.md -->","docs/content/references/services/classes/DraftOrderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDraftOrderService.md -->","docs/content/references/services/classes/EventBusService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FEventBusService.md -->","docs/content/references/services/classes/FulfillmentProviderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FFulfillmentProviderService.md -->","docs/content/references/services/classes/FulfillmentService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FFulfillmentService.md -->","docs/content/references/services/classes/GiftCardService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FGiftCardService.md -->","docs/content/references/services/classes/IdempotencyKeyService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FIdempotencyKeyService.md -->","docs/content/references/services/classes/LineItemAdjustmentService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FLineItemAdjustmentService.md -->","docs/content/references/services/classes/LineItemService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FLineItemService.md -->","docs/content/references/services/classes/MiddlewareService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FMiddlewareService.md -->","docs/content/references/services/classes/NewTotalsService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNewTotalsService.md -->","docs/content/references/services/classes/NoteService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNoteService.md -->","docs/content/references/services/classes/NotificationService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNotificationService.md -->","docs/content/references/services/classes/OauthService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOauthService.md -->","docs/content/references/services/classes/OrderEditItemChangeService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderEditItemChangeService.md -->","docs/content/references/services/classes/OrderEditService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderEditService.md -->","docs/content/references/services/classes/OrderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderService.md -->","docs/content/references/services/classes/PaymentCollectionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentCollectionService.md -->","docs/content/references/services/classes/PaymentProviderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentProviderService.md -->","docs/content/references/services/classes/PaymentService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentService.md -->","docs/content/references/services/classes/PriceListService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPriceListService.md -->","docs/content/references/services/classes/PricingService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPricingService.md -->","docs/content/references/services/classes/ProductCategoryService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductCategoryService.md -->","docs/content/references/services/classes/ProductCollectionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductCollectionService.md -->","docs/content/references/services/classes/ProductService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductService.md -->","docs/content/references/services/classes/ProductTypeService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductTypeService.md -->","docs/content/references/services/classes/ProductVariantInventoryService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductVariantInventoryService.md -->","docs/content/references/services/classes/ProductVariantService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductVariantService.md -->","docs/content/references/services/classes/RegionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FRegionService.md -->","docs/content/references/services/classes/ReturnReasonService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FReturnReasonService.md -->","docs/content/references/services/classes/ReturnService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FReturnService.md -->","docs/content/references/services/classes/SalesChannelInventoryService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelInventoryService.md -->","docs/content/references/services/classes/SalesChannelLocationService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelLocationService.md -->","docs/content/references/services/classes/SalesChannelService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelService.md -->","docs/content/references/services/classes/SearchService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSearchService.md -->","docs/content/references/services/classes/ShippingOptionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FShippingOptionService.md -->","docs/content/references/services/classes/ShippingProfileService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FShippingProfileService.md -->","docs/content/references/services/classes/StagedJobService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStagedJobService.md -->","docs/content/references/services/classes/StoreService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStoreService.md -->","docs/content/references/services/classes/StrategyResolverService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStrategyResolverService.md -->","docs/content/references/services/classes/SwapService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSwapService.md -->","docs/content/references/services/classes/SystemPaymentProviderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSystemPaymentProviderService.md -->","docs/content/references/services/classes/TaxProviderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTaxProviderService.md -->","docs/content/references/services/classes/TaxRateService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTaxRateService.md -->","docs/content/references/services/classes/TokenService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTokenService.md -->","docs/content/references/services/classes/TotalsService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTotalsService.md -->","docs/content/references/services/classes/UserService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FUserService.md -->","docs/content/references/services/index.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Findex.md -->","docs/content/upgrade-guides/plugins/_category_.json":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2F_category_.json -->","docs/content/upgrade-guides/plugins/algolia/1-0-0.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Falgolia%2F1-0-0.md -->","docs/content/upgrade-guides/plugins/algolia/_category_.json":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Falgolia%2F_category_.json -->","docs/content/upgrade-guides/plugins/meilisearch/1-0-0.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Fmeilisearch%2F1-0-0.md -->","docs/content/upgrade-guides/plugins/meilisearch/_category_.json":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Fmeilisearch%2F_category_.json -->","packages/admin-ui/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fadmin-ui%2FREADME.md -->","packages/admin/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fadmin%2FREADME.md -->","packages/cache-inmemory/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fcache-inmemory%2FREADME.md -->","packages/cache-redis/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fcache-redis%2FREADME.md -->","packages/event-bus-local/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fevent-bus-local%2FREADME.md -->","packages/event-bus-redis/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fevent-bus-redis%2FREADME.md -->","packages/gatsby-source-medusa/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fgatsby-source-medusa%2FREADME.md -->","packages/generated/client-types/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fgenerated%2Fclient-types%2FREADME.md -->","packages/medusa-dev-cli/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-dev-cli%2FREADME.md -->","packages/medusa-file-minio/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-minio%2FREADME.md -->","packages/medusa-file-s3/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-s3%2FREADME.md -->","packages/medusa-file-spaces/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-spaces%2FREADME.md -->","packages/medusa-fulfillment-manual/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-fulfillment-manual%2FREADME.md -->","packages/medusa-fulfillment-webshipper/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-fulfillment-webshipper%2FREADME.md -->","packages/medusa-js/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-js%2FREADME.md -->","packages/medusa-payment-adyen/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-adyen%2FREADME.md -->","packages/medusa-payment-klarna/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-klarna%2FREADME.md -->","packages/medusa-payment-manual/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-manual%2FREADME.md -->","packages/medusa-payment-paypal/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-paypal%2FREADME.md -->","packages/medusa-payment-stripe/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-stripe%2FREADME.md -->","packages/medusa-plugin-algolia/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-algolia%2FREADME.md -->","packages/medusa-plugin-brightpearl/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-brightpearl%2FREADME.md -->","packages/medusa-plugin-contentful/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-contentful%2FREADME.md -->","packages/medusa-plugin-discount-generator/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-discount-generator%2FREADME.md -->","packages/medusa-plugin-economic/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-economic%2FREADME.md -->","packages/medusa-plugin-ip-lookup/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-ip-lookup%2FREADME.md -->","packages/medusa-plugin-mailchimp/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-mailchimp%2FREADME.md -->","packages/medusa-plugin-meilisearch/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-meilisearch%2FREADME.md -->","packages/medusa-plugin-restock-notification/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-restock-notification%2FREADME.md -->","packages/medusa-plugin-segment/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-segment%2FREADME.md -->","packages/medusa-plugin-sendgrid/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-sendgrid%2FREADME.md -->","packages/medusa-plugin-slack-notification/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-slack-notification%2FREADME.md -->","packages/medusa-plugin-twilio-sms/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-twilio-sms%2FREADME.md -->","packages/medusa-plugin-wishlist/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-wishlist%2FREADME.md -->","packages/medusa-react/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-react%2FREADME.md -->","packages/medusa-source-shopify/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-source-shopify%2FREADME.md -->","packages/medusa/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa%2FREADME.md -->","packages/oas/medusa-oas-cli/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Fmedusa-oas-cli%2FREADME.md -->","packages/oas/oas-github-ci/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Foas-github-ci%2FREADME.md -->","packages/oas/openapi-typescript-codegen/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Fopenapi-typescript-codegen%2FREADME.md -->",".cursorrules (medusa.mdc)":"---\ndescription: \"Medusa rules and best practices. These rules should be used when building applications with Medusa.\"\nglobs: **/*.tsx, **/*.ts, src/**/*.ts, src/**/*.tsx, src/**/*.js, src/**/*.jsx\nalwaysApply: false\n---\nYou are an expert senior software engineer specializing in modern web development, with deep expertise in TypeScript, Medusa, React.js, and TailwindCSS.\n\n# Medusa Rules\n\n## General Rules\n\n- Don't use type aliases when importing files.\n- When throwing errors, always throw `MedusaError`.\n- Always use Query to retrieve data.\n\n## Workflow Rules\n\n- When creating a workflow or step, always use Medusa's Workflow SDK `@medusajs/framework/workflows-sdk` to define it.\n- When creating a feature in an API route, scheduled job, or subscriber, always create a workflow for it.\n- When creating a workflow, always create a step for it.\n- In workflows, use `transform` for any data transformation.\n- In workflows, use `when` to define conditions.\n- Don't use `await` when calling steps.\n- In workflows, don't make the workflow function async.\n- Don't add typing to compensation function's input.\n- Only use steps in a workflow.\n\n## Data Model Rules\n\n- Use the `model` utility from `@medusajs/framework/utils` to define data models.\n- Data model variables should be camelCase. Data model names as passed to `model.define` should be snake case.\n- When adding an `id` field to a data model, always make it a primary key with `.primaryKey()`.\n- A data model can have one `id` only, other IDs should be `text` instead.\n- Data model fields should be snake case.\n\n## Service Rules\n\n- When creating a service, always make methods async.\n- If a module has data models, make the service extend `MedusaService`.\n\n## Admin Customization Rules\n\n- When sending requests in admin customizations, always use Medusa's JS SDK.\n- Use TailwindCSS for styling.\n\n# Additional Resources\n\n- [Medusa Documentation](https://docs.medusajs.com/llms-full.txt)\n"},"files":{"docs-util/typedoc-plugins/typedoc-frontmatter-plugin/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs-util%2Ftypedoc-plugins%2Ftypedoc-frontmatter-plugin%2FREADME.md -->","docs/content/development/plugins/create.md":"---\ndescription: 'Learn how to create a plugin in Medusa. This guide explains how to develop, configure, and test a plugin.'\naddHowToData: true\n---\n\n# How to Create a Plugin\n\nIn this document, you’ll learn how to create a plugin and some tips for develoment. If you’re interested to learn more about what plugins are and where to find available official and community plugins, check out the [overview document](./overview.mdx).\n\n## Prerequisites\n\nThis guide uses the Medusa CLI throughout different steps. If you don’t have the Medusa CLI installed you can install it with the following command:\n\n```bash npm2yarn\nnpm install @medusajs/medusa-cli -g\n```\n\n:::note\n\nIf you run into any errors while installing the CLI tool, check out the [troubleshooting guide](../../troubleshooting/cli-installation-errors.mdx).\n\n:::\n\n---\n\n## Initialize Project\n\nThe recommended way to create a plugin is using the Medusa CLI. Run the following command to create a new Medusa project:\n\n```bash\nmedusa new medusa-plugin-custom\n```\n\nWhere `medusa-plugin-custom` is the name of the plugin you’re creating. In Medusa, plugins are named based on their functionalities.\n\nBy convention, all plugin names start with `medusa` followed by a descriptive name of what the plugin does. For example, the Stripe plugin is named `medusa-payment-stripe`.\n\n---\n\n## Changes to package.json\n\n### Change Dependencies\n\nA basic Medusa backend installed with the `medusa new` command has dependencies similar to this:\n\n```json title=package.json\n\"dependencies\": {\n  \"@medusajs/medusa\": \"^1.3.1\",\n  \"@medusajs/medusa-cli\": \"^1.3.0\",\n  \"medusa-fulfillment-manual\": \"^1.1.31\",\n  \"medusa-interfaces\": \"^1.3.0\",\n  \"medusa-payment-manual\": \"^1.0.16\",\n  \"medusa-payment-stripe\": \"^1.1.38\",\n  \"typeorm\": \"^0.2.36\"\n},\n\"devDependencies\": {\n  \"@babel/cli\": \"^7.14.3\",\n  \"@babel/core\": \"^7.14.3\",\n  \"@babel/preset-typescript\": \"^7.14.5\",\n  \"babel-preset-medusa-package\": \"^1.1.19\"\n}\n```\n\nFor a plugin, some dependencies are not necessary. You can remove the packages `medusa-fulfillment-manual`, `medusa-payment-manual`, and `medusa-payment-stripe` as they are fulfillment and payment plugins necessary for a Medusa backend, but not for a plugin.\n\nAdditionally, you can remove `@medusajs/medusa-cli` as you don’t need to use the Medusa CLI while developing a plugin.\n\nOnce you’re done making these changes, re-run the install command to update your `node_modules` directory:\n\n```bash npm2yarn\nnpm install\n```\n\n### Recommended: Change scripts\n\nIt's recommended to remove the `seed` and `start` scripts from your `package.json` as they aren't necessary for plugin development.\n\nFurthermore, it's recommended to change the `build` command and add a new `watch` command:\n\n```json title=package.json\n\"scripts\": {\n  \"build\": \"babel src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\",\n  \"watch\": \"babel -w src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\"\n}\n```\n\nThe change to the `build` command ensures that the built files are placed as explained in the [plugin structure section](#plugin-structure). The `watch` command makes the [testing of the plugin](#test-your-plugin) easier.\n\n:::caution\n\nIf you don't make changes to the `build` and `watch` commands, please be aware of the [expected plugin structure](#plugin-structure).\n\n:::\n\n---\n\n## Develop your Plugin\n\nNow, You can start developing your plugin. This can include adding services, endpoints, entities, or anything that's relevant to your plugin.\n\n### Plugin Structure\n\nWhile developing your plugin, you can create your TypeScript or JavaScript files under the `src` directory. This includes creating services, endpoints, migrations, etc...\n\nHowever, before you test the changes on a Medusa backend or publish your plugin, you must transpile your files, which moves them into the root of your plugin directory.\n\nFor example, if you have an endpoint in `src/api/index.js`, after running the `build` or `watch` commands [as defined earlier](#change-scripts), the file should be transpiled into `api/index.js` in your plugin's root.\n\nIf files and directories aren't placed in the root of your plugin, the Medusa backend won't detect or load them.\n\nAn example of a plugin's directory before testing or publishing:\n\n```bash noReport\nmedusa-plugin-custom\n|\n|_ _ _ api\n|      |\n|      |_ _ _ index.js\n|\n|_ _ _ migrations\n|      |\n|      |_ _ _ <TIMESTAMP>_UserChanged.js\n|\n|_ _ _ src\n|      |\n|      |_ _ _ api\n|      |     |\n|      |     |_ _ _ index.ts\n|      |\n|      |_ _ _ migrations\n|      |\n|      |_ _ _ <TIMESTAMP>_UserChanged.ts\n|\n|_ _ _ package.json\n//... other files\n```\n\n### Development Resources\n\nThis guide doesn't cover how to create different files and components. If you’re interested in learning how to do that, you can check out these guides:\n\n- How to [create endpoints](../endpoints/create.md)\n- How to [create a service](../services/create-service.md)\n- How to [create a subscriber](../events/create-subscriber.md)\n- How to [create an entity](../entities/create.md)\n- How to [create a migration](../entities/migrations/create.md)\n\n---\n\n## Add Plugin Configuration\n\nPlugins often allow developers that will later use them to enter their own configuration. For example, you can allow developers to specify the API key of a service you’re integrating.\n\nTo pass a plugin its configurations on a Medusa backend, you have to add it to the `plugins` array in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-custom`,\n    options: {\n      name: \"My Store\",\n    },\n  },\n]\n```\n\nThen, you can have access to your plugin configuration in the constructor of services in your plugin:\n\n```jsx title=src/service/test.ts\n  // In a service in your plugin\nclass MyService extends TransactionBaseService {\n  constructor(container, options) {\n    super(container)\n    // options contains plugin configurations\n    this.name = options.name\n  }\n  // ...\n}\n```\n\nYou can also have access to the configurations in endpoints in your plugin:\n\n```jsx title=src/api/index.ts\n// in an endpoint in your plugin\nexport default (rootDirectory, options) => {\n  // options contain the plugin configurations\n  const router = Router()\n\n  router.get(\"/hello-world\", (req, res) => {\n    res.json({\n      message: \n      `Welcome to ${options.name ? options.name : \"Medusa\"}!`,\n    })\n  })\n\n  return router\n}\n```\n\n:::tip\n\nMake sure to include in the README of your plugin the configurations that can be passed to a plugin.\n\n:::\n\n---\n\n## Test Your Plugin\n\nWhile you develop your plugin, you’ll need to test it on an actual Medusa backend. This can be done by using the [npm link](https://docs.npmjs.com/cli/v8/commands/npm-link) command.\n\nIn the root of your plugin directory, run the following command:\n\n```bash npm2yarn\nnpm link\n```\n\nThen, change to the directory of the Medusa backend you want to test the plugin on and run the following command:\n\n```bash npm2yarn\nnpm link medusa-plugin-custom\n```\n\nWhere `medusa-plugin-custom` is the package name of your plugin.\n\nAfter linking to your plugin in a local Medusa backend, either run the `build` or `watch` commands in your plugin directory:\n\n```bash npm2yarn\n# in the directory of the plugin\nnpm run watch\n```\n\n:::tip\n\nIf you’re running the `watch` command, you don’t need to run the `build` command every time you make a change to your plugin.\n\n:::\n\nThen, add your plugin into the array of plugins in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-custom`,\n    // if your plugin has configurations\n    options: {\n      name: \"My Store\",\n    },\n  },\n]\n```\n\n:::note\n\nIf your plugin has migrations, you must run them before you start the backend. Check out the [Migrations guide](../entities/migrations/overview.mdx#migrate-command) for more details.\n\n:::\n\nFinally, start your backend and test your plugin’s functionalities:\n\n```bash npm2yarn\nnpm run start\n```\n\n### Troubleshoot Errors\n\n#### Error: The class must be a valid service implementation\n\nPlease make sure that your plugin is following the correct structure. If the error persists then please try the following fix:\n\n```bash npm2yarn\ncd <BACKEND_PATH>/node_modules/medusa-interfaces\nnpm link\ncd <BACKEND_PATH>/node_modules/@medusajs/medusa\nnpm link\ncd <PLUGIN_PATH>\nrm -rf node_modules/medusa-interfaces\nrm -rf node_modules/@medusajs/medusa\nnpm link medusa-interfaces\nnpm link @medusajs/medusa\nnpm link\ncd <BACKEND_PATH>\nnpm link your-plugin\n```\n\nWhere `<BACKEND_PATH>` is the path to your Medusa backend and `<PLUGIN_PATH>` is the path to your plugin.\n\nThis links the `medusa-interfaces` and `@medusajs/medusa` packages from your `medusa-backend` to your plugin directory and then links your plugin to your `medusa-backend`.\n\n#### APIs not loading\n\nIf the APIs you added to your Medussa backend are not loading then please try the following steps:\n\n```bash npm2yarn\ncd <PLUGIN_PATH>\nrm -rf node_modules\ncd <BACKEND_PATH>/node_modules/<PLUGIN_NAME>\nnpm install\ncd <PLUGIN_PATH>\nnpm run build\ncd <BACKEND_PATH>\nnpm run start\n```\n\nWhere `<BACKEND_PATH>` is the path to your Medusa backend, `<PLUGIN_PATH>` is the path to your plugin and `<PLUGIN_NAME>` is the name of your plugin as it is in your plugin `package.json` file.\n\n:::note\n\nIt is safe to ignore any `cross-env: command not found` error you may receive.\n\n:::\n\n---\n\n## Publish Plugin\n\nOnce you're done with the development of the plugin, you can publish it to NPM so that other Medusa developers and users can use it.\n\nPlease refer to [this guide on required steps to publish a plugin](./publish.md).\n","docs/content/development/plugins/publish.md":"---\ndescription: 'Learn how to publish a Medusa plugin to NPM. This guide lists some check lists to ensure you have implemented before publishing, as well as required steps.'\naddHowToData: true\n---\n\n# How to Publish a Plugin\n\nIn this document, you'll learn how to publish a Medusa plugin to NPM and what are some requirements to keep in mind before publishing. Afterwards, your plugin will be published on the [Medusa Plugins page](https://medusajs.com/plugins/).\n\n## Prerequisites\n\nIf you haven't created a plugin yet, please check [this guide to learn how to create a plugin](./create.md).\n\n---\n\n## Prepare the Plugin\n\n### package.json Checklist\n\nBefore publishing your plugin, make sure you've set the following fields in your plugin's package.json:\n\n- `name`: The name of your plugin. By convention, all plugin names start with `medusa` followed by a descriptive name of what the plugin does. For example, `medusa-payment-stripe`.\n- `description`: A short description of what the plugin does.\n- `author`: Your name or your company's name.\n- `repository`: This includes details about the repository that holds the source code of the plugin. It's an object that holds the following properties:\n  - `type`: Should be `git`.\n  - `url`: The URL to the repository (for example, the GitHub repository holding the code of your plugin).\n- `keywords`: An array of keywords that are related to the plugin. It's required for all Medusa plugins to use the keywords `medusa-plugin`. Other recommended keywords are:\n  - `medusa-plugin-analytics`: For plugins that add analytics functionalities or integrations.\n  - `medusa-plugin-cms`: For plugins that add CMS functionalities or integrations.\n  - `medusa-plugin-notification`: For plugins that add notification functionalities or integrations.\n  - `medusa-plugin-payment`: For plugins that add payment functionalities or integrations.\n  - `medusa-plugin-search`: For plugins that add search functionalities or integrations.\n  - `medusa-plugin-shipping`: For plugins that add shipping functionalities or integrations.\n  - `medusa-plugin-storage`: For plugins that add a file service or storage integration.\n  - `medusa-plugin-source`: For plugins that help migrate or import data into Medusa from another platform.\n  - `medusa-plugin-storefront`: For storefronts that can be integrated with a Medusa backend.\n  - `medusa-plugin-other`: For any other type of plugin.\n\n### Scripts in package.json\n\nMake sure you add the `publish` command to your `scripts` field and make the following change to the `build` command:\n\n```json title=package.json\n\"build\": \"babel src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\",\n\"prepare\": \"cross-env NODE_ENV=production npm run build\"\n```\n\nThe `build` command ensures that the plugin's built files are placed as explained in the [plugin structure](./create.md#plugin-structure) section of the Create Plugin documentation.\n\nThe `prepare` command facilitates your publishing process. You would typically run this script before publishing your plugin.\n\nThis new script requires installing the package `cross-env` as a development dependency:\n\n```bash npm2yarn\nnpm install --save-dev cross-env\n```\n\n### Plugin Structure\n\nMake sure your plugin's structure is as described in the [Create Plugin](./create.md#plugin-structure) documentation. If you've made the changes mentioned in [the above section to the scripts](#scripts-in-packagejson) in `package.json`, you should have the correct structure when you run the `prepare` command.\n\n### NPM Ignore File\n\nNot all files that you use while developing your plugin are necessary to be published.\n\nFor example, the files you add in the `src` directory are compiled to the root of the plugin directory before publishing. Then, when a developer installs your plugin, they’ll just be using the files in the root.\n\nSo, you can ignore files and directories like `src` from the final published NPM package.\n\nTo do that, create the file `.npmignore` with the following content:\n\n```bash title=.npmignore\n/lib\nnode_modules\n.DS_store\n.env*\n/*.js\n!index.js\nyarn.lock\nsrc\n.gitignore\n.eslintrc\n.babelrc\n.prettierrc\n\n# These are files that are included in a\n# Medusa project and can be removed from a\n# plugin project\nmedusa-config.js\nDockerfile\nmedusa-db.sql\ndevelop.sh\n```\n\n---\n\n## Publish Plugin\n\nThis section explains how to publish your plugin to NPM.\n\nBefore you publish a plugin, you must [create an account on NPM](https://www.npmjs.com/signup).\n\n### Run Prepare Command\n\nBefore you publish or update your plugin, make sure to run the `prepare` command [defined earlier](#packagejson-checklist):\n\n```bash npm2yarn\nnpm run prepare\n```\n\n### Login\n\nIn your terminal, log in with your NPM account:\n\n```bash\nnpm login\n```\n\nYou’ll be asked to enter your NPM email and password.\n\n### Publish Plugin Package\n\nOnce you’re logged in, you can publish your package with the following command:\n\n```bash\nnpm publish\n```\n\nYour package is then published on NPM and everyone can use it and install it.\n\n### Install Plugin\n\nTo install your published plugin, you can run the following command on any Medusa backend project:\n\n```bash npm2yarn\nnpm install medusa-plugin-custom\n```\n\n### Update Plugin\n\nTo update your plugin at a later point, you can run the following command to change the NPM version:\n\n```bash\nnpm version <type>\n```\n\nWhere `<type>` indicates the type of version update you’re publishing. For example, it can be `major` or `minor`. You can see the [full list of types in NPM’s documentation](https://docs.npmjs.com/cli/v8/commands/npm-version).\n\nThen, publish the new update:\n\n```bash\nnpm publish\n```\n","docs/content/plugins/analytics/segment.md":"---\ndescription: 'Learn how to integrate Segment with the Medusa backend. Learn how to add custom tracking with Segment and Medusa.'\naddHowToData: true\n---\n\n# Segment\n\nIn this document, you’ll learn about the [Segment plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-segment), what it does, and how to install and use it.\n\n## Overview\n\n[Segment](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-segment) is a powerful Customer Data Platform that allows users to collect, transform, send and archive their customer data.\n\nSegment allows users to manage different tracking and marketing tools using one API and interface, making it very simple to try out and integrate with different services in your ecommerce stack.\n\nCommon integration use cases that can be implemented with Segment include:\n\n- Google Analytics\n- Mailchimp\n- Zendesk\n- Data warehousing for advanced data analytics and segmentation through services like Snowflake\n\nThe Segment plugin in Medusa allows you to track ecommerce events and record them in Segment. Then, you can push these events to other destinations using Segment.\n\n### Events That the Segment Plugin Tracks\n\nBy default, the Segment plugin tracks the following events:\n\n1. `order.placed`: Triggered when an order is placed.\n2. `order.shipment_created`: Triggered when a shipment is created for an order.\n3. `claim.created`: Triggered when a new claim is created.\n4. `order.items_returned`: Triggered when an item in an order is returned.\n5. `order.canceled`: Triggered when an order is canceled.\n6. `swap.created`: Triggered when a swap is created.\n7. `swap.shipment_created`: Triggered when a shipment is created for a swap.\n8. `swap.payment_completed`: Triggered when payment for a swap is completed.\n\n:::tip\n\nCheck out the [Event Reference](../../development/events/events-list.md) to learn about all available events in Medusa.\n\n:::\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nIt is assumed you already have a Medusa backend installed. If not, please follow the [Quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa starter.\n\n### Segment Account\n\nYou need to [create a Segment account](https://app.segment.com/signup/) to follow along with the tutorial. Segment offers a free plan to get started quickly.\n\n---\n\n## Create a Segment Source\n\nOn your Segment dashboard, choose Catalog from the sidebar under Connections.\n\n![Under Connections in the sidebar choose Catalog](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000661/Medusa%20Docs/Segment/rAeJkP3_ybyutz.png)\n\nThen, in the catalog list find the Backend category and choose Node.js from the list.\n\n![Choose Node.js under the Backend category](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000672/Medusa%20Docs/Segment/6RxQbW6_wjphte.png)\n\nThis opens a new side menu. In the side menu, click on Add Source.\n\n![Click on Add Source in the side menu showing information about the Node.js source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000683/Medusa%20Docs/Segment/0VZJnpd_ehagat.png)\n\nThis opens a new page to create a Node.js source. Enter the name of the source then click Add Source.\n\n![Enter a name under the Name field then click on the Add Source button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000693/Medusa%20Docs/Segment/u2hzkB5_t59yhj.png)\n\nOn the new source dashboard, you should find a Write Key. You’ll use this key in the next section after you install the Segment plugin on your Medusa backend.\n\n![The Write Key is available on the new source's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000708/Medusa%20Docs/Segment/OTJVsz7_v95qla.png)\n\n### Optional: Add Destination\n\nAfter you create the Segment source, you can add destinations. This is where the data is sent when you send them to Segment. You can add more than one destination.\n\nTo add a destination, on the same Segment source page, click on Add Destination in the Destinations section.\n\n![Click on the Add Destination button on the source page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000718/Medusa%20Docs/Segment/FrKlUxh_zlnkww.png)\n\nYou can then choose from a list of destinations such as Google Universal Analytics or Facebook Pixel.\n\n![List of some of the available destinations in Segment's catalog](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000730/Medusa%20Docs/Segment/y2YnPUh_mgfqdo.png)\n\nThe process of integrating each destination is different, so you must follow the steps detailed in Segment for each destination you choose.\n\n---\n\n## Install the Segment Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Segment plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-segment\n```\n\nThen, add the following environment variable:\n\n```bash\nSEGMENT_WRITE_KEY=<YOUR_SEGMENT_WRITE_KEY>\n```\n\nWhere `<YOUR_SEGMENT_WRITE_KEY>` is the Write Key shown on the page of the Segment source you created in the previous section.\n\nFinally, in `medusa-config.js`, add the following new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-segment`,\n    options: {\n      write_key: process.env.SEGMENT_WRITE_KEY,\n    },\n  },\n]\n```\n\n---\n\n## Test the Plugin\n\nRun your backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, try triggering one of the [mentioned events earlier in this document](#events-that-the-segment-plugin-tracks). For example, you can place an order either using the [REST APIs](https://docs.medusajs.com/api/store) or using the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx).\n\nAfter you place an order, on the Segment source that you created, click on the Debugger tab. You should see at least one event triggered for each order you place. If you click on the event, you can see the order details are passed to the event.\n\n![The order completed event is recorded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000743/Medusa%20Docs/Segment/LQVJTGg_i5jyge.png)\n\nIf you added a destination, you can also check your destination to make sure the data is reflected there.\n\n:::note\n\nIf the data is not appearing on the destination, the issue is related to your configuration between the Segment source and destination and not related to the Segment plugin. Go over the steps that Segment showed you when you added the destination to figure out the issue.\n\n:::\n\n---\n\n## Add Custom Tracking\n\nIn some cases, you might want to track more events or custom events. You can do that using the `SegmentService` provided by the Segment Plugin.\n\nFor example, you can add the following subscriber to listen to the `customer.created` event and add tracking for every customer created:\n\n```jsx title=src/subscribers/customer.ts\nclass CustomerSubscriber {\n  constructor({ segmentService, eventBusService }) {\n    this.segmentService = segmentService\n\n    eventBusService.subscribe(\n      \"customer.created\",\n      this.handleCustomer\n    )\n  }\n\n  handleCustomer = async (data) => {\n    const customerData = data\n    delete customerData[\"password_hash\"]\n\n    this.segmentService.track({\n      event: \"Customer Created\",\n      userId: data.id,\n      properties: customerData,\n    })\n  }\n}\n\nexport default CustomerSubscriber\n```\n\nYou resolve the `SegmentService` using dependency injection. Then, when the `customer.created` event is triggered, you use the `track` method available in the `SegmentService` to send tracking data to Segment.\n\n:::info\n\nServices can be resolved and used in Subscribers, endpoints, and other Services. Learn [how to resolve services in the Services documentation](../../development/services/create-service.md#using-your-custom-service).\n\n:::\n\n`track` accepts an object of data, where the keys `event` and `userId` are required. Instead of `userId`, you can use `anonymousId` to pass an anonymous user ID.\n\nIf you want to pass additional data to Segment, pass them under the `properties` object key.\n\nThe `SegmentService` also provides the method `identify` to tie a user to their actions or specific traits.\n\n### Test Custom Tracking\n\nAfter adding the above subscriber, run your backend again if it isn’t running and create a customer using the REST APIs or one of the Medusa storefronts. If you check the Debugger in your Segment source, you should see a new event “Customer Created” tracked. If you click on it, you’ll see the data you passed to the `track` method.\n\n![The customer created event is recoreded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000759/Medusa%20Docs/Segment/4LD41xE_qungdw.png)\n\n---\n\n## See Also\n\n- [Services Overview](../../development/services/create-service.md)\n- [Subscribers Overview](../../development/events/create-subscriber.md)\n- [Events Reference](../../development/events/events-list.md)\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n","docs/content/plugins/cms/contentful/customize-contentful.md":"---\ndescription: 'Learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.'\naddHowToData: true\n---\n\n# Customize your Medusa and Contentful Integration\n\nIn this document, you’ll learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.\n\n## Overview\n\nPart of what makes the integration between Medusa and Contentful powerful is that it’s completely customizable.\n\nOn the backend, you can create Contentful migrations that allow you to add or edit Content Types in Contentful. Although this can be done through Contentful’s interface, this solution allows you to create a reusable codebase for your store that is independent of a specific Contentful Space.\n\nOn your storefront, you can add any necessary components that can render the Content Types you create.\n\nAs an example to explain this process, in this documentation, you’ll create a migration that creates a Rich Text content model in Contentful and edits the Page and Product content models to allow using Rich Text content as a tile in pages and products. Then, you’ll modify the Gatsby storefront to render the Rich Text content model.\n\n---\n\n## Prerequisites\n\nIt’s assumed you already have set up a Medusa backend integrated with Contentful and have a Gatsby storefront integrated with Contentful. If not, [please follow this documentation first](index.md).\n\n---\n\n## Create a Contentful Migration\n\nThe Contentful migrations are located in the `contentful-migrations` directory in the Medusa Contentful backend starter. So, if you want to create your own Contentful migrations, you can create them under that directory.\n\nHere’s an example of a migration created in a new file `contentful-migrations/rich-text.js`:\n\n```jsx title=contentful-migrations/rich-text.js\n#! /usr/bin/env node\n\nrequire(\"dotenv\").config()\n\nconst { runMigration } = require(\"contentful-migration\")\n\nconst options = {\n  spaceId: process.env.CONTENTFUL_SPACE_ID,\n  accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,\n  environment: process.env.CONTENTFUL_ENVIRONMENT,\n  yes: true,\n}\n\nconst migration = async () => {\n  await runMigration({\n    ...options,\n    migrationFunction: function (migration, context) {\n\n      // create Rich Text content model\n      const richText = migration\n        .createContentType(\"richText\")\n        .name(\"Rich Text\")\n        .displayField(\"title\")\n    \n      richText\n        .createField(\"title\")\n        .name(\"Title (Internal)\")\n        .type(\"Symbol\")\n      richText\n        .createField(\"body\")\n        .name(\"Body\")\n        .type(\"RichText\")\n\n      // edit Page content model\n      const page = migration.editContentType(\"page\")\n\n      page.editField(\"contentModules\").items({\n        type: \"Link\",\n        linkType: \"Entry\",\n        validations: [\n          {\n            linkContentType: [\n              \"hero\", \"tileSection\", \"richText\",\n            ],\n          },\n        ],\n      })\n\n      // edit Product content model\n      const product = migration.editContentType(\"product\")\n\n      product\n        .createField(\"contentModules\")\n        .name(\"Content Modules\")\n        .type(\"Array\")\n        .items({\n          type: \"Link\",\n          linkType: \"Entry\",\n          validations: [\n            {\n              linkContentType: [\"richText\"],\n            },\n          ],\n        })\n    },\n  })\n}\n\nmigration()\n```\n\nThis example creates a new content model Rich Text that has two fields: title and body. It also edits the Page content model to allow using Rich Text content models on the page.\n\nIn addition, it edits the Product content model by adding a new field `contentModules`. This field accepts an array of sections that can be of type Rich Text. This allows you to display rich details on a product page.\n\nYou can also add other types of content models the `contentModules` should accept. For example, to accept `tileSection` add it to the `linkContentType` option:\n\n```jsx\nproduct\n  .createField(\"contentModules\")\n  .name(\"Content Modules\")\n  .type(\"Array\")\n  .items({\n    type: \"Link\",\n    linkType: \"Entry\",\n    validations: [\n      {\n        linkContentType: [\"richText\", \"tileSection\"],\n      },\n    ],\n  })\n```\n\n### Run a Contentful Migration\n\nTo run a Contentful Migration that you create you can use the following command:\n\n```bash\nnode <file_path>\n```\n\nWhere `<file_path>` is the path of the file you created.\n\nTo run the Contentful migration in the previous example, you can use the following command:\n\n```bash\nnode contentful-migrations/rich-text.js\n```\n\nThis runs the Contentful migration in that file and makes the necessary changes in your Contentful Space.\n\n### Test if Contentful Migration Worked\n\nTo check if the above migration worked, in your Contentful Space dashboard go to Content Models from the navigation bar. You should see the new content model Rich Text.\n\n![Rich Text can be found among content models](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001241/Medusa%20Docs/Contentful/W5WzcTG_vau6c9.png)\n\nThe above migration also allows you to add Rich Text content to pages. To test this out, go to Content from the navigation bar and choose Page in the select field next to the search bar. This shows the available pages in your Contentful Space.\n\n![Filter content to only show pages by choosing Page in the Content Type select field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001251/Medusa%20Docs/Contentful/ht87z4e_gmbk6c.png)\n\nChoose one of the pages. For example, the About page. Then, scroll down to the Add content button. If you click on it, you should be able to choose Rich Text under New Content.\n\n![Click on add content and choose from the dropdown Rich Text](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001261/Medusa%20Docs/Contentful/pJ5yM0m_dfb7vp.png)\n\nClick on Rich Text and a new form will open to create new Rich Text content. It has the same fields that you defined in the migration file.\n\n![The Rich Text form is filled with data](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001271/Medusa%20Docs/Contentful/lAglhc9_ejfs2i.png)\n\nAfter adding the content you want, click on the Publish button on the right then go back to the About page editor.\n\n![Click on the Publish button at the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001281/Medusa%20Docs/Contentful/oYpQKsc_piobfk.png)\n\nSimilarly, in the About page editor, click on the Publish Changes button on the right to view these changes later in the storefront.\n\n![Click on the Publish changes button at the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001296/Medusa%20Docs/Contentful/DIMo3hd_ylxkr3.png)\n\nSimilarly, you can add Rich Text content to any product page.\n\n![A rich text content is added to a product](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001305/Medusa%20Docs/Contentful/wgI8mEB_wbukpd.png)\n\n---\n\n## Render New Content Models in the Storefront\n\nAfter creating a new content model in your Contentful Space, you must add the necessary component to render it in your Gatsby storefront.\n\n### Create Component\n\nTo render the Rich Text content you created in the previous example, create the file `src/components/rich-text/rich-text.js` with the following content:\n\n```jsx title=src/components/rich-text/rich-text.js\nimport React from \"react\"\nimport { \n  renderRichText,\n} from \"gatsby-source-contentful/rich-text\"\n\nconst RichText = ({ data }) => {\n  return (\n    <div style={{\n      maxWidth: \"870px\",\n      margin: \"0 auto\",\n      paddingTop: \"20px\",\n      paddingBottom: \"20px\",\n    }}>\n      {data.body ? renderRichText(data.body) : \"\"}\n    </div>\n  )\n}\n\nexport default RichText\n```\n\nThis creates the component `RichText` responsible for rendering the Rich Text content model. Notice that the fields of the content model are available under the `data` prop variable.\n\n### Render Component in a Page\n\nSince the Rich Text model can be added to any page, you must edit `src/pages/{ContentfulPage.slug}.js` to show it.\n\nIn `src/pages/{ContentfulPage.slug}.js`, import the `RichText` component at the top of the file:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nimport RichText from \"../components/rich-text/rich-text\"\n```\n\nThen, in the returned JSX add a new case to the switch statement:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nswitch (cm.internal.type) {\n  // ...\n  case \"ContentfulRichText\":\n      return <RichText key={cm.id} data={cm} />\n  default:\n    return null\n}\n```\n\nIf the content model of a tile is Rich Text, you’ll display it with the `RichText` component.\n\nFinally, to retrieve all necessary data of the Rich Text content, in the `query` GraphQL variable add the following after the `... on ContentfulTileSection` fragment:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nexport const query = graphql`\n        # find the following line\n        ... on ContentfulTileSection {\n\n        }\n        # add the following\n        ... on ContentfulRichText {\n          id\n          body {\n            raw\n          }\n          internal {\n            type\n          }\n        }\n      }\n    }\n  }\n`\n```\n\n### Test Rich Text in Page Content\n\nTo test this out, run your Medusa backend by running this command in its directory:\n\n```bash\nnpm run start\n```\n\nThen run the Gatsby storefront by running this command in its directory:\n\n```bash\nnpm run start\n```\n\nThis runs the Gatsby storefront on `localhost:8000`. Go to the storefront in your browser and open the About page. You should see the Rich Text content you added.\n\n![Rich Text content you added to the about page should be visible now](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001320/Medusa%20Docs/Contentful/aQAY9Vz_yw4eop.png)\n\n### Render Component in a Product Page\n\nIn the example migration, you also edited the product page to include a new Content Modules field that allows inserting Rich Text content.\n\nTo render them on the Product Page, add the following in the GraphQL query defined in the `query` variable inside `product`:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nexport const query = graphql`\n  query ($id: String!) {\n    product: contentfulProduct(id: { eq: $id }) {\n      # Other fields\n      contentModules {\n        ... on ContentfulRichText {\n          id\n          body {\n            raw\n          }\n          internal {\n            type\n          }\n        }\n      }\n    }\n  }\n`\n```\n\n:::note\n\nIf you added other accepted Content Models to the `contentModules` field of the Product content type, make sure to add them here.\n\n:::\n\nThen, in `src/views/product.js` import the `RichText` component:\n\n```jsx title=src/views/product.js\nimport RichText from \"../components/rich-text/rich-text\"\n```\n\nAnd in the returned JSX add the following before the last `</div>`:\n\n```jsx title=src/views/product.js\n<div className={styles.contentModules}>\n  {product.contentModules?.map((cm) => {\n    switch (cm.internal.type) {\n      case \"ContentfulRichText\":\n        return <RichText key={cm.id} data={cm} />\n      default:\n        return null\n    }\n  })}\n</div>\n```\n\n:::note\n\nIf you added other accepted Content Models to the `contentModules` field of the Product content type, make sure to add cases for them here to display them.\n\n:::\n\nThis loops over `contentModules` and if the type of the content is Rich Text, it is rendered with the `RichText` component.\n\n### Test Rich Text on a Product Page\n\nRestart the Gatsby storefront then open a product that you added Rich Text content to. You should see the Rich Text component at the end of the page.\n\n![Rich Text content you added to the product should be visible at the end of the page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001342/Medusa%20Docs/Contentful/LGiVMxx_rqsr2l.png)\n\n---\n\n## See Also\n\n- Deploy your Medusa backend to [Heroku](../../../deployments/server/deploying-on-heroku.mdx), [Qovery](../../../deployments/server/deploying-on-qovery.md), or [DigitalOcean](../../../deployments/server/deploying-on-digital-ocean.md).\n- [How to deploy your Gatsby storefront to Netlify](../../../deployments/storefront/deploying-gatsby-on-netlify.md).\n","docs/content/plugins/cms/contentful/index.md":"---\ndescription: 'Learn how to integrate Contentful with the Medusa backend and a Gatsby storefront. Contentful is a headless CMS backend that provides rich CMS functionalities.'\naddHowToData: true\n---\n\n# Contentful\n\nIn this document, you’ll learn how to integrate a Medusa backend with Contentful to add rich Content Management System (CMS) functionalities\n\n## Overview\n\n[Contentful](https://www.contentful.com/) is a headless CMS service that allows developers to integrate rich CMS functionalities into any platform.\n\nBy integrating Contentful to Medusa, you can benefit from powerful features in your ecommerce store including detailed product CMS details, easy-to-use interface to use for static content and pages, localization, and much more.\n\n---\n\n## Prerequisites\n\n### Needed Accounts\n\n- [Contentful](https://www.contentful.com/sign-up/) account with a space created. A space is created by default when you create a new account.\n\n### Required Tools\n\n- PostgreSQL with an empty database created. You can follow [this documentation to learn how to install it for your operating system](../../../development/backend/prepare-environment.mdx#postgres).\n- Redis. You can follow [their documentation to learn how to install it](https://redis.io/docs/getting-started/installation/).\n- Git’s CLI tool. You can follow [this documentation to learn how to install it for your operating system](../../../development/backend/prepare-environment.mdx#git).\n- Gatsby’s CLI tool. You can follow [this documentation to install it](https://www.gatsbyjs.com/docs/reference/gatsby-cli/#how-to-use-gatsby-cli).\n- Medusa’s CLI tool. You can follow [this documentation to install it](../../../cli/reference.md#how-to-install-cli-tool).\n\n---\n\n## Install Medusa Backend Using Contentful Starter\n\nInstead of using the default Medusa backend starter, you must use the [Contentful starter](https://github.com/medusajs/medusa-starter-contentful) to install a backend that is ready to be used with Contentful. This backend contains all the necessary files to make the integration work.\n\nIn your terminal, run the following command to install the backend:\n\n```bash\nmedusa new medusa-contentful https://github.com/medusajs/medusa-starter-contentful\n```\n\nThis installs a new Medusa backend in the directory `medusa-contentful`.\n\n### Add Contentful Environment Variables\n\nChange to the `medusa-contentful` directory. In `.env` you’ll find three variables:\n\n```bash title=.env\nCONTENTFUL_SPACE_ID=\nCONTENTFUL_ACCESS_TOKEN=\nCONTENTFUL_ENV=\n```\n\n#### Value of CONTENTFUL_ENV\n\nSet the value for `CONTENTFUL_ENV` to `master`.\n\n#### Value of CONTENTFUL_SPACE_ID\n\nTo retrieve the value of `CONTENTFUL_SPACE_ID`, go to your [Contentful Space dashboard](https://app.contentful.com/). Then, choose Settings in the navigation bar and select API keys from the dropdown.\n\n![Click on Settings then select API keys from the dropdown](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001360/Medusa%20Docs/Contentful/hvp6zo5_uaqtmi.png)\n\nOn the APIs page, click Add API Key.\n\n![Click on the Add API Key button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001375/Medusa%20Docs/Contentful/KlH2BDg_fiqd80.png)\n\nIn the form, enter a name for the API key and click Save.\n\n![A form with the name of API key entered](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001385/Medusa%20Docs/Contentful/hOG1RqM_tmctae.png)\n\nThen, copy the value of Space ID and set it as the value of `CONTENTFUL_SPACE_ID`.\n\n#### Value of CONTENTFUL_ACCESS_TOKEN\n\nGo back to the API Keys page and click on the Content management tokens tab.\n\n![API Keys page with Content management tokens tab opened](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001394/Medusa%20Docs/Contentful/7nWx1xk_co8ykw.png)\n\nClick on Generate personal token. A pop-up will open where you have to enter a name for the token.\n\n![Pop up model for Personal Access Token with token name entered](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001403/Medusa%20Docs/Contentful/y6R81pH_yhbg1u.png)\n\nOnce you click Generate, a personal access token will be generated. Use it to set the value of `CONTENTFUL_ACCESS_TOKEN`.\n\n:::warning\n\nOnce you close the pop-up, you won’t be able to get the value of the personal access token again. Make sure to copy it first.\n\n:::\n\n### Configure Redis\n\nIn `.env` set the value of your Redis URL:\n\n```bash\nREDIS_URL=<YOUR_REDIS_URL>\n```\n\nWhere `<YOUR_REDIS_URL>` is the URL of your Redis service.\n\n:::tip\n\nThe default Redis URL is `redis://localhost:6379`.\n\n:::\n\n### Configure PostgreSQL\n\nIn `.env` set the value of your PostgreSQL URL:\n\n```bash\nDATABASE_URL=<YOUR_DB_URL>\n```\n\nWhere `<YOUR_DB_URL>` is the URL of your PostgreSQL database.\n\n:::tip\n\nYou can find the format of the PostgreSQL database URL in [PostgreSQL’s documentation](https://www.postgresql.org/docs/current/libpq-connect.html).\n\n:::\n\nThen, in `medusa-config.js` in the exported object, comment out or remove the SQLite database configurations and add the PostgreSQL database configurations:\n\n```jsx title=medusa-config.js\nmodule.exports = {\n  projectConfig: {\n    // ...\n    database_url: DATABASE_URL,\n    database_type: \"postgres\",\n    // REMOVE OR COMMENT OUT THE BELOW:\n    // database_database: \"./medusa-db.sql\",\n    // database_type: \"sqlite\",\n  },\n}\n```\n\n### Migrate Content Types to Contentful\n\nThe Contentful starter provides the necessary scripts to create content types in your Contentful space.\n\nRun the following commands to migrate the content types into Contentful:\n\n```bash\nnpm run migrate:contentful\n```\n\nOnce this command finishes executing, in your Contentful Space dashboard click on Content Model in the navigation bar. You should see a list of new content models added.\n\n![Content Model page filled with new content models](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001419/Medusa%20Docs/Contentful/ZDJPNkr_avr7gy.png)\n\n### Seed Content to Contentful\n\nThe next step is to seed the Contentful Space with some content data.\n\nRun the following command to seed some data into it:\n\n```bash\nnpm run seed:contentful\n```\n\nAfter this command finishes running, in your Contentful Space dashboard click on Content in the navigation bar. You should see a list of new content added.\n\n![Content page filled with new content](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001429/Medusa%20Docs/Contentful/bfgFxPg_jb4zok.png)\n\n### (Optional) Seed Medusa Database\n\nThis step seeds your Medusa database with demo data to easily add products as well as other data to your Medusa backend.\n\nRun the following command to seed the Medusa database:\n\n```bash\nnpm run seed\n```\n\n### Start the Backend\n\nTo start the backend run the following command:\n\n```bash\nnpm run start\n```\n\nIf you seeded the database with demo data, you should see that events related to the products are triggered.\n\n![Seed the database](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001440/Medusa%20Docs/Contentful/ci4accp_okaro3.png)\n\nThe Contentful integration ensures a two-way sync between the Medusa backend and Contentful. So, when new products are added to Medusa, these products will be added to your Contentful Space as well.\n\n---\n\n## (Optional) Add Products with the Medusa Admin\n\nUsing the Medusa admin, you can add products to your Medusa backend. This will trigger product events that subsequently add these products to Contentful.\n\n---\n\n## Manage Contentful Data\n\n### Publish Products\n\nProducts added through the integration with the Medusa backend are by default saved as drafts. To show them on the storefront, you must set them as published.\n\nTo do that, open your Contentful Space Dashboard and click on Content in the Navigation bar. Then, change Any to Product in the select field next to the search bar. This shows only the content of the type Product, rather than all content.\n\nClick on the checkbox at the top of the table to select all products then click Publish to publish these products.\n\n![Select all products' checkboxes and click the publish button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001452/Medusa%20Docs/Contentful/3NrH5tJ_f16iym.png)\n\n### Added Featured Products\n\nOn the homepage of the storefront, there’s a featured products tile that shows a set of products. Before running the storefront, you must add at least one product to the list.\n\nTo do that, open your Contentful Space Dashboard and click on Content in the Navigation bar. Make sure the select field next to the search bar is set to Any and search for Featured Products. You should find one content of the type Tile Section.\n\n![Search for the featured products tile section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001462/Medusa%20Docs/Contentful/2gS0ozY_b2tpsb.png)\n\nClick on it. You should find on the page an empty Tiles section where you can add tiles and products.\n\n![On the content's page find the empty tiles section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001472/Medusa%20Docs/Contentful/inuN1OB_ipiszl.png)\n\nClick on Add content then on Add existing content and pick some of the products you want to show on the homepage.\n\n![Add at least 1 product as a tile](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001500/Medusa%20Docs/Contentful/N5m4LbF_fb97tm.png)\n\nOnce you’re done adding products, click on Publish changes in the right sidebar.\n\n![Click on the publish changes button on the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001508/Medusa%20Docs/Contentful/URNpkXq_cb5ppp.png)\n\n---\n\n## Setup Gatsby Storefront\n\nIn this section, you’ll set up the Gatsby storefront of your Medusa backend.\n\nIn your terminal in a different directory of the Medusa backend, run the following command:\n\n```bash\ngatsby new medusa-contentful-storefront https://github.com/medusajs/medusa-contentful-storefront\n```\n\nThis will install the storefront in the directory `medusa-contentful-storefront`.\n\n### Set Contentful Environment Variables\n\nChange to the newly created directory and rename `.env.template`:\n\n```bash\nmv .env.template .env\n```\n\nThen, open `.env`. You should find the following environment variables:\n\n```bash title=.env\nCONTENTFUL_SPACE_ID=\nCONTENTFUL_ACCESS_TOKEN=\n```\n\nThe value of `CONTENTFUL_SPACE_ID` is the same value you [retrieved while setting up the Medusa backend](#value-of-contentful_space_id).\n\nTo retrieve the value of `CONTENTFUL_ACCESS_TOKEN`, on your Contentful Space dashboard click on Settings then API keys. Then, choose the API key you created in the previous section.\n\nYou should find the field \"Content Delivery API - access token”. Copy its value and set it as the value of `CONTENTFUL_ACCESS_TOKEN`.\n\n![Copy the value of the Content Delivery API access token](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001522/Medusa%20Docs/Contentful/a7dl7DI_mziogm.png)\n\n### Start Storefront\n\nMake sure the Medusa backend is still running. Then, start the storefront:\n\n```bash\nnpm run start\n```\n\nThis starts the storefront at `localhost:8000`. Open it in your browser and you should see on the homepage the Featured Product section with the products you chose on Contentful.\n\n![The storefront with the featured products section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001537/Medusa%20Docs/Contentful/f6xwYbS_w1v993.png)\n\n---\n\n## Make Changes to Content\n\nYou can update the CMS content of your storefront in your Contentful Space. This includes the CMS pages or product details.\n\n:::note\n\nIf you make changes to the data while your Gatsby storefront is running, the changes are not reflected instantly. That’s because the data is fetched from Contentful during build time. Instead, you must restart your Gatsby storefront to see the changes you make.\n\n:::\n\n---\n\n## What’s Next\n\nLearn [How to customize your Contentful backend and storefront](./customize-contentful.md).\n\n## See Also\n\n- How to deploy your Medusa backend to [Heroku](../../../deployments/server/deploying-on-heroku.mdx), [Qovery](../../../deployments/server/deploying-on-qovery.md), or [DigitalOcean](../../../deployments/server/deploying-on-digital-ocean.md).\n- [How to deploy your Gatsby storefront to Netlify](../../../deployments/storefront/deploying-gatsby-on-netlify.md).\n","docs/content/plugins/cms/strapi.md":"---\ndescription: 'Learn how to integrate Strapi with the Medusa backend. Learn how to install the plugin and test two-way sync between the ecommerce and CMS services.'\naddHowToData: true\n---\n\n# Strapi\n\nIn this document, you’ll learn how to integrate Strapi with Medusa to add rich Content Management System (CMS) functionalities.\n\n:::info\n\nThis plugin is a [community plugin](https://github.com/Deathwish98/medusa-plugin-strapi) and is not managed by the official Medusa team. At the moment, it supports v4 of Strapi.\n\n:::\n\n## Overview\n\n[Strapi](https://strapi.io/) is an open source headless CMS service that allows developers to have complete control over their content models. It can be integrated into many other frameworks, including Medusa.\n\nBy integrating Strapi to Medusa, you can benefit from powerful features in your ecommerce store including detailed product CMS details, [two-way sync](#test-two-way-sync), an easy-to-use interface to use for static content and pages, and much more.\n\n---\n\n## Prerequisites\n\n### Medusa CLI\n\n[Medusa’s CLI tool](../../cli/reference.md#how-to-install-cli-tool) is required to set up a new Medusa backend.\n\n### Redis\n\nRedis is required for the Strapi plugin to work as expected on your Medusa backend. If you don’t have it installed, you can learn [how to install it in this documentation](../../development/backend/prepare-environment.mdx#redis).\n\n---\n\n## Create Strapi Project\n\nThe first step is to create a Strapi project using the Medusa template:\n\n```bash\nnpx create-strapi-app strapi-medusa --template shahednasser/strapi-medusa-template\n```\n\nThis creates the Strapi project in the directory `strapi-medusa`.\n\nOnce the installation is finished, the Strapi development backend will run on `localhost:1337`. A new page will also open in your default browser to create a new admin user and log in.\n\n![Create User Form in Strapi](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001083/Medusa%20Docs/Strapi/9pFE1Ij_h2dicv.png)\n\nOnce you log in, you can access the Strapi dashboard.\n\n### Create a Strapi User\n\nThe Strapi plugin in Medusa requires the credentials of a Strapi user. To create a new user, go to Content Manager, then choose User under Collection Types.\n\n![Showing the users under Content Manager](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001096/Medusa%20Docs/Strapi/YyGJPUf_mr5sx7.png)\n\nClick on the Create new entry button at the top right. This opens a new form to enter the user’s details.\n\n![Create User Form on Strapi](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001105/Medusa%20Docs/Strapi/mdMhSlV_vy7ygv.png)\n\nEnter the user’s username, email, and password. Once you’re done, click on the Save button at the top right.\n\n---\n\n## Modify Permissions\n\nBy default, created users have the “Authenticated” role. Before you start using the Strapi plugin on your Medusa backend, you must modify this role’s permissions to allow making changes to Medusa’s models in Strapi.\n\nOn your Strapi dashboard, go to Settings → Roles → Authenticated. Then, under the Permissions section, expand the accordion of each content model type and check the Select All checkbox.\n\n![An example of modifying permissions on the Product content type](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001116/Medusa%20Docs/Strapi/QgckXqS_wlyxe8.png)\n\nOnce you’re done, click the Save button at the top right.\n\n---\n\n## Create Medusa Backend\n\n:::note\n\nYou can use the Strapi plugin on an existing Medusa backend, however, existing data (such as existing products) will not be imported. Only newer data will be imported.\n\n:::\n\nTo create your Medusa backend, run the following command:\n\n```bash\nmedusa new medusa-backend --seed\n```\n\nThe `--seed` flag creates an SQLite database and seeds it with some demo data.\n\n### Configure your Backend\n\nOnce the command is done executing, change to the newly created `medusa-backend` directory. Then, in `medusa-config.js`, change the exported object at the end of the file to enable Redis:\n\n```jsx title=medusa-config.js\nmodule.exports = {\n  projectConfig: {\n    redis_url: REDIS_URL,\n    // ...\n  },\n  // ...\n}\n```\n\nThis uses the default Redis configurations. If you want to learn more about configuring Redis, [check out this documentation](../../development/backend/configurations.md#redis).\n\n:::tip\n\nIt is also recommended to use PostgreSQL for an optimal experience, however, it is not required. Learn how to [install](../../development/backend/prepare-environment.mdx#postgres) and [configure](../../development/backend/configurations.md#postgresql-configurations) it on your Medusa backend.\n\n:::\n\n---\n\n## Install the Strapi Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Strapi plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-strapi\n```\n\nThen, add the following environment variables:\n\n```bash\nSTRAPI_USER=<STRAPI_IDENTIFIER>\nSTRAPI_PASSWORD=<STRAPI_PASSWORD>\nSTRAPI_PROTOCOL=http # Optional\nSTRAPI_URL=<STRAPI_URL> # Optional\nSTRAPI_PORT=<STRAPI_PORT> # Optional\n```\n\nWhere:\n\n- `<STRAPI_IDENTIFIER>` is either the email address or username of the user you created in the previous step.\n- `<STRAPI_PASSWORD>` is the password of the user you created in the previous step.\n- `<STRAPI_PROTOCOL>` is the protocol of your Strapi backend. If you’re using a local Strapi backend, set this to `http`. The default value is `https`.\n- `<STRAPI_URL>` is the URL of your Strapi backend. By default, the URL is `localhost`.\n- `<STRAPI_PORT>` is the port the Strapi backend runs on. By default, the port is `1337`.\n\nFinally, open `medusa-config.js` and add the following new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-strapi`,\n    options: {\n      strapi_medusa_user: process.env.STRAPI_USER,\n      strapi_medusa_password: process.env.STRAPI_PASSWORD,\n      strapi_url: process.env.STRAPI_URL, // optional\n      strapi_port: process.env.STRAPI_PORT, // optional\n      strapi_protocol: process.env.STRAPI_PROTOCOL, // optional\n    },\n  },\n]\n```\n\n---\n\n## Run Medusa Backend\n\nMake sure the Strapi backend is still running. If not, you can run the following command to run the Strapi backend in the directory of the Strapi project:\n\n```bash npm2yarn\nnpm run develop\n```\n\nThen, in the directory of your Medusa backend, run the following command to start the Medusa backend:\n\n```bash npm2yarn\nnpm run start\n```\n\nOnce you start your Medusa backend, if you ran the `--seed` command when you created your Medusa backend, you’ll see that `product.created` events have been triggered along with similar events. This will update Strapi with the products you seeded.\n\n---\n\n## Test Two-Way Sync\n\nThis plugin ensures a two-way sync between the Medusa backend and the Strapi backend. So, if you update data on Strapi, it will be reflected on your Medusa backend, and vice-versa.\n\n### Update Products on Strapi\n\nTry updating any products on Strapi by going to Content Manager → Products and choosing a product from the list. Then, make changes to the product and click Save. If you view the products on your backend now, either using the [REST APIs](/api/admin/#tag/Product/operation/GetProducts) or using [the Medusa Admin](../../user-guide/products/index.mdx), you’ll see that the product has been updated.\n\n### Update Products on Medusa\n\nIf you try to update products on Medusa either using the [REST APIs](/api/admin/#tag/Product/operation/PostProductsProduct) or using [the Medusa Admin](../../user-guide/products/manage.mdx), you’ll see that the product is also updated on Strapi.\n\n---\n\n## See Also\n\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n- [Create your own plugin](../../development/plugins/create.md)\n","docs/content/plugins/file-service/minio.md":"---\ndescription: 'Learn how to integrate MinIO with the Medusa backend. Learn how to install the MinIO plugin on the Medusa backend and configure it.'\naddHowToData: true\n---\n\n# MinIO\n\nThis document will guide you through installing the MinIO file service plugin on your Medusa backend.\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document will focus on setting up [MinIO](https://min.io) on your local machine and connecting Medusa to it.\n\n---\n\n## Prerequisites\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n---\n\n## Set up MinIO\n\nYou can follow [MinIO’s guide to install it](https://docs.min.io/minio/baremetal/quickstart/quickstart.html) on your machine based on your operating system.\n\nAfter installing it, make sure MinIO is always running when your Medusa backend is running. It’s recommended that you set up an alias to quickly start the MinIO backend as instructed at the end of the installation guides in MinIO.\n\n### Change MinIO port\n\nIn MinIO’s documentation, port `9000` is used for the address of the MinIO backend. However, this collides with the port for the Medusa backend. You must change the port for MinIO to another one (for example, port `9001`).\n\nAfter setting up and installing MinIO on your system/sub-system, you can run the following command to change MinIO port to `9001` (or any other available port) instead of `9000` to avoid the port clash:\n\n```bash\nminio backend ~/minio --console-address :9090 --address :9001\n```\n\n### Create a MinIO bucket\n\nAfter installing MinIO and logging into the Console, you can create a bucket that will store the files of your Medusa backend by following these steps:\n\n1. Click on the “Create Bucket” button\n2. For the Bucket Name field, enter a name for the bucket. By MinIO’s requirement, the name can only consist of lower case characters, numbers, dots (`.`), and hyphens (`-`).\n3. Click on the Create Bucket button.\n4. On the bucket's page, click on the cog icon at the top right to configure the bucket.\n5. Click on the edit icon next to Access Policy.\n6. In the pop-up that opens, change the selected value to “public” and click Set.\n\n:::warning\n\nChanging the Access Policy to public will allow anyone to access your bucket. Avoid storing sensitive data in the bucket.\n\n:::\n\n### Generate Access Keys\n\nTo generate access keys for your plugin:\n\n1. From the sidebar of your MinIO console, click on Access Keys\n2. Click on the \"Create access key\" button\n3. This will open a new form with randomly-generated keys. Click on the Create button.\n4. A pop-up will then show the value for your Access Key and Secret Key. Copy them to use in the next section.\n\n:::caution\n\nYou will not be able to access the Secret Key after closing the pop-up. So, make sure to store it somewhere to use later when configuring the plugin.\n\n:::\n\n---\n\n## Plugin Installation\n\nIn the directory of your Medusa backend, run the following command to install the MinIO plugin:\n\n```bash npm2yarn\nnpm install medusa-file-minio\n```\n\nThen, add the following environment variables in `.env`:\n\n```bash\nMINIO_ENDPOINT=<ENDPOINT>\nMINIO_BUCKET=<BUCKET>\nMINIO_ACCESS_KEY=<ACCESS_KEY>\nMINIO_SECRET_KEY=<SECRET_KEY>\n```\n\nWhere `<ENDPOINT>` is the URL of your MinIO backend, `<BUCKET>` is the name of the bucket you created earlier, and `<ACCESS_KEY>` and `<SECRET_KEY>` are the keys you generated in the previous section.\n\nFinally, configure your `medusa-config.js` to include the plugin with the required options:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        endpoint: process.env.MINIO_ENDPOINT,\n        bucket: process.env.MINIO_BUCKET,\n        access_key_id: process.env.MINIO_ACCESS_KEY,\n        secret_access_key: process.env.MINIO_SECRET_KEY,\n    },\n  },\n]\n```\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test it Out\n\nRun your Medusa backend alongside the [Medusa Admin](../../admin/quickstart.mdx) to try out your new file service. Upon editing or creating products, you can now upload thumbnails and images, that are stored in a MinIO backend.\n\n![Image Uploaded on Admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000429/Medusa%20Docs/MinIO/alabX2i_dzg2mh.png)\n\n---\n\n## Private Buckets\n\n### Handle Exports\n\nMedusa provides export functionalities including exporting products and orders. For exports to work, you must [set up a private bucket](#create-private-bucket).\n\n### Handle Imports\n\nMedusa provides import functionalities including importing products. For imports to work, you must [set the private bucket](#add-private-bucket-environment-variable) to be the same as the public bucket.\n\n### Create Private Bucket\n\nTo create a private bucket, follow along the [steps mentioned earlier](#create-a-minio-bucket), but keep Access Policy set to private.\n\n### Add Private Bucket Environment Variable\n\nAdd the following environment variable on your Medusa backend:\n\n```bash\nMINIO_PRIVATE_BUCKET=exports\n```\n\nThen, add a new option to the plugin’s options in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        // ...\n        private_bucket: process.env.MINIO_PRIVATE_BUCKET,\n    },\n  },\n]\n```\n\n### Use Different Secret and Access Keys\n\nIf you only add the `private_bucket` option, the same secret and access keys that you used for the public bucket will be used to access the private bucket.\n\nIf you want to use different keys, set the following environment variables:\n\n```bash\nMINIO_PRIVATE_ACCESS_KEY=<YOUR_PRIVATE_ACCESS_KEY>\nMINIO_PRIVATE_SECRET_KEY=<YOUR_PRIVATE_SECRET_KEY>\n```\n\nWhere `<YOUR_PRIVATE_ACCESS_KEY>` and `<YOUR_PRIVATE_SECRET_KEY>` are the access key and secret access key that have access to the private MinIO bucket.\n\nThen, add two new options to the plugin’s options in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        // ...\n        private_access_key_id: \n          process.env.MINIO_PRIVATE_ACCESS_KEY,\n        private_secret_access_key: \n          process.env.MINIO_PRIVATE_SECRET_KEY,\n    },\n  },\n]\n```\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the MinIO domain name into the configured images domain names. This is because all URLs of product images will be from the MinIO backend.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"127.0.0.1\",\n    ],\n  },\n})\n```\n\nWhere `127.0.0.1` is the domain of your local MinIO backend.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","docs/content/plugins/file-service/s3.md":"---\ndescription: 'Learn how to integrate the S3 plugin with the Medusa backend. Learn how to configure and use S3 to store images related to the Medusa backend.'\naddHowToData: true\n---\n\n# S3\n\nIn this document, you’ll learn how to install the [S3 plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-s3) on your Medusa backend and use it for storage.\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting the images. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document focuses on using [S3](https://aws.amazon.com/s3/) to store images and files uploaded to the Medusa backend.\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n### Required Accounts\n\nYou need to [create an AWS account](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin) to follow along with this documentation.\n\n---\n\n## Create S3 Bucket\n\nOn your AWS Console, search for S3 in the search box at the top. Then, choose the first result you see which should be S3 under the Services category.\n\n![Enter S3 in the search box and choose S3 from the result in the Services category](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000547/Medusa%20Docs/S3/wuPTfQ8_bzbm8n.png)\n\nThen, on the new page that opens, click on Create Bucket button at the top right of the Buckets table.\n\n![Click on the Create bucket button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000527/Medusa%20Docs/S3/h95D38T_gptwpr.png)\n\nThe Create Bucket form will open. In the General Configuration section enter a name for the bucket and choose a region for the bucket. Both of the values of these fields are important as you’ll use them throughout the documentation.\n\n![Enter bucket name and choose region in the General Configuration section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000559/Medusa%20Docs/S3/wlxUU8I_m4ngqd.png)\n\nNext, in the Object Ownership section, choose ACLs enabled. Then, two radio buttons will show below it. Choose Bucket owner preferred.\n\n![In the Object Ownership section choose ACLs enabled, then choose Bucket owner preferred for the Object ownership field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000572/Medusa%20Docs/S3/ChUXQPt_eg8mn1.png)\n\nThen, in the “Block Public Access settings for this bucket” section, uncheck the “Block all public access” checkbox. This shows a warning message at the bottom of the section with another checkbox. Check the checkbox to ensure you understand that objects in the bucket are publicly accessible.\n\n![Uncheck Block all public access and all fields under it, and check the checkbox field \"I acknowledge that the current settings might result in this bucket and the objects within becoming public\"](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000586/Medusa%20Docs/S3/abHquFh_wypfbx.png)\n\nYou can leave the rest of the fields in the form as is and scroll down to the end of the page. Then, click on the Create Bucket button.\n\n---\n\n## Manage Bucket Policies\n\nOn the page of the bucket you just created, click on the Permissions tab. Then, scroll down until you find the Bucket policy section. Click on Edit in that section.\n\n![Find the bucket policy section which should be empty and click on the Edit button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000607/Medusa%20Docs/S3/I6BBLwv_zoknft.png)\n\nIn the Edit Bucket Policy page, enter the following in the field:\n\n```json\n{\n  \"Version\": \"2012-10-17\",\n  \"Id\": \"Policy1397632521960\",\n  \"Statement\": [\n    {\n      \"Sid\": \"Stmt1397633323327\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"AWS\": \"*\"\n      },\n      \"Action\": \"s3:GetObject\",\n      \"Resource\": \"arn:aws:s3:::<YOUR_BUCKET_NAME>/*\"\n    }\n  ]\n}\n```\n\nMake sure to replace `<YOUR_BUCKET_NAME>` with the name of the bucket you created.\n\nOnce you’re done, scroll down and click on the Save changes button.\n\n### User Permissions\n\nYour user must have the `AmazonS3FullAccess` policy attached to it. You can refer to [this guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-and-attach-iam-policy.html) to learn how to add a policy if necessary.\n\n### Obtain Access Keys\n\nYou must obtain access keys for your user as you’ll use them to integrate the S3 plugin in Medusa with your bucket. To obtain the Access Key ID and the Secret Access Key, check out [this guide](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\n\n---\n\n## Install the S3 Plugin\n\nIn the directory of your Medusa backend, run the following command to install the S3 Plugin:\n\n```bash npm2yarn\nnpm install medusa-file-s3\n```\n\nThen, add the following environment variables:\n\n```bash\nS3_URL=<YOUR_BUCKET_URL>\nS3_BUCKET=<YOUR_BUCKET_NAME>\nS3_REGION=<YOUR_BUCKET_REGION>\nS3_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>\nS3_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>\n```\n\nWhere:\n\n1. `<YOUR_BUCKET_URL>` is the URL to your bucket. It’s in the form `https://<BUCKET_NAME>.s3.<REGION>.amazonaws.com`, where `<BUCKET_NAME>` is the name of the bucket and the `<REGION>` is the region the bucket is created in. If you’re not sure which region, on your bucket’s page on S3 click on Properties. You can then find the region under AWS Region. Make sure to only copy the code (for example, `us-east-1`).\n2. `<YOUR_BUCKET_NAME>` is the name of the bucket you created.\n3. `<YOUR_BUCKET_REGION>` is the region code of your bucket. For example, `us-east-1`.\n4. `<YOUR_ACCESS_KEY_ID>` is the Access Key ID that you created for your user.\n5. `<YOUR_SECRET_ACCESS_KEY>` is the Secret Access Key that you created for your user.\n\nFinally, in `medusa-config.js`, add to the `plugins` array the following new item:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-s3`,\n    options: {\n        s3_url: process.env.S3_URL,\n        bucket: process.env.S3_BUCKET,\n        region: process.env.S3_REGION,\n        access_key_id: process.env.S3_ACCESS_KEY_ID,\n        secret_access_key: process.env.S3_SECRET_ACCESS_KEY,\n    },\n  },\n]\n```\n\n### Add AWS Configurations\n\nYou can pass AWS configurations in the plugin's options under the property `aws_config_object`. This property is an object that accepts [AWS Configurations](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html) as its properties.\n\nFor example, you can pass the `region`, `access_key_id` and `secret_access_key` in `aws_config_object`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-s3`,\n    options: {\n        s3_url: process.env.S3_URL,\n        bucket: process.env.S3_BUCKET,\n        aws_config_object: {\n          region: process.env.S3_REGION,\n          access_key_id: process.env.S3_ACCESS_KEY_ID,\n          secret_access_key: process.env.S3_SECRET_ACCESS_KEY,\n        },\n    },\n  },\n]\n```\n\nMake sure to define `S3_REGION`, `S3_ACCESS_KEY_ID`, and `S3_SECRET_ACCESS_KEY` in your environment variables first.\n\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test the S3 Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, you can either test the plugin using the [REST APIs](/api/store) or using the [Medusa Admin](../../admin/quickstart.mdx).\n\nOn the Medusa Admin, create a new product and, in the Images section, upload an image then click Save. If the integration was successful, the product image will be uploaded successfully.\n\n![An image is successfully uploaded on the Medusa Admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000619/Medusa%20Docs/S3/zPC9qFH_dgqf76.png)\n\nYou can also check that the image was uploaded on the S3 bucket’s page.\n\n![Image is now available in the S3 Bucket](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000630/Medusa%20Docs/S3/NJZ5bP8_ovv9rc.png)\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the S3 bucket domain name into the configured images’ domain names. This is because all URLs of product images will be from the S3 bucket.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"<BUCKET_NAME>.s3.amazonaws.com\",\n    ],\n  },\n})\n```\n\nWhere `<BUCKET_NAME>` is the name of the S3 bucket you’re using.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","docs/content/plugins/file-service/spaces.md":"---\ndescription: 'Learn how to integrate Spaces with the Medusa backend. Learn how to install and configure the Spaces plugin on the Medusa backend.'\naddHowToData: true\n---\n\n# Spaces\n\nIn this document, you’ll learn how to install the [Spaces plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-spaces) on your Medusa backend and use it for storage.\n\n<div>\n  <video width=\"100%\" height=\"100%\" playsinline autoplay muted controls>\n    <source src=\"https://user-images.githubusercontent.com/59018053/154808767-7c030254-1879-41fd-a71c-b31c5508d8a4.mp4\" type=\"video/mp4\" />\n  </video>\n</div>\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting the images. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document focuses on using [Spaces](https://www.digitalocean.com/products/spaces) to store images and files uploaded to the Medusa backend.\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n### Required Accounts\n\nYou need to [create a DigitalOcean account](https://cloud.digitalocean.com/registrations/new) to follow along with this documentation. A credit card is required during registration.\n\n---\n\n## Create DigitalOcean Space\n\nIn your DigitalOcean account, click on the Create button at the top right, then choose Spaces from the dropdown.\n\n![Click on the green Create button at the top right, then choose Spaces in the dropdown](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000907/Medusa%20Docs/Spaces/AQqMRoJ_uhkywh.png)\n\nIn the Create a Space form, you can choose any of the regions listed. You can alternatively leave all settings as they are and scroll down to the Finalize and Create section.\n\n![The Space form can be left as is and move towards the Finalize and Create section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000929/Medusa%20Docs/Spaces/ipsIqoA_zeyfkf.png)\n\nIn the Finalize and Create section, enter a name for the field “Choose a unique name”. You’ll use this name later in the integration with Medusa. Also, select the project you want to add the new Space to.\n\n![Enter a name for the Space in the Choose a unique name field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000949/Medusa%20Docs/Spaces/NhlRX0h_ptdhpk.png)\n\nOnce you’re done, click on the Create a Space button. This creates the Space and redirects you to the Space’s page.\n\n---\n\n## Create Space Access Keys\n\nChoose API from the bottom of the sidebar.\n\n![Choose API from the bottom of the sidebar.](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000964/Medusa%20Docs/Spaces/6zNoDOW_tqbeqv.png)\n\nThis opens the Application & API page. Scroll down to Spaces Access Keys and click the Generate New Key button.\n\n![In the Spaces access keys section, click the Generate New Key button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000977/Medusa%20Docs/Spaces/NUocdgh_doi0dq.png)\n\nThis shows a table with the Name field editable. Enter a name for the Access Keys and click on the checkmark button to save and generate the Spaces access keys.\n\n![Enter a name for the Space access key in the field under the Name column](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000987/Medusa%20Docs/Spaces/ihJBx0T_xfe4rh.png)\n\nThen, two keys will be available under the Key column of the table. The first one is the Access Key ID and the second is the Secret Access Key. Copy both as you’ll use them later.\n\n:::caution\n\nThe secret access key will not be shown again after you leave the page. Make sure to copy it when you see it or you’ll need to re-generate a new one.\n\n:::\n\n---\n\n## Install the Spaces Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Spaces plugin:\n\n```bash npm2yarn\nnpm install medusa-file-spaces\n```\n\nThen, add the following environment variables:\n\n```bash\nSPACE_URL=<YOUR_SPACE_URL>\nSPACE_BUCKET=<YOUR_SPACE_NAME>\nSPACE_ENDPOINT=<YOUR_SPACE_ENDPOINT>\nSPACE_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>\nSPACE_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>\n```\n\nWhere:\n\n1. `<YOUR_SPACE_URL>` is the URL of your Space which you can find on the Space’s page below the Space’s name.\n\n![The URL is available under the Space's name on the Space's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001004/Medusa%20Docs/Spaces/cA3vkvh_maixr0.png)\n\n2. `<YOUR_SPACE_NAME>` is the name of your Space.\n3. `<YOUR_SPACE_ENDPOINT>` is your Space’s endpoint which can be found by going to your Space’s page, clicking on the Settings tab, and scrolling to the Endpoint section.\n\n![Endpoint can be found on the Settings tab in the Space's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001017/Medusa%20Docs/Spaces/CnvLr6R_tudlhu.png)\n\n4. `<YOUR_ACCESS_KEY_ID>` and `<YOUR_SECRET_ACCESS_KEY>` are the keys you created in the previous section.\n\nFinally, in `medusa-config.js` add a new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-spaces`,\n    options: {\n        spaces_url: process.env.SPACE_URL,\n        bucket: process.env.SPACE_BUCKET,\n        endpoint: process.env.SPACE_ENDPOINT,\n        access_key_id: process.env.SPACE_ACCESS_KEY_ID,\n        secret_access_key: process.env.SPACE_SECRET_ACCESS_KEY,\n    },\n  },\n]\n```\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test the Space Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, you can either test the plugin using the [REST APIs](/api/store) or using the [Medusa Admin](../../admin/quickstart.mdx).\n\nOn the Medusa Admin, create a new product and, in the Images section, upload an image then click Save. If the integration was successful, the product image will be uploaded successfully.\n\n![Image successfully uploaded on Medusa's admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001039/Medusa%20Docs/Spaces/oTi4jIw_c6vefa.png)\n\nYou can also check that the image was uploaded on the Space’s page.\n\n![Image can be seen on the Space's page on DigitalOcean](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001050/Medusa%20Docs/Spaces/BexmRkg_gimk1d.png)\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the Space’s domain name into the configured images’ domain names. This is because all URLs of product images will be from the Space.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"<YOUR_SPACE_DOMAIN>\",\n    ],\n  },\n})\n```\n\nWhere `<YOUR_SPACE_DOMAIN>` is the domain name for your Space which can be retrieved from the Space URL. For example, `medusa-backend.digitaloceanspaces.com`.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n- [Deploy the Medusa backend on DigitalOcean](../../deployments/server/deploying-on-digital-ocean.md).\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","docs/content/plugins/notifications/mailchimp.md":"---\ndescription: 'Learn how to integrate Mailchimp with the Medusa backend. Learn how to install the plugin on the Medusa backend and how to add a subscription form.'\naddHowToData: true\n---\n\n# Mailchimp\n\nIn this document, you’ll learn about the Mailchimp plugin, what it does, and how to use it.\n\n## Overview\n\n[Mailchimp](https://mailchimp.com) is an email marketing service that can be used to create newsletters and subscriptions.\n\nBy integrating Mailchimp with Medusa, customers will be able to subscribe from Medusa to your Mailchimp newsletter and will be automatically added to your Mailchimp subscribers list.\n\n:::note\n\nThis plugin is only used to allow your customers to subscribe but does not actually do any email sending. If you want to send emails to customers based on specific events, for example, when an order is placed, you should check out the [SendGrid plugin](./sendgrid.mdx) instead.\n\n:::\n\n---\n\n## Prerequisites\n\nBefore going further with this guide make sure you have a Medusa backend set up. You can follow the [Quickstart guide](../../development/backend/install.mdx).\n\nYou also need a Mailchimp account, so please [create one](https://mailchimp.com/signup) before you start.\n\n---\n\n## Obtain Mailchimp Keys\n\nTo integrate the plugin into Medusa you need two keys: The API Key and the Newsletter list or Audience ID. The API Key acts as a credential for your account, whereas the Newsletter list ID determines which audience should the subscribed customers be added to.\n\nYou can follow [this guide](https://mailchimp.com/help/about-api-keys/#Find_or_generate_your_API_key) from Mailchimp’s documentation to obtain an API Key.\n\nYou can follow [this guide](https://mailchimp.com/help/find-audience-id/) from Mailchimp’s documentation to obtain your Newsletter list or Audience ID.\n\n---\n\n## Install the Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Mailchimp plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-mailchimp\n```\n\n### Add Keys\n\nOpen `.env` and add the following keys:\n\n```bash\nMAILCHIMP_API_KEY=<YOUR_API_KEY>\nMAILCHIMP_NEWSLETTER_LIST_ID=<YOUR_NEWSLETTER_LIST_ID>\n```\n\nMake sure to replace `<YOUR_API_KEY>` with your API Key and `<YOUR_NEWSLETTER_LIST_ID>` with your Newsletter list or Audience ID.\n\n### Add Plugin to Medusa Config\n\nOpen `medusa-config.js` and add the new plugin into the `plugins` array:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...,\n  {\n    resolve: `medusa-plugin-mailchimp`,\n    options: {\n      api_key: process.env.MAILCHIMP_API_KEY,\n      newsletter_list_id: \n        process.env.MAILCHIMP_NEWSLETTER_LIST_ID,\n    },\n  },\n]\n```\n\n---\n\n## Test it Out\n\nThis plugin adds a new `POST` endpoint at `/mailchimp/subscribe`. This endpoint requires in the body of the request an `email` field. You can also optionally include a `data` object that holds any additional data you want to send to Mailchimp. You can check out [Mailchimp’s subscription documentation](https://mailchimp.com/developer/marketing/api/list-members/add-member-to-list/) for more details on the data you can send.\n\n### Without Additional Data\n\nTry sending a `POST` request to `/mailchimp/subscribe` with the following JSON body:\n\n```json noReport\n{\n  \"email\": \"example@gmail.com\"\n}\n```\n\nIf the subscription is successful, a `200` response code will be returned with `OK` message.\n\n![Postman](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000185/Medusa%20Docs/Mailchimp/tpr7uCF_g4rymn.png)\n\nIf you check your Mailchimp dashboard, you should find the email added to your Audience list.\n\n![Email Added](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000199/Medusa%20Docs/Mailchimp/ALz6WUq_e4mkcs.png)\n\n### With Additional Data\n\nHere’s an example of sending additional data with the subscription:\n\n```json noReport\n{\n    \"email\": \"example@gmail.com\",\n    \"data\": {\n        \"tags\": [\"customer\"]\n    }\n}\n```\n\nAll fields inside `data` will be sent to Mailchimp’s API along with the email.\n\n---\n\n## Use Mailchimp Service\n\nIf you want to subscribe to users without using this endpoint or at a specific place in your code, you can use Mailchimp’s service `mailchimpService` in your endpoints, services, or subscribers. This service has a method `subscribeNewsletter` which lets you use the subscribe functionality.\n\nHere’s an example of using the `mailchimpService` inside an endpoint:\n\n```jsx title=src/api/index.ts\nconst mailchimpService = req.scope.resolve(\"mailchimpService\")\n\nmailchimpService.subscribeNewsletter(\n  \"example@gmail.com\",\n  { tags: [\"customer\"] } // optional\n)\n```\n\n:::tip\n\nYou can learn more about how you can use services in your endpoints, services, and subscribers in the [Services documentation](../../development/services/create-service.md#using-your-custom-service).\n\n:::\n\n---\n\n## Add Subscription Form\n\nThis section has a simple example of adding a subscription form in your storefront. The code is for React-based frameworks but you can use the same logic for your storefronts regardless of the framework you are using.\n\nYou’ll need to use [axios](https://github.com/axios/axios) to send API requests, so if you don’t have it installed make sure you install it first:\n\n```bash npm2yarn\nnpm install axios\n```\n\nThen, in the component you want to add the subscription form add the following code:\n\n```tsx\nimport axios from \"axios\"\nimport { useState } from \"react\"\n\nexport default function NewsletterForm() {\n  const [email, setEmail] = useState(\"\")\n\n  function subscribe(e) {\n    e.preventDefault()\n    if (!email) {\n      return\n    }\n\n    axios.post(\"http://localhost:9000/mailchimp/subscribe\", {\n      email,\n    })\n      .then((e) => {\n        alert(\"Subscribed sucessfully!\")\n        setEmail(\"\")\n      })\n      .catch((e) => {\n        console.error(e)\n        alert(\"An error occurred\")\n      })\n  }\n\n  return (\n    <form onSubmit={subscribe}>\n      <h2>Sign Up for our newsletter</h2>\n      <input \n        type=\"email\"\n        name=\"email\" \n        id=\"email\" \n        placeholder=\"example@gmail.com\"\n        value={email} \n        onChange={(e) => setEmail(e.target.value)}\n      />\n      <button type=\"submit\">Subscribe</button>\n    </form>\n  )\n}\n```\n\nThis will result in a subscription form similar to the following:\n\n![Subscription Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000210/Medusa%20Docs/Mailchimp/JHIFEwe_fu4rkv.png)\n\nIf you try entering an email and clicking Subscribe, the email will be subscribed to your Mailchimp newsletter successfully.\n\n---\n\n## See Also\n\n- Check out [SendGrid plugin](./sendgrid.mdx) for more Email functionalities.\n- [Plugins Overview](../../development/plugins/overview.mdx)\n","docs/content/plugins/notifications/slack.md":"---\ndescription: 'Learn how to integrate Slack with the Medusa backend. Learn how to create and configure a Slack app and install the Slack plugin on the Medusa backend.'\naddHowToData: true\n---\n\n# Slack\n\nIn this documentation, you'll learn how to add the [Slack plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-slack-notification) to your Medusa backend to start receiving order notifications.\n\n## Overview\n\nWhen you add this plugin, the store owner can receive order notifications into their Slack workspace.\n\nThe notification contains details about the order including:\n\n- Customer's details and address\n- Items ordered, their quantity, and the price\n- Order totals including Tax amount.\n- Promotion details if there are any (this is optional and can be turned off).\n\nThe plugin registers a subscriber to the `order.placed` event. When an order is placed, the subscriber handler method uses the ID of the order to retrieve order details mentioned above.\n\nThen, the order notificaiton is sent to Slack using Webhooks. So, you'll need to create a Slack App, add it into your workspace, and activate Incoming Webhooks.\n\n---\n\n## Prerequisites\n\n### Slack Account\n\nTo follow along with this guide, you need to have a Slack account with a connected workspace. If you don’t have one, you can [create a free account on Slack](https://slack.com/).\n\n### Medusa Backend\n\nThis tutorial assumes you already have a Medusa backend installed. If you don’t, please follow along with the [quickstart guide](../../development/backend/install.mdx). The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n---\n\n## Create Slack App\n\nThe first step is to create a Slack app. This app will be connected to your workspace and will have Incoming Webhooks activated to receive notifications from the Medusa backend using a Webhook URL.\n\nGo to [Slack API](https://api.slack.com/) and click Create app. This will take you to a new page with a pop-up. In the pop-up, choose From scratch.\n\n![Create Slack App](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000844/Medusa%20Docs/Slack/liVfwF8_ryzly3.png)\n\nYou’ll then need to enter some info like the App name and the workspace it will be connected to. Once you’re done, the app will be created.\n\n### Activate Incoming Webhooks\n\nTo activate Incoming Webhooks, choose Features > Incoming Webhooks from the sidebar. At first, it will be disabled so make sure to enable it by switching the toggle.\n\n![Incoming Webhooks](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000856/Medusa%20Docs/Slack/5Y0nv4p_mugzkb.png)\n\n### Add New Webhook\n\nAfter activating Incoming Webhooks, on the same page scroll down and click on the Add New Webhook to Workspace button.\n\n![Add New Webhook](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000867/Medusa%20Docs/Slack/sejdIqH_wyqgs5.png)\n\nAfter that, choose the channel to send the notifications to. You can also choose a DM to send the notifications to. Once you’re done click Allow.\n\n![Choose channel or DM](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000882/Medusa%20Docs/Slack/Zw3f5uF_hljfpr.png)\n\nThis will create a new Webhook with a URL which you can see in the table at the end of the Incoming Webhooks page. Copy the URL as you’ll use it in the next section.\n\n---\n\n## Install Slack Plugin\n\nThe next step is to install Medusa’s [Slack plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-slack-notification) into your Medusa backend.\n\nOpen the terminal in the Medusa backend’s directory and run the following command:\n\n```bash npm2yarn\nnpm install medusa-plugin-slack-notification\n```\n\nAfter that, open `medusa-config.js` and add the new plugin with its configurations in the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...,\n  {\n    resolve: `medusa-plugin-slack-notification`,\n    options: {\n      show_discount_code: false,\n      slack_url: `<WEBHOOK_URL>`,\n      admin_orders_url: `http://localhost:7001/a/orders`,\n    },\n  },\n]\n```\n\n- Make sure to change `<WEBHOOK_URL>` with the Webhook URL you copied after creating the Slack app.\n- The `show_discount_code` option enables or disables showing the discount code in the notification sent to Slack. \n- The `admin_orders_url` is the prefix of the URL of the order detail pages on your admin panel. If you’re using Medusa’s Admin locally, it should be `http://localhost:7001/a/orders`. This will result in a URL like `http://localhost:7001/a/orders/order_01FYP7DM7PS43H9VQ1PK59ZR5G`.\n\nThat’s all you need to do to integrate Slack into Medusa!\n\n---\n\n## See Also\n\n- Install [Medusa's Admin](../../admin/quickstart.mdx) for the full order-management experience.\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","docs/content/plugins/notifications/twilio-sms.md":"---\ndescription: 'Learn how to integrate Twilio SMS with the Medusa backend. Learn how to install the Twilio SMS plugin and test it out.'\naddHowToData: true\n---\n\n# Twilio SMS\n\nIn this document, you’ll learn about the Twilio SMS Plugin, what it does, and how to use it in Medusa.\n\n## Overview\n\n[Twilio’s SMS API](https://www.twilio.com/sms) can be used to send users SMS messages instantly. It has a lot of additional features such as Whatsapp messaging and conversations.\n\nBy integrating Twilio SMS into Medusa, you’ll have easy access to Twilio’s SMS API to send SMS messages to your users and customers. You can use it to send Order confirmations, verification codes, reset password messages, and more.\n\n:::note\n\nThis plugin only gives you access to the Twilio SMS API but does not implement sending messages at any given point. You’ll have to add this yourself where you need it. You can look at the [example later in this tutorial](#example-usage-of-the-plugin) to check how you can send an SMS for a new order.\n\n:::\n\n---\n\n## Prerequisites\n\nBefore going further with this guide make sure you have a Medusa backend set up. You can follow the [Quickstart guide](../../development/backend/install.mdx) if you don’t.\n\nYou also must have a [Twilio account created](https://www.twilio.com/sms) so if you don’t already please go ahead and create one.\n\n---\n\n## Retrieve Credentials\n\nFor the [Twilio SMS plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-twilio-sms), you need three credentials from your Twilio account: Account SID, Auth Token, and a Twilio phone number to send from. You can find these three from your [Twilio Console’s homepage](https://console.twilio.com).\n\n---\n\n## Install Plugin\n\nIn the directory of your Medusa backend, run the following command to install [Twilio SMS plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-twilio-sms):\n\n```bash npm2yarn\nnpm install medusa-plugin-twilio-sms\n```\n\nThen, you’ll need to add your credentials in `.env`:\n\n```bash\nTWILIO_SMS_ACCOUNT_SID=<YOUR_ACCOUNT_SID>\nTWILIO_SMS_AUTH_TOKEN=<YOUR_AUTH_TOKEN>\nTWILIO_SMS_FROM_NUMBER=<YOUR_TWILIO_NUMBER>\n```\n\nMake sure to replace `<YOUR_ACCOUNT_SID>`, `<YOUR_AUTH_TOKEN>`, and `<YOUR_TWILIO_NUMBER>` with the credentials you obtained from your Twilio Console.\n\nFinally, add the plugin and its options in the `medusa-config.js` file to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-twilio-sms`,\n    options: {\n      account_sid: process.env.TWILIO_SMS_ACCOUNT_SID,\n      auth_token: process.env.TWILIO_SMS_AUTH_TOKEN,\n      from_number: process.env.TWILIO_SMS_FROM_NUMBER,\n    },\n  },\n]\n```\n\n---\n\n## Example Usage of the Plugin\n\nThis plugin adds the service `twilioSmsService` to your Medusa backend. To send SMS using it, all you have to do is resolve it in your file as explained in the [Services](../../development/services/create-service.md#using-your-custom-service) documentation.\n\nIn this example, you’ll create a subscriber that listens to the `order.placed` event and sends an SMS to the customer to confirm their order.\n\n:::tip\n\nFor this example to work, you'll need to have an event bus module installed and configured, which should be available by default.\n\n:::\n\nCreate the file `src/services/sms.js` in your Medusa backend with the following content:\n\n```jsx title=src/services/sms.js\nclass SmsSubscriber {\n  constructor({ \n    twilioSmsService, \n    orderService, \n    eventBusService,\n  }) {\n    this.twilioSmsService_ = twilioSmsService\n    this.orderService = orderService\n\n    eventBusService.subscribe(\"order.placed\", this.sendSMS)\n  }\n\n  sendSMS = async (data) => {\n    const order = await this.orderService.retrieve(data.id, {\n      relations: [\"shipping_address\"],\n    })\n\n    if (order.shipping_address.phone) {\n      this.twilioSmsService_.sendSms({\n        to: order.shipping_address.phone,\n        body: \"We have received your order #\" + data.id,\n      })\n    }\n  }\n}\n\nexport default SmsSubscriber\n```\n\nIn the `constructor`, you resolve the `twilioSmsService` and `orderService` using dependency injection to use it later in the `sendSMS` method.\n\nYou also subscribe to the event `order.placed` and sets the event handler to be `sendSMS`.\n\nIn `sendSMS`, you first retrieve the order with its relation to `shipping_address` which contains a `phone` field. If the phone is set, you send an SMS to the customer using the method `sendSms` in the `twilioSmsService`.\n\nThis method accepts an object of parameters. These parameters are based on Twilio’s SMS APIs. You can check their [API documentation](https://www.twilio.com/docs/sms/api/message-resource#create-a-message-resource) for more fields that you can add.\n\nIf you create an order now on your storefront, you should receive a message from Twilio on the phone number you entered in the shipping address.\n\n:::tip\n\nIf you don’t have a storefront set up yet, you can install the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx).\n\n:::\n\n:::caution\n\nIf you’re on a Twilio trial make sure that the phone number you entered on checkout is a [verified Twilio number on your console](https://console.twilio.com/us1/develop/phone-numbers/manage/verified).\n\n:::\n\n![Twilio Dashboard](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001219/Medusa%20Docs/Stripe/MXtQMiL_kb7kxe.png)\n\n---\n\n## See Also\n\n- [Notifications Overview](../../development/notification/overview.mdx).\n- Install the [Medusa admin](../../admin/quickstart.mdx) for functionalities like Gift Cards creation, swaps, claims, order return requests, and more.\n","docs/content/plugins/payment/klarna.md":"---\ndescription: 'Learn how to integrate Klarna as a payment provider with the Medusa backend. Learn how to install Klarna and enable the payment provider in a region.'\naddHowToData: true\n---\n\n# Klarna\n\nIn this document, you’ll learn how to integrate Klarna as a payment provider in Medusa.\n\n:::tip\n\nFollowing the release of v1.8 of the core Medusa package, the naming of payment providers have changed to payment processors with the introduction of the Payment Processor API. However, plugins or implementation that still don't implement the Payment Processor API are still called payment providers.\n\n:::\n\n## Introduction\n\n[Klarna](https://www.klarna.com/) is a payment provider that allows customers to pay in different ways including direct payment, installment payments, payment after delivery, and more.\n\nYou can integrate Klarna into Medusa using the [official plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-klarna).\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is assumed that you already have a Medusa backend installed and set up. If not, you can follow the [quickstart guide](../../development/backend/install.mdx).\n\nIn addition, you’ll need to use the [Medusa Admin](../../admin/quickstart.mdx) to enable the payment provider in later steps. You can alternatively use the [REST APIs](/api/admin/#tag/Region/operation/PostRegionsRegionPaymentProviders).\n\n### Needed Accounts\n\n- A [Klarna business account](https://portal.klarna.com/)\n\n---\n\n## Install Plugin\n\nOn your Medusa backend, run the following command to install the plugin:\n\n```bash\nnpm install medusa-payment-klarna\n```\n\nThen, add the following environment variables:\n\n```bash\nKLARNA_BACKEND_URL=<YOUR_KLARNA_BACKEND_URL>\nKLARNA_URL=<YOUR_KLARNA_URL>\nKLARNA_USER=<YOUR_KLARNA_USER>\nKLARNA_PASSWORD=<YOUR_KLARNA_PASSWORD>\nKLARNA_TERMS_URL=<YOUR_KLARNA_TERMS_URL>\nKLARNA_CHECKOUT_URL=<YOUR_KLARNA_CHECKOUT_URL>\nKLARNA_CONFIRMATION_URL=<YOUR_KLARNA_CONFIRMATION_URL>\n```\n\nWhere:\n\n- `<YOUR_KLARNA_BACKEND_URL>` is your Klarna URL.\n- `<YOUR_KLARNA_URL>` is the [base Klarna URL based on your environment](https://docs.klarna.com/api/api-urls/).\n- `<YOUR_KLARNA_USER>` and `<YOUR_KLARNA_PASSWORD>` are your [API credentials](https://docs.klarna.com/api/authentication/).\n- `<YOUR_KLARNA_TERMS_URL>`, `<YOUR_KLARNA_CHECKOUT_URL>`, and `<YOUR_KLARNA_CONFIRMATION_URL>` are the terms, checkout, and confirmation URL of your Klarna account.\n\nFinally, in `medusa-config.js`, add the Klarna plugin to the `plugins` array with the necessary configurations:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // other plugins...\n  {\n    resolve: `medusa-payment-klarna`,\n    options: {\n      backend_url: process.env.KLARNA_BACKEND_URL,\n      url: process.env.KLARNA_URL,\n      user: process.env.KLARNA_USER,\n      password: process.env.KLARNA_PASSWORD,\n      merchant_urls: {\n        terms: process.env.KLARNA_TERMS_URL,\n        checkout: process.env.KLARNA_CHECKOUT_URL,\n        confirmation: process.env.KLARNA_CONFIRMATION_URL,\n      },\n    },\n  },\n]\n```\n\n---\n\n## Enable Klarna in Regions\n\nTo use Klarna in your store, you must enable it in at least one region.\n\nYou can follow [this user guide to learn how to enable a payment provider in a region](../../user-guide/regions/providers#manage-payment-providers). You can alternatively use the [REST APIs](/api/admin/#tag/Region/operation/PostRegionsRegionPaymentProviders).\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","docs/content/plugins/payment/paypal.md":"---\ndescription: 'Learn how to integrate PayPal with the Medusa backend. Learn how to install the PayPal plugin on the Medusa backend and integrate into a storefront.'\naddHowToData: true\n---\n\n# PayPal\n\nThis document guides you through setting up PayPal as a payment processor in your Medusa backend, admin, and storefront using the [PayPal plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-paypal).\n\n## Overview\n\n[PayPal](https://www.paypal.com) is a payment processor used by millions around the world. It allows customers to purchase orders from your website using their PayPal account rather than the need to enter their card details.\n\nAs a developer, you can use PayPal’s SDKs and APIs to integrate PayPal as a payment method into your ecommerce store. You can test out the payment method in sandbox mode before going live with it as a payment method.\n\nUsing the `medusa-payment-paypal` plugin, this guide shows you how to set up your Medusa backend with PayPal as a payment processor.\n\n---\n\n## Prerequisites\n\nBefore you proceed with this guide, make sure you create a [PayPal account](https://www.paypal.com). You also need a PayPal Developer account and retrieve the Client ID and Client Secret. You can learn more about how to do that in [PayPal’s documentation](https://developer.paypal.com/api/rest/).\n\nIn addition, you need to configure a webhook listener on your PayPal Developer Dashboard and obtain the webhook ID. This is necessary for Webhooks to work.\n\nWebhooks are used in scenarios where the customer might leave the page during the authorization and before the checkout flow is fully complete. It will then create the order or swap after the payment is authorized if they weren’t created\n\nAdditionally, you need a Medusa backend installed and set up. If not, you can follow the [quickstart guide](../../development/backend/install.mdx) to get started.\n\nYou also need [Medusa Admin](../../admin/quickstart.mdx) installed to enable PayPal as a payment processor. You can alternatively use the [REST APIs](/api/admin).\n\n---\n\n## Medusa Backend\n\n### Install the PayPal Plugin\n\nIn the root of your Medusa backend, run the following command to install the PayPal plugin:\n\n```bash npm2yarn\nnpm install medusa-payment-paypal\n```\n\n### Configure the PayPal Plugin\n\nNext, you need to add configurations for your PayPal plugin.\n\nIn the `.env` file add the following new environment variables:\n\n```bash\nPAYPAL_SANDBOX=true\nPAYPAL_CLIENT_ID=<CLIENT_ID>\nPAYPAL_CLIENT_SECRET=<CLIENT_SECRET>\nPAYPAL_AUTH_WEBHOOK_ID=<WEBHOOK_ID>\n```\n\nWhere `<CLIENT_ID>`, `<CLIENT_SECRET>`, and `<WEBHOOK_ID>` are the keys you retrieved from the PayPal Developer dashboard as explained in the [Prerequisites](#prerequisites) section.\n\nNotice that during development it’s highly recommended to set `PAYPAL_SANDBOX` to `true` and ensure you have [sandbox accounts set up in PayPal](https://developer.paypal.com/api/rest/sandbox/).\n\nThen, in `medusa-config.js`, add the PayPal plugin to the `plugins` array with the configurations necessary:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // other plugins...\n  {\n    resolve: `medusa-payment-paypal`,\n    options: {\n      sandbox: process.env.PAYPAL_SANDBOX,\n      client_id: process.env.PAYPAL_CLIENT_ID,\n      client_secret: process.env.PAYPAL_CLIENT_SECRET,\n      auth_webhook_id: process.env.PAYPAL_AUTH_WEBHOOK_ID,\n    },\n  },\n]\n```\n\nThat’s all you need to install PayPal on your Medusa backend!\n\n---\n\n## Admin Setup\n\nThis section will guide you through adding PayPal as a payment processor in a region using your Medusa admin dashboard.\n\nThis step is required for you to be able to use PayPal as a payment processor in your storefront.\n\n### Admin Prerequisites\n\nIf you don’t have a Medusa admin installed, make sure to follow along with [the guide on how to install it](../../admin/quickstart.mdx) before continuing with this section.\n\n### Add PayPal to Regions\n\nYou can refer to [this documentation in the user guide](../../user-guide/regions/providers.mdx#manage-payment-providers) to learn how to add a payment processor like PayPal to a region.\n\n---\n\n## Storefront Setup\n\nThis section will take you through the steps to add PayPal as a payment method on the storefront. It includes the steps necessary when using one of Medusa’s official storefronts as well as your own custom React-based storefront.\n\n### Storefront Prerequisites\n\nAll storefronts require that you obtain your PayPal Client ID. You can retrieve it from your PayPal developer dashboard.\n\n### Process Overview\n\nAside from the Next.js Storefront, you need to add the implementation with PayPal manually.\n\n:::note\n\nIt is recommended to read through the [Frontend Checkout Flow](../../modules/carts-and-checkout/storefront/implement-checkout-flow.mdx) first to fully understand how payment is implemented on the storefront.\n\n:::\n\nAlthough the next sections have different implementations to add PayPal into your storefront, they essentially follow the same process:\n\n1. Show PayPal’s button if the PayPal processor is available for the current cart.\n2. When the button is clicked, open PayPal’s payment portal and wait for the customer to authorize the payment.\n3. If the payment is authorized successfully, set PayPal’s [Payment Session](../../modules/carts-and-checkout/payment.md#payment-session) as the session used to perform the payment for the current cart, then update the Payment Session on the backend with the data received from PayPal’s payment portal. This data is essential to the backend to verify the authorization and perform additional payment processing later such as capturing payment.\n4. Complete the cart to create the order.\n\n:::info\n\nIn Medusa, by default, payments are authorized during checkout, but the payment is not captured right away. The payment should be manually [captured from the Medusa Admin](#capture-payment).\n\n:::\n\n### Add to Next.js Storefront\n\nMedusa has a Next.js storefront that you can easily use with your Medusa backend. If you don’t have the storefront installed, you can follow [this quickstart guide](../../starters/nextjs-medusa-starter.mdx).\n\nIn your `.env.local` file (or the file you’re using for your environment variables), add the following variable:\n\n```bash title=.env.local\nNEXT_PUBLIC_PAYPAL_CLIENT_ID=<YOUR_CLIENT_ID>\n```\n\nMake sure to replace `<YOUR_CLIENT_ID>` with your PayPal Client ID.\n\nNow, if you run your Medusa backend and your storefront, on checkout you’ll be able to use PayPal].\n\n![PayPal Button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000463/Medusa%20Docs/PayPal/F8OvsOJ_v3ctol.png)\n\nYou can test out the payment with PayPal using your sandbox account.\n\n### Add to Custom Storefront\n\nThis section guides you to add PayPal into a React-based framework. The instructions are general instructions that you can use in your storefront.\n\nIn your storefront, you need to install the [PayPal React components library](https://www.npmjs.com/package/@paypal/react-paypal-js) and the [Medusa JS Client library](https://www.npmjs.com/package/@medusajs/medusa-js):\n\n```bash npm2yarn\nnpm install @paypal/react-paypal-js @medusajs/medusa-js\n```\n\nThen, add the Client ID as an environment variable based on the framework you’re using.\n\nNext, create the file that will hold the PayPal component with the following content:\n\n```jsx\nimport { \n  PayPalButtons, \n  PayPalScriptProcessor,\n} from \"@paypal/react-paypal-js\"\nimport { useEffect, useState } from \"react\"\n\nimport Medusa from \"@medusajs/medusa-js\"\n\nfunction Paypal() {\n  const client = new Medusa()\n  const [errorMessage, setErrorMessage] = useState(undefined)\n  const [processing, setProcessing] = useState(false)\n  const cart = \"...\" // TODO retrieve the cart here\n\n  const handlePayment = (data, actions) => {\n    actions.order.authorize().then(async (authorization) => {\n      if (authorization.status !== \"COMPLETED\") {\n        setErrorMessage(\n          `An error occurred, status: ${authorization.status}`\n        )\n        setProcessing(false)\n        return\n      }\n\n      const response = await client\n        .carts\n        .setPaymentSession(cart.id, {\n          \"processor_id\": \"paypal\",\n        })\n\n      if (!response.cart) {\n        setProcessing(false)\n        return\n      }\n\n      await client\n        .carts\n        .updatePaymentSession(cart.id, \"paypal\", {\n        data: {\n          data: {\n            ...authorization,\n          },\n        },\n      })\n\n      const { data } = await client.carts.complete(cart.id)\n\n      if (!data || data.object !== \"order\") {\n        setProcessing(false)\n        return\n      }\n      \n      // order successful\n      alert(\"success\")\n    })\n  }\n\n  return (\n    <div style={{ marginTop: \"10px\", marginLeft: \"10px\" }}>\n      {cart !== undefined && (\n        <PayPalScriptProcessor options={{ \n          \"client-id\": \"<CLIENT_ID>\",\n          \"currency\": \"EUR\",\n          \"intent\": \"authorize\",\n        }}>\n            {errorMessage && (\n              <span className=\"text-rose-500 mt-4\">\n                {errorMessage}\n              </span>\n            )}\n            <PayPalButtons \n              style={{ layout: \"horizontal\" }}\n              onApprove={handlePayment}\n              disabled={processing}\n            />\n        </PayPalScriptProcessor>\n      )}\n    </div>\n  )\n}\n\nexport default Paypal\n```\n\nHere’s briefly what this code snippet does:\n\n1. At the beginning of the component, the Medusa client is initialized using the JS Client you installed.\n2. You also need to retrieve the cart. Ideally, the cart should be managed through a context. So, every time the cart has been updated the cart should be updated in the context to be accessed from all components.\n3. This component renders a PayPal button to initialize the payment using PayPal. You use the components from the PayPal React components library to render the button and you pass the `PayPalScriptProcessor` component the Client ID. Make sure to replace `<CLIENT_ID>` with the environment variable you added.\n4. When the button is clicked, the `handlePayment` function is executed. In this method, you initialize the payment authorization using `actions.order.authorize()`. It takes the customer to another page to log in with PayPal and authorize the payment.\n5. After the payment is authorized successfully on PayPal’s portal, the fulfillment function passed to `actions.order.authorize().then` will be executed.\n6. In the fulfillment function, you first ensure that the payment session for the PayPal payment processor is set as the [selected Payment Session in the cart](/api/store/#tag/Cart/operation/PostCartsCartPaymentSession). Then, you send a request to the backend to [update the payment session](/api/store/#tag/Cart/operation/PostCartsCartPaymentSessionUpdate) data with the authorization data received from PayPal.\n7. You then [complete the cart and place the order](/api/store/#tag/Cart/operation/PostCartsCartComplete). If that is done successfully, you just show a success alert. You can change this based on the behavior you want in your storefront.\n\nYou can then import this component where you want to show it in your storefront.\n\nIf you run the Medusa backend and the storefront backend, you should see the PayPal button on checkout.\n\n![PayPal Button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000492/Medusa%20Docs/PayPal/PsibgPY_xtqdli.png)\n\n---\n\n## Capture Payments\n\nAfter the customer places an order, you can see the order on the admin panel. In the payment information under the “Payment” section, you should see a “Capture” button.\n\n![Capture Payment](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000502/Medusa%20Docs/PayPal/Mx357yY_xsandw.png)\n\nClicking this button lets you capture the payment for an order. You can also refund payments if an order has captured payments.\n\nRefunding or Capturing payments is reflected in your PayPal dashboard as well.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","docs/content/plugins/payment/stripe.md":"---\ndescription: 'Learn how to integrate Stripe with the Medusa backend. Learn how to install the Stripe plugin on the Medusa backend and integrate it into a storefront.'\naddHowToData: true\n---\n\n# Stripe\n\nThis document guides you through setting up Stripe payments in your Medusa backend, admin, and storefront using the [Stripe Plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-stripe).\n\n## Video Guide\n\nYou can also follow this video guide to learn how the setup works:\n\n<div>\n  <video width=\"100%\" height=\"100%\" playsinline autoplay muted controls>\n    <source src=\"https://user-images.githubusercontent.com/59018053/154807206-6fbda0a6-bf3e-4e39-9fc2-f11710afe0b9.mp4\" type=\"video/mp4\" />\n  </video>\n</div>\n\n## Overview\n\n[Stripe](https://stripe.com/) is a battle-tested and unified platform for transaction handling. Stripe supplies you with the technical components needed to handle transactions safely and all the analytical features necessary to gain insight into your sales. These features are also available in a safe test environment which allows for a concern-free development process.\n\nUsing the `medusa-payment-stripe` plugin, this guide shows you how to set up your Medusa project with Stripe as a payment processor.\n\n---\n\n## Prerequisites\n\nBefore you proceed with this guide, make sure you create a [Stripe account](https://stripe.com). You’ll later retrieve the API Keys and secrets from your account to connect Medusa to your Stripe account.\n\n---\n\n## Medusa Backend\n\nThis section guides you over the steps necessary to add Stripe as a payment processor to your Medusa backend.\n\nIf you don’t have a Medusa backend installed yet, you must follow the [quickstart guide](../../development/backend/install.mdx) first.\n\n### Install the Stripe Plugin\n\nIn the root of your Medusa backend, run the following command to install the stripe plugin:\n\n```bash npm2yarn\nnpm install medusa-payment-stripe\n```\n\n### Configure the Stripe Plugin\n\nNext, you need to add configurations for your stripe plugin.\n\nIn `medusa-config.js` add the following at the end of the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-payment-stripe`,\n    options: {\n      api_key: process.env.STRIPE_API_KEY,\n      webhook_secret: process.env.STRIPE_WEBHOOK_SECRET,\n    },\n  },\n]\n```\n\n:::note\n\nYou might find that this code is already available but commented out. You can proceed with removing the comments instead of adding the code again, but make sure to replace `STRIPE_API_KEY` and `STRIPE_WEBHOOK_SECRET` with `process.env.STRIPE_API_KEY` and `process.env.STRIPE_WEBHOOK_SECRET` respectively.\n\n:::\n\nThe Stripe plugin uses two configuration options. The `api_key` is essential to both your development and production environments. As for the `webhook_secret`, it’s essential for your production environment. So, if you’re only using Stripe for development you can skip adding the value for this option at the moment.\n\n### Retrieve Stripe's Keys\n\nOn the [dashboard](https://dashboard.stripe.com) of your Stripe account click on the Developers link at the top right. This will take you to the developer dashboard.\n\nYou’ll first retrieve the API key. You can find it by choosing API Keys from the sidebar and copying the Secret key.\n\nNext, you need to add the key to your environment variables. In your Medusa backend, create `.env` if it doesn’t already exist and add the Stripe key:\n\n```bash\nSTRIPE_API_KEY=sk_...\n```\n\n:::note\n\nIf you store environment variables differently on your backend, for example, using the hosting processor’s UI, then you don’t need to add it in `.env`. Add the environment variables in a way relevant to your backend.\n\n:::\n\nNext, if you’re installing this plugin for production use, you need to retrieve the Webhook secret. Webhooks allows you to track different events on your Medusa backend, such as failed payments.\n\nGo to Webhooks on Stripe’s developer dashboard. Then, choose the Add an Endpoint button.\n\nThe endpoint for Stripe’s webhook on your Medusa backend is `{BACKEND_URL}/stripe/hooks`. So, add that endpoint in its field. Make sure to replace `{BACKEND_URL}` with the URL to your backend.\n\nThen, you can add a description. You must select at least one event to listen to. Once you’re done, click “Add endpoint”.\n\nAfter the Webhook is created, you’ll see \"Signing secret\" in the Webhook details. Click on \"Reveal\" to reveal the secret key. Copy that key and in your Medusa backend add the Webhook secret environment variable:\n\n```bash\nSTRIPE_WEBHOOK_SECRET=whsec_...\n```\n\n---\n\n## Admin Setup\n\nThis section will guide you through adding Stripe as a payment processor in a region using your Medusa admin dashboard.\n\nThis step is required for you to be able to use Stripe as a payment processor in your storefront.\n\n### Admin Prerequisites\n\nIf you don’t have a Medusa admin installed, make sure to follow along with [the guide on how to install it](https://github.com/medusajs/admin#-quickstart) before continuing with this section.\n\n### Add Stripe to Regions\n\nYou can refer to [this documentation in the user guide](../../user-guide/regions/providers.mdx#manage-payment-providers) to learn how to add a payment processor like Stripe to a region.\n\n---\n\n## Storefront Setup\n\nThis guide will take you through how to set up Stripe payments in your Medusa storefront. It includes the steps necessary when using one of Medusa’s official storefronts as well as your own custom React-based storefront.\n\n### Storefront Prerequisites\n\nAll storefronts require that you obtain your Stripe’s Publishable Key. You can retrieve it from your Stripe’s developer dashboard by choosing API Keys and then copying the Publishable Key.\n\n### Add to Next.js Storefront\n\nMedusa has a Next.js storefront that you can easily use with your Medusa backend. If you don’t have the storefront installed, you can follow [this quickstart guide](../../starters/nextjs-medusa-starter).\n\nIn your `.env.local` file (or the file you’re using for your environment variables), add the following variable:\n\n```bash title=.env.local\nNEXT_PUBLIC_STRIPE_KEY=<YOUR_PUBLISHABLE_KEY>\n```\n\nMake sure to replace `<YOUR_PUBLISHABLE_KEY>` with your Stripe Publishable Key.\n\nNow, if you run your Medusa backend and your storefront, on checkout you’ll be able to use Stripe.\n\n![Next.js Stripe Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001145/Medusa%20Docs/Stripe/h5mWdJT_n1bktt.png)\n\n### Add to Custom Storefront\n\nThis section will go over how to add Stripe into a React-based framework. The instructions are general instructions that you can use in your storefront.\n\n#### Workflow Overview\n\nThe integration with stripe must have the following workflow:\n\n1. During checkout when the user reaches the payment section, you should [create payment sessions](/api/store/#tag/Cart/operation/PostCartsCartPaymentSessions). This will initialize the `payment_sessions` array in the `cart` object received. The `payment_sessions` is an array of available payment processors.\n2. If Stripe is available as a payment processor, you should select Stripe as [the payment session](/api/store/#tag/Cart/operation/PostCartsCartPaymentSession) for the current cart. This will initialize the `payment_session` object in the `cart` object to include data related to Stripe and the current payment session. This includes the payment intent and client secret.\n3. After the user enters their card details and submits the form, confirm the payment with Stripe.\n4. If the payment is confirmed successfully, [complete the order](/api/store/#tag/Cart/operation/PostCartsCartComplete) in Medusa. Otherwise show an error.\n\n#### Install Dependencies\n\nBefore you start the implementations you need to install the necessary dependencies. You’ll be using Stripe’s React libraries to show the UI and handle the payment confirmation:\n\n```bash npm2yarn\nnpm install --save @stripe/react-stripe-js @stripe/stripe-js\n```\n\nYou’ll also use Medusa’s JS Client to easily call Medusa’s REST APIs:\n\n```bash npm2yarn\nnpm install @medusajs/medusa-js\n```\n\n#### Initialize Stripe\n\nIn this section, you’ll initialize Stripe without Medusa’s checkout workflow. Please note that this is one approach to add Stripe into your React project. You can check out [Stripe’s React documentation](https://stripe.com/docs/stripe-js/react) for other methods or components.\n\nCreate a container component that will hold the payment card component:\n\n```jsx\nimport { useState } from \"react\"\n\nimport { Elements } from \"@stripe/react-stripe-js\"\nimport Form from \"./Form\"\nimport { loadStripe } from \"@stripe/stripe-js\"\n\nconst stripePromise = loadStripe(\"pk_...\")\n\nexport default function Container() {\n  const [clientSecret, setClientSecret] = useState()\n\n  // TODO set clientSecret\n\n  return (\n    <div>\n      {clientSecret && (\n        <Elements stripe={stripePromise} options={{\n          clientSecret,\n        }}>\n        <Form clientSecret={clientSecret} cartId={cartId} />\n      </Elements>\n      )}\n    </div>\n  )\n};\n```\n\nIn this component, you need to use Stripe’s `loadStripe` function outside of the component’s implementation to ensure that Stripe doesn’t re-load with every change. The function accepts the Publishable Key.\n\n:::note\n\nYou’ll probably store this Publishable Key in an environment variable depending on your framework. It’s hard-coded here for simplicity.\n\n:::\n\nThen, inside the component’s implementation, you add a state variable `clientSecret` which you’ll retrieve in the next section. \n\nOnce the clientSecret is set, the `Elements` Stripe component will wrap a `Form` component you’ll create next. This is necessary because the `Elements` component allows child elements to get access to the card’s inputs and their data using Stripe’s `useElements` hook.\n\nCreate a new file for the `Form` component with the following content:\n\n```jsx\nimport { \n  CardElement,\n  useElements,\n  useStripe,\n} from \"@stripe/react-stripe-js\"\n\nexport default function Form({ clientSecret, cartId }) {\n  const stripe = useStripe()\n  const elements = useElements()\n\n  async function handlePayment(e) {\n    e.preventDefault()\n    // TODO handle payment\n  }\n\n  return (\n    <form>\n      <CardElement />\n      <button onClick={handlePayment}>Submit</button>\n  </form>\n  )\n};\n```\n\nThis component shows a CardElement component from Stripe’s React library. You can use `stripe` to be able to confirm the payment later. The `elements` variable will be used to retrieve the entered card details safely.\n\n#### Implement the Workflow\n\nYou’ll now implement the workflow explained earlier. You’ll use Medusa’s JS Client, so make sure to import it and initialize it in your `Container` component:\n\n```jsx\nimport Medusa from \"@medusajs/medusa-js\"\n\nexport default function Container() {\n  const client = new Medusa()\n  // ...\n}\n```\n\n:::note\n\nIn your storefront, you’ll probably be managing the Medusa client through a context for better performance.\n\n:::\n\nThen, in the place of the `//TODO` inside the `Container` element, initialize the payment sessions and create a payment session if Stripe is available:\n\n```tsx\nclient.carts.createPaymentSessions(cart.id)\n  .then(({ cart }) => {\n    // check if stripe is selected\n    const isStripeAvailable = cart.payment_sessions?.some(\n      (session) => (\n        session.processor_id === \"stripe\"\n      )\n    )\n    if (!isStripeAvailable) {\n      return\n    }\n\n    // select stripe payment session\n    client.carts.setPaymentSession(cart.id, {\n      processor_id: \"stripe\",\n    }).then(({ cart }) => {\n      setClientSecret(cart.payment_session.data.client_secret)\n    })\n  })\n```\n\n:::note\n\nNotice that here it’s assumed you have access to the `cart` object throughout your storefront. Ideally, the `cart` should be managed through a context. So, every time the cart is updated, for example, when the `createPaymentSessions` or `setPaymentSession` are called, the cart should be updated in the context to be accessed from other elements. In this case, you probably wouldn’t need a `clientSecret` state variable as you can use the client secret directly from the `cart` object.\n\n:::\n\nOnce the client secret is set, the form will be shown to the user.\n\nThe last step in the workflow is confirming the payment with Stripe and if it’s done successfully, completing the user’s order. This part is done in the `Form` component.\n\nAs you’ll use Medusa’s client again make sure to import it and initialize it:\n\n```jsx\nimport Medusa from \"@medusajs/medusa-js\"\n\nexport default function Form() {\n  const client = new Medusa()\n  // ...\n}\n```\n\nThen, replace the `//TODO` in the `handlePayment` function with the following content:\n\n```jsx\nreturn stripe.confirmCardPayment(clientSecret, {\n  payment_method: {\n    card: elements.getElement(CardElement),\n    billing_details: {\n      name,\n      email,\n      phone,\n      address: {\n        city,\n        country,\n        line1,\n        line2,\n        postal_code,\n      },\n    },\n  },\n}).then(({ error, paymentIntent }) => {\n  // TODO handle errors\n  client.carts.complete(cartId).then(\n    (resp) => console.log(resp)\n  )\n})\n```\n\nYou use the `confirmCardPayment` method in the `stripe` object. You’ll need to pass it the client secret, which you can have access to from the cart object if it’s available through the context.\n\nThis method also requires the customer’s information like `name`, `email`, and their address. Make sure to place the values for each based on your implementation.\n\nOnce the promise resolves you can handle the errors, if there are any. If not, you can complete the customer’s order using `complete` from Medusa’s client. This request expects the cart ID which you should have access to as well.\n\nIf you run your backend and storefront now, you’ll see the Stripe UI element and you’ll be able to make orders.\n\n![Stripe Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001190/Medusa%20Docs/Stripe/NOi8THw_xv3zsx.png)\n\n---\n\n## Capture Payments\n\nAfter the customer places an order, you’ll be able to see the order on the admin panel. In the payment information under the “Payment” section, you should see a “Capture” button.\n\n![Capture Payment](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001205/Medusa%20Docs/Stripe/Iz55PVZ_p6hiz6.png)\n\nClicking this button allows you to capture the payment for an order. You can also refund payments if an order has captured payments.\n\nRefunding or Capturing payments is reflected in your Stripe’s dashboard as well. This gives you access to all of Stripe’s analytical capabilities.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","docs/content/plugins/search/algolia.md":"---\ndescription: 'Learn how to integrate Algolia with the Medusa backend. Learn how to install the Algolia plugin into the Medusa backend and how to integrate it into a storefront.'\naddHowToData: true\n---\n\n# Algolia\n\nIn this document, you’ll learn how to install the [Algolia plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-algolia) and use it on both your Medusa backend and your storefront.\n\n---\n\n## Overview\n\n[Algolia](https://www.algolia.com/) is a search engine service that allows developers to integrate advanced search functionalities into their websites including typo tolerance, recommended results, and quick responses.\n\nAlgolia can be used for a wide range of use cases, including ecommerce websites. By integrating Algolia into your ecommerce website, you can provide your customers with a better user experience and help them find what they’re looking for swifltly.\n\nThrough Medusa's flexible plugin system, it is possible to add a search engine to your Medusa backend and storefront using Algolia with just a few steps.\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is required to have a Medusa backend installed before starting with this documentation. If not, please follow along with the [quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n### Algolia Account\n\nYou need to [create an Algolia account](https://www.algolia.com/users/sign_up) before you follow this documentation. Algolia offers a free plan to get started quickly.\n\n---\n\n## Create an Algolia App\n\nThe first step is to create an Algolia app for your Medusa backend. To create one, open the [Applications page](https://www.algolia.com/account/applications) or, on your dashboard, go to Settings then choose Applications.\n\nOn the Applications page, click on the New application button at the top right.\n\n![Click on New application button at the top right](https://res.cloudinary.com/dza7lstvk/image/upload/v1667999820/Medusa%20Docs/Algolia/WxckgS2_eygl8l.png)\n\nIn the new page that opens, optionally enter a name for the application and choose a subscription plan. You can choose the Free plan for now, but it’s recommended to switch to the Pay-as-you-go plan as your business grows.\n\n![Optionally enter a name for the application and choose a subscription plan](https://res.cloudinary.com/dza7lstvk/image/upload/v1667999980/Medusa%20Docs/Algolia/jpM2EBU_fui1lg.png)\n\nOnce you’re done, click on the Next Step button. If you picked Pay as you go service, you’ll need to enter billing details before you proceed.\n\nThen, you’ll be asked to pick a region for your application. Once you’re done, click on Review Application Details.\n\n![Select a region then click on Review Application Details at the bottom right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000005/Medusa%20Docs/Algolia/fahf2J2_qgm7sa.png)\n\nIn the last step, you’ll see a summary of your order. If all looks good, check the checkboxes at the end of the form to indicate that you agree to the terms and conditions. Then, click on the Create Application button.\n\n![Summary of your application's order with the terms and agreement checkboxes checked](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000019/Medusa%20Docs/Algolia/PTI2Swq_a1qbi5.png)\n\n---\n\n## Retrieve API Keys\n\nTo retrieve the API keys that you’ll use in the next sections, go to Settings, then choose API Keys in the Team and Access section.\n\n![Click on API Keys in the Team and Access section of your settings](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000028/Medusa%20Docs/Algolia/gnORibC_msuur5.png)\n\nOn this page, you’ll find the Application ID, Search-Only API Key, and Admin API Key. You’ll need the Application ID and Admin API Key for the Medusa backend. As for the storefront, you’ll need the Application ID and Search-Only API Key.\n\n:::note\n\nIf you have more than one application in your Algolia account, make sure you’re viewing the keys of the correct application by checking the Application dropdown at the top left.\n\n:::\n\n![Application ID, Search-Only API Key, and Admin API Key can be found in the API Keys page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000037/Medusa%20Docs/Algolia/i50Irki_jmtyk6.png)\n\n---\n\n## Install the Algolia Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Algolia plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-algolia\n```\n\nThen, add the following environment variables to your Medusa backend:\n\n```bash\nALGOLIA_APP_ID=<YOUR_APP_ID>\nALGOLIA_ADMIN_API_KEY=<YOUR_ADMIN_API_KEY>\n```\n\nWhere `<YOUR_APP_ID>` and `<YOUR_ADMIN_API_KEY>` are respectively the Application ID and Admin API Key found on the [API Keys page](#retrieve-api-keys).\n\nFinally, in `medusa-config.js` add the following item into the `plugins` array:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      applicationId: process.env.ALGOLIA_APP_ID,\n      adminApiKey: process.env.ALGOLIA_ADMIN_API_KEY,\n      settings: {\n        // index settings...\n      },\n    },\n  },\n]\n```\n\n### Index Settings\n\nUnder the `settings` key of the plugin's options, you can add settings specific to each index. The settings are of the following format:\n\n```js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      // other options...\n    settings: {\n      indexName: {\n        indexSettings: {\n          searchableAttributes,\n          attributesToRetrieve,\n        },\n        transformer,\n      },\n    },\n    },\n  },\n]\n```\n\nWhere:\n\n- `indexName`: the name of the index to create in Algolia. For example, `products`. Its value is an object containing the following properties:\n  - `indexSettings`: an object that includes the following properties:\n    - `searchableAttributes`: an array of strings indicating the attributes in the product entity that can be searched.\n    - `attributesToRetrieve`: an array of strings indicating the attributes in the product entity that should be retrieved in the search results.\n  - `transformer`: an optional function that accepts a product as a parameter and returns an object to be indexed. This allows you to have more control over what you're indexing. For example, you can add details related to variants or custom relations, or you can filter out certain products.\n\nUsing this index settings structure, you can add more than one index.\n\n:::tip\n\nThese settings are just examples of what you can pass to the Algolia provider. If you need to pass more settings to the Algolia SDK you can pass it inside `indexSettings`.\n\n:::\n\nHere's an example of the settings you can use:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      // other options...\n      settings: {\n        products: {\n          indexSettings: {\n            searchableAttributes: [\"title\", \"description\"],\n            attributesToRetrieve: [\n              \"id\",\n              \"title\",\n              \"description\",\n              \"handle\",\n              \"thumbnail\",\n              \"variants\",\n              \"variant_sku\",\n              \"options\",\n              \"collection_title\",\n              \"collection_handle\",\n              \"images\",\n            ],\n          },\n          transform: (product) => ({ \n            id: product.id, \n            // other attributes...\n          }),\n        },\n      },\n    },\n  },\n]\n```\n\n---\n\n## Test the Algolia Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThe quickest way to test that the integration is working is by sending a `POST` request to `/store/products/search`. This endpoint accepts a `q` body parameter of the query to search for and returns in the result the products that match this query.\n\n![Postman request send to the search endpoint that retrieves products using Algolia](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000054/Medusa%20Docs/Algolia/IHeTsi7_ymhb2p.png)\n\nYou can also check that the products are properly indexed by opening your Algolia dashboard and choosing Search from the left sidebar. You’ll find your products that are on your Medusa backend added there.\n\n:::note\n\nIf you have more than one application on your Algolia account, make sure you’re viewing the keys of the correct one by checking the Application dropdown at the top left.\n\n:::\n\n![Products from the Medusa backend can be seen on the Algolia dashboard](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000071/Medusa%20Docs/Algolia/wkXzUH0_dowyxj.png)\n\n### Add or Update Products\n\nIf you add or update products on your Medusa backend, the addition or update will be reflected in the Algolia indices.\n\n:::note\n\nThis feature is only available if you have an event module installed in your Medusa backend, as explained in the Prerequisites section.\n\n:::\n\n---\n\n## Add Search to your Storefront\n\nIn this section, you’ll learn how to add the UI on your storefront to allow searching with Algolia. This section has instructions for Medusa’s [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront as well as React-based frameworks.\n\n### Storefront Prerequisites\n\nIt is assumed you already have a storefront set up and working with the Medusa backend, as this section only covers how to add the search UI.\n\n:::tip\n\nIf you don’t have a storefront set up, you can use the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx) that Medusa provides.\n\n:::\n\n### Add to Next.js Storefront\n\nThe Next.js storefront has the Algolia integration available out of the box. To get it working, you just need to follow three steps.\n\nFirst, ensure that the search feature is enabled in `store.config.json`:\n\n```json title=store.config.json\n{\n  \"features\": {\n    \"search\": true\n  }\n}\n```\n\nThen, add the necessary environment variables:\n\n```bash\nNEXT_PUBLIC_SEARCH_APP_ID=<YOUR_APP_ID>\nNEXT_PUBLIC_SEARCH_API_KEY=<YOUR_SEARCH_API_KEY>\nNEXT_PUBLIC_SEARCH_INDEX_NAME=products\n```\n\nWhere `<YOUR_APP_ID>` and `<YOUR_SEARCH_API_KEY>` are respectively the Application ID and Search-Only API Key on the [API Keys page](#retrieve-api-keys).\n\nFinally, change the code in `src/lib/search-client.ts` to the following:\n\n```jsx title=src/lib/search-client.ts\nimport algoliasearch from \"algoliasearch/lite\"\n\nconst appId = process.env.NEXT_PUBLIC_SEARCH_APP_ID || \"\"\n\nconst apiKey = \n  process.env.NEXT_PUBLIC_SEARCH_API_KEY || \"test_key\"\n\nexport const searchClient = algoliasearch(appId, apiKey)\n\nexport const SEARCH_INDEX_NAME =\n  process.env.NEXT_PUBLIC_INDEX_NAME || \"products\"\n```\n\nIf you run your Next.js storefront now while the Medusa backend is running, the search functionality will be available in your storefront.\n\n:::note\n\nTo make sure the Next.js storefront properly displays the products in the search result, include in the `attributesToRetrieve` setting of the Algolia plugin on the Medusa backend at least the fields `title`, `handle`, `description`, and `thumbnail`.\n\n:::\n\n![Search pop up in the Next.js storefront](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000082/Medusa%20Docs/Algolia/1f9qqK6_c0z8zi.png)\n\n### Add to Other Storefronts\n\nTo integrate Algolia's search functionalities in your storefront, please refer to [Algolia's InstantSearch.js documentation](https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/). You'll find packages for different frontend frameworks and how you can use them.\n\n---\n\n## See Also\n\n- [Deploy your Medusa backend](../../deployments/server/index.mdx)\n- [Deploy your storefront](../../deployments/storefront/index.mdx)\n","docs/content/plugins/search/meilisearch.md":"---\ndescription: 'Learn how to integrate MeiliSearch with the Medusa backend. Learn how to install the MeiliSearch plugin on the Medusa backend and integrate it into the storefront.'\naddHowToData: true\n---\n\n# MeiliSearch\n\nIn this document, you’ll learn how to install the [MeiliSearch plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-meilisearch) and use it on both your Medusa Backend and your storefront.\n\n## Overview\n\n[MeiliSearch](https://www.meilisearch.com/) is a super-fast, open source search engine built in Rust. It comes with a wide range of features including typo-tolerance, filtering, and sorting.\n\nMeiliSearch also provides a pleasant developer experience, as it is extremely intuitive and newcomer-friendly. So, even if you're new to the search engine ecosystem, [their documentation](https://docs.meilisearch.com/) is resourceful enough for everyone to go through and understand.\n\nThrough Medusa's flexible plugin system, it is possible to add a search engine to your Medusa backend and storefront using MeiliSearch with just a few steps.\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is required to have a Medusa backend installed before starting with this documentation. If not, please follow along with the [quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n### MeiliSearch Instance\n\nYou must install MeiliSearch to use it with Medusa. You can follow [this documentation to install MeiliSearch](https://docs.meilisearch.com/learn/getting_started/quick_start.html#setup-and-installation) either locally or on a cloud.\n\nFurthermore, you should create a master key for your MeiliSearch instance. If you don’t have one created, follow [this guide](https://docs.meilisearch.com/learn/security/master_api_keys.html#protecting-a-meilisearch-instance) to create a master key.\n\n---\n\n## Install the MeiliSearch Plugin\n\nIn the directory of your Medusa backend, run the following command to install the MeiliSearch plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-meilisearch\n```\n\nThen, add the following environment variables to your Medusa backend:\n\n```bash\nMEILISEARCH_HOST=<YOUR_MEILISEARCH_HOST>\nMEILISEARCH_API_KEY=<YOUR_MASTER_KEY>\n```\n\nWhere `<YOUR_MEILISEARCH_HOST>` is the host of your MeiliSearch instance. By default, if MeiliSearch is installed locally, the host is `http://127.0.0.1:7700`.\n\n`<YOUR_MASTER_KEY>` is the master key of your MeiliSearch instance.\n\nFinally, in `medusa-config.js` add the following item into the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // config object passed when creating an instance\n      // of the MeiliSearch client\n      config: {\n        host: process.env.MEILISEARCH_HOST,\n        apiKey: process.env.MEILISEARCH_API_KEY,\n      },\n      settings: {\n        // index settings...\n      },\n    },\n  },\n]\n```\n\n### Index Settings\n\nUnder the `settings` key of the plugin's options, you can add settings specific to each index. The settings are of the following format:\n\n```js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // other options...\n    settings: {\n      indexName: {\n        indexSettings: {\n          searchableAttributes,\n          displayedAttributes,\n        },\n        primaryKey,\n        transformer,\n      },\n    },\n    },\n  },\n]\n```\n\nWhere:\n\n- `indexName`: the name of the index to create in MeiliSearch. For example, `products`. Its value is an object containing the following properties:\n  - `indexSettings`: an object that includes the following properties:\n    - `searchableAttributes`: an array of strings indicating the attributes in the product entity that can be searched.\n    - `displayedAttributes`: an array of strings indicating the attributes in the product entity that should be displayed in the search results.\n  - `primaryKey`: an optional string indicating which property acts as a primary key of a document. It's used to enforce unique documents in an index. The default value is `id`. You can learn more in [MeiliSearch's documentation](https://docs.meilisearch.com/learn/core_concepts/primary_key.html#primary-field).\n  - `transformer`: an optional function that accepts a product as a parameter and returns an object to be indexed. This allows you to have more control over what you're indexing. For example, you can add details related to variants or custom relations, or you can filter out certain products.\n\nUsing this index settings structure, you can add more than one index.\n\n:::tip\n\nThese settings are just examples of what you can pass to the MeiliSearch provider. If you need to pass more settings to the MeiliSearch SDK you can pass it inside `indexSettings`.\n\n:::\n\nHere's an example of the settings you can use:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // other options...\n      settings: {\n        products: {\n          indexSettings: {\n            searchableAttributes: [\n              \"title\", \n              \"description\",\n              \"variant_sku\",\n            ],\n            displayedAttributes: [\n              \"title\", \n              \"description\", \n              \"variant_sku\", \n              \"thumbnail\", \n              \"handle\",\n            ],\n          },\n          primaryKey: \"id\",\n          transform: (product) => ({ \n            id: product.id, \n            // other attributes...\n          }),\n        },\n      },\n    },\n  },\n]\n```\n\n---\n\n## Test MeiliSearch Plugin\n\nMake sure your MeiliSearch instance is running. If you’re unsure how to run it, you can check the [installation documentation](https://docs.meilisearch.com/learn/getting_started/quick_start.html#setup-and-installation) for the command to run the MeiliSearch instance.\n\nThen, run the Medusa backend:\n\n```bash npm2yarn\nnpm run start\n```\n\nThe quickest way to test that the integration is working is by sending a `POST` request to `/store/products/search`. This endpoint accepts a `q` body parameter of the query to search for and returns in the result the products that match this query.\n\n![Postman request to search endpoint that shows results returned from the search engine](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000265/Medusa%20Docs/MeiliSearch/RCGquxU_um3dvn.png)\n\nYou can also check that the products are properly indexed by opening the MeiliSearch host URL in your browser, which is `http://127.0.0.1:7700/` by default. You’ll find your products that are on your Medusa backend added there.\n\n![MeiliSearch dashboard showing products from the Medusa backend indexed](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000277/Medusa%20Docs/MeiliSearch/5sk3jyP_i3swkn.png)\n\n### Add or Update Products\n\nIf you add or update products on your Medusa backend, the addition or update will be reflected in the MeiliSearch indices.\n\n:::note\n\nThis feature is only available if you have an event module installed in your Medusa backend, as explained in the Prerequisites section.\n\n:::\n\n---\n\n## Add Search to your Storefront\n\nIn this section, you’ll learn how to add the UI on your storefront to allow searching with MeiliSearch. This section has instructions for Medusa’s [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront as well as React-based frameworks.\n\n### Storefront Prerequisites\n\nIt is assumed you already have a storefront set up and working with the Medusa backend, as this section only covers how to add the search UI.\n\n:::tip\n\nIf you don’t have a storefront set up, you can use the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx) that Medusa provides.\n\n:::\n\nFurthermore, you must create an API key in your MeiliSearch instance that will be used to search on the storefront. To do that, run the following command in your terminal while the MeiliSearch instance is running:\n\n```bash\ncurl \\\n  -X POST '<MEILISEARCH_HOST>/keys' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer <MEILISEARCH_MASTER_KEY>' \\\n  --data-binary '{\n    \"description\": \"Search products\",\n    \"actions\": [\"search\"],\n    \"indexes\": [\"products\"],\n    \"expiresAt\": \"2024-01-01T00:00:00Z\"\n  }'\n```\n\nMake sure to replace `<MEILISEARCH_HOST>` and `<MEILISEARCH_MASTER_KEY>` accordingly.\n\nIf this request is successful, the API key will be available under the `key` property returned in the JSON response.\n\n### Add to Next.js Storefront\n\nThe Next.js storefront has the MeiliSearch integration available out of the box. To get it working, you just need to follow two steps.\n\nFirst, ensure that the search feature is enabled in `store.config.json`:\n\n```json title=store.config.json\n{\n  \"features\": {\n    \"search\": true\n  }\n}\n```\n\nThen, add the necessary environment variables:\n\n```bash\nNEXT_PUBLIC_SEARCH_ENDPOINT=<YOUR_MEILISEARCH_HOST>\nNEXT_PUBLIC_SEARCH_API_KEY=<YOUR_API_KEY>\nNEXT_PUBLIC_SEARCH_INDEX_NAME=products\n```\n\nMake sure to replace `<YOUR_MEILISEARCH_HOST>` with your MeiliSearch host and `<YOUR_API_KEY>` with the API key you created as instructed in the [Storefront Prerequisites](#storefront-prerequisites) section.\n\nIf you run your Next.js storefront now while the Medusa backend and the MeiliSearch services are running, the search functionality will be available in your storefront.\n\n:::note\n\nTo make sure the Next.js storefront properly displays the products in the search result, include in the `displayedAttributes` setting of the MeiliSearch plugin on the Medusa backend at least the fields `title`, `handle`, `description`, and `thumbnail`.\n\n:::\n\n![Search Result on Next.js storefront](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000298/Medusa%20Docs/MeiliSearch/gQVWvH2_datei5.png)\n\n### Add to Other Storefronts\n\nTo integrate MeiliSearch's search functionalities in your storefront, please refer to [MeiliSearch's documentation](https://docs.meilisearch.com/learn/what_is_meilisearch/sdks.html#front-end-tools). They offer different tools that you can use based on the frontend framework of your storefront.\n\n---\n\n## See Also\n\n- [Deploy your Medusa backend](../../deployments/server/index.mdx).\n- [Deploy your storefront](../../deployments/storefront/index.mdx).\n","docs/content/references/entities/classes/Address.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Address\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Address`**\n\n## Constructors\n\n### constructor\n\n• **new Address**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### address\\_1\n\n• **address\\_1**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L36)\n\n___\n\n### address\\_2\n\n• **address\\_2**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L39)\n\n___\n\n### city\n\n• **city**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L42)\n\n___\n\n### company\n\n• **company**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L27)\n\n___\n\n### country\n\n• **country**: ``null`` \\| [`Country`](Country.md)\n\n#### Defined in\n\n[models/address.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L49)\n\n___\n\n### country\\_code\n\n• **country\\_code**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L45)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\n\n• **customer**: ``null`` \\| [`Customer`](Customer.md)\n\n#### Defined in\n\n[models/address.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L24)\n\n___\n\n### customer\\_id\n\n• **customer\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L20)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### first\\_name\n\n• **first\\_name**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L30)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### last\\_name\n\n• **last\\_name**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L33)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/address.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L61)\n\n___\n\n### phone\n\n• **phone**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:58](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L58)\n\n___\n\n### postal\\_code\n\n• **postal\\_code**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:55](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L55)\n\n___\n\n### province\n\n• **province**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L52)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/address.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L63)\n","docs/content/references/entities/classes/AnalyticsConfig.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: AnalyticsConfig\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`AnalyticsConfig`**\n\n## Constructors\n\n### constructor\n\n• **new AnalyticsConfig**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### anonymize\n\n• **anonymize**: `boolean`\n\n#### Defined in\n\n[models/analytics-config.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L17)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### opt\\_out\n\n• **opt\\_out**: `boolean`\n\n#### Defined in\n\n[models/analytics-config.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L14)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### user\\_id\n\n• **user\\_id**: `string`\n\n#### Defined in\n\n[models/analytics-config.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L11)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/analytics-config.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L19)\n","docs/content/references/entities/classes/BatchJob.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: BatchJob\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`BatchJob`**\n\n## Constructors\n\n### constructor\n\n• **new BatchJob**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• `Optional` **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:62](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L62)\n\n___\n\n### completed\\_at\n\n• `Optional` **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:59](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L59)\n\n___\n\n### confirmed\\_at\n\n• `Optional` **confirmed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L56)\n\n___\n\n### context\n\n• **context**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/batch-job.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L33)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### created\\_by\n\n• **created\\_by**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/batch-job.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L26)\n\n___\n\n### created\\_by\\_user\n\n• **created\\_by\\_user**: [`User`](User.md)\n\n#### Defined in\n\n[models/batch-job.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L30)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### dry\\_run\n\n• **dry\\_run**: `boolean` = `false`\n\n#### Defined in\n\n[models/batch-job.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L47)\n\n___\n\n### failed\\_at\n\n• `Optional` **failed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:65](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L65)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### pre\\_processed\\_at\n\n• `Optional` **pre\\_processed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L50)\n\n___\n\n### processing\\_at\n\n• `Optional` **processing\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L53)\n\n___\n\n### result\n\n• **result**: { `advancement_count?`: `number` ; `count?`: `number` ; `errors?`: `BatchJobResultError`[] ; `file_key?`: `string` ; `file_size?`: `number` ; `progress?`: `number` ; `stat_descriptors?`: `BatchJobResultStatDescriptor`[]  } & `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/batch-job.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L36)\n\n___\n\n### status\n\n• **status**: `BatchJobStatus`\n\n#### Defined in\n\n[models/batch-job.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L67)\n\n___\n\n### type\n\n• **type**: `string`\n\n#### Defined in\n\n[models/batch-job.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L23)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/batch-job.ts:94](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L94)\n\n___\n\n### loadStatus\n\n▸ **loadStatus**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/batch-job.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L69)\n\n___\n\n### toJSON\n\n▸ **toJSON**(): [`BatchJob`](BatchJob.md)\n\n#### Returns\n\n[`BatchJob`](BatchJob.md)\n\n#### Defined in\n\n[models/batch-job.ts:99](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L99)\n","docs/content/references/entities/classes/Cart.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Cart\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Cart`**\n\n## Constructors\n\n### constructor\n\n• **new Cart**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### billing\\_address\n\n• **billing\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/cart.ts:226](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L226)\n\n___\n\n### billing\\_address\\_id\n\n• **billing\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:220](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L220)\n\n___\n\n### completed\\_at\n\n• **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/cart.ts:311](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L311)\n\n___\n\n### context\n\n• **context**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/cart.ts:320](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L320)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\n\n• **customer**: [`Customer`](Customer.md)\n\n#### Defined in\n\n[models/cart.ts:285](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L285)\n\n___\n\n### customer\\_id\n\n• **customer\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:281](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L281)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### discount\\_total\n\n• `Optional` **discount\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:335](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L335)\n\n___\n\n### discounts\n\n• **discounts**: [`Discount`](Discount.md)[]\n\n#### Defined in\n\n[models/cart.ts:263](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L263)\n\n___\n\n### email\n\n• **email**: `string`\n\n#### Defined in\n\n[models/cart.ts:216](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L216)\n\n___\n\n### gift\\_card\\_tax\\_total\n\n• `Optional` **gift\\_card\\_tax\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:344](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L344)\n\n___\n\n### gift\\_card\\_total\n\n• `Optional` **gift\\_card\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:343](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L343)\n\n___\n\n### gift\\_cards\n\n• **gift\\_cards**: [`GiftCard`](GiftCard.md)[]\n\n#### Defined in\n\n[models/cart.ts:277](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L277)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/cart.ts:317](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L317)\n\n___\n\n### item\\_tax\\_total\n\n• `Optional` **item\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:336](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L336)\n\n___\n\n### items\n\n• **items**: [`LineItem`](LineItem.md)[]\n\n#### Defined in\n\n[models/cart.ts:241](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L241)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/cart.ts:323](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L323)\n\n___\n\n### object\n\n• `Readonly` **object**: ``\"cart\"``\n\n#### Defined in\n\n[models/cart.ts:213](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L213)\n\n___\n\n### payment\n\n• **payment**: [`Payment`](Payment.md)\n\n#### Defined in\n\n[models/cart.ts:300](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L300)\n\n___\n\n### payment\\_authorized\\_at\n\n• **payment\\_authorized\\_at**: `Date`\n\n#### Defined in\n\n[models/cart.ts:314](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L314)\n\n___\n\n### payment\\_id\n\n• **payment\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:296](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L296)\n\n___\n\n### payment\\_session\n\n• **payment\\_session**: ``null`` \\| [`PaymentSession`](PaymentSession.md)\n\n#### Defined in\n\n[models/cart.ts:287](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L287)\n\n___\n\n### payment\\_sessions\n\n• **payment\\_sessions**: [`PaymentSession`](PaymentSession.md)[]\n\n#### Defined in\n\n[models/cart.ts:292](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L292)\n\n___\n\n### refundable\\_amount\n\n• `Optional` **refundable\\_amount**: `number`\n\n#### Defined in\n\n[models/cart.ts:342](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L342)\n\n___\n\n### refunded\\_total\n\n• `Optional` **refunded\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:339](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L339)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/cart.ts:249](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L249)\n\n___\n\n### region\\_id\n\n• **region\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:245](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L245)\n\n___\n\n### sales\\_channel\n\n• **sales\\_channel**: [`SalesChannel`](SalesChannel.md)\n\n#### Defined in\n\n[models/cart.ts:332](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L332)\n\n___\n\n### sales\\_channel\\_id\n\n• **sales\\_channel\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/cart.ts:326](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L326)\n\n___\n\n### shipping\\_address\n\n• **shipping\\_address**: ``null`` \\| [`Address`](Address.md)\n\n#### Defined in\n\n[models/cart.ts:236](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L236)\n\n___\n\n### shipping\\_address\\_id\n\n• **shipping\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:230](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L230)\n\n___\n\n### shipping\\_methods\n\n• **shipping\\_methods**: [`ShippingMethod`](ShippingMethod.md)[]\n\n#### Defined in\n\n[models/cart.ts:305](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L305)\n\n___\n\n### shipping\\_tax\\_total\n\n• `Optional` **shipping\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:337](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L337)\n\n___\n\n### shipping\\_total\n\n• `Optional` **shipping\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:334](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L334)\n\n___\n\n### subtotal\n\n• `Optional` **subtotal**: `number`\n\n#### Defined in\n\n[models/cart.ts:341](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L341)\n\n___\n\n### tax\\_total\n\n• `Optional` **tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:338](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L338)\n\n___\n\n### total\n\n• `Optional` **total**: `number`\n\n#### Defined in\n\n[models/cart.ts:340](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L340)\n\n___\n\n### type\n\n• **type**: [`CartType`](../enums/CartType.md)\n\n#### Defined in\n\n[models/cart.ts:308](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L308)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### afterLoad\n\n▸ `Private` **afterLoad**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/cart.ts:346](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L346)\n\n___\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/cart.ts:353](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L353)\n","docs/content/references/entities/classes/ClaimImage.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimImage\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimImage`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimImage**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### claim\\_item\n\n• **claim\\_item**: [`ClaimItem`](ClaimItem.md)\n\n#### Defined in\n\n[models/claim-image.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L23)\n\n___\n\n### claim\\_item\\_id\n\n• **claim\\_item\\_id**: `string`\n\n#### Defined in\n\n[models/claim-image.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L19)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-image.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L29)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### url\n\n• **url**: `string`\n\n#### Defined in\n\n[models/claim-image.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L26)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-image.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L31)\n","docs/content/references/entities/classes/ClaimItem.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimItem\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimItem`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimItem**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/claim-item.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L42)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L38)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### images\n\n• **images**: [`ClaimImage`](ClaimImage.md)[]\n\n#### Defined in\n\n[models/claim-item.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L34)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/claim-item.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L50)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L46)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-item.ts:84](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L84)\n\n___\n\n### note\n\n• **note**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:64](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L64)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/claim-item.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L67)\n\n___\n\n### reason\n\n• **reason**: [`ClaimReason`](../enums/ClaimReason.md)\n\n#### Defined in\n\n[models/claim-item.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L61)\n\n___\n\n### tags\n\n• **tags**: [`ClaimTag`](ClaimTag.md)[]\n\n#### Defined in\n\n[models/claim-item.ts:81](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L81)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### variant\n\n• **variant**: [`ProductVariant`](ProductVariant.md)\n\n#### Defined in\n\n[models/claim-item.ts:58](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L58)\n\n___\n\n### variant\\_id\n\n• **variant\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L54)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-item.ts:86](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L86)\n","docs/content/references/entities/classes/ClaimOrder.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimOrder\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimOrder`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimOrder**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### additional\\_items\n\n• **additional\\_items**: [`LineItem`](LineItem.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L69)\n\n___\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/claim-order.ts:107](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L107)\n\n___\n\n### claim\\_items\n\n• **claim\\_items**: [`ClaimItem`](ClaimItem.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:66](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L66)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[models/claim-order.ts:110](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L110)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[models/claim-order.ts:116](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L116)\n\n___\n\n### fulfillment\\_status\n\n• **fulfillment\\_status**: [`ClaimFulfillmentStatus`](../enums/ClaimFulfillmentStatus.md)\n\n#### Defined in\n\n[models/claim-order.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L63)\n\n___\n\n### fulfillments\n\n• **fulfillments**: [`Fulfillment`](Fulfillment.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:101](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L101)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:125](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L125)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-order.ts:122](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L122)\n\n___\n\n### no\\_notification\n\n• **no\\_notification**: `boolean`\n\n#### Defined in\n\n[models/claim-order.ts:119](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L119)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/claim-order.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L80)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:76](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L76)\n\n___\n\n### payment\\_status\n\n• **payment\\_status**: [`ClaimPaymentStatus`](../enums/ClaimPaymentStatus.md)\n\n#### Defined in\n\n[models/claim-order.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L56)\n\n___\n\n### refund\\_amount\n\n• **refund\\_amount**: `number`\n\n#### Defined in\n\n[models/claim-order.ts:104](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L104)\n\n___\n\n### return\\_order\n\n• **return\\_order**: [`Return`](Return.md)\n\n#### Defined in\n\n[models/claim-order.ts:83](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L83)\n\n___\n\n### shipping\\_address\n\n• **shipping\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/claim-order.ts:91](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L91)\n\n___\n\n### shipping\\_address\\_id\n\n• **shipping\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:87](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L87)\n\n___\n\n### shipping\\_methods\n\n• **shipping\\_methods**: [`ShippingMethod`](ShippingMethod.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:96](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L96)\n\n___\n\n### type\n\n• **type**: [`ClaimType`](../enums/ClaimType.md)\n\n#### Defined in\n\n[models/claim-order.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L72)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[models/claim-order.ts:113](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L113)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-order.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L127)\n","docs/content/references/entities/classes/ClaimTag.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimTag\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimTag`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimTag**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-tag.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L14)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `string`\n\n#### Defined in\n\n[models/claim-tag.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L11)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-tag.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L16)\n","docs/content/references/entities/classes/Country.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Country\n\n## Constructors\n\n### constructor\n\n• **new Country**()\n\n## Properties\n\n### display\\_name\n\n• **display\\_name**: `string`\n\n#### Defined in\n\n[models/country.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L31)\n\n___\n\n### id\n\n• **id**: `number`\n\n#### Defined in\n\n[models/country.ts:15](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L15)\n\n___\n\n### iso\\_2\n\n• **iso\\_2**: `string`\n\n#### Defined in\n\n[models/country.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L19)\n\n___\n\n### iso\\_3\n\n• **iso\\_3**: `string`\n\n#### Defined in\n\n[models/country.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L22)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/country.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L28)\n\n___\n\n### num\\_code\n\n• **num\\_code**: `number`\n\n#### Defined in\n\n[models/country.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L25)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/country.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L39)\n\n___\n\n### region\\_id\n\n• **region\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/country.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L35)\n","docs/content/references/entities/classes/Currency.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Currency\n\n## Constructors\n\n### constructor\n\n• **new Currency**()\n\n## Properties\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/currency.ts:8](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L8)\n\n___\n\n### includes\\_tax\n\n• `Optional` **includes\\_tax**: `boolean`\n\n#### Defined in\n\n[models/currency.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L20)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/currency.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L17)\n\n___\n\n### symbol\n\n• **symbol**: `string`\n\n#### Defined in\n\n[models/currency.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L11)\n\n___\n\n### symbol\\_native\n\n• **symbol\\_native**: `string`\n\n#### Defined in\n\n[models/currency.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L14)\n","docs/content/references/entities/classes/CustomShippingOption.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: CustomShippingOption\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`CustomShippingOption`**\n\n## Constructors\n\n### constructor\n\n• **new CustomShippingOption**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/custom-shipping-option.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L37)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L33)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/custom-shipping-option.ts:40](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L40)\n\n___\n\n### price\n\n• **price**: `number`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:21](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L21)\n\n___\n\n### shipping\\_option\n\n• **shipping\\_option**: [`ShippingOption`](ShippingOption.md)\n\n#### Defined in\n\n[models/custom-shipping-option.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L29)\n\n___\n\n### shipping\\_option\\_id\n\n• **shipping\\_option\\_id**: `string`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L25)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L42)\n","docs/content/references/entities/classes/Customer.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Customer\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Customer`**\n\n## Constructors\n\n### constructor\n\n• **new Customer**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### billing\\_address\n\n• **billing\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/customer.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L38)\n\n___\n\n### billing\\_address\\_id\n\n• **billing\\_address\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/customer.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L34)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### email\n\n• **email**: `string`\n\n#### Defined in\n\n[models/customer.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L24)\n\n___\n\n### first\\_name\n\n• **first\\_name**: `string`\n\n#### Defined in\n\n[models/customer.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L27)\n\n___\n\n### groups\n\n• **groups**: [`CustomerGroup`](CustomerGroup.md)[]\n\n#### Defined in\n\n[models/customer.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L69)\n\n___\n\n### has\\_account\n\n• **has\\_account**: `boolean`\n\n#### Defined in\n\n[models/customer.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L50)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### last\\_name\n\n• **last\\_name**: `string`\n\n#### Defined in\n\n[models/customer.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L30)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/customer.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L72)\n\n___\n\n### orders\n\n• **orders**: [`Order`](Order.md)[]\n\n#### Defined in\n\n[models/customer.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L53)\n\n___\n\n### password\\_hash\n\n• **password\\_hash**: `string`\n\n#### Defined in\n\n[models/customer.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L44)\n\n___\n\n### phone\n\n• **phone**: `string`\n\n#### Defined in\n\n[models/customer.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L47)\n\n___\n\n### shipping\\_addresses\n\n• **shipping\\_addresses**: [`Address`](Address.md)[]\n\n#### Defined in\n\n[models/customer.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L41)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/customer.ts:74](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L74)\n","docs/content/references/entities/classes/CustomerGroup.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: CustomerGroup\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`CustomerGroup`**\n\n## Constructors\n\n### constructor\n\n• **new CustomerGroup**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customers\n\n• **customers**: [`Customer`](Customer.md)[]\n\n#### Defined in\n\n[models/customer-group.ts:18](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L18)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/customer-group.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L26)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/customer-group.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L13)\n\n___\n\n### price\\_lists\n\n• **price\\_lists**: [`PriceList`](PriceList.md)[]\n\n#### Defined in\n\n[models/customer-group.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L23)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/customer-group.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L28)\n","docs/content/references/entities/classes/Discount.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Discount\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Discount`**\n\n## Constructors\n\n### constructor\n\n• **new Discount**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/discount.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L22)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### ends\\_at\n\n• **ends\\_at**: ``null`` \\| `Date`\n\n#### Defined in\n\n[models/discount.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L52)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### is\\_disabled\n\n• **is\\_disabled**: `boolean`\n\n#### Defined in\n\n[models/discount.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L36)\n\n___\n\n### is\\_dynamic\n\n• **is\\_dynamic**: `boolean`\n\n#### Defined in\n\n[models/discount.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L25)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount.ts:78](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L78)\n\n___\n\n### parent\\_discount\n\n• **parent\\_discount**: [`Discount`](Discount.md)\n\n#### Defined in\n\n[models/discount.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L43)\n\n___\n\n### parent\\_discount\\_id\n\n• **parent\\_discount\\_id**: `string`\n\n#### Defined in\n\n[models/discount.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L39)\n\n___\n\n### regions\n\n• **regions**: [`Region`](Region.md)[]\n\n#### Defined in\n\n[models/discount.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L69)\n\n___\n\n### rule\n\n• **rule**: [`DiscountRule`](DiscountRule.md)\n\n#### Defined in\n\n[models/discount.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L33)\n\n___\n\n### rule\\_id\n\n• **rule\\_id**: `string`\n\n#### Defined in\n\n[models/discount.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L29)\n\n___\n\n### starts\\_at\n\n• **starts\\_at**: `Date`\n\n#### Defined in\n\n[models/discount.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L49)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### usage\\_count\n\n• **usage\\_count**: `number`\n\n#### Defined in\n\n[models/discount.ts:75](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L75)\n\n___\n\n### usage\\_limit\n\n• **usage\\_limit**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/discount.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L72)\n\n___\n\n### valid\\_duration\n\n• **valid\\_duration**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/discount.ts:55](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L55)\n\n## Methods\n\n### upperCaseCodeAndTrim\n\n▸ `Private` **upperCaseCodeAndTrim**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L80)\n","docs/content/references/entities/classes/DiscountCondition.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountCondition\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`DiscountCondition`**\n\n## Constructors\n\n### constructor\n\n• **new DiscountCondition**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\\_groups\n\n• **customer\\_groups**: [`CustomerGroup`](CustomerGroup.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L127)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### discount\\_rule\n\n• **discount\\_rule**: [`DiscountRule`](DiscountRule.md)\n\n#### Defined in\n\n[models/discount-condition.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L57)\n\n___\n\n### discount\\_rule\\_id\n\n• **discount\\_rule\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L53)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition.ts:130](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L130)\n\n___\n\n### operator\n\n• **operator**: [`DiscountConditionOperator`](../enums/DiscountConditionOperator.md)\n\n#### Defined in\n\n[models/discount-condition.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L49)\n\n___\n\n### product\\_collections\n\n• **product\\_collections**: [`ProductCollection`](ProductCollection.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:113](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L113)\n\n___\n\n### product\\_tags\n\n• **product\\_tags**: [`ProductTag`](ProductTag.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:99](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L99)\n\n___\n\n### product\\_types\n\n• **product\\_types**: [`ProductType`](ProductType.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L85)\n\n___\n\n### products\n\n• **products**: [`Product`](Product.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:71](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L71)\n\n___\n\n### type\n\n• **type**: [`DiscountConditionType`](../enums/DiscountConditionType.md)\n\n#### Defined in\n\n[models/discount-condition.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L43)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount-condition.ts:132](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L132)\n","docs/content/references/entities/classes/DiscountConditionCustomerGroup.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionCustomerGroup\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionCustomerGroup**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L31)\n\n___\n\n### customer\\_group\n\n• `Optional` **customer\\_group**: [`CustomerGroup`](CustomerGroup.md)\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L24)\n\n___\n\n### customer\\_group\\_id\n\n• **customer\\_group\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L17)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L37)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L34)\n","docs/content/references/entities/classes/DiscountConditionProduct.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProduct\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProduct**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L37)\n\n___\n\n### product\n\n• `Optional` **product**: [`Product`](Product.md)\n\n#### Defined in\n\n[models/discount-condition-product.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L24)\n\n___\n\n### product\\_id\n\n• **product\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L34)\n","docs/content/references/entities/classes/DiscountConditionProductCollection.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductCollection\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductCollection**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L37)\n\n___\n\n### product\\_collection\n\n• `Optional` **product\\_collection**: [`ProductCollection`](ProductCollection.md)\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L24)\n\n___\n\n### product\\_collection\\_id\n\n• **product\\_collection\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L34)\n","docs/content/references/entities/classes/DiscountConditionProductTag.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductTag\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductTag**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L37)\n\n___\n\n### product\\_tag\n\n• `Optional` **product\\_tag**: [`ProductTag`](ProductTag.md)\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L24)\n\n___\n\n### product\\_tag\\_id\n\n• **product\\_tag\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L34)\n","docs/content/references/entities/classes/DiscountConditionProductType.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductType\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductType**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L37)\n\n___\n\n### product\\_type\n\n• `Optional` **product\\_type**: [`ProductType`](ProductType.md)\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L24)\n\n___\n\n### product\\_type\\_id\n\n• **product\\_type\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L34)\n","docs/content/references/entities/classes/DiscountRule.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountRule\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`DiscountRule`**\n\n## Constructors\n\n### constructor\n\n• **new DiscountRule**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### allocation\n\n• **allocation**: [`AllocationType`](../enums/AllocationType.md)\n\n#### Defined in\n\n[models/discount-rule.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L38)\n\n___\n\n### conditions\n\n• **conditions**: [`DiscountCondition`](DiscountCondition.md)[]\n\n#### Defined in\n\n[models/discount-rule.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L41)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/discount-rule.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L22)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-rule.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L44)\n\n___\n\n### type\n\n• **type**: [`DiscountRuleType`](../enums/DiscountRuleType.md)\n\n#### Defined in\n\n[models/discount-rule.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L28)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `number`\n\n#### Defined in\n\n[models/discount-rule.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L31)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount-rule.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L46)\n","docs/content/references/entities/classes/DraftOrder.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DraftOrder\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`DraftOrder`**\n\n## Constructors\n\n### constructor\n\n• **new DraftOrder**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/draft-order.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L54)\n\n___\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/draft-order.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L43)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L39)\n\n___\n\n### completed\\_at\n\n• **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/draft-order.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L57)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### display\\_id\n\n• **display\\_id**: `number`\n\n#### Defined in\n\n[models/draft-order.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L35)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:66](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L66)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/draft-order.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L63)\n\n___\n\n### no\\_notification\\_order\n\n• **no\\_notification\\_order**: `boolean`\n\n#### Defined in\n\n[models/draft-order.ts:60](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L60)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/draft-order.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L51)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L47)\n\n___\n\n### status\n\n• **status**: [`DraftOrderStatus`](../enums/DraftOrderStatus.md)\n\n#### Defined in\n\n[models/draft-order.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L30)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `Promise`<`void`\\>\n\n#### Returns\n\n`Promise`<`void`\\>\n\n#### Defined in\n\n[models/draft-order.ts:68](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L68)\n","docs/content/references/entities/classes/Fulfillment.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Fulfillment\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`Fulfillment`**\n\n## Constructors\n\n### constructor\n\n• **new Fulfillment**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/fulfillment.ts:79](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L79)\n\n___\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/fulfillment.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L29)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L25)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### data\n\n• **data**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/fulfillment.ts:73](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L73)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L85)\n\n___\n\n### items\n\n• **items**: [`FulfillmentItem`](FulfillmentItem.md)[]\n\n#### Defined in\n\n[models/fulfillment.ts:62](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L62)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/fulfillment.ts:82](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L82)\n\n___\n\n### no\\_notification\n\n• **no\\_notification**: `boolean`\n\n#### Defined in\n\n[models/fulfillment.ts:48](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L48)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/fulfillment.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L45)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L41)\n\n___\n\n### provider\n\n• **provider**: [`FulfillmentProvider`](FulfillmentProvider.md)\n\n#### Defined in\n\n[models/fulfillment.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L56)\n\n___\n\n### provider\\_id\n\n• **provider\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L52)\n\n___\n\n### shipped\\_at\n\n• **shipped\\_at**: `Date`\n\n#### Defined in\n\n[models/fulfillment.ts:76](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L76)\n\n___\n\n### swap\n\n• **swap**: [`Swap`](Swap.md)\n\n#### Defined in\n\n[models/fulfillment.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L37)\n\n___\n\n### swap\\_id\n\n• **swap\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L33)\n\n___\n\n### tracking\\_links\n\n• **tracking\\_links**: [`TrackingLink`](TrackingLink.md)[]\n\n#### Defined in\n\n[models/fulfillment.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L67)\n\n___\n\n### tracking\\_numbers\n\n• **tracking\\_numbers**: `string`[]\n\n#### Defined in\n\n[models/fulfillment.ts:70](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L70)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/fulfillment.ts:87](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L87)\n","docs/content/references/entities/classes/FulfillmentItem.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: FulfillmentItem\n\n## Constructors\n\n### constructor\n\n• **new FulfillmentItem**()\n\n## Properties\n\n### fulfillment\n\n• **fulfillment**: [`Fulfillment`](Fulfillment.md)\n\n#### Defined in\n\n[models/fulfillment-item.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L16)\n\n___\n\n### fulfillment\\_id\n\n• **fulfillment\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment-item.ts:9](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L9)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/fulfillment-item.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L20)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment-item.ts:12](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L12)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/fulfillment-item.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L23)\n","docs/content/references/entities/classes/FulfillmentProvider.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: FulfillmentProvider\n\n## Constructors\n\n### constructor\n\n• **new FulfillmentProvider**()\n\n## Properties\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/fulfillment-provider.ts:6](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-provider.ts#L6)\n\n___\n\n### is\\_installed\n\n• **is\\_installed**: `boolean`\n\n#### Defined in\n\n[models/fulfillment-provider.ts:9](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-provider.ts#L9)\n","docs/content/references/entities/classes/GiftCard.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: GiftCard\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`GiftCard`**\n\n## Constructors\n\n### constructor\n\n• **new GiftCard**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### balance\n\n• **balance**: `number`\n\n#### Defined in\n\n[models/gift-card.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L26)\n\n___\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### ends\\_at\n\n• **ends\\_at**: `Date`\n\n#### Defined in\n\n[models/gift-card.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L51)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### is\\_disabled\n\n• **is\\_disabled**: `boolean`\n\n#### Defined in\n\n[models/gift-card.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L45)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/gift-card.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L54)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/gift-card.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L42)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L38)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/gift-card.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L34)\n\n___\n\n### region\\_id\n\n• **region\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L30)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `number`\n\n#### Defined in\n\n[models/gift-card.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L23)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/gift-card.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L56)\n","docs/content/references/entities/classes/GiftCardTransaction.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: GiftCardTransaction\n\n## Constructors\n\n### constructor\n\n• **new GiftCardTransaction**()\n\n## Properties\n\n### amount\n\n• **amount**: `number`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:40](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L40)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L43)\n\n___\n\n### gift\\_card\n\n• **gift\\_card**: [`GiftCard`](GiftCard.md)\n\n#### Defined in\n\n[models/gift-card-transaction.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L29)\n\n___\n\n### gift\\_card\\_id\n\n• **gift\\_card\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L25)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L22)\n\n___\n\n### is\\_taxable\n\n• **is\\_taxable**: `boolean`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L46)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/gift-card-transaction.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L37)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L33)\n\n___\n\n### tax\\_rate\n\n• **tax\\_rate**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L49)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L51)\n","docs/content/references/entities/classes/IdempotencyKey.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: IdempotencyKey\n\n## Constructors\n\n### constructor\n\n• **new IdempotencyKey**()\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/idempotency-key.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L23)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L16)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L20)\n\n___\n\n### locked\\_at\n\n• **locked\\_at**: `Date`\n\n#### Defined in\n\n[models/idempotency-key.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L26)\n\n___\n\n### recovery\\_point\n\n• **recovery\\_point**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L44)\n\n___\n\n### request\\_method\n\n• **request\\_method**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L29)\n\n___\n\n### request\\_params\n\n• **request\\_params**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/idempotency-key.ts:32](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L32)\n\n___\n\n### request\\_path\n\n• **request\\_path**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L35)\n\n___\n\n### response\\_body\n\n• **response\\_body**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/idempotency-key.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L41)\n\n___\n\n### response\\_code\n\n• **response\\_code**: `number`\n\n#### Defined in\n\n[models/idempotency-key.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L38)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/idempotency-key.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L46)\n","docs/content/references/entities/classes/Image.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Image\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Image`**\n\n## Constructors\n\n### constructor\n\n• **new Image**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/image.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L13)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### url\n\n• **url**: `string`\n\n#### Defined in\n\n[models/image.ts:10](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L10)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/image.ts:15](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L15)\n","docs/content/references/entities/classes/Invite.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Invite\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Invite`**\n\n## Constructors\n\n### constructor\n\n• **new Invite**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### accepted\n\n• **accepted**: `boolean`\n\n#### Defined in\n\n[models/invite.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L23)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### expires\\_at\n\n• **expires\\_at**: `Date`\n\n#### Defined in\n\n[models/invite.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L29)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/invite.ts:32](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L32)\n\n___\n\n### role\n\n• **role**: [`UserRoles`](../enums/UserRoles.md)\n\n#### Defined in\n\n[models/invite.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L20)\n\n___\n\n### token\n\n• **token**: `string`\n\n#### Defined in\n\n[models/invite.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L26)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### user\\_email\n\n• **user\\_email**: `string`\n\n#### Defined in\n\n[models/invite.ts:12](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L12)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/invite.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L34)\n","docs/content/references/entities/classes/LineItem.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItem\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`LineItem`**\n\n## Constructors\n\n### constructor\n\n• **new LineItem**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### adjustments\n\n• **adjustments**: [`LineItemAdjustment`](LineItemAdjustment.md)[]\n\n#### Defined in\n\n[models/line-item.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L85)\n\n___\n\n### allow\\_discounts\n\n• **allow\\_discounts**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L127)\n\n___\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/line-item.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L53)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L49)\n\n___\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/line-item.ts:77](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L77)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:73](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L73)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/line-item.ts:112](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L112)\n\n___\n\n### discount\\_total\n\n• `Optional` **discount\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:167](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L167)\n\n___\n\n### fulfilled\\_quantity\n\n• **fulfilled\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:147](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L147)\n\n___\n\n### gift\\_card\\_total\n\n• `Optional` **gift\\_card\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:168](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L168)\n\n___\n\n### has\\_shipping\n\n• **has\\_shipping**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:130](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L130)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### includes\\_tax\n\n• **includes\\_tax**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:159](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L159)\n\n___\n\n### is\\_giftcard\n\n• **is\\_giftcard**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:121](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L121)\n\n___\n\n### is\\_return\n\n• **is\\_return**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:118](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L118)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/line-item.ts:156](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L156)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/line-item.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L61)\n\n___\n\n### order\\_edit\n\n• `Optional` **order\\_edit**: ``null`` \\| [`OrderEdit`](OrderEdit.md)\n\n#### Defined in\n\n[models/line-item.ts:106](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L106)\n\n___\n\n### order\\_edit\\_id\n\n• `Optional` **order\\_edit\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:97](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L97)\n\n___\n\n### order\\_id\n\n• **order\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L57)\n\n___\n\n### original\\_item\\_id\n\n• `Optional` **original\\_item\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:91](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L91)\n\n___\n\n### original\\_tax\\_total\n\n• `Optional` **original\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:166](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L166)\n\n___\n\n### original\\_total\n\n• `Optional` **original\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:165](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L165)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:144](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L144)\n\n___\n\n### refundable\n\n• `Optional` **refundable**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:161](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L161)\n\n___\n\n### returned\\_quantity\n\n• **returned\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:150](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L150)\n\n___\n\n### shipped\\_quantity\n\n• **shipped\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:153](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L153)\n\n___\n\n### should\\_merge\n\n• **should\\_merge**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:124](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L124)\n\n___\n\n### subtotal\n\n• `Optional` **subtotal**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:162](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L162)\n\n___\n\n### swap\n\n• **swap**: [`Swap`](Swap.md)\n\n#### Defined in\n\n[models/line-item.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L69)\n\n___\n\n### swap\\_id\n\n• **swap\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:65](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L65)\n\n___\n\n### tax\\_lines\n\n• **tax\\_lines**: [`LineItemTaxLine`](LineItemTaxLine.md)[]\n\n#### Defined in\n\n[models/line-item.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L80)\n\n___\n\n### tax\\_total\n\n• `Optional` **tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:163](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L163)\n\n___\n\n### thumbnail\n\n• **thumbnail**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:115](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L115)\n\n___\n\n### title\n\n• **title**: `string`\n\n#### Defined in\n\n[models/line-item.ts:109](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L109)\n\n___\n\n### total\n\n• `Optional` **total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:164](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L164)\n\n___\n\n### unit\\_price\n\n• **unit\\_price**: `number`\n\n#### Defined in\n\n[models/line-item.ts:133](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L133)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### variant\n\n• **variant**: [`ProductVariant`](ProductVariant.md)\n\n#### Defined in\n\n[models/line-item.ts:141](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L141)\n\n___\n\n### variant\\_id\n\n• **variant\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:137](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L137)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item.ts:170](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L170)\n","docs/content/references/entities/classes/LineItemAdjustment.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItemAdjustment\n\n## Constructors\n\n### constructor\n\n• **new LineItemAdjustment**()\n\n## Properties\n\n### amount\n\n• **amount**: `number`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L45)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L34)\n\n___\n\n### discount\n\n• **discount**: [`Discount`](Discount.md)\n\n#### Defined in\n\n[models/line-item-adjustment.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L38)\n\n___\n\n### discount\\_id\n\n• **discount\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L42)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L23)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/line-item-adjustment.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L31)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L27)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/line-item-adjustment.ts:48](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L48)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L50)\n","docs/content/references/entities/classes/LineItemTaxLine.md":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItemTaxLine\n\n## Hierarchy\n\n- `TaxLine`\n\n  ↳ **`LineItemTaxLine`**\n\n## Constructors\n\n### constructor\n\n• **new LineItemTaxLine**()\n\n#### Inherited from\n\nTaxLine.constructor\n\n## Properties\n\n### code\n\n• **code**: ``null`` \\| `string`\n\n#### Inherited from\n\nTaxLine.code\n\n#### Defined in\n\n[models/tax-line.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L13)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nTaxLine.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nTaxLine.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/line-item-tax-line.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L24)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-tax-line.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L20)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Inherited from\n\nTaxLine.metadata\n\n#### Defined in\n\n[models/tax-line.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L16)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Inherited from\n\nTaxLine.name\n\n#### Defined in\n\n[models/tax-line.ts:10](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L10)\n\n___\n\n### rate\n\n• **rate**: `number`\n\n#### Inherited from\n\nTaxLine.rate\n\n#### Defined in\n\n[models/tax-line.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L7)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nTaxLine.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item-tax-line.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L26)\n","docs/content/references/entities/classes/MoneyAmount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FMoneyAmount.md -->","docs/content/references/entities/classes/Note.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FNote.md -->","docs/content/references/entities/classes/Notification.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FNotification.md -->","docs/content/references/entities/classes/Oauth.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOauth.md -->","docs/content/references/entities/classes/Order.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrder.md -->","docs/content/references/entities/classes/OrderEdit.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrderEdit.md -->","docs/content/references/entities/classes/OrderItemChange.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrderItemChange.md -->","docs/content/references/entities/classes/Payment.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPayment.md -->","docs/content/references/entities/classes/PaymentCollection.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentCollection.md -->","docs/content/references/entities/classes/PaymentProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentProvider.md -->","docs/content/references/entities/classes/PaymentSession.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentSession.md -->","docs/content/references/entities/classes/PriceList.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPriceList.md -->","docs/content/references/entities/classes/Product.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProduct.md -->","docs/content/references/entities/classes/ProductCollection.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductCollection.md -->","docs/content/references/entities/classes/ProductOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductOption.md -->","docs/content/references/entities/classes/ProductOptionValue.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductOptionValue.md -->","docs/content/references/entities/classes/ProductTag.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTag.md -->","docs/content/references/entities/classes/ProductTaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTaxRate.md -->","docs/content/references/entities/classes/ProductType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductType.md -->","docs/content/references/entities/classes/ProductTypeTaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTypeTaxRate.md -->","docs/content/references/entities/classes/ProductVariant.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductVariant.md -->","docs/content/references/entities/classes/PublishableApiKey.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPublishableApiKey.md -->","docs/content/references/entities/classes/PublishableApiKeySalesChannel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPublishableApiKeySalesChannel.md -->","docs/content/references/entities/classes/Refund.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FRefund.md -->","docs/content/references/entities/classes/Region.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FRegion.md -->","docs/content/references/entities/classes/Return.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturn.md -->","docs/content/references/entities/classes/ReturnItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturnItem.md -->","docs/content/references/entities/classes/ReturnReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturnReason.md -->","docs/content/references/entities/classes/SalesChannel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FSalesChannel.md -->","docs/content/references/entities/classes/ShippingMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingMethod.md -->","docs/content/references/entities/classes/ShippingMethodTaxLine.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingMethodTaxLine.md -->","docs/content/references/entities/classes/ShippingOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingOption.md -->","docs/content/references/entities/classes/ShippingOptionRequirement.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingOptionRequirement.md -->","docs/content/references/entities/classes/ShippingProfile.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingProfile.md -->","docs/content/references/entities/classes/ShippingTaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingTaxRate.md -->","docs/content/references/entities/classes/StagedJob.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FStagedJob.md -->","docs/content/references/entities/classes/Store.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FStore.md -->","docs/content/references/entities/classes/Swap.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FSwap.md -->","docs/content/references/entities/classes/TaxProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTaxProvider.md -->","docs/content/references/entities/classes/TaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTaxRate.md -->","docs/content/references/entities/classes/TrackingLink.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTrackingLink.md -->","docs/content/references/entities/classes/User.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FUser.md -->","docs/content/references/entities/enums/AllocationType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FAllocationType.md -->","docs/content/references/entities/enums/CartType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FCartType.md -->","docs/content/references/entities/enums/ClaimFulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimFulfillmentStatus.md -->","docs/content/references/entities/enums/ClaimPaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimPaymentStatus.md -->","docs/content/references/entities/enums/ClaimReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimReason.md -->","docs/content/references/entities/enums/ClaimType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimType.md -->","docs/content/references/entities/enums/DiscountConditionOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountConditionOperator.md -->","docs/content/references/entities/enums/DiscountConditionType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountConditionType.md -->","docs/content/references/entities/enums/DiscountRuleType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountRuleType.md -->","docs/content/references/entities/enums/DraftOrderStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDraftOrderStatus.md -->","docs/content/references/entities/enums/FulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FFulfillmentStatus.md -->","docs/content/references/entities/enums/OrderEditItemChangeType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderEditItemChangeType.md -->","docs/content/references/entities/enums/OrderEditStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderEditStatus.md -->","docs/content/references/entities/enums/OrderStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderStatus.md -->","docs/content/references/entities/enums/PaymentCollectionStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentCollectionStatus.md -->","docs/content/references/entities/enums/PaymentCollectionType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentCollectionType.md -->","docs/content/references/entities/enums/PaymentSessionStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentSessionStatus.md -->","docs/content/references/entities/enums/PaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentStatus.md -->","docs/content/references/entities/enums/ProductStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FProductStatus.md -->","docs/content/references/entities/enums/RefundReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FRefundReason.md -->","docs/content/references/entities/enums/RequirementType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FRequirementType.md -->","docs/content/references/entities/enums/ReturnStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FReturnStatus.md -->","docs/content/references/entities/enums/ShippingOptionPriceType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FShippingOptionPriceType.md -->","docs/content/references/entities/enums/ShippingProfileType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FShippingProfileType.md -->","docs/content/references/entities/enums/SwapFulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FSwapFulfillmentStatus.md -->","docs/content/references/entities/enums/SwapPaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FSwapPaymentStatus.md -->","docs/content/references/entities/enums/UserRoles.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FUserRoles.md -->","docs/content/references/entities/index.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Findex.md -->","docs/content/references/js-client/classes/AddressesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAddressesResource.md -->","docs/content/references/js-client/classes/Admin.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdmin.md -->","docs/content/references/js-client/classes/AdminAuthResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminAuthResource.md -->","docs/content/references/js-client/classes/AdminBatchJobsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminBatchJobsResource.md -->","docs/content/references/js-client/classes/AdminCollectionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCollectionsResource.md -->","docs/content/references/js-client/classes/AdminCurrenciesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCurrenciesResource.md -->","docs/content/references/js-client/classes/AdminCustomerGroupsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCustomerGroupsResource.md -->","docs/content/references/js-client/classes/AdminCustomersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCustomersResource.md -->","docs/content/references/js-client/classes/AdminDiscountsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminDiscountsResource.md -->","docs/content/references/js-client/classes/AdminDraftOrdersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminDraftOrdersResource.md -->","docs/content/references/js-client/classes/AdminGiftCardsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminGiftCardsResource.md -->","docs/content/references/js-client/classes/AdminInvitesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminInvitesResource.md -->","docs/content/references/js-client/classes/AdminNotesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminNotesResource.md -->","docs/content/references/js-client/classes/AdminNotificationsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminNotificationsResource.md -->","docs/content/references/js-client/classes/AdminOrderEditsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminOrderEditsResource.md -->","docs/content/references/js-client/classes/AdminOrdersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminOrdersResource.md -->","docs/content/references/js-client/classes/AdminPaymentCollectionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPaymentCollectionsResource.md -->","docs/content/references/js-client/classes/AdminPaymentsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPaymentsResource.md -->","docs/content/references/js-client/classes/AdminPriceListResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPriceListResource.md -->","docs/content/references/js-client/classes/AdminProductTagsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductTagsResource.md -->","docs/content/references/js-client/classes/AdminProductTypesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductTypesResource.md -->","docs/content/references/js-client/classes/AdminProductsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductsResource.md -->","docs/content/references/js-client/classes/AdminPublishableApiKeyResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPublishableApiKeyResource.md -->","docs/content/references/js-client/classes/AdminRegionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminRegionsResource.md -->","docs/content/references/js-client/classes/AdminReturnReasonsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminReturnReasonsResource.md -->","docs/content/references/js-client/classes/AdminReturnsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminReturnsResource.md -->","docs/content/references/js-client/classes/AdminSalesChannelsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminSalesChannelsResource.md -->","docs/content/references/js-client/classes/AdminShippingOptionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminShippingOptionsResource.md -->","docs/content/references/js-client/classes/AdminShippingProfilesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminShippingProfilesResource.md -->","docs/content/references/js-client/classes/AdminStoresResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminStoresResource.md -->","docs/content/references/js-client/classes/AdminSwapsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminSwapsResource.md -->","docs/content/references/js-client/classes/AdminTaxRatesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminTaxRatesResource.md -->","docs/content/references/js-client/classes/AdminUploadsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminUploadsResource.md -->","docs/content/references/js-client/classes/AdminUsersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminUsersResource.md -->","docs/content/references/js-client/classes/AdminVariantsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminVariantsResource.md -->","docs/content/references/js-client/classes/AuthResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAuthResource.md -->","docs/content/references/js-client/classes/CartsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCartsResource.md -->","docs/content/references/js-client/classes/CollectionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCollectionsResource.md -->","docs/content/references/js-client/classes/CustomerResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCustomerResource.md -->","docs/content/references/js-client/classes/GiftCardsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FGiftCardsResource.md -->","docs/content/references/js-client/classes/LineItemsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FLineItemsResource.md -->","docs/content/references/js-client/classes/OrderEditsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FOrderEditsResource.md -->","docs/content/references/js-client/classes/OrdersResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FOrdersResource.md -->","docs/content/references/js-client/classes/PaymentCollectionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FPaymentCollectionsResource.md -->","docs/content/references/js-client/classes/PaymentMethodsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FPaymentMethodsResource.md -->","docs/content/references/js-client/classes/ProductTypesResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductTypesResource.md -->","docs/content/references/js-client/classes/ProductVariantsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductVariantsResource.md -->","docs/content/references/js-client/classes/ProductsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductsResource.md -->","docs/content/references/js-client/classes/RegionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FRegionsResource.md -->","docs/content/references/js-client/classes/ReturnReasonsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FReturnReasonsResource.md -->","docs/content/references/js-client/classes/ReturnsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FReturnsResource.md -->","docs/content/references/js-client/classes/ShippingOptionsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FShippingOptionsResource.md -->","docs/content/references/js-client/classes/SwapsResource.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FSwapsResource.md -->","docs/content/references/js-client/classes/internal-1.AdminPostAuthReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-1.AdminPostAuthReq.md -->","docs/content/references/js-client/classes/internal-1.User.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-1.User.md -->","docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesInviteAcceptReq.md -->","docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptUserReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesInviteAcceptUserReq.md -->","docs/content/references/js-client/classes/internal-10.AdminPostInvitesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesReq.md -->","docs/content/references/js-client/classes/internal-10.Invite.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.Invite.md -->","docs/content/references/js-client/classes/internal-11.AdminGetNotesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminGetNotesParams.md -->","docs/content/references/js-client/classes/internal-11.AdminPostNotesNoteReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminPostNotesNoteReq.md -->","docs/content/references/js-client/classes/internal-11.AdminPostNotesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminPostNotesReq.md -->","docs/content/references/js-client/classes/internal-11.Note.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.Note.md -->","docs/content/references/js-client/classes/internal-12.AdminGetNotificationsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.AdminGetNotificationsParams.md -->","docs/content/references/js-client/classes/internal-12.AdminPostNotificationsNotificationResendReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.AdminPostNotificationsNotificationResendReq.md -->","docs/content/references/js-client/classes/internal-12.Notification.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.Notification.md -->","docs/content/references/js-client/classes/internal-12.NotificationProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.NotificationProvider.md -->","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md -->","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsEditLineItemsReq.md -->","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsOrderEditReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsOrderEditReq.md -->","docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsReq.md -->","docs/content/references/js-client/classes/internal-13.GetOrderEditsOrderEditParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.GetOrderEditsOrderEditParams.md -->","docs/content/references/js-client/classes/internal-13.GetOrderEditsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.GetOrderEditsParams.md -->","docs/content/references/js-client/classes/internal-14.AdditionalItem-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdditionalItem-1.md -->","docs/content/references/js-client/classes/internal-14.AdditionalItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdditionalItem.md -->","docs/content/references/js-client/classes/internal-14.AdminGetOrdersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminGetOrdersParams.md -->","docs/content/references/js-client/classes/internal-14.AdminListOrdersSelector.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminListOrdersSelector.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderFulfillmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderFulfillmentsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderRefundsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderRefundsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReturnsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderReturnsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShipmentReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderShipmentReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShippingMethodsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderShippingMethodsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md -->","docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md -->","docs/content/references/js-client/classes/internal-14.CustomShippingOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.CustomShippingOption.md -->","docs/content/references/js-client/classes/internal-14.Image.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Image.md -->","docs/content/references/js-client/classes/internal-14.Item-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item-1.md -->","docs/content/references/js-client/classes/internal-14.Item-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item-2.md -->","docs/content/references/js-client/classes/internal-14.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item.md -->","docs/content/references/js-client/classes/internal-14.OrdersReturnItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.OrdersReturnItem.md -->","docs/content/references/js-client/classes/internal-14.PaymentMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.PaymentMethod.md -->","docs/content/references/js-client/classes/internal-14.ReturnItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnItem.md -->","docs/content/references/js-client/classes/internal-14.ReturnShipping-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping-1.md -->","docs/content/references/js-client/classes/internal-14.ReturnShipping-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping-2.md -->","docs/content/references/js-client/classes/internal-14.ReturnShipping.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping.md -->","docs/content/references/js-client/classes/internal-14.ShippingMethod-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod-1.md -->","docs/content/references/js-client/classes/internal-14.ShippingMethod-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod-2.md -->","docs/content/references/js-client/classes/internal-14.ShippingMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod.md -->","docs/content/references/js-client/classes/internal-14.Tag.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Tag.md -->","docs/content/references/js-client/classes/internal-15.AdminUpdatePaymentCollectionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-15.AdminUpdatePaymentCollectionsReq.md -->","docs/content/references/js-client/classes/internal-15.GetPaymentCollectionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-15.GetPaymentCollectionsParams.md -->","docs/content/references/js-client/classes/internal-16.AdminPostPaymentRefundsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-16.AdminPostPaymentRefundsReq.md -->","docs/content/references/js-client/classes/internal-16.GetPaymentsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-16.GetPaymentsParams.md -->","docs/content/references/js-client/classes/internal-17.AdminDeletePriceListPricesPricesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminDeletePriceListPricesPricesReq.md -->","docs/content/references/js-client/classes/internal-17.AdminGetPriceListPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminGetPriceListPaginationParams.md -->","docs/content/references/js-client/classes/internal-17.AdminGetPriceListsPriceListProductsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminGetPriceListsPriceListProductsParams.md -->","docs/content/references/js-client/classes/internal-17.AdminPostPriceListPricesPricesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListPricesPricesReq.md -->","docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListPriceListReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListsPriceListPriceListReq.md -->","docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListsPriceListReq.md -->","docs/content/references/js-client/classes/internal-17.AdminPriceListPricesCreateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPriceListPricesCreateReq.md -->","docs/content/references/js-client/classes/internal-17.AdminPriceListPricesUpdateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPriceListPricesUpdateReq.md -->","docs/content/references/js-client/classes/internal-17.CustomerGroup-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.CustomerGroup-1.md -->","docs/content/references/js-client/classes/internal-17.CustomerGroup.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.CustomerGroup.md -->","docs/content/references/js-client/classes/internal-17.FilterablePriceListProps.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.FilterablePriceListProps.md -->","docs/content/references/js-client/classes/internal-18.AdminGetProductTagsPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-18.AdminGetProductTagsPaginationParams.md -->","docs/content/references/js-client/classes/internal-18.AdminGetProductTagsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-18.AdminGetProductTagsParams.md -->","docs/content/references/js-client/classes/internal-19.AdminGetProductTypesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-19.AdminGetProductTypesParams.md -->","docs/content/references/js-client/classes/internal-2.AdminGetBatchPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminGetBatchPaginationParams.md -->","docs/content/references/js-client/classes/internal-2.AdminGetBatchParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminGetBatchParams.md -->","docs/content/references/js-client/classes/internal-2.AdminPostBatchesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminPostBatchesReq.md -->","docs/content/references/js-client/classes/internal-2.BatchJob.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.BatchJob.md -->","docs/content/references/js-client/classes/internal-2.DateComparisonOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.DateComparisonOperator.md -->","docs/content/references/js-client/classes/internal-20.AdminGetProductsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminGetProductsParams.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductMetadataReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductMetadataReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductOptionsOption.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductOptionsReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductVariantsReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsVariantReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductVariantsVariantReq.md -->","docs/content/references/js-client/classes/internal-20.AdminPostProductsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsReq.md -->","docs/content/references/js-client/classes/internal-20.FilterableProductProps.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.FilterableProductProps.md -->","docs/content/references/js-client/classes/internal-20.ProductOptionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductOptionReq.md -->","docs/content/references/js-client/classes/internal-20.ProductSalesChannelReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductSalesChannelReq.md -->","docs/content/references/js-client/classes/internal-20.ProductTagReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductTagReq.md -->","docs/content/references/js-client/classes/internal-20.ProductTypeReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductTypeReq.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-1.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-2.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-3.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-3.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantPricesCreateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantPricesCreateReq.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantPricesUpdateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantPricesUpdateReq.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantReq-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantReq-1.md -->","docs/content/references/js-client/classes/internal-20.ProductVariantReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantReq.md -->","docs/content/references/js-client/classes/internal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md -->","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md -->","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md -->","docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeysReq.md -->","docs/content/references/js-client/classes/internal-21.GetPublishableApiKeySalesChannelsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.GetPublishableApiKeySalesChannelsParams.md -->","docs/content/references/js-client/classes/internal-21.GetPublishableApiKeysParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.GetPublishableApiKeysParams.md -->","docs/content/references/js-client/classes/internal-21.ProductBatchSalesChannel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.ProductBatchSalesChannel.md -->","docs/content/references/js-client/classes/internal-21.PublishableApiKey.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.PublishableApiKey.md -->","docs/content/references/js-client/classes/internal-22.AdminGetRegionsPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsPaginationParams.md -->","docs/content/references/js-client/classes/internal-22.AdminGetRegionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsParams.md -->","docs/content/references/js-client/classes/internal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionCountriesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionCountriesReq.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionPaymentProvidersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionPaymentProvidersReq.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionReq.md -->","docs/content/references/js-client/classes/internal-22.AdminPostRegionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsReq.md -->","docs/content/references/js-client/classes/internal-22.AdminRegionsRes.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminRegionsRes.md -->","docs/content/references/js-client/classes/internal-22.FulfillmentOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.FulfillmentOption.md -->","docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReasonReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-23.AdminPostReturnReasonsReasonReq.md -->","docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-23.AdminPostReturnReasonsReq.md -->","docs/content/references/js-client/classes/internal-24.AdminGetReturnsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.AdminGetReturnsParams.md -->","docs/content/references/js-client/classes/internal-24.AdminPostReturnsReturnReceiveReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.AdminPostReturnsReturnReceiveReq.md -->","docs/content/references/js-client/classes/internal-24.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.Item.md -->","docs/content/references/js-client/classes/internal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md -->","docs/content/references/js-client/classes/internal-25.AdminGetSalesChannelsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminGetSalesChannelsParams.md -->","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsChannelProductsBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsChannelProductsBatchReq.md -->","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsReq.md -->","docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsSalesChannelReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsSalesChannelReq.md -->","docs/content/references/js-client/classes/internal-26.AdminGetShippingOptionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminGetShippingOptionsParams.md -->","docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsOptionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminPostShippingOptionsOptionReq.md -->","docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminPostShippingOptionsReq.md -->","docs/content/references/js-client/classes/internal-26.OptionRequirement-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.OptionRequirement-1.md -->","docs/content/references/js-client/classes/internal-26.OptionRequirement.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.OptionRequirement.md -->","docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesProfileReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-27.AdminPostShippingProfilesProfileReq.md -->","docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-27.AdminPostShippingProfilesReq.md -->","docs/content/references/js-client/classes/internal-28.AdminPostStoreReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-28.AdminPostStoreReq.md -->","docs/content/references/js-client/classes/internal-28.Store.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-28.Store.md -->","docs/content/references/js-client/classes/internal-29.AdminGetSwapsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-29.AdminGetSwapsParams.md -->","docs/content/references/js-client/classes/internal-3.AdminDeleteProductsFromCollectionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminDeleteProductsFromCollectionReq.md -->","docs/content/references/js-client/classes/internal-3.AdminGetCollectionsPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminGetCollectionsPaginationParams.md -->","docs/content/references/js-client/classes/internal-3.AdminGetCollectionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminGetCollectionsParams.md -->","docs/content/references/js-client/classes/internal-3.AdminPostCollectionsCollectionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostCollectionsCollectionReq.md -->","docs/content/references/js-client/classes/internal-3.AdminPostCollectionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostCollectionsReq.md -->","docs/content/references/js-client/classes/internal-3.AdminPostProductsToCollectionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostProductsToCollectionReq.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductsParams.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductsReq.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md -->","docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md -->","docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminGetTaxRatesParams.md -->","docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesTaxRateParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminGetTaxRatesTaxRateParams.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesReq.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductTypesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateProductTypesReq.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateProductsReq.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateReq.md -->","docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md -->","docs/content/references/js-client/classes/internal-30.NumericalComparisonOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.NumericalComparisonOperator.md -->","docs/content/references/js-client/classes/internal-31.AdminDeleteUploadsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.AdminDeleteUploadsReq.md -->","docs/content/references/js-client/classes/internal-31.AdminPostUploadsDownloadUrlReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.AdminPostUploadsDownloadUrlReq.md -->","docs/content/references/js-client/classes/internal-31.IAdminPostUploadsFileReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.IAdminPostUploadsFileReq.md -->","docs/content/references/js-client/classes/internal-32.AdminCreateUserRequest.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminCreateUserRequest.md -->","docs/content/references/js-client/classes/internal-32.AdminResetPasswordRequest.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminResetPasswordRequest.md -->","docs/content/references/js-client/classes/internal-32.AdminResetPasswordTokenRequest.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminResetPasswordTokenRequest.md -->","docs/content/references/js-client/classes/internal-32.AdminUpdateUserRequest.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminUpdateUserRequest.md -->","docs/content/references/js-client/classes/internal-33.AdminGetVariantsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.AdminGetVariantsParams.md -->","docs/content/references/js-client/classes/internal-33.AdminPriceSelectionParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.AdminPriceSelectionParams.md -->","docs/content/references/js-client/classes/internal-33.PriceSelectionParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.PriceSelectionParams.md -->","docs/content/references/js-client/classes/internal-34.StorePostAuthReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-34.StorePostAuthReq.md -->","docs/content/references/js-client/classes/internal-35.Discount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.Discount.md -->","docs/content/references/js-client/classes/internal-35.GiftCard.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.GiftCard.md -->","docs/content/references/js-client/classes/internal-35.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.Item.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartReq.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartPaymentSessionReq.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionUpdateReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartPaymentSessionUpdateReq.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartsCartReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartReq.md -->","docs/content/references/js-client/classes/internal-35.StorePostCartsCartShippingMethodReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartShippingMethodReq.md -->","docs/content/references/js-client/classes/internal-36.StoreGetCollectionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-36.StoreGetCollectionsParams.md -->","docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StoreGetCustomersCustomerOrdersPaginationParams.md -->","docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StoreGetCustomersCustomerOrdersParams.md -->","docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerPasswordTokenReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersCustomerPasswordTokenReq.md -->","docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersCustomerReq.md -->","docs/content/references/js-client/classes/internal-37.StorePostCustomersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersReq.md -->","docs/content/references/js-client/classes/internal-37.StorePostCustomersResetPasswordReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersResetPasswordReq.md -->","docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsItemReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-39.StorePostCartsCartLineItemsItemReq.md -->","docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-39.StorePostCartsCartLineItemsReq.md -->","docs/content/references/js-client/classes/internal-4.AdminGetCurrenciesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.AdminGetCurrenciesParams.md -->","docs/content/references/js-client/classes/internal-4.AdminPostCurrenciesCurrencyReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.AdminPostCurrenciesCurrencyReq.md -->","docs/content/references/js-client/classes/internal-4.FindPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.FindPaginationParams.md -->","docs/content/references/js-client/classes/internal-40.StorePostOrderEditsOrderEditDecline.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-40.StorePostOrderEditsOrderEditDecline.md -->","docs/content/references/js-client/classes/internal-41.ShippingAddressPayload.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.ShippingAddressPayload.md -->","docs/content/references/js-client/classes/internal-41.StoreGetOrdersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StoreGetOrdersParams.md -->","docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerAcceptClaimReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StorePostCustomersCustomerAcceptClaimReq.md -->","docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerOrderClaimReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StorePostCustomersCustomerOrderClaimReq.md -->","docs/content/references/js-client/classes/internal-42.StorePaymentCollectionSessionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePaymentCollectionSessionsReq.md -->","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md -->","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsBatchSessionsReq.md -->","docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsSessionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsSessionsReq.md -->","docs/content/references/js-client/classes/internal-44.StoreGetProductTypesParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-44.StoreGetProductTypesParams.md -->","docs/content/references/js-client/classes/internal-45.StoreGetVariantsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-45.StoreGetVariantsParams.md -->","docs/content/references/js-client/classes/internal-46.StoreGetProductsPaginationParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StoreGetProductsPaginationParams.md -->","docs/content/references/js-client/classes/internal-46.StoreGetProductsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StoreGetProductsParams.md -->","docs/content/references/js-client/classes/internal-46.StorePostSearchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StorePostSearchReq.md -->","docs/content/references/js-client/classes/internal-49.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.Item.md -->","docs/content/references/js-client/classes/internal-49.ReturnShipping.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.ReturnShipping.md -->","docs/content/references/js-client/classes/internal-49.StorePostReturnsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.StorePostReturnsReq.md -->","docs/content/references/js-client/classes/internal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md -->","docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsGroupParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomerGroupsGroupParams.md -->","docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomerGroupsParams.md -->","docs/content/references/js-client/classes/internal-5.AdminGetCustomersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomersParams.md -->","docs/content/references/js-client/classes/internal-5.AdminListCustomerSelector.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminListCustomerSelector.md -->","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md -->","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsGroupReq.md -->","docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsReq.md -->","docs/content/references/js-client/classes/internal-5.CustomerGroupsBatchCustomer.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.CustomerGroupsBatchCustomer.md -->","docs/content/references/js-client/classes/internal-5.FilterableCustomerGroupProps.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.FilterableCustomerGroupProps.md -->","docs/content/references/js-client/classes/internal-5.FindParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.FindParams.md -->","docs/content/references/js-client/classes/internal-5.StringComparisonOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.StringComparisonOperator.md -->","docs/content/references/js-client/classes/internal-50.StoreGetShippingOptionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-50.StoreGetShippingOptionsParams.md -->","docs/content/references/js-client/classes/internal-51.AdditionalItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.AdditionalItem.md -->","docs/content/references/js-client/classes/internal-51.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.Item.md -->","docs/content/references/js-client/classes/internal-51.StorePostSwapsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.StorePostSwapsReq.md -->","docs/content/references/js-client/classes/internal-6.AdminPostCustomersCustomerReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.AdminPostCustomersCustomerReq.md -->","docs/content/references/js-client/classes/internal-6.AdminPostCustomersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.AdminPostCustomersReq.md -->","docs/content/references/js-client/classes/internal-6.Group.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.Group.md -->","docs/content/references/js-client/classes/internal-7.AdminCreateCondition.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminCreateCondition.md -->","docs/content/references/js-client/classes/internal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md -->","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountConditionsConditionParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsDiscountConditionsConditionParams.md -->","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountRuleParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsDiscountRuleParams.md -->","docs/content/references/js-client/classes/internal-7.AdminGetDiscountsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsParams.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditions.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditions.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsCondition.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsCondition.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionParams.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsParams.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountDynamicCodesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountDynamicCodesReq.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountReq.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountRule.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountRule.md -->","docs/content/references/js-client/classes/internal-7.AdminPostDiscountsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsReq.md -->","docs/content/references/js-client/classes/internal-7.AdminUpdateDiscountRule.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpdateDiscountRule.md -->","docs/content/references/js-client/classes/internal-7.AdminUpsertCondition.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpsertCondition.md -->","docs/content/references/js-client/classes/internal-7.AdminUpsertConditionsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpsertConditionsReq.md -->","docs/content/references/js-client/classes/internal-8.AdminGetDraftOrdersParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminGetDraftOrdersParams.md -->","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md -->","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md -->","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderReq.md -->","docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersReq.md -->","docs/content/references/js-client/classes/internal-8.Discount-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Discount-1.md -->","docs/content/references/js-client/classes/internal-8.Discount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Discount.md -->","docs/content/references/js-client/classes/internal-8.Item.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Item.md -->","docs/content/references/js-client/classes/internal-8.ShippingMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.ShippingMethod.md -->","docs/content/references/js-client/classes/internal-9.AdminGetGiftCardsParams.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminGetGiftCardsParams.md -->","docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsGiftCardReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminPostGiftCardsGiftCardReq.md -->","docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminPostGiftCardsReq.md -->","docs/content/references/js-client/classes/internal.Address.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Address.md -->","docs/content/references/js-client/classes/internal.AddressCreatePayload.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.AddressCreatePayload.md -->","docs/content/references/js-client/classes/internal.AddressPayload.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.AddressPayload.md -->","docs/content/references/js-client/classes/internal.Axios.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Axios.md -->","docs/content/references/js-client/classes/internal.BaseEntity.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.BaseEntity.md -->","docs/content/references/js-client/classes/internal.Cart.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Cart.md -->","docs/content/references/js-client/classes/internal.ClaimImage.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimImage.md -->","docs/content/references/js-client/classes/internal.ClaimItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimItem.md -->","docs/content/references/js-client/classes/internal.ClaimOrder.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimOrder.md -->","docs/content/references/js-client/classes/internal.ClaimTag.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimTag.md -->","docs/content/references/js-client/classes/internal.Client.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Client.md -->","docs/content/references/js-client/classes/internal.Country.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Country.md -->","docs/content/references/js-client/classes/internal.Currency.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Currency.md -->","docs/content/references/js-client/classes/internal.Customer.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Customer.md -->","docs/content/references/js-client/classes/internal.CustomerGroup.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.CustomerGroup.md -->","docs/content/references/js-client/classes/internal.Discount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Discount.md -->","docs/content/references/js-client/classes/internal.DiscountCondition.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DiscountCondition.md -->","docs/content/references/js-client/classes/internal.DiscountRule.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DiscountRule.md -->","docs/content/references/js-client/classes/internal.DraftOrder.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DraftOrder.md -->","docs/content/references/js-client/classes/internal.Fulfillment.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Fulfillment.md -->","docs/content/references/js-client/classes/internal.FulfillmentItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.FulfillmentItem.md -->","docs/content/references/js-client/classes/internal.FulfillmentProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.FulfillmentProvider.md -->","docs/content/references/js-client/classes/internal.GiftCard.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.GiftCard.md -->","docs/content/references/js-client/classes/internal.GiftCardTransaction.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.GiftCardTransaction.md -->","docs/content/references/js-client/classes/internal.Image.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Image.md -->","docs/content/references/js-client/classes/internal.LineItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItem.md -->","docs/content/references/js-client/classes/internal.LineItemAdjustment.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItemAdjustment.md -->","docs/content/references/js-client/classes/internal.LineItemTaxLine.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItemTaxLine.md -->","docs/content/references/js-client/classes/internal.MoneyAmount.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.MoneyAmount.md -->","docs/content/references/js-client/classes/internal.Order.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Order.md -->","docs/content/references/js-client/classes/internal.OrderEdit.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.OrderEdit.md -->","docs/content/references/js-client/classes/internal.OrderItemChange.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.OrderItemChange.md -->","docs/content/references/js-client/classes/internal.Payment.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Payment.md -->","docs/content/references/js-client/classes/internal.PaymentCollection.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentCollection.md -->","docs/content/references/js-client/classes/internal.PaymentProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentProvider.md -->","docs/content/references/js-client/classes/internal.PaymentSession.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentSession.md -->","docs/content/references/js-client/classes/internal.PriceList.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PriceList.md -->","docs/content/references/js-client/classes/internal.Product.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Product.md -->","docs/content/references/js-client/classes/internal.ProductCollection.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductCollection.md -->","docs/content/references/js-client/classes/internal.ProductOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductOption.md -->","docs/content/references/js-client/classes/internal.ProductOptionValue.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductOptionValue.md -->","docs/content/references/js-client/classes/internal.ProductTag.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductTag.md -->","docs/content/references/js-client/classes/internal.ProductType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductType.md -->","docs/content/references/js-client/classes/internal.ProductVariant.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductVariant.md -->","docs/content/references/js-client/classes/internal.Refund.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Refund.md -->","docs/content/references/js-client/classes/internal.Region.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Region.md -->","docs/content/references/js-client/classes/internal.Return.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Return.md -->","docs/content/references/js-client/classes/internal.ReturnItem.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ReturnItem.md -->","docs/content/references/js-client/classes/internal.ReturnReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ReturnReason.md -->","docs/content/references/js-client/classes/internal.SalesChannel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.SalesChannel.md -->","docs/content/references/js-client/classes/internal.ShippingMethod.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingMethod.md -->","docs/content/references/js-client/classes/internal.ShippingMethodTaxLine.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingMethodTaxLine.md -->","docs/content/references/js-client/classes/internal.ShippingOption.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingOption.md -->","docs/content/references/js-client/classes/internal.ShippingOptionRequirement.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingOptionRequirement.md -->","docs/content/references/js-client/classes/internal.ShippingProfile.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingProfile.md -->","docs/content/references/js-client/classes/internal.SoftDeletableEntity.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.SoftDeletableEntity.md -->","docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesAddressReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.StorePostCustomersCustomerAddressesAddressReq.md -->","docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesReq.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.StorePostCustomersCustomerAddressesReq.md -->","docs/content/references/js-client/classes/internal.Swap.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Swap.md -->","docs/content/references/js-client/classes/internal.TaxLine.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxLine.md -->","docs/content/references/js-client/classes/internal.TaxProvider.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxProvider.md -->","docs/content/references/js-client/classes/internal.TaxRate.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxRate.md -->","docs/content/references/js-client/classes/internal.TrackingLink.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TrackingLink.md -->","docs/content/references/js-client/enums/internal-1.UserRoles.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-1.UserRoles.md -->","docs/content/references/js-client/enums/internal-16.RefundReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-16.RefundReason.md -->","docs/content/references/js-client/enums/internal-2.BatchJobStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-2.BatchJobStatus.md -->","docs/content/references/js-client/enums/internal.AllocationType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.AllocationType.md -->","docs/content/references/js-client/enums/internal.CartType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.CartType.md -->","docs/content/references/js-client/enums/internal.ClaimFulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimFulfillmentStatus.md -->","docs/content/references/js-client/enums/internal.ClaimPaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimPaymentStatus.md -->","docs/content/references/js-client/enums/internal.ClaimReason.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimReason.md -->","docs/content/references/js-client/enums/internal.ClaimType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimType.md -->","docs/content/references/js-client/enums/internal.DiscountConditionOperator.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountConditionOperator.md -->","docs/content/references/js-client/enums/internal.DiscountConditionType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountConditionType.md -->","docs/content/references/js-client/enums/internal.DiscountRuleType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountRuleType.md -->","docs/content/references/js-client/enums/internal.DraftOrderStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DraftOrderStatus.md -->","docs/content/references/js-client/enums/internal.FulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.FulfillmentStatus.md -->","docs/content/references/js-client/enums/internal.OrderEditItemChangeType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderEditItemChangeType.md -->","docs/content/references/js-client/enums/internal.OrderEditStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderEditStatus.md -->","docs/content/references/js-client/enums/internal.OrderStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderStatus.md -->","docs/content/references/js-client/enums/internal.PaymentCollectionStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PaymentCollectionStatus.md -->","docs/content/references/js-client/enums/internal.PaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PaymentStatus.md -->","docs/content/references/js-client/enums/internal.PriceListStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PriceListStatus.md -->","docs/content/references/js-client/enums/internal.PriceListType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PriceListType.md -->","docs/content/references/js-client/enums/internal.ProductStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ProductStatus.md -->","docs/content/references/js-client/enums/internal.RequirementType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.RequirementType.md -->","docs/content/references/js-client/enums/internal.ReturnStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ReturnStatus.md -->","docs/content/references/js-client/enums/internal.ShippingOptionPriceType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ShippingOptionPriceType.md -->","docs/content/references/js-client/enums/internal.ShippingProfileType.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ShippingProfileType.md -->","docs/content/references/js-client/enums/internal.SwapFulfillmentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.SwapFulfillmentStatus.md -->","docs/content/references/js-client/enums/internal.SwapPaymentStatus.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.SwapPaymentStatus.md -->","docs/content/references/js-client/index.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Findex.md -->","docs/content/references/js-client/interfaces/internal.AxiosAdapter.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosAdapter.md -->","docs/content/references/js-client/interfaces/internal.AxiosBasicCredentials.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosBasicCredentials.md -->","docs/content/references/js-client/interfaces/internal.AxiosDefaults.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosDefaults.md -->","docs/content/references/js-client/interfaces/internal.AxiosError.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosError.md -->","docs/content/references/js-client/interfaces/internal.AxiosInstance.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosInstance.md -->","docs/content/references/js-client/interfaces/internal.AxiosInterceptorManager.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosInterceptorManager.md -->","docs/content/references/js-client/interfaces/internal.AxiosPromise.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosPromise.md -->","docs/content/references/js-client/interfaces/internal.AxiosProxyConfig.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosProxyConfig.md -->","docs/content/references/js-client/interfaces/internal.AxiosRequestConfig.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosRequestConfig.md -->","docs/content/references/js-client/interfaces/internal.AxiosRequestTransformer.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosRequestTransformer.md -->","docs/content/references/js-client/interfaces/internal.AxiosResponse.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosResponse.md -->","docs/content/references/js-client/interfaces/internal.AxiosResponseTransformer.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosResponseTransformer.md -->","docs/content/references/js-client/interfaces/internal.Cancel.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.Cancel.md -->","docs/content/references/js-client/interfaces/internal.CancelToken.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.CancelToken.md -->","docs/content/references/js-client/interfaces/internal.Config.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.Config.md -->","docs/content/references/js-client/interfaces/internal.HTTPResponse.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.HTTPResponse.md -->","docs/content/references/js-client/interfaces/internal.HeadersDefaults.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.HeadersDefaults.md -->","docs/content/references/js-client/interfaces/internal.RequestOptions.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.RequestOptions.md -->","docs/content/references/js-client/interfaces/internal.RetryConfig.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.RetryConfig.md -->","docs/content/references/js-client/interfaces/internal.TransitionalOptions.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.TransitionalOptions.md -->","docs/content/references/js-client/modules/internal-1.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-1.md -->","docs/content/references/js-client/modules/internal-10.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-10.md -->","docs/content/references/js-client/modules/internal-11.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-11.md -->","docs/content/references/js-client/modules/internal-12.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-12.md -->","docs/content/references/js-client/modules/internal-13.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-13.md -->","docs/content/references/js-client/modules/internal-14.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-14.md -->","docs/content/references/js-client/modules/internal-15.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-15.md -->","docs/content/references/js-client/modules/internal-16.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-16.md -->","docs/content/references/js-client/modules/internal-17.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-17.md -->","docs/content/references/js-client/modules/internal-18.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-18.md -->","docs/content/references/js-client/modules/internal-19.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-19.md -->","docs/content/references/js-client/modules/internal-2.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-2.md -->","docs/content/references/js-client/modules/internal-20.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-20.md -->","docs/content/references/js-client/modules/internal-21.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-21.md -->","docs/content/references/js-client/modules/internal-22.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-22.md -->","docs/content/references/js-client/modules/internal-23.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-23.md -->","docs/content/references/js-client/modules/internal-24.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-24.md -->","docs/content/references/js-client/modules/internal-25.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-25.md -->","docs/content/references/js-client/modules/internal-26.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-26.md -->","docs/content/references/js-client/modules/internal-27.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-27.md -->","docs/content/references/js-client/modules/internal-28.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-28.md -->","docs/content/references/js-client/modules/internal-29.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-29.md -->","docs/content/references/js-client/modules/internal-3.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-3.md -->","docs/content/references/js-client/modules/internal-30.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-30.md -->","docs/content/references/js-client/modules/internal-31.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-31.md -->","docs/content/references/js-client/modules/internal-32.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-32.md -->","docs/content/references/js-client/modules/internal-33.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-33.md -->","docs/content/references/js-client/modules/internal-34.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-34.md -->","docs/content/references/js-client/modules/internal-35.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-35.md -->","docs/content/references/js-client/modules/internal-36.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-36.md -->","docs/content/references/js-client/modules/internal-37.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-37.md -->","docs/content/references/js-client/modules/internal-38.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-38.md -->","docs/content/references/js-client/modules/internal-39.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-39.md -->","docs/content/references/js-client/modules/internal-4.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-4.md -->","docs/content/references/js-client/modules/internal-40.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-40.md -->","docs/content/references/js-client/modules/internal-41.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-41.md -->","docs/content/references/js-client/modules/internal-42.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-42.md -->","docs/content/references/js-client/modules/internal-43.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-43.md -->","docs/content/references/js-client/modules/internal-44.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-44.md -->","docs/content/references/js-client/modules/internal-45.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-45.md -->","docs/content/references/js-client/modules/internal-46.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-46.md -->","docs/content/references/js-client/modules/internal-47.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-47.md -->","docs/content/references/js-client/modules/internal-48.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-48.md -->","docs/content/references/js-client/modules/internal-49.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-49.md -->","docs/content/references/js-client/modules/internal-5.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-5.md -->","docs/content/references/js-client/modules/internal-50.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-50.md -->","docs/content/references/js-client/modules/internal-51.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-51.md -->","docs/content/references/js-client/modules/internal-6.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-6.md -->","docs/content/references/js-client/modules/internal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md -->","docs/content/references/js-client/modules/internal-7.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-7.md -->","docs/content/references/js-client/modules/internal-8.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-8.md -->","docs/content/references/js-client/modules/internal-9.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-9.md -->","docs/content/references/js-client/modules/internal.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal.md -->","docs/content/references/services/classes/AnalyticsConfigService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FAnalyticsConfigService.md -->","docs/content/references/services/classes/AuthService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FAuthService.md -->","docs/content/references/services/classes/BatchJobService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FBatchJobService.md -->","docs/content/references/services/classes/CartService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCartService.md -->","docs/content/references/services/classes/ClaimItemService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FClaimItemService.md -->","docs/content/references/services/classes/ClaimService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FClaimService.md -->","docs/content/references/services/classes/CurrencyService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCurrencyService.md -->","docs/content/references/services/classes/CustomShippingOptionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomShippingOptionService.md -->","docs/content/references/services/classes/CustomerGroupService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomerGroupService.md -->","docs/content/references/services/classes/CustomerService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomerService.md -->","docs/content/references/services/classes/DiscountConditionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDiscountConditionService.md -->","docs/content/references/services/classes/DiscountService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDiscountService.md -->","docs/content/references/services/classes/DraftOrderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDraftOrderService.md -->","docs/content/references/services/classes/EventBusService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FEventBusService.md -->","docs/content/references/services/classes/FulfillmentProviderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FFulfillmentProviderService.md -->","docs/content/references/services/classes/FulfillmentService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FFulfillmentService.md -->","docs/content/references/services/classes/GiftCardService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FGiftCardService.md -->","docs/content/references/services/classes/IdempotencyKeyService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FIdempotencyKeyService.md -->","docs/content/references/services/classes/LineItemAdjustmentService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FLineItemAdjustmentService.md -->","docs/content/references/services/classes/LineItemService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FLineItemService.md -->","docs/content/references/services/classes/MiddlewareService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FMiddlewareService.md -->","docs/content/references/services/classes/NewTotalsService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNewTotalsService.md -->","docs/content/references/services/classes/NoteService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNoteService.md -->","docs/content/references/services/classes/NotificationService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNotificationService.md -->","docs/content/references/services/classes/OauthService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOauthService.md -->","docs/content/references/services/classes/OrderEditItemChangeService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderEditItemChangeService.md -->","docs/content/references/services/classes/OrderEditService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderEditService.md -->","docs/content/references/services/classes/OrderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderService.md -->","docs/content/references/services/classes/PaymentCollectionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentCollectionService.md -->","docs/content/references/services/classes/PaymentProviderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentProviderService.md -->","docs/content/references/services/classes/PaymentService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentService.md -->","docs/content/references/services/classes/PriceListService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPriceListService.md -->","docs/content/references/services/classes/PricingService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPricingService.md -->","docs/content/references/services/classes/ProductCategoryService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductCategoryService.md -->","docs/content/references/services/classes/ProductCollectionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductCollectionService.md -->","docs/content/references/services/classes/ProductService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductService.md -->","docs/content/references/services/classes/ProductTypeService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductTypeService.md -->","docs/content/references/services/classes/ProductVariantInventoryService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductVariantInventoryService.md -->","docs/content/references/services/classes/ProductVariantService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductVariantService.md -->","docs/content/references/services/classes/RegionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FRegionService.md -->","docs/content/references/services/classes/ReturnReasonService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FReturnReasonService.md -->","docs/content/references/services/classes/ReturnService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FReturnService.md -->","docs/content/references/services/classes/SalesChannelInventoryService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelInventoryService.md -->","docs/content/references/services/classes/SalesChannelLocationService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelLocationService.md -->","docs/content/references/services/classes/SalesChannelService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelService.md -->","docs/content/references/services/classes/SearchService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSearchService.md -->","docs/content/references/services/classes/ShippingOptionService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FShippingOptionService.md -->","docs/content/references/services/classes/ShippingProfileService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FShippingProfileService.md -->","docs/content/references/services/classes/StagedJobService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStagedJobService.md -->","docs/content/references/services/classes/StoreService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStoreService.md -->","docs/content/references/services/classes/StrategyResolverService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStrategyResolverService.md -->","docs/content/references/services/classes/SwapService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSwapService.md -->","docs/content/references/services/classes/SystemPaymentProviderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSystemPaymentProviderService.md -->","docs/content/references/services/classes/TaxProviderService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTaxProviderService.md -->","docs/content/references/services/classes/TaxRateService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTaxRateService.md -->","docs/content/references/services/classes/TokenService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTokenService.md -->","docs/content/references/services/classes/TotalsService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTotalsService.md -->","docs/content/references/services/classes/UserService.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FUserService.md -->","docs/content/references/services/index.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Findex.md -->","docs/content/upgrade-guides/plugins/_category_.json":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2F_category_.json -->","docs/content/upgrade-guides/plugins/algolia/1-0-0.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Falgolia%2F1-0-0.md -->","docs/content/upgrade-guides/plugins/algolia/_category_.json":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Falgolia%2F_category_.json -->","docs/content/upgrade-guides/plugins/meilisearch/1-0-0.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Fmeilisearch%2F1-0-0.md -->","docs/content/upgrade-guides/plugins/meilisearch/_category_.json":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Fmeilisearch%2F_category_.json -->","packages/admin-ui/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fadmin-ui%2FREADME.md -->","packages/admin/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fadmin%2FREADME.md -->","packages/cache-inmemory/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fcache-inmemory%2FREADME.md -->","packages/cache-redis/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fcache-redis%2FREADME.md -->","packages/event-bus-local/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fevent-bus-local%2FREADME.md -->","packages/event-bus-redis/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fevent-bus-redis%2FREADME.md -->","packages/gatsby-source-medusa/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fgatsby-source-medusa%2FREADME.md -->","packages/generated/client-types/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fgenerated%2Fclient-types%2FREADME.md -->","packages/medusa-dev-cli/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-dev-cli%2FREADME.md -->","packages/medusa-file-minio/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-minio%2FREADME.md -->","packages/medusa-file-s3/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-s3%2FREADME.md -->","packages/medusa-file-spaces/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-spaces%2FREADME.md -->","packages/medusa-fulfillment-manual/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-fulfillment-manual%2FREADME.md -->","packages/medusa-fulfillment-webshipper/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-fulfillment-webshipper%2FREADME.md -->","packages/medusa-js/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-js%2FREADME.md -->","packages/medusa-payment-adyen/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-adyen%2FREADME.md -->","packages/medusa-payment-klarna/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-klarna%2FREADME.md -->","packages/medusa-payment-manual/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-manual%2FREADME.md -->","packages/medusa-payment-paypal/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-paypal%2FREADME.md -->","packages/medusa-payment-stripe/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-stripe%2FREADME.md -->","packages/medusa-plugin-algolia/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-algolia%2FREADME.md -->","packages/medusa-plugin-brightpearl/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-brightpearl%2FREADME.md -->","packages/medusa-plugin-contentful/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-contentful%2FREADME.md -->","packages/medusa-plugin-discount-generator/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-discount-generator%2FREADME.md -->","packages/medusa-plugin-economic/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-economic%2FREADME.md -->","packages/medusa-plugin-ip-lookup/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-ip-lookup%2FREADME.md -->","packages/medusa-plugin-mailchimp/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-mailchimp%2FREADME.md -->","packages/medusa-plugin-meilisearch/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-meilisearch%2FREADME.md -->","packages/medusa-plugin-restock-notification/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-restock-notification%2FREADME.md -->","packages/medusa-plugin-segment/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-segment%2FREADME.md -->","packages/medusa-plugin-sendgrid/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-sendgrid%2FREADME.md -->","packages/medusa-plugin-slack-notification/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-slack-notification%2FREADME.md -->","packages/medusa-plugin-twilio-sms/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-twilio-sms%2FREADME.md -->","packages/medusa-plugin-wishlist/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-wishlist%2FREADME.md -->","packages/medusa-react/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-react%2FREADME.md -->","packages/medusa-source-shopify/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-source-shopify%2FREADME.md -->","packages/medusa/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa%2FREADME.md -->","packages/oas/medusa-oas-cli/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Fmedusa-oas-cli%2FREADME.md -->","packages/oas/oas-github-ci/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Foas-github-ci%2FREADME.md -->","packages/oas/openapi-typescript-codegen/README.md":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Fopenapi-typescript-codegen%2FREADME.md -->",".cursorrules (medusa.mdc)":"---\ndescription: \"Medusa rules and best practices. These rules should be used when building applications with Medusa.\"\nglobs: **/*.tsx, **/*.ts, src/**/*.ts, src/**/*.tsx, src/**/*.js, src/**/*.jsx\nalwaysApply: false\n---\nYou are an expert senior software engineer specializing in modern web development, with deep expertise in TypeScript, Medusa, React.js, and TailwindCSS.\n\n# Medusa Rules\n\n## General Rules\n\n- Don't use type aliases when importing files.\n- When throwing errors, always throw `MedusaError`.\n- Always use Query to retrieve data.\n\n## Workflow Rules\n\n- When creating a workflow or step, always use Medusa's Workflow SDK `@medusajs/framework/workflows-sdk` to define it.\n- When creating a feature in an API route, scheduled job, or subscriber, always create a workflow for it.\n- When creating a workflow, always create a step for it.\n- In workflows, use `transform` for any data transformation.\n- In workflows, use `when` to define conditions.\n- Don't use `await` when calling steps.\n- In workflows, don't make the workflow function async.\n- Don't add typing to compensation function's input.\n- Only use steps in a workflow.\n\n## Data Model Rules\n\n- Use the `model` utility from `@medusajs/framework/utils` to define data models.\n- Data model variables should be camelCase. Data model names as passed to `model.define` should be snake case.\n- When adding an `id` field to a data model, always make it a primary key with `.primaryKey()`.\n- A data model can have one `id` only, other IDs should be `text` instead.\n- Data model fields should be snake case.\n\n## Service Rules\n\n- When creating a service, always make methods async.\n- If a module has data models, make the service extend `MedusaService`.\n\n## Admin Customization Rules\n\n- When sending requests in admin customizations, always use Medusa's JS SDK.\n- Use TailwindCSS for styling.\n\n# Additional Resources\n\n- [Medusa Documentation](https://docs.medusajs.com/llms-full.txt)\n"},"items":[{"name":"create.md","path":"docs/content/development/plugins/create.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/development/plugins/create.md","title":"Plugins Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to create a plugin in Medusa. This guide explains how to develop, configure, and test a plugin.'\naddHowToData: true\n---\n\n# How to Create a Plugin\n\nIn this document, you’ll learn how to create a plugin and some tips for develoment. If you’re interested to learn more about what plugins are and where to find available official and community plugins, check out the [overview document](./overview.mdx).\n\n## Prerequisites\n\nThis guide uses the Medusa CLI throughout different steps. If you don’t have the Medusa CLI installed you can install it with the following command:\n\n```bash npm2yarn\nnpm install @medusajs/medusa-cli -g\n```\n\n:::note\n\nIf you run into any errors while installing the CLI tool, check out the [troubleshooting guide](../../troubleshooting/cli-installation-errors.mdx).\n\n:::\n\n---\n\n## Initialize Project\n\nThe recommended way to create a plugin is using the Medusa CLI. Run the following command to create a new Medusa project:\n\n```bash\nmedusa new medusa-plugin-custom\n```\n\nWhere `medusa-plugin-custom` is the name of the plugin you’re creating. In Medusa, plugins are named based on their functionalities.\n\nBy convention, all plugin names start with `medusa` followed by a descriptive name of what the plugin does. For example, the Stripe plugin is named `medusa-payment-stripe`.\n\n---\n\n## Changes to package.json\n\n### Change Dependencies\n\nA basic Medusa backend installed with the `medusa new` command has dependencies similar to this:\n\n```json title=package.json\n\"dependencies\": {\n  \"@medusajs/medusa\": \"^1.3.1\",\n  \"@medusajs/medusa-cli\": \"^1.3.0\",\n  \"medusa-fulfillment-manual\": \"^1.1.31\",\n  \"medusa-interfaces\": \"^1.3.0\",\n  \"medusa-payment-manual\": \"^1.0.16\",\n  \"medusa-payment-stripe\": \"^1.1.38\",\n  \"typeorm\": \"^0.2.36\"\n},\n\"devDependencies\": {\n  \"@babel/cli\": \"^7.14.3\",\n  \"@babel/core\": \"^7.14.3\",\n  \"@babel/preset-typescript\": \"^7.14.5\",\n  \"babel-preset-medusa-package\": \"^1.1.19\"\n}\n```\n\nFor a plugin, some dependencies are not necessary. You can remove the packages `medusa-fulfillment-manual`, `medusa-payment-manual`, and `medusa-payment-stripe` as they are fulfillment and payment plugins necessary for a Medusa backend, but not for a plugin.\n\nAdditionally, you can remove `@medusajs/medusa-cli` as you don’t need to use the Medusa CLI while developing a plugin.\n\nOnce you’re done making these changes, re-run the install command to update your `node_modules` directory:\n\n```bash npm2yarn\nnpm install\n```\n\n### Recommended: Change scripts\n\nIt's recommended to remove the `seed` and `start` scripts from your `package.json` as they aren't necessary for plugin development.\n\nFurthermore, it's recommended to change the `build` command and add a new `watch` command:\n\n```json title=package.json\n\"scripts\": {\n  \"build\": \"babel src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\",\n  \"watch\": \"babel -w src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\"\n}\n```\n\nThe change to the `build` command ensures that the built files are placed as explained in the [plugin structure section](#plugin-structure). The `watch` command makes the [testing of the plugin](#test-your-plugin) easier.\n\n:::caution\n\nIf you don't make changes to the `build` and `watch` commands, please be aware of the [expected plugin structure](#plugin-structure).\n\n:::\n\n---\n\n## Develop your Plugin\n\nNow, You can start developing your plugin. This can include adding services, endpoints, entities, or anything that's relevant to your plugin.\n\n### Plugin Structure\n\nWhile developing your plugin, you can create your TypeScript or JavaScript files under the `src` directory. This includes creating services, endpoints, migrations, etc...\n\nHowever, before you test the changes on a Medusa backend or publish your plugin, you must transpile your files, which moves them into the root of your plugin directory.\n\nFor example, if you have an endpoint in `src/api/index.js`, after running the `build` or `watch` commands [as defined earlier](#change-scripts), the file should be transpiled into `api/index.js` in your plugin's root.\n\nIf files and directories aren't placed in the root of your plugin, the Medusa backend won't detect or load them.\n\nAn example of a plugin's directory before testing or publishing:\n\n```bash noReport\nmedusa-plugin-custom\n|\n|_ _ _ api\n|      |\n|      |_ _ _ index.js\n|\n|_ _ _ migrations\n|      |\n|      |_ _ _ <TIMESTAMP>_UserChanged.js\n|\n|_ _ _ src\n|      |\n|      |_ _ _ api\n|      |     |\n|      |     |_ _ _ index.ts\n|      |\n|      |_ _ _ migrations\n|      |\n|      |_ _ _ <TIMESTAMP>_UserChanged.ts\n|\n|_ _ _ package.json\n//... other files\n```\n\n### Development Resources\n\nThis guide doesn't cover how to create different files and components. If you’re interested in learning how to do that, you can check out these guides:\n\n- How to [create endpoints](../endpoints/create.md)\n- How to [create a service](../services/create-service.md)\n- How to [create a subscriber](../events/create-subscriber.md)\n- How to [create an entity](../entities/create.md)\n- How to [create a migration](../entities/migrations/create.md)\n\n---\n\n## Add Plugin Configuration\n\nPlugins often allow developers that will later use them to enter their own configuration. For example, you can allow developers to specify the API key of a service you’re integrating.\n\nTo pass a plugin its configurations on a Medusa backend, you have to add it to the `plugins` array in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-custom`,\n    options: {\n      name: \"My Store\",\n    },\n  },\n]\n```\n\nThen, you can have access to your plugin configuration in the constructor of services in your plugin:\n\n```jsx title=src/service/test.ts\n  // In a service in your plugin\nclass MyService extends TransactionBaseService {\n  constructor(container, options) {\n    super(container)\n    // options contains plugin configurations\n    this.name = options.name\n  }\n  // ...\n}\n```\n\nYou can also have access to the configurations in endpoints in your plugin:\n\n```jsx title=src/api/index.ts\n// in an endpoint in your plugin\nexport default (rootDirectory, options) => {\n  // options contain the plugin configurations\n  const router = Router()\n\n  router.get(\"/hello-world\", (req, res) => {\n    res.json({\n      message: \n      `Welcome to ${options.name ? options.name : \"Medusa\"}!`,\n    })\n  })\n\n  return router\n}\n```\n\n:::tip\n\nMake sure to include in the README of your plugin the configurations that can be passed to a plugin.\n\n:::\n\n---\n\n## Test Your Plugin\n\nWhile you develop your plugin, you’ll need to test it on an actual Medusa backend. This can be done by using the [npm link](https://docs.npmjs.com/cli/v8/commands/npm-link) command.\n\nIn the root of your plugin directory, run the following command:\n\n```bash npm2yarn\nnpm link\n```\n\nThen, change to the directory of the Medusa backend you want to test the plugin on and run the following command:\n\n```bash npm2yarn\nnpm link medusa-plugin-custom\n```\n\nWhere `medusa-plugin-custom` is the package name of your plugin.\n\nAfter linking to your plugin in a local Medusa backend, either run the `build` or `watch` commands in your plugin directory:\n\n```bash npm2yarn\n# in the directory of the plugin\nnpm run watch\n```\n\n:::tip\n\nIf you’re running the `watch` command, you don’t need to run the `build` command every time you make a change to your plugin.\n\n:::\n\nThen, add your plugin into the array of plugins in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-custom`,\n    // if your plugin has configurations\n    options: {\n      name: \"My Store\",\n    },\n  },\n]\n```\n\n:::note\n\nIf your plugin has migrations, you must run them before you start the backend. Check out the [Migrations guide](../entities/migrations/overview.mdx#migrate-command) for more details.\n\n:::\n\nFinally, start your backend and test your plugin’s functionalities:\n\n```bash npm2yarn\nnpm run start\n```\n\n### Troubleshoot Errors\n\n#### Error: The class must be a valid service implementation\n\nPlease make sure that your plugin is following the correct structure. If the error persists then please try the following fix:\n\n```bash npm2yarn\ncd <BACKEND_PATH>/node_modules/medusa-interfaces\nnpm link\ncd <BACKEND_PATH>/node_modules/@medusajs/medusa\nnpm link\ncd <PLUGIN_PATH>\nrm -rf node_modules/medusa-interfaces\nrm -rf node_modules/@medusajs/medusa\nnpm link medusa-interfaces\nnpm link @medusajs/medusa\nnpm link\ncd <BACKEND_PATH>\nnpm link your-plugin\n```\n\nWhere `<BACKEND_PATH>` is the path to your Medusa backend and `<PLUGIN_PATH>` is the path to your plugin.\n\nThis links the `medusa-interfaces` and `@medusajs/medusa` packages from your `medusa-backend` to your plugin directory and then links your plugin to your `medusa-backend`.\n\n#### APIs not loading\n\nIf the APIs you added to your Medussa backend are not loading then please try the following steps:\n\n```bash npm2yarn\ncd <PLUGIN_PATH>\nrm -rf node_modules\ncd <BACKEND_PATH>/node_modules/<PLUGIN_NAME>\nnpm install\ncd <PLUGIN_PATH>\nnpm run build\ncd <BACKEND_PATH>\nnpm run start\n```\n\nWhere `<BACKEND_PATH>` is the path to your Medusa backend, `<PLUGIN_PATH>` is the path to your plugin and `<PLUGIN_NAME>` is the name of your plugin as it is in your plugin `package.json` file.\n\n:::note\n\nIt is safe to ignore any `cross-env: command not found` error you may receive.\n\n:::\n\n---\n\n## Publish Plugin\n\nOnce you're done with the development of the plugin, you can publish it to NPM so that other Medusa developers and users can use it.\n\nPlease refer to [this guide on required steps to publish a plugin](./publish.md).\n","frontmatter":{"description":"Learn how to create a plugin in Medusa. This guide explains how to develop, configure, and test a plugin.","addHowToData":true},"isInternal":false,"tokens":2380,"sizeBytes":9619},{"name":"publish.md","path":"docs/content/development/plugins/publish.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/development/plugins/publish.md","title":"Plugins Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to publish a Medusa plugin to NPM. This guide lists some check lists to ensure you have implemented before publishing, as well as required steps.'\naddHowToData: true\n---\n\n# How to Publish a Plugin\n\nIn this document, you'll learn how to publish a Medusa plugin to NPM and what are some requirements to keep in mind before publishing. Afterwards, your plugin will be published on the [Medusa Plugins page](https://medusajs.com/plugins/).\n\n## Prerequisites\n\nIf you haven't created a plugin yet, please check [this guide to learn how to create a plugin](./create.md).\n\n---\n\n## Prepare the Plugin\n\n### package.json Checklist\n\nBefore publishing your plugin, make sure you've set the following fields in your plugin's package.json:\n\n- `name`: The name of your plugin. By convention, all plugin names start with `medusa` followed by a descriptive name of what the plugin does. For example, `medusa-payment-stripe`.\n- `description`: A short description of what the plugin does.\n- `author`: Your name or your company's name.\n- `repository`: This includes details about the repository that holds the source code of the plugin. It's an object that holds the following properties:\n  - `type`: Should be `git`.\n  - `url`: The URL to the repository (for example, the GitHub repository holding the code of your plugin).\n- `keywords`: An array of keywords that are related to the plugin. It's required for all Medusa plugins to use the keywords `medusa-plugin`. Other recommended keywords are:\n  - `medusa-plugin-analytics`: For plugins that add analytics functionalities or integrations.\n  - `medusa-plugin-cms`: For plugins that add CMS functionalities or integrations.\n  - `medusa-plugin-notification`: For plugins that add notification functionalities or integrations.\n  - `medusa-plugin-payment`: For plugins that add payment functionalities or integrations.\n  - `medusa-plugin-search`: For plugins that add search functionalities or integrations.\n  - `medusa-plugin-shipping`: For plugins that add shipping functionalities or integrations.\n  - `medusa-plugin-storage`: For plugins that add a file service or storage integration.\n  - `medusa-plugin-source`: For plugins that help migrate or import data into Medusa from another platform.\n  - `medusa-plugin-storefront`: For storefronts that can be integrated with a Medusa backend.\n  - `medusa-plugin-other`: For any other type of plugin.\n\n### Scripts in package.json\n\nMake sure you add the `publish` command to your `scripts` field and make the following change to the `build` command:\n\n```json title=package.json\n\"build\": \"babel src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\",\n\"prepare\": \"cross-env NODE_ENV=production npm run build\"\n```\n\nThe `build` command ensures that the plugin's built files are placed as explained in the [plugin structure](./create.md#plugin-structure) section of the Create Plugin documentation.\n\nThe `prepare` command facilitates your publishing process. You would typically run this script before publishing your plugin.\n\nThis new script requires installing the package `cross-env` as a development dependency:\n\n```bash npm2yarn\nnpm install --save-dev cross-env\n```\n\n### Plugin Structure\n\nMake sure your plugin's structure is as described in the [Create Plugin](./create.md#plugin-structure) documentation. If you've made the changes mentioned in [the above section to the scripts](#scripts-in-packagejson) in `package.json`, you should have the correct structure when you run the `prepare` command.\n\n### NPM Ignore File\n\nNot all files that you use while developing your plugin are necessary to be published.\n\nFor example, the files you add in the `src` directory are compiled to the root of the plugin directory before publishing. Then, when a developer installs your plugin, they’ll just be using the files in the root.\n\nSo, you can ignore files and directories like `src` from the final published NPM package.\n\nTo do that, create the file `.npmignore` with the following content:\n\n```bash title=.npmignore\n/lib\nnode_modules\n.DS_store\n.env*\n/*.js\n!index.js\nyarn.lock\nsrc\n.gitignore\n.eslintrc\n.babelrc\n.prettierrc\n\n# These are files that are included in a\n# Medusa project and can be removed from a\n# plugin project\nmedusa-config.js\nDockerfile\nmedusa-db.sql\ndevelop.sh\n```\n\n---\n\n## Publish Plugin\n\nThis section explains how to publish your plugin to NPM.\n\nBefore you publish a plugin, you must [create an account on NPM](https://www.npmjs.com/signup).\n\n### Run Prepare Command\n\nBefore you publish or update your plugin, make sure to run the `prepare` command [defined earlier](#packagejson-checklist):\n\n```bash npm2yarn\nnpm run prepare\n```\n\n### Login\n\nIn your terminal, log in with your NPM account:\n\n```bash\nnpm login\n```\n\nYou’ll be asked to enter your NPM email and password.\n\n### Publish Plugin Package\n\nOnce you’re logged in, you can publish your package with the following command:\n\n```bash\nnpm publish\n```\n\nYour package is then published on NPM and everyone can use it and install it.\n\n### Install Plugin\n\nTo install your published plugin, you can run the following command on any Medusa backend project:\n\n```bash npm2yarn\nnpm install medusa-plugin-custom\n```\n\n### Update Plugin\n\nTo update your plugin at a later point, you can run the following command to change the NPM version:\n\n```bash\nnpm version <type>\n```\n\nWhere `<type>` indicates the type of version update you’re publishing. For example, it can be `major` or `minor`. You can see the [full list of types in NPM’s documentation](https://docs.npmjs.com/cli/v8/commands/npm-version).\n\nThen, publish the new update:\n\n```bash\nnpm publish\n```\n","frontmatter":{"description":"Learn how to publish a Medusa plugin to NPM. This guide lists some check lists to ensure you have implemented before publishing, as well as required steps.","addHowToData":true},"isInternal":false,"tokens":1276,"sizeBytes":5626},{"name":"segment.md","path":"docs/content/plugins/analytics/segment.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/analytics/segment.md","title":"Analytics Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Segment with the Medusa backend. Learn how to add custom tracking with Segment and Medusa.'\naddHowToData: true\n---\n\n# Segment\n\nIn this document, you’ll learn about the [Segment plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-segment), what it does, and how to install and use it.\n\n## Overview\n\n[Segment](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-segment) is a powerful Customer Data Platform that allows users to collect, transform, send and archive their customer data.\n\nSegment allows users to manage different tracking and marketing tools using one API and interface, making it very simple to try out and integrate with different services in your ecommerce stack.\n\nCommon integration use cases that can be implemented with Segment include:\n\n- Google Analytics\n- Mailchimp\n- Zendesk\n- Data warehousing for advanced data analytics and segmentation through services like Snowflake\n\nThe Segment plugin in Medusa allows you to track ecommerce events and record them in Segment. Then, you can push these events to other destinations using Segment.\n\n### Events That the Segment Plugin Tracks\n\nBy default, the Segment plugin tracks the following events:\n\n1. `order.placed`: Triggered when an order is placed.\n2. `order.shipment_created`: Triggered when a shipment is created for an order.\n3. `claim.created`: Triggered when a new claim is created.\n4. `order.items_returned`: Triggered when an item in an order is returned.\n5. `order.canceled`: Triggered when an order is canceled.\n6. `swap.created`: Triggered when a swap is created.\n7. `swap.shipment_created`: Triggered when a shipment is created for a swap.\n8. `swap.payment_completed`: Triggered when payment for a swap is completed.\n\n:::tip\n\nCheck out the [Event Reference](../../development/events/events-list.md) to learn about all available events in Medusa.\n\n:::\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nIt is assumed you already have a Medusa backend installed. If not, please follow the [Quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa starter.\n\n### Segment Account\n\nYou need to [create a Segment account](https://app.segment.com/signup/) to follow along with the tutorial. Segment offers a free plan to get started quickly.\n\n---\n\n## Create a Segment Source\n\nOn your Segment dashboard, choose Catalog from the sidebar under Connections.\n\n![Under Connections in the sidebar choose Catalog](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000661/Medusa%20Docs/Segment/rAeJkP3_ybyutz.png)\n\nThen, in the catalog list find the Backend category and choose Node.js from the list.\n\n![Choose Node.js under the Backend category](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000672/Medusa%20Docs/Segment/6RxQbW6_wjphte.png)\n\nThis opens a new side menu. In the side menu, click on Add Source.\n\n![Click on Add Source in the side menu showing information about the Node.js source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000683/Medusa%20Docs/Segment/0VZJnpd_ehagat.png)\n\nThis opens a new page to create a Node.js source. Enter the name of the source then click Add Source.\n\n![Enter a name under the Name field then click on the Add Source button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000693/Medusa%20Docs/Segment/u2hzkB5_t59yhj.png)\n\nOn the new source dashboard, you should find a Write Key. You’ll use this key in the next section after you install the Segment plugin on your Medusa backend.\n\n![The Write Key is available on the new source's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000708/Medusa%20Docs/Segment/OTJVsz7_v95qla.png)\n\n### Optional: Add Destination\n\nAfter you create the Segment source, you can add destinations. This is where the data is sent when you send them to Segment. You can add more than one destination.\n\nTo add a destination, on the same Segment source page, click on Add Destination in the Destinations section.\n\n![Click on the Add Destination button on the source page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000718/Medusa%20Docs/Segment/FrKlUxh_zlnkww.png)\n\nYou can then choose from a list of destinations such as Google Universal Analytics or Facebook Pixel.\n\n![List of some of the available destinations in Segment's catalog](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000730/Medusa%20Docs/Segment/y2YnPUh_mgfqdo.png)\n\nThe process of integrating each destination is different, so you must follow the steps detailed in Segment for each destination you choose.\n\n---\n\n## Install the Segment Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Segment plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-segment\n```\n\nThen, add the following environment variable:\n\n```bash\nSEGMENT_WRITE_KEY=<YOUR_SEGMENT_WRITE_KEY>\n```\n\nWhere `<YOUR_SEGMENT_WRITE_KEY>` is the Write Key shown on the page of the Segment source you created in the previous section.\n\nFinally, in `medusa-config.js`, add the following new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-segment`,\n    options: {\n      write_key: process.env.SEGMENT_WRITE_KEY,\n    },\n  },\n]\n```\n\n---\n\n## Test the Plugin\n\nRun your backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, try triggering one of the [mentioned events earlier in this document](#events-that-the-segment-plugin-tracks). For example, you can place an order either using the [REST APIs](https://docs.medusajs.com/api/store) or using the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx).\n\nAfter you place an order, on the Segment source that you created, click on the Debugger tab. You should see at least one event triggered for each order you place. If you click on the event, you can see the order details are passed to the event.\n\n![The order completed event is recorded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000743/Medusa%20Docs/Segment/LQVJTGg_i5jyge.png)\n\nIf you added a destination, you can also check your destination to make sure the data is reflected there.\n\n:::note\n\nIf the data is not appearing on the destination, the issue is related to your configuration between the Segment source and destination and not related to the Segment plugin. Go over the steps that Segment showed you when you added the destination to figure out the issue.\n\n:::\n\n---\n\n## Add Custom Tracking\n\nIn some cases, you might want to track more events or custom events. You can do that using the `SegmentService` provided by the Segment Plugin.\n\nFor example, you can add the following subscriber to listen to the `customer.created` event and add tracking for every customer created:\n\n```jsx title=src/subscribers/customer.ts\nclass CustomerSubscriber {\n  constructor({ segmentService, eventBusService }) {\n    this.segmentService = segmentService\n\n    eventBusService.subscribe(\n      \"customer.created\",\n      this.handleCustomer\n    )\n  }\n\n  handleCustomer = async (data) => {\n    const customerData = data\n    delete customerData[\"password_hash\"]\n\n    this.segmentService.track({\n      event: \"Customer Created\",\n      userId: data.id,\n      properties: customerData,\n    })\n  }\n}\n\nexport default CustomerSubscriber\n```\n\nYou resolve the `SegmentService` using dependency injection. Then, when the `customer.created` event is triggered, you use the `track` method available in the `SegmentService` to send tracking data to Segment.\n\n:::info\n\nServices can be resolved and used in Subscribers, endpoints, and other Services. Learn [how to resolve services in the Services documentation](../../development/services/create-service.md#using-your-custom-service).\n\n:::\n\n`track` accepts an object of data, where the keys `event` and `userId` are required. Instead of `userId`, you can use `anonymousId` to pass an anonymous user ID.\n\nIf you want to pass additional data to Segment, pass them under the `properties` object key.\n\nThe `SegmentService` also provides the method `identify` to tie a user to their actions or specific traits.\n\n### Test Custom Tracking\n\nAfter adding the above subscriber, run your backend again if it isn’t running and create a customer using the REST APIs or one of the Medusa storefronts. If you check the Debugger in your Segment source, you should see a new event “Customer Created” tracked. If you click on it, you’ll see the data you passed to the `track` method.\n\n![The customer created event is recoreded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000759/Medusa%20Docs/Segment/4LD41xE_qungdw.png)\n\n---\n\n## See Also\n\n- [Services Overview](../../development/services/create-service.md)\n- [Subscribers Overview](../../development/events/create-subscriber.md)\n- [Events Reference](../../development/events/events-list.md)\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n","frontmatter":{"description":"Learn how to integrate Segment with the Medusa backend. Learn how to add custom tracking with Segment and Medusa.","addHowToData":true},"isInternal":false,"tokens":2079,"sizeBytes":9077},{"name":"customize-contentful.md","path":"docs/content/plugins/cms/contentful/customize-contentful.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/cms/contentful/customize-contentful.md","title":"Contentful Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.'\naddHowToData: true\n---\n\n# Customize your Medusa and Contentful Integration\n\nIn this document, you’ll learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.\n\n## Overview\n\nPart of what makes the integration between Medusa and Contentful powerful is that it’s completely customizable.\n\nOn the backend, you can create Contentful migrations that allow you to add or edit Content Types in Contentful. Although this can be done through Contentful’s interface, this solution allows you to create a reusable codebase for your store that is independent of a specific Contentful Space.\n\nOn your storefront, you can add any necessary components that can render the Content Types you create.\n\nAs an example to explain this process, in this documentation, you’ll create a migration that creates a Rich Text content model in Contentful and edits the Page and Product content models to allow using Rich Text content as a tile in pages and products. Then, you’ll modify the Gatsby storefront to render the Rich Text content model.\n\n---\n\n## Prerequisites\n\nIt’s assumed you already have set up a Medusa backend integrated with Contentful and have a Gatsby storefront integrated with Contentful. If not, [please follow this documentation first](index.md).\n\n---\n\n## Create a Contentful Migration\n\nThe Contentful migrations are located in the `contentful-migrations` directory in the Medusa Contentful backend starter. So, if you want to create your own Contentful migrations, you can create them under that directory.\n\nHere’s an example of a migration created in a new file `contentful-migrations/rich-text.js`:\n\n```jsx title=contentful-migrations/rich-text.js\n#! /usr/bin/env node\n\nrequire(\"dotenv\").config()\n\nconst { runMigration } = require(\"contentful-migration\")\n\nconst options = {\n  spaceId: process.env.CONTENTFUL_SPACE_ID,\n  accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,\n  environment: process.env.CONTENTFUL_ENVIRONMENT,\n  yes: true,\n}\n\nconst migration = async () => {\n  await runMigration({\n    ...options,\n    migrationFunction: function (migration, context) {\n\n      // create Rich Text content model\n      const richText = migration\n        .createContentType(\"richText\")\n        .name(\"Rich Text\")\n        .displayField(\"title\")\n    \n      richText\n        .createField(\"title\")\n        .name(\"Title (Internal)\")\n        .type(\"Symbol\")\n      richText\n        .createField(\"body\")\n        .name(\"Body\")\n        .type(\"RichText\")\n\n      // edit Page content model\n      const page = migration.editContentType(\"page\")\n\n      page.editField(\"contentModules\").items({\n        type: \"Link\",\n        linkType: \"Entry\",\n        validations: [\n          {\n            linkContentType: [\n              \"hero\", \"tileSection\", \"richText\",\n            ],\n          },\n        ],\n      })\n\n      // edit Product content model\n      const product = migration.editContentType(\"product\")\n\n      product\n        .createField(\"contentModules\")\n        .name(\"Content Modules\")\n        .type(\"Array\")\n        .items({\n          type: \"Link\",\n          linkType: \"Entry\",\n          validations: [\n            {\n              linkContentType: [\"richText\"],\n            },\n          ],\n        })\n    },\n  })\n}\n\nmigration()\n```\n\nThis example creates a new content model Rich Text that has two fields: title and body. It also edits the Page content model to allow using Rich Text content models on the page.\n\nIn addition, it edits the Product content model by adding a new field `contentModules`. This field accepts an array of sections that can be of type Rich Text. This allows you to display rich details on a product page.\n\nYou can also add other types of content models the `contentModules` should accept. For example, to accept `tileSection` add it to the `linkContentType` option:\n\n```jsx\nproduct\n  .createField(\"contentModules\")\n  .name(\"Content Modules\")\n  .type(\"Array\")\n  .items({\n    type: \"Link\",\n    linkType: \"Entry\",\n    validations: [\n      {\n        linkContentType: [\"richText\", \"tileSection\"],\n      },\n    ],\n  })\n```\n\n### Run a Contentful Migration\n\nTo run a Contentful Migration that you create you can use the following command:\n\n```bash\nnode <file_path>\n```\n\nWhere `<file_path>` is the path of the file you created.\n\nTo run the Contentful migration in the previous example, you can use the following command:\n\n```bash\nnode contentful-migrations/rich-text.js\n```\n\nThis runs the Contentful migration in that file and makes the necessary changes in your Contentful Space.\n\n### Test if Contentful Migration Worked\n\nTo check if the above migration worked, in your Contentful Space dashboard go to Content Models from the navigation bar. You should see the new content model Rich Text.\n\n![Rich Text can be found among content models](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001241/Medusa%20Docs/Contentful/W5WzcTG_vau6c9.png)\n\nThe above migration also allows you to add Rich Text content to pages. To test this out, go to Content from the navigation bar and choose Page in the select field next to the search bar. This shows the available pages in your Contentful Space.\n\n![Filter content to only show pages by choosing Page in the Content Type select field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001251/Medusa%20Docs/Contentful/ht87z4e_gmbk6c.png)\n\nChoose one of the pages. For example, the About page. Then, scroll down to the Add content button. If you click on it, you should be able to choose Rich Text under New Content.\n\n![Click on add content and choose from the dropdown Rich Text](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001261/Medusa%20Docs/Contentful/pJ5yM0m_dfb7vp.png)\n\nClick on Rich Text and a new form will open to create new Rich Text content. It has the same fields that you defined in the migration file.\n\n![The Rich Text form is filled with data](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001271/Medusa%20Docs/Contentful/lAglhc9_ejfs2i.png)\n\nAfter adding the content you want, click on the Publish button on the right then go back to the About page editor.\n\n![Click on the Publish button at the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001281/Medusa%20Docs/Contentful/oYpQKsc_piobfk.png)\n\nSimilarly, in the About page editor, click on the Publish Changes button on the right to view these changes later in the storefront.\n\n![Click on the Publish changes button at the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001296/Medusa%20Docs/Contentful/DIMo3hd_ylxkr3.png)\n\nSimilarly, you can add Rich Text content to any product page.\n\n![A rich text content is added to a product](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001305/Medusa%20Docs/Contentful/wgI8mEB_wbukpd.png)\n\n---\n\n## Render New Content Models in the Storefront\n\nAfter creating a new content model in your Contentful Space, you must add the necessary component to render it in your Gatsby storefront.\n\n### Create Component\n\nTo render the Rich Text content you created in the previous example, create the file `src/components/rich-text/rich-text.js` with the following content:\n\n```jsx title=src/components/rich-text/rich-text.js\nimport React from \"react\"\nimport { \n  renderRichText,\n} from \"gatsby-source-contentful/rich-text\"\n\nconst RichText = ({ data }) => {\n  return (\n    <div style={{\n      maxWidth: \"870px\",\n      margin: \"0 auto\",\n      paddingTop: \"20px\",\n      paddingBottom: \"20px\",\n    }}>\n      {data.body ? renderRichText(data.body) : \"\"}\n    </div>\n  )\n}\n\nexport default RichText\n```\n\nThis creates the component `RichText` responsible for rendering the Rich Text content model. Notice that the fields of the content model are available under the `data` prop variable.\n\n### Render Component in a Page\n\nSince the Rich Text model can be added to any page, you must edit `src/pages/{ContentfulPage.slug}.js` to show it.\n\nIn `src/pages/{ContentfulPage.slug}.js`, import the `RichText` component at the top of the file:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nimport RichText from \"../components/rich-text/rich-text\"\n```\n\nThen, in the returned JSX add a new case to the switch statement:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nswitch (cm.internal.type) {\n  // ...\n  case \"ContentfulRichText\":\n      return <RichText key={cm.id} data={cm} />\n  default:\n    return null\n}\n```\n\nIf the content model of a tile is Rich Text, you’ll display it with the `RichText` component.\n\nFinally, to retrieve all necessary data of the Rich Text content, in the `query` GraphQL variable add the following after the `... on ContentfulTileSection` fragment:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nexport const query = graphql`\n        # find the following line\n        ... on ContentfulTileSection {\n\n        }\n        # add the following\n        ... on ContentfulRichText {\n          id\n          body {\n            raw\n          }\n          internal {\n            type\n          }\n        }\n      }\n    }\n  }\n`\n```\n\n### Test Rich Text in Page Content\n\nTo test this out, run your Medusa backend by running this command in its directory:\n\n```bash\nnpm run start\n```\n\nThen run the Gatsby storefront by running this command in its directory:\n\n```bash\nnpm run start\n```\n\nThis runs the Gatsby storefront on `localhost:8000`. Go to the storefront in your browser and open the About page. You should see the Rich Text content you added.\n\n![Rich Text content you added to the about page should be visible now](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001320/Medusa%20Docs/Contentful/aQAY9Vz_yw4eop.png)\n\n### Render Component in a Product Page\n\nIn the example migration, you also edited the product page to include a new Content Modules field that allows inserting Rich Text content.\n\nTo render them on the Product Page, add the following in the GraphQL query defined in the `query` variable inside `product`:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nexport const query = graphql`\n  query ($id: String!) {\n    product: contentfulProduct(id: { eq: $id }) {\n      # Other fields\n      contentModules {\n        ... on ContentfulRichText {\n          id\n          body {\n            raw\n          }\n          internal {\n            type\n          }\n        }\n      }\n    }\n  }\n`\n```\n\n:::note\n\nIf you added other accepted Content Models to the `contentModules` field of the Product content type, make sure to add them here.\n\n:::\n\nThen, in `src/views/product.js` import the `RichText` component:\n\n```jsx title=src/views/product.js\nimport RichText from \"../components/rich-text/rich-text\"\n```\n\nAnd in the returned JSX add the following before the last `</div>`:\n\n```jsx title=src/views/product.js\n<div className={styles.contentModules}>\n  {product.contentModules?.map((cm) => {\n    switch (cm.internal.type) {\n      case \"ContentfulRichText\":\n        return <RichText key={cm.id} data={cm} />\n      default:\n        return null\n    }\n  })}\n</div>\n```\n\n:::note\n\nIf you added other accepted Content Models to the `contentModules` field of the Product content type, make sure to add cases for them here to display them.\n\n:::\n\nThis loops over `contentModules` and if the type of the content is Rich Text, it is rendered with the `RichText` component.\n\n### Test Rich Text on a Product Page\n\nRestart the Gatsby storefront then open a product that you added Rich Text content to. You should see the Rich Text component at the end of the page.\n\n![Rich Text content you added to the product should be visible at the end of the page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001342/Medusa%20Docs/Contentful/LGiVMxx_rqsr2l.png)\n\n---\n\n## See Also\n\n- Deploy your Medusa backend to [Heroku](../../../deployments/server/deploying-on-heroku.mdx), [Qovery](../../../deployments/server/deploying-on-qovery.md), or [DigitalOcean](../../../deployments/server/deploying-on-digital-ocean.md).\n- [How to deploy your Gatsby storefront to Netlify](../../../deployments/storefront/deploying-gatsby-on-netlify.md).\n","frontmatter":{"description":"Learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.","addHowToData":true},"isInternal":false,"tokens":2829,"sizeBytes":12163},{"name":"index.md","path":"docs/content/plugins/cms/contentful/index.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/cms/contentful/index.md","title":"Contentful Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Contentful with the Medusa backend and a Gatsby storefront. Contentful is a headless CMS backend that provides rich CMS functionalities.'\naddHowToData: true\n---\n\n# Contentful\n\nIn this document, you’ll learn how to integrate a Medusa backend with Contentful to add rich Content Management System (CMS) functionalities\n\n## Overview\n\n[Contentful](https://www.contentful.com/) is a headless CMS service that allows developers to integrate rich CMS functionalities into any platform.\n\nBy integrating Contentful to Medusa, you can benefit from powerful features in your ecommerce store including detailed product CMS details, easy-to-use interface to use for static content and pages, localization, and much more.\n\n---\n\n## Prerequisites\n\n### Needed Accounts\n\n- [Contentful](https://www.contentful.com/sign-up/) account with a space created. A space is created by default when you create a new account.\n\n### Required Tools\n\n- PostgreSQL with an empty database created. You can follow [this documentation to learn how to install it for your operating system](../../../development/backend/prepare-environment.mdx#postgres).\n- Redis. You can follow [their documentation to learn how to install it](https://redis.io/docs/getting-started/installation/).\n- Git’s CLI tool. You can follow [this documentation to learn how to install it for your operating system](../../../development/backend/prepare-environment.mdx#git).\n- Gatsby’s CLI tool. You can follow [this documentation to install it](https://www.gatsbyjs.com/docs/reference/gatsby-cli/#how-to-use-gatsby-cli).\n- Medusa’s CLI tool. You can follow [this documentation to install it](../../../cli/reference.md#how-to-install-cli-tool).\n\n---\n\n## Install Medusa Backend Using Contentful Starter\n\nInstead of using the default Medusa backend starter, you must use the [Contentful starter](https://github.com/medusajs/medusa-starter-contentful) to install a backend that is ready to be used with Contentful. This backend contains all the necessary files to make the integration work.\n\nIn your terminal, run the following command to install the backend:\n\n```bash\nmedusa new medusa-contentful https://github.com/medusajs/medusa-starter-contentful\n```\n\nThis installs a new Medusa backend in the directory `medusa-contentful`.\n\n### Add Contentful Environment Variables\n\nChange to the `medusa-contentful` directory. In `.env` you’ll find three variables:\n\n```bash title=.env\nCONTENTFUL_SPACE_ID=\nCONTENTFUL_ACCESS_TOKEN=\nCONTENTFUL_ENV=\n```\n\n#### Value of CONTENTFUL_ENV\n\nSet the value for `CONTENTFUL_ENV` to `master`.\n\n#### Value of CONTENTFUL_SPACE_ID\n\nTo retrieve the value of `CONTENTFUL_SPACE_ID`, go to your [Contentful Space dashboard](https://app.contentful.com/). Then, choose Settings in the navigation bar and select API keys from the dropdown.\n\n![Click on Settings then select API keys from the dropdown](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001360/Medusa%20Docs/Contentful/hvp6zo5_uaqtmi.png)\n\nOn the APIs page, click Add API Key.\n\n![Click on the Add API Key button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001375/Medusa%20Docs/Contentful/KlH2BDg_fiqd80.png)\n\nIn the form, enter a name for the API key and click Save.\n\n![A form with the name of API key entered](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001385/Medusa%20Docs/Contentful/hOG1RqM_tmctae.png)\n\nThen, copy the value of Space ID and set it as the value of `CONTENTFUL_SPACE_ID`.\n\n#### Value of CONTENTFUL_ACCESS_TOKEN\n\nGo back to the API Keys page and click on the Content management tokens tab.\n\n![API Keys page with Content management tokens tab opened](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001394/Medusa%20Docs/Contentful/7nWx1xk_co8ykw.png)\n\nClick on Generate personal token. A pop-up will open where you have to enter a name for the token.\n\n![Pop up model for Personal Access Token with token name entered](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001403/Medusa%20Docs/Contentful/y6R81pH_yhbg1u.png)\n\nOnce you click Generate, a personal access token will be generated. Use it to set the value of `CONTENTFUL_ACCESS_TOKEN`.\n\n:::warning\n\nOnce you close the pop-up, you won’t be able to get the value of the personal access token again. Make sure to copy it first.\n\n:::\n\n### Configure Redis\n\nIn `.env` set the value of your Redis URL:\n\n```bash\nREDIS_URL=<YOUR_REDIS_URL>\n```\n\nWhere `<YOUR_REDIS_URL>` is the URL of your Redis service.\n\n:::tip\n\nThe default Redis URL is `redis://localhost:6379`.\n\n:::\n\n### Configure PostgreSQL\n\nIn `.env` set the value of your PostgreSQL URL:\n\n```bash\nDATABASE_URL=<YOUR_DB_URL>\n```\n\nWhere `<YOUR_DB_URL>` is the URL of your PostgreSQL database.\n\n:::tip\n\nYou can find the format of the PostgreSQL database URL in [PostgreSQL’s documentation](https://www.postgresql.org/docs/current/libpq-connect.html).\n\n:::\n\nThen, in `medusa-config.js` in the exported object, comment out or remove the SQLite database configurations and add the PostgreSQL database configurations:\n\n```jsx title=medusa-config.js\nmodule.exports = {\n  projectConfig: {\n    // ...\n    database_url: DATABASE_URL,\n    database_type: \"postgres\",\n    // REMOVE OR COMMENT OUT THE BELOW:\n    // database_database: \"./medusa-db.sql\",\n    // database_type: \"sqlite\",\n  },\n}\n```\n\n### Migrate Content Types to Contentful\n\nThe Contentful starter provides the necessary scripts to create content types in your Contentful space.\n\nRun the following commands to migrate the content types into Contentful:\n\n```bash\nnpm run migrate:contentful\n```\n\nOnce this command finishes executing, in your Contentful Space dashboard click on Content Model in the navigation bar. You should see a list of new content models added.\n\n![Content Model page filled with new content models](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001419/Medusa%20Docs/Contentful/ZDJPNkr_avr7gy.png)\n\n### Seed Content to Contentful\n\nThe next step is to seed the Contentful Space with some content data.\n\nRun the following command to seed some data into it:\n\n```bash\nnpm run seed:contentful\n```\n\nAfter this command finishes running, in your Contentful Space dashboard click on Content in the navigation bar. You should see a list of new content added.\n\n![Content page filled with new content](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001429/Medusa%20Docs/Contentful/bfgFxPg_jb4zok.png)\n\n### (Optional) Seed Medusa Database\n\nThis step seeds your Medusa database with demo data to easily add products as well as other data to your Medusa backend.\n\nRun the following command to seed the Medusa database:\n\n```bash\nnpm run seed\n```\n\n### Start the Backend\n\nTo start the backend run the following command:\n\n```bash\nnpm run start\n```\n\nIf you seeded the database with demo data, you should see that events related to the products are triggered.\n\n![Seed the database](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001440/Medusa%20Docs/Contentful/ci4accp_okaro3.png)\n\nThe Contentful integration ensures a two-way sync between the Medusa backend and Contentful. So, when new products are added to Medusa, these products will be added to your Contentful Space as well.\n\n---\n\n## (Optional) Add Products with the Medusa Admin\n\nUsing the Medusa admin, you can add products to your Medusa backend. This will trigger product events that subsequently add these products to Contentful.\n\n---\n\n## Manage Contentful Data\n\n### Publish Products\n\nProducts added through the integration with the Medusa backend are by default saved as drafts. To show them on the storefront, you must set them as published.\n\nTo do that, open your Contentful Space Dashboard and click on Content in the Navigation bar. Then, change Any to Product in the select field next to the search bar. This shows only the content of the type Product, rather than all content.\n\nClick on the checkbox at the top of the table to select all products then click Publish to publish these products.\n\n![Select all products' checkboxes and click the publish button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001452/Medusa%20Docs/Contentful/3NrH5tJ_f16iym.png)\n\n### Added Featured Products\n\nOn the homepage of the storefront, there’s a featured products tile that shows a set of products. Before running the storefront, you must add at least one product to the list.\n\nTo do that, open your Contentful Space Dashboard and click on Content in the Navigation bar. Make sure the select field next to the search bar is set to Any and search for Featured Products. You should find one content of the type Tile Section.\n\n![Search for the featured products tile section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001462/Medusa%20Docs/Contentful/2gS0ozY_b2tpsb.png)\n\nClick on it. You should find on the page an empty Tiles section where you can add tiles and products.\n\n![On the content's page find the empty tiles section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001472/Medusa%20Docs/Contentful/inuN1OB_ipiszl.png)\n\nClick on Add content then on Add existing content and pick some of the products you want to show on the homepage.\n\n![Add at least 1 product as a tile](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001500/Medusa%20Docs/Contentful/N5m4LbF_fb97tm.png)\n\nOnce you’re done adding products, click on Publish changes in the right sidebar.\n\n![Click on the publish changes button on the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001508/Medusa%20Docs/Contentful/URNpkXq_cb5ppp.png)\n\n---\n\n## Setup Gatsby Storefront\n\nIn this section, you’ll set up the Gatsby storefront of your Medusa backend.\n\nIn your terminal in a different directory of the Medusa backend, run the following command:\n\n```bash\ngatsby new medusa-contentful-storefront https://github.com/medusajs/medusa-contentful-storefront\n```\n\nThis will install the storefront in the directory `medusa-contentful-storefront`.\n\n### Set Contentful Environment Variables\n\nChange to the newly created directory and rename `.env.template`:\n\n```bash\nmv .env.template .env\n```\n\nThen, open `.env`. You should find the following environment variables:\n\n```bash title=.env\nCONTENTFUL_SPACE_ID=\nCONTENTFUL_ACCESS_TOKEN=\n```\n\nThe value of `CONTENTFUL_SPACE_ID` is the same value you [retrieved while setting up the Medusa backend](#value-of-contentful_space_id).\n\nTo retrieve the value of `CONTENTFUL_ACCESS_TOKEN`, on your Contentful Space dashboard click on Settings then API keys. Then, choose the API key you created in the previous section.\n\nYou should find the field \"Content Delivery API - access token”. Copy its value and set it as the value of `CONTENTFUL_ACCESS_TOKEN`.\n\n![Copy the value of the Content Delivery API access token](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001522/Medusa%20Docs/Contentful/a7dl7DI_mziogm.png)\n\n### Start Storefront\n\nMake sure the Medusa backend is still running. Then, start the storefront:\n\n```bash\nnpm run start\n```\n\nThis starts the storefront at `localhost:8000`. Open it in your browser and you should see on the homepage the Featured Product section with the products you chose on Contentful.\n\n![The storefront with the featured products section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001537/Medusa%20Docs/Contentful/f6xwYbS_w1v993.png)\n\n---\n\n## Make Changes to Content\n\nYou can update the CMS content of your storefront in your Contentful Space. This includes the CMS pages or product details.\n\n:::note\n\nIf you make changes to the data while your Gatsby storefront is running, the changes are not reflected instantly. That’s because the data is fetched from Contentful during build time. Instead, you must restart your Gatsby storefront to see the changes you make.\n\n:::\n\n---\n\n## What’s Next\n\nLearn [How to customize your Contentful backend and storefront](./customize-contentful.md).\n\n## See Also\n\n- How to deploy your Medusa backend to [Heroku](../../../deployments/server/deploying-on-heroku.mdx), [Qovery](../../../deployments/server/deploying-on-qovery.md), or [DigitalOcean](../../../deployments/server/deploying-on-digital-ocean.md).\n- [How to deploy your Gatsby storefront to Netlify](../../../deployments/storefront/deploying-gatsby-on-netlify.md).\n","frontmatter":{"description":"Learn how to integrate Contentful with the Medusa backend and a Gatsby storefront. Contentful is a headless CMS backend that provides rich CMS functionalities.","addHowToData":true},"isInternal":false,"tokens":2877,"sizeBytes":12218},{"name":"strapi.md","path":"docs/content/plugins/cms/strapi.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/cms/strapi.md","title":"Cms Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Strapi with the Medusa backend. Learn how to install the plugin and test two-way sync between the ecommerce and CMS services.'\naddHowToData: true\n---\n\n# Strapi\n\nIn this document, you’ll learn how to integrate Strapi with Medusa to add rich Content Management System (CMS) functionalities.\n\n:::info\n\nThis plugin is a [community plugin](https://github.com/Deathwish98/medusa-plugin-strapi) and is not managed by the official Medusa team. At the moment, it supports v4 of Strapi.\n\n:::\n\n## Overview\n\n[Strapi](https://strapi.io/) is an open source headless CMS service that allows developers to have complete control over their content models. It can be integrated into many other frameworks, including Medusa.\n\nBy integrating Strapi to Medusa, you can benefit from powerful features in your ecommerce store including detailed product CMS details, [two-way sync](#test-two-way-sync), an easy-to-use interface to use for static content and pages, and much more.\n\n---\n\n## Prerequisites\n\n### Medusa CLI\n\n[Medusa’s CLI tool](../../cli/reference.md#how-to-install-cli-tool) is required to set up a new Medusa backend.\n\n### Redis\n\nRedis is required for the Strapi plugin to work as expected on your Medusa backend. If you don’t have it installed, you can learn [how to install it in this documentation](../../development/backend/prepare-environment.mdx#redis).\n\n---\n\n## Create Strapi Project\n\nThe first step is to create a Strapi project using the Medusa template:\n\n```bash\nnpx create-strapi-app strapi-medusa --template shahednasser/strapi-medusa-template\n```\n\nThis creates the Strapi project in the directory `strapi-medusa`.\n\nOnce the installation is finished, the Strapi development backend will run on `localhost:1337`. A new page will also open in your default browser to create a new admin user and log in.\n\n![Create User Form in Strapi](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001083/Medusa%20Docs/Strapi/9pFE1Ij_h2dicv.png)\n\nOnce you log in, you can access the Strapi dashboard.\n\n### Create a Strapi User\n\nThe Strapi plugin in Medusa requires the credentials of a Strapi user. To create a new user, go to Content Manager, then choose User under Collection Types.\n\n![Showing the users under Content Manager](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001096/Medusa%20Docs/Strapi/YyGJPUf_mr5sx7.png)\n\nClick on the Create new entry button at the top right. This opens a new form to enter the user’s details.\n\n![Create User Form on Strapi](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001105/Medusa%20Docs/Strapi/mdMhSlV_vy7ygv.png)\n\nEnter the user’s username, email, and password. Once you’re done, click on the Save button at the top right.\n\n---\n\n## Modify Permissions\n\nBy default, created users have the “Authenticated” role. Before you start using the Strapi plugin on your Medusa backend, you must modify this role’s permissions to allow making changes to Medusa’s models in Strapi.\n\nOn your Strapi dashboard, go to Settings → Roles → Authenticated. Then, under the Permissions section, expand the accordion of each content model type and check the Select All checkbox.\n\n![An example of modifying permissions on the Product content type](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001116/Medusa%20Docs/Strapi/QgckXqS_wlyxe8.png)\n\nOnce you’re done, click the Save button at the top right.\n\n---\n\n## Create Medusa Backend\n\n:::note\n\nYou can use the Strapi plugin on an existing Medusa backend, however, existing data (such as existing products) will not be imported. Only newer data will be imported.\n\n:::\n\nTo create your Medusa backend, run the following command:\n\n```bash\nmedusa new medusa-backend --seed\n```\n\nThe `--seed` flag creates an SQLite database and seeds it with some demo data.\n\n### Configure your Backend\n\nOnce the command is done executing, change to the newly created `medusa-backend` directory. Then, in `medusa-config.js`, change the exported object at the end of the file to enable Redis:\n\n```jsx title=medusa-config.js\nmodule.exports = {\n  projectConfig: {\n    redis_url: REDIS_URL,\n    // ...\n  },\n  // ...\n}\n```\n\nThis uses the default Redis configurations. If you want to learn more about configuring Redis, [check out this documentation](../../development/backend/configurations.md#redis).\n\n:::tip\n\nIt is also recommended to use PostgreSQL for an optimal experience, however, it is not required. Learn how to [install](../../development/backend/prepare-environment.mdx#postgres) and [configure](../../development/backend/configurations.md#postgresql-configurations) it on your Medusa backend.\n\n:::\n\n---\n\n## Install the Strapi Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Strapi plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-strapi\n```\n\nThen, add the following environment variables:\n\n```bash\nSTRAPI_USER=<STRAPI_IDENTIFIER>\nSTRAPI_PASSWORD=<STRAPI_PASSWORD>\nSTRAPI_PROTOCOL=http # Optional\nSTRAPI_URL=<STRAPI_URL> # Optional\nSTRAPI_PORT=<STRAPI_PORT> # Optional\n```\n\nWhere:\n\n- `<STRAPI_IDENTIFIER>` is either the email address or username of the user you created in the previous step.\n- `<STRAPI_PASSWORD>` is the password of the user you created in the previous step.\n- `<STRAPI_PROTOCOL>` is the protocol of your Strapi backend. If you’re using a local Strapi backend, set this to `http`. The default value is `https`.\n- `<STRAPI_URL>` is the URL of your Strapi backend. By default, the URL is `localhost`.\n- `<STRAPI_PORT>` is the port the Strapi backend runs on. By default, the port is `1337`.\n\nFinally, open `medusa-config.js` and add the following new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-strapi`,\n    options: {\n      strapi_medusa_user: process.env.STRAPI_USER,\n      strapi_medusa_password: process.env.STRAPI_PASSWORD,\n      strapi_url: process.env.STRAPI_URL, // optional\n      strapi_port: process.env.STRAPI_PORT, // optional\n      strapi_protocol: process.env.STRAPI_PROTOCOL, // optional\n    },\n  },\n]\n```\n\n---\n\n## Run Medusa Backend\n\nMake sure the Strapi backend is still running. If not, you can run the following command to run the Strapi backend in the directory of the Strapi project:\n\n```bash npm2yarn\nnpm run develop\n```\n\nThen, in the directory of your Medusa backend, run the following command to start the Medusa backend:\n\n```bash npm2yarn\nnpm run start\n```\n\nOnce you start your Medusa backend, if you ran the `--seed` command when you created your Medusa backend, you’ll see that `product.created` events have been triggered along with similar events. This will update Strapi with the products you seeded.\n\n---\n\n## Test Two-Way Sync\n\nThis plugin ensures a two-way sync between the Medusa backend and the Strapi backend. So, if you update data on Strapi, it will be reflected on your Medusa backend, and vice-versa.\n\n### Update Products on Strapi\n\nTry updating any products on Strapi by going to Content Manager → Products and choosing a product from the list. Then, make changes to the product and click Save. If you view the products on your backend now, either using the [REST APIs](/api/admin/#tag/Product/operation/GetProducts) or using [the Medusa Admin](../../user-guide/products/index.mdx), you’ll see that the product has been updated.\n\n### Update Products on Medusa\n\nIf you try to update products on Medusa either using the [REST APIs](/api/admin/#tag/Product/operation/PostProductsProduct) or using [the Medusa Admin](../../user-guide/products/manage.mdx), you’ll see that the product is also updated on Strapi.\n\n---\n\n## See Also\n\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n- [Create your own plugin](../../development/plugins/create.md)\n","frontmatter":{"description":"Learn how to integrate Strapi with the Medusa backend. Learn how to install the plugin and test two-way sync between the ecommerce and CMS services.","addHowToData":true},"isInternal":false,"tokens":1864,"sizeBytes":7774},{"name":"minio.md","path":"docs/content/plugins/file-service/minio.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/file-service/minio.md","title":"File-service Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate MinIO with the Medusa backend. Learn how to install the MinIO plugin on the Medusa backend and configure it.'\naddHowToData: true\n---\n\n# MinIO\n\nThis document will guide you through installing the MinIO file service plugin on your Medusa backend.\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document will focus on setting up [MinIO](https://min.io) on your local machine and connecting Medusa to it.\n\n---\n\n## Prerequisites\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n---\n\n## Set up MinIO\n\nYou can follow [MinIO’s guide to install it](https://docs.min.io/minio/baremetal/quickstart/quickstart.html) on your machine based on your operating system.\n\nAfter installing it, make sure MinIO is always running when your Medusa backend is running. It’s recommended that you set up an alias to quickly start the MinIO backend as instructed at the end of the installation guides in MinIO.\n\n### Change MinIO port\n\nIn MinIO’s documentation, port `9000` is used for the address of the MinIO backend. However, this collides with the port for the Medusa backend. You must change the port for MinIO to another one (for example, port `9001`).\n\nAfter setting up and installing MinIO on your system/sub-system, you can run the following command to change MinIO port to `9001` (or any other available port) instead of `9000` to avoid the port clash:\n\n```bash\nminio backend ~/minio --console-address :9090 --address :9001\n```\n\n### Create a MinIO bucket\n\nAfter installing MinIO and logging into the Console, you can create a bucket that will store the files of your Medusa backend by following these steps:\n\n1. Click on the “Create Bucket” button\n2. For the Bucket Name field, enter a name for the bucket. By MinIO’s requirement, the name can only consist of lower case characters, numbers, dots (`.`), and hyphens (`-`).\n3. Click on the Create Bucket button.\n4. On the bucket's page, click on the cog icon at the top right to configure the bucket.\n5. Click on the edit icon next to Access Policy.\n6. In the pop-up that opens, change the selected value to “public” and click Set.\n\n:::warning\n\nChanging the Access Policy to public will allow anyone to access your bucket. Avoid storing sensitive data in the bucket.\n\n:::\n\n### Generate Access Keys\n\nTo generate access keys for your plugin:\n\n1. From the sidebar of your MinIO console, click on Access Keys\n2. Click on the \"Create access key\" button\n3. This will open a new form with randomly-generated keys. Click on the Create button.\n4. A pop-up will then show the value for your Access Key and Secret Key. Copy them to use in the next section.\n\n:::caution\n\nYou will not be able to access the Secret Key after closing the pop-up. So, make sure to store it somewhere to use later when configuring the plugin.\n\n:::\n\n---\n\n## Plugin Installation\n\nIn the directory of your Medusa backend, run the following command to install the MinIO plugin:\n\n```bash npm2yarn\nnpm install medusa-file-minio\n```\n\nThen, add the following environment variables in `.env`:\n\n```bash\nMINIO_ENDPOINT=<ENDPOINT>\nMINIO_BUCKET=<BUCKET>\nMINIO_ACCESS_KEY=<ACCESS_KEY>\nMINIO_SECRET_KEY=<SECRET_KEY>\n```\n\nWhere `<ENDPOINT>` is the URL of your MinIO backend, `<BUCKET>` is the name of the bucket you created earlier, and `<ACCESS_KEY>` and `<SECRET_KEY>` are the keys you generated in the previous section.\n\nFinally, configure your `medusa-config.js` to include the plugin with the required options:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        endpoint: process.env.MINIO_ENDPOINT,\n        bucket: process.env.MINIO_BUCKET,\n        access_key_id: process.env.MINIO_ACCESS_KEY,\n        secret_access_key: process.env.MINIO_SECRET_KEY,\n    },\n  },\n]\n```\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test it Out\n\nRun your Medusa backend alongside the [Medusa Admin](../../admin/quickstart.mdx) to try out your new file service. Upon editing or creating products, you can now upload thumbnails and images, that are stored in a MinIO backend.\n\n![Image Uploaded on Admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000429/Medusa%20Docs/MinIO/alabX2i_dzg2mh.png)\n\n---\n\n## Private Buckets\n\n### Handle Exports\n\nMedusa provides export functionalities including exporting products and orders. For exports to work, you must [set up a private bucket](#create-private-bucket).\n\n### Handle Imports\n\nMedusa provides import functionalities including importing products. For imports to work, you must [set the private bucket](#add-private-bucket-environment-variable) to be the same as the public bucket.\n\n### Create Private Bucket\n\nTo create a private bucket, follow along the [steps mentioned earlier](#create-a-minio-bucket), but keep Access Policy set to private.\n\n### Add Private Bucket Environment Variable\n\nAdd the following environment variable on your Medusa backend:\n\n```bash\nMINIO_PRIVATE_BUCKET=exports\n```\n\nThen, add a new option to the plugin’s options in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        // ...\n        private_bucket: process.env.MINIO_PRIVATE_BUCKET,\n    },\n  },\n]\n```\n\n### Use Different Secret and Access Keys\n\nIf you only add the `private_bucket` option, the same secret and access keys that you used for the public bucket will be used to access the private bucket.\n\nIf you want to use different keys, set the following environment variables:\n\n```bash\nMINIO_PRIVATE_ACCESS_KEY=<YOUR_PRIVATE_ACCESS_KEY>\nMINIO_PRIVATE_SECRET_KEY=<YOUR_PRIVATE_SECRET_KEY>\n```\n\nWhere `<YOUR_PRIVATE_ACCESS_KEY>` and `<YOUR_PRIVATE_SECRET_KEY>` are the access key and secret access key that have access to the private MinIO bucket.\n\nThen, add two new options to the plugin’s options in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        // ...\n        private_access_key_id: \n          process.env.MINIO_PRIVATE_ACCESS_KEY,\n        private_secret_access_key: \n          process.env.MINIO_PRIVATE_SECRET_KEY,\n    },\n  },\n]\n```\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the MinIO domain name into the configured images domain names. This is because all URLs of product images will be from the MinIO backend.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"127.0.0.1\",\n    ],\n  },\n})\n```\n\nWhere `127.0.0.1` is the domain of your local MinIO backend.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","frontmatter":{"description":"Learn how to integrate MinIO with the Medusa backend. Learn how to install the MinIO plugin on the Medusa backend and configure it.","addHowToData":true},"isInternal":false,"tokens":1759,"sizeBytes":7561},{"name":"s3.md","path":"docs/content/plugins/file-service/s3.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/file-service/s3.md","title":"File-service Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate the S3 plugin with the Medusa backend. Learn how to configure and use S3 to store images related to the Medusa backend.'\naddHowToData: true\n---\n\n# S3\n\nIn this document, you’ll learn how to install the [S3 plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-s3) on your Medusa backend and use it for storage.\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting the images. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document focuses on using [S3](https://aws.amazon.com/s3/) to store images and files uploaded to the Medusa backend.\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n### Required Accounts\n\nYou need to [create an AWS account](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin) to follow along with this documentation.\n\n---\n\n## Create S3 Bucket\n\nOn your AWS Console, search for S3 in the search box at the top. Then, choose the first result you see which should be S3 under the Services category.\n\n![Enter S3 in the search box and choose S3 from the result in the Services category](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000547/Medusa%20Docs/S3/wuPTfQ8_bzbm8n.png)\n\nThen, on the new page that opens, click on Create Bucket button at the top right of the Buckets table.\n\n![Click on the Create bucket button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000527/Medusa%20Docs/S3/h95D38T_gptwpr.png)\n\nThe Create Bucket form will open. In the General Configuration section enter a name for the bucket and choose a region for the bucket. Both of the values of these fields are important as you’ll use them throughout the documentation.\n\n![Enter bucket name and choose region in the General Configuration section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000559/Medusa%20Docs/S3/wlxUU8I_m4ngqd.png)\n\nNext, in the Object Ownership section, choose ACLs enabled. Then, two radio buttons will show below it. Choose Bucket owner preferred.\n\n![In the Object Ownership section choose ACLs enabled, then choose Bucket owner preferred for the Object ownership field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000572/Medusa%20Docs/S3/ChUXQPt_eg8mn1.png)\n\nThen, in the “Block Public Access settings for this bucket” section, uncheck the “Block all public access” checkbox. This shows a warning message at the bottom of the section with another checkbox. Check the checkbox to ensure you understand that objects in the bucket are publicly accessible.\n\n![Uncheck Block all public access and all fields under it, and check the checkbox field \"I acknowledge that the current settings might result in this bucket and the objects within becoming public\"](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000586/Medusa%20Docs/S3/abHquFh_wypfbx.png)\n\nYou can leave the rest of the fields in the form as is and scroll down to the end of the page. Then, click on the Create Bucket button.\n\n---\n\n## Manage Bucket Policies\n\nOn the page of the bucket you just created, click on the Permissions tab. Then, scroll down until you find the Bucket policy section. Click on Edit in that section.\n\n![Find the bucket policy section which should be empty and click on the Edit button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000607/Medusa%20Docs/S3/I6BBLwv_zoknft.png)\n\nIn the Edit Bucket Policy page, enter the following in the field:\n\n```json\n{\n  \"Version\": \"2012-10-17\",\n  \"Id\": \"Policy1397632521960\",\n  \"Statement\": [\n    {\n      \"Sid\": \"Stmt1397633323327\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"AWS\": \"*\"\n      },\n      \"Action\": \"s3:GetObject\",\n      \"Resource\": \"arn:aws:s3:::<YOUR_BUCKET_NAME>/*\"\n    }\n  ]\n}\n```\n\nMake sure to replace `<YOUR_BUCKET_NAME>` with the name of the bucket you created.\n\nOnce you’re done, scroll down and click on the Save changes button.\n\n### User Permissions\n\nYour user must have the `AmazonS3FullAccess` policy attached to it. You can refer to [this guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-and-attach-iam-policy.html) to learn how to add a policy if necessary.\n\n### Obtain Access Keys\n\nYou must obtain access keys for your user as you’ll use them to integrate the S3 plugin in Medusa with your bucket. To obtain the Access Key ID and the Secret Access Key, check out [this guide](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\n\n---\n\n## Install the S3 Plugin\n\nIn the directory of your Medusa backend, run the following command to install the S3 Plugin:\n\n```bash npm2yarn\nnpm install medusa-file-s3\n```\n\nThen, add the following environment variables:\n\n```bash\nS3_URL=<YOUR_BUCKET_URL>\nS3_BUCKET=<YOUR_BUCKET_NAME>\nS3_REGION=<YOUR_BUCKET_REGION>\nS3_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>\nS3_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>\n```\n\nWhere:\n\n1. `<YOUR_BUCKET_URL>` is the URL to your bucket. It’s in the form `https://<BUCKET_NAME>.s3.<REGION>.amazonaws.com`, where `<BUCKET_NAME>` is the name of the bucket and the `<REGION>` is the region the bucket is created in. If you’re not sure which region, on your bucket’s page on S3 click on Properties. You can then find the region under AWS Region. Make sure to only copy the code (for example, `us-east-1`).\n2. `<YOUR_BUCKET_NAME>` is the name of the bucket you created.\n3. `<YOUR_BUCKET_REGION>` is the region code of your bucket. For example, `us-east-1`.\n4. `<YOUR_ACCESS_KEY_ID>` is the Access Key ID that you created for your user.\n5. `<YOUR_SECRET_ACCESS_KEY>` is the Secret Access Key that you created for your user.\n\nFinally, in `medusa-config.js`, add to the `plugins` array the following new item:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-s3`,\n    options: {\n        s3_url: process.env.S3_URL,\n        bucket: process.env.S3_BUCKET,\n        region: process.env.S3_REGION,\n        access_key_id: process.env.S3_ACCESS_KEY_ID,\n        secret_access_key: process.env.S3_SECRET_ACCESS_KEY,\n    },\n  },\n]\n```\n\n### Add AWS Configurations\n\nYou can pass AWS configurations in the plugin's options under the property `aws_config_object`. This property is an object that accepts [AWS Configurations](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html) as its properties.\n\nFor example, you can pass the `region`, `access_key_id` and `secret_access_key` in `aws_config_object`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-s3`,\n    options: {\n        s3_url: process.env.S3_URL,\n        bucket: process.env.S3_BUCKET,\n        aws_config_object: {\n          region: process.env.S3_REGION,\n          access_key_id: process.env.S3_ACCESS_KEY_ID,\n          secret_access_key: process.env.S3_SECRET_ACCESS_KEY,\n        },\n    },\n  },\n]\n```\n\nMake sure to define `S3_REGION`, `S3_ACCESS_KEY_ID`, and `S3_SECRET_ACCESS_KEY` in your environment variables first.\n\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test the S3 Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, you can either test the plugin using the [REST APIs](/api/store) or using the [Medusa Admin](../../admin/quickstart.mdx).\n\nOn the Medusa Admin, create a new product and, in the Images section, upload an image then click Save. If the integration was successful, the product image will be uploaded successfully.\n\n![An image is successfully uploaded on the Medusa Admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000619/Medusa%20Docs/S3/zPC9qFH_dgqf76.png)\n\nYou can also check that the image was uploaded on the S3 bucket’s page.\n\n![Image is now available in the S3 Bucket](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000630/Medusa%20Docs/S3/NJZ5bP8_ovv9rc.png)\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the S3 bucket domain name into the configured images’ domain names. This is because all URLs of product images will be from the S3 bucket.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"<BUCKET_NAME>.s3.amazonaws.com\",\n    ],\n  },\n})\n```\n\nWhere `<BUCKET_NAME>` is the name of the S3 bucket you’re using.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","frontmatter":{"description":"Learn how to integrate the S3 plugin with the Medusa backend. Learn how to configure and use S3 to store images related to the Medusa backend.","addHowToData":true},"isInternal":false,"tokens":2324,"sizeBytes":9366},{"name":"spaces.md","path":"docs/content/plugins/file-service/spaces.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/file-service/spaces.md","title":"File-service Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Spaces with the Medusa backend. Learn how to install and configure the Spaces plugin on the Medusa backend.'\naddHowToData: true\n---\n\n# Spaces\n\nIn this document, you’ll learn how to install the [Spaces plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-spaces) on your Medusa backend and use it for storage.\n\n<div>\n  <video width=\"100%\" height=\"100%\" playsinline autoplay muted controls>\n    <source src=\"https://user-images.githubusercontent.com/59018053/154808767-7c030254-1879-41fd-a71c-b31c5508d8a4.mp4\" type=\"video/mp4\" />\n  </video>\n</div>\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting the images. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document focuses on using [Spaces](https://www.digitalocean.com/products/spaces) to store images and files uploaded to the Medusa backend.\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n### Required Accounts\n\nYou need to [create a DigitalOcean account](https://cloud.digitalocean.com/registrations/new) to follow along with this documentation. A credit card is required during registration.\n\n---\n\n## Create DigitalOcean Space\n\nIn your DigitalOcean account, click on the Create button at the top right, then choose Spaces from the dropdown.\n\n![Click on the green Create button at the top right, then choose Spaces in the dropdown](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000907/Medusa%20Docs/Spaces/AQqMRoJ_uhkywh.png)\n\nIn the Create a Space form, you can choose any of the regions listed. You can alternatively leave all settings as they are and scroll down to the Finalize and Create section.\n\n![The Space form can be left as is and move towards the Finalize and Create section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000929/Medusa%20Docs/Spaces/ipsIqoA_zeyfkf.png)\n\nIn the Finalize and Create section, enter a name for the field “Choose a unique name”. You’ll use this name later in the integration with Medusa. Also, select the project you want to add the new Space to.\n\n![Enter a name for the Space in the Choose a unique name field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000949/Medusa%20Docs/Spaces/NhlRX0h_ptdhpk.png)\n\nOnce you’re done, click on the Create a Space button. This creates the Space and redirects you to the Space’s page.\n\n---\n\n## Create Space Access Keys\n\nChoose API from the bottom of the sidebar.\n\n![Choose API from the bottom of the sidebar.](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000964/Medusa%20Docs/Spaces/6zNoDOW_tqbeqv.png)\n\nThis opens the Application & API page. Scroll down to Spaces Access Keys and click the Generate New Key button.\n\n![In the Spaces access keys section, click the Generate New Key button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000977/Medusa%20Docs/Spaces/NUocdgh_doi0dq.png)\n\nThis shows a table with the Name field editable. Enter a name for the Access Keys and click on the checkmark button to save and generate the Spaces access keys.\n\n![Enter a name for the Space access key in the field under the Name column](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000987/Medusa%20Docs/Spaces/ihJBx0T_xfe4rh.png)\n\nThen, two keys will be available under the Key column of the table. The first one is the Access Key ID and the second is the Secret Access Key. Copy both as you’ll use them later.\n\n:::caution\n\nThe secret access key will not be shown again after you leave the page. Make sure to copy it when you see it or you’ll need to re-generate a new one.\n\n:::\n\n---\n\n## Install the Spaces Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Spaces plugin:\n\n```bash npm2yarn\nnpm install medusa-file-spaces\n```\n\nThen, add the following environment variables:\n\n```bash\nSPACE_URL=<YOUR_SPACE_URL>\nSPACE_BUCKET=<YOUR_SPACE_NAME>\nSPACE_ENDPOINT=<YOUR_SPACE_ENDPOINT>\nSPACE_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>\nSPACE_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>\n```\n\nWhere:\n\n1. `<YOUR_SPACE_URL>` is the URL of your Space which you can find on the Space’s page below the Space’s name.\n\n![The URL is available under the Space's name on the Space's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001004/Medusa%20Docs/Spaces/cA3vkvh_maixr0.png)\n\n2. `<YOUR_SPACE_NAME>` is the name of your Space.\n3. `<YOUR_SPACE_ENDPOINT>` is your Space’s endpoint which can be found by going to your Space’s page, clicking on the Settings tab, and scrolling to the Endpoint section.\n\n![Endpoint can be found on the Settings tab in the Space's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001017/Medusa%20Docs/Spaces/CnvLr6R_tudlhu.png)\n\n4. `<YOUR_ACCESS_KEY_ID>` and `<YOUR_SECRET_ACCESS_KEY>` are the keys you created in the previous section.\n\nFinally, in `medusa-config.js` add a new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-spaces`,\n    options: {\n        spaces_url: process.env.SPACE_URL,\n        bucket: process.env.SPACE_BUCKET,\n        endpoint: process.env.SPACE_ENDPOINT,\n        access_key_id: process.env.SPACE_ACCESS_KEY_ID,\n        secret_access_key: process.env.SPACE_SECRET_ACCESS_KEY,\n    },\n  },\n]\n```\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test the Space Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, you can either test the plugin using the [REST APIs](/api/store) or using the [Medusa Admin](../../admin/quickstart.mdx).\n\nOn the Medusa Admin, create a new product and, in the Images section, upload an image then click Save. If the integration was successful, the product image will be uploaded successfully.\n\n![Image successfully uploaded on Medusa's admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001039/Medusa%20Docs/Spaces/oTi4jIw_c6vefa.png)\n\nYou can also check that the image was uploaded on the Space’s page.\n\n![Image can be seen on the Space's page on DigitalOcean](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001050/Medusa%20Docs/Spaces/BexmRkg_gimk1d.png)\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the Space’s domain name into the configured images’ domain names. This is because all URLs of product images will be from the Space.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"<YOUR_SPACE_DOMAIN>\",\n    ],\n  },\n})\n```\n\nWhere `<YOUR_SPACE_DOMAIN>` is the domain name for your Space which can be retrieved from the Space URL. For example, `medusa-backend.digitaloceanspaces.com`.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n- [Deploy the Medusa backend on DigitalOcean](../../deployments/server/deploying-on-digital-ocean.md).\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","frontmatter":{"description":"Learn how to integrate Spaces with the Medusa backend. Learn how to install and configure the Spaces plugin on the Medusa backend.","addHowToData":true},"isInternal":false,"tokens":1934,"sizeBytes":7794},{"name":"mailchimp.md","path":"docs/content/plugins/notifications/mailchimp.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/notifications/mailchimp.md","title":"Notifications Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Mailchimp with the Medusa backend. Learn how to install the plugin on the Medusa backend and how to add a subscription form.'\naddHowToData: true\n---\n\n# Mailchimp\n\nIn this document, you’ll learn about the Mailchimp plugin, what it does, and how to use it.\n\n## Overview\n\n[Mailchimp](https://mailchimp.com) is an email marketing service that can be used to create newsletters and subscriptions.\n\nBy integrating Mailchimp with Medusa, customers will be able to subscribe from Medusa to your Mailchimp newsletter and will be automatically added to your Mailchimp subscribers list.\n\n:::note\n\nThis plugin is only used to allow your customers to subscribe but does not actually do any email sending. If you want to send emails to customers based on specific events, for example, when an order is placed, you should check out the [SendGrid plugin](./sendgrid.mdx) instead.\n\n:::\n\n---\n\n## Prerequisites\n\nBefore going further with this guide make sure you have a Medusa backend set up. You can follow the [Quickstart guide](../../development/backend/install.mdx).\n\nYou also need a Mailchimp account, so please [create one](https://mailchimp.com/signup) before you start.\n\n---\n\n## Obtain Mailchimp Keys\n\nTo integrate the plugin into Medusa you need two keys: The API Key and the Newsletter list or Audience ID. The API Key acts as a credential for your account, whereas the Newsletter list ID determines which audience should the subscribed customers be added to.\n\nYou can follow [this guide](https://mailchimp.com/help/about-api-keys/#Find_or_generate_your_API_key) from Mailchimp’s documentation to obtain an API Key.\n\nYou can follow [this guide](https://mailchimp.com/help/find-audience-id/) from Mailchimp’s documentation to obtain your Newsletter list or Audience ID.\n\n---\n\n## Install the Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Mailchimp plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-mailchimp\n```\n\n### Add Keys\n\nOpen `.env` and add the following keys:\n\n```bash\nMAILCHIMP_API_KEY=<YOUR_API_KEY>\nMAILCHIMP_NEWSLETTER_LIST_ID=<YOUR_NEWSLETTER_LIST_ID>\n```\n\nMake sure to replace `<YOUR_API_KEY>` with your API Key and `<YOUR_NEWSLETTER_LIST_ID>` with your Newsletter list or Audience ID.\n\n### Add Plugin to Medusa Config\n\nOpen `medusa-config.js` and add the new plugin into the `plugins` array:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...,\n  {\n    resolve: `medusa-plugin-mailchimp`,\n    options: {\n      api_key: process.env.MAILCHIMP_API_KEY,\n      newsletter_list_id: \n        process.env.MAILCHIMP_NEWSLETTER_LIST_ID,\n    },\n  },\n]\n```\n\n---\n\n## Test it Out\n\nThis plugin adds a new `POST` endpoint at `/mailchimp/subscribe`. This endpoint requires in the body of the request an `email` field. You can also optionally include a `data` object that holds any additional data you want to send to Mailchimp. You can check out [Mailchimp’s subscription documentation](https://mailchimp.com/developer/marketing/api/list-members/add-member-to-list/) for more details on the data you can send.\n\n### Without Additional Data\n\nTry sending a `POST` request to `/mailchimp/subscribe` with the following JSON body:\n\n```json noReport\n{\n  \"email\": \"example@gmail.com\"\n}\n```\n\nIf the subscription is successful, a `200` response code will be returned with `OK` message.\n\n![Postman](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000185/Medusa%20Docs/Mailchimp/tpr7uCF_g4rymn.png)\n\nIf you check your Mailchimp dashboard, you should find the email added to your Audience list.\n\n![Email Added](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000199/Medusa%20Docs/Mailchimp/ALz6WUq_e4mkcs.png)\n\n### With Additional Data\n\nHere’s an example of sending additional data with the subscription:\n\n```json noReport\n{\n    \"email\": \"example@gmail.com\",\n    \"data\": {\n        \"tags\": [\"customer\"]\n    }\n}\n```\n\nAll fields inside `data` will be sent to Mailchimp’s API along with the email.\n\n---\n\n## Use Mailchimp Service\n\nIf you want to subscribe to users without using this endpoint or at a specific place in your code, you can use Mailchimp’s service `mailchimpService` in your endpoints, services, or subscribers. This service has a method `subscribeNewsletter` which lets you use the subscribe functionality.\n\nHere’s an example of using the `mailchimpService` inside an endpoint:\n\n```jsx title=src/api/index.ts\nconst mailchimpService = req.scope.resolve(\"mailchimpService\")\n\nmailchimpService.subscribeNewsletter(\n  \"example@gmail.com\",\n  { tags: [\"customer\"] } // optional\n)\n```\n\n:::tip\n\nYou can learn more about how you can use services in your endpoints, services, and subscribers in the [Services documentation](../../development/services/create-service.md#using-your-custom-service).\n\n:::\n\n---\n\n## Add Subscription Form\n\nThis section has a simple example of adding a subscription form in your storefront. The code is for React-based frameworks but you can use the same logic for your storefronts regardless of the framework you are using.\n\nYou’ll need to use [axios](https://github.com/axios/axios) to send API requests, so if you don’t have it installed make sure you install it first:\n\n```bash npm2yarn\nnpm install axios\n```\n\nThen, in the component you want to add the subscription form add the following code:\n\n```tsx\nimport axios from \"axios\"\nimport { useState } from \"react\"\n\nexport default function NewsletterForm() {\n  const [email, setEmail] = useState(\"\")\n\n  function subscribe(e) {\n    e.preventDefault()\n    if (!email) {\n      return\n    }\n\n    axios.post(\"http://localhost:9000/mailchimp/subscribe\", {\n      email,\n    })\n      .then((e) => {\n        alert(\"Subscribed sucessfully!\")\n        setEmail(\"\")\n      })\n      .catch((e) => {\n        console.error(e)\n        alert(\"An error occurred\")\n      })\n  }\n\n  return (\n    <form onSubmit={subscribe}>\n      <h2>Sign Up for our newsletter</h2>\n      <input \n        type=\"email\"\n        name=\"email\" \n        id=\"email\" \n        placeholder=\"example@gmail.com\"\n        value={email} \n        onChange={(e) => setEmail(e.target.value)}\n      />\n      <button type=\"submit\">Subscribe</button>\n    </form>\n  )\n}\n```\n\nThis will result in a subscription form similar to the following:\n\n![Subscription Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000210/Medusa%20Docs/Mailchimp/JHIFEwe_fu4rkv.png)\n\nIf you try entering an email and clicking Subscribe, the email will be subscribed to your Mailchimp newsletter successfully.\n\n---\n\n## See Also\n\n- Check out [SendGrid plugin](./sendgrid.mdx) for more Email functionalities.\n- [Plugins Overview](../../development/plugins/overview.mdx)\n","frontmatter":{"description":"Learn how to integrate Mailchimp with the Medusa backend. Learn how to install the plugin on the Medusa backend and how to add a subscription form.","addHowToData":true},"isInternal":false,"tokens":1553,"sizeBytes":6667},{"name":"slack.md","path":"docs/content/plugins/notifications/slack.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/notifications/slack.md","title":"Notifications Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Slack with the Medusa backend. Learn how to create and configure a Slack app and install the Slack plugin on the Medusa backend.'\naddHowToData: true\n---\n\n# Slack\n\nIn this documentation, you'll learn how to add the [Slack plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-slack-notification) to your Medusa backend to start receiving order notifications.\n\n## Overview\n\nWhen you add this plugin, the store owner can receive order notifications into their Slack workspace.\n\nThe notification contains details about the order including:\n\n- Customer's details and address\n- Items ordered, their quantity, and the price\n- Order totals including Tax amount.\n- Promotion details if there are any (this is optional and can be turned off).\n\nThe plugin registers a subscriber to the `order.placed` event. When an order is placed, the subscriber handler method uses the ID of the order to retrieve order details mentioned above.\n\nThen, the order notificaiton is sent to Slack using Webhooks. So, you'll need to create a Slack App, add it into your workspace, and activate Incoming Webhooks.\n\n---\n\n## Prerequisites\n\n### Slack Account\n\nTo follow along with this guide, you need to have a Slack account with a connected workspace. If you don’t have one, you can [create a free account on Slack](https://slack.com/).\n\n### Medusa Backend\n\nThis tutorial assumes you already have a Medusa backend installed. If you don’t, please follow along with the [quickstart guide](../../development/backend/install.mdx). The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n---\n\n## Create Slack App\n\nThe first step is to create a Slack app. This app will be connected to your workspace and will have Incoming Webhooks activated to receive notifications from the Medusa backend using a Webhook URL.\n\nGo to [Slack API](https://api.slack.com/) and click Create app. This will take you to a new page with a pop-up. In the pop-up, choose From scratch.\n\n![Create Slack App](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000844/Medusa%20Docs/Slack/liVfwF8_ryzly3.png)\n\nYou’ll then need to enter some info like the App name and the workspace it will be connected to. Once you’re done, the app will be created.\n\n### Activate Incoming Webhooks\n\nTo activate Incoming Webhooks, choose Features > Incoming Webhooks from the sidebar. At first, it will be disabled so make sure to enable it by switching the toggle.\n\n![Incoming Webhooks](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000856/Medusa%20Docs/Slack/5Y0nv4p_mugzkb.png)\n\n### Add New Webhook\n\nAfter activating Incoming Webhooks, on the same page scroll down and click on the Add New Webhook to Workspace button.\n\n![Add New Webhook](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000867/Medusa%20Docs/Slack/sejdIqH_wyqgs5.png)\n\nAfter that, choose the channel to send the notifications to. You can also choose a DM to send the notifications to. Once you’re done click Allow.\n\n![Choose channel or DM](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000882/Medusa%20Docs/Slack/Zw3f5uF_hljfpr.png)\n\nThis will create a new Webhook with a URL which you can see in the table at the end of the Incoming Webhooks page. Copy the URL as you’ll use it in the next section.\n\n---\n\n## Install Slack Plugin\n\nThe next step is to install Medusa’s [Slack plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-slack-notification) into your Medusa backend.\n\nOpen the terminal in the Medusa backend’s directory and run the following command:\n\n```bash npm2yarn\nnpm install medusa-plugin-slack-notification\n```\n\nAfter that, open `medusa-config.js` and add the new plugin with its configurations in the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...,\n  {\n    resolve: `medusa-plugin-slack-notification`,\n    options: {\n      show_discount_code: false,\n      slack_url: `<WEBHOOK_URL>`,\n      admin_orders_url: `http://localhost:7001/a/orders`,\n    },\n  },\n]\n```\n\n- Make sure to change `<WEBHOOK_URL>` with the Webhook URL you copied after creating the Slack app.\n- The `show_discount_code` option enables or disables showing the discount code in the notification sent to Slack. \n- The `admin_orders_url` is the prefix of the URL of the order detail pages on your admin panel. If you’re using Medusa’s Admin locally, it should be `http://localhost:7001/a/orders`. This will result in a URL like `http://localhost:7001/a/orders/order_01FYP7DM7PS43H9VQ1PK59ZR5G`.\n\nThat’s all you need to do to integrate Slack into Medusa!\n\n---\n\n## See Also\n\n- Install [Medusa's Admin](../../admin/quickstart.mdx) for the full order-management experience.\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n","frontmatter":{"description":"Learn how to integrate Slack with the Medusa backend. Learn how to create and configure a Slack app and install the Slack plugin on the Medusa backend.","addHowToData":true},"isInternal":false,"tokens":1171,"sizeBytes":4865},{"name":"twilio-sms.md","path":"docs/content/plugins/notifications/twilio-sms.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/notifications/twilio-sms.md","title":"Notifications Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Twilio SMS with the Medusa backend. Learn how to install the Twilio SMS plugin and test it out.'\naddHowToData: true\n---\n\n# Twilio SMS\n\nIn this document, you’ll learn about the Twilio SMS Plugin, what it does, and how to use it in Medusa.\n\n## Overview\n\n[Twilio’s SMS API](https://www.twilio.com/sms) can be used to send users SMS messages instantly. It has a lot of additional features such as Whatsapp messaging and conversations.\n\nBy integrating Twilio SMS into Medusa, you’ll have easy access to Twilio’s SMS API to send SMS messages to your users and customers. You can use it to send Order confirmations, verification codes, reset password messages, and more.\n\n:::note\n\nThis plugin only gives you access to the Twilio SMS API but does not implement sending messages at any given point. You’ll have to add this yourself where you need it. You can look at the [example later in this tutorial](#example-usage-of-the-plugin) to check how you can send an SMS for a new order.\n\n:::\n\n---\n\n## Prerequisites\n\nBefore going further with this guide make sure you have a Medusa backend set up. You can follow the [Quickstart guide](../../development/backend/install.mdx) if you don’t.\n\nYou also must have a [Twilio account created](https://www.twilio.com/sms) so if you don’t already please go ahead and create one.\n\n---\n\n## Retrieve Credentials\n\nFor the [Twilio SMS plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-twilio-sms), you need three credentials from your Twilio account: Account SID, Auth Token, and a Twilio phone number to send from. You can find these three from your [Twilio Console’s homepage](https://console.twilio.com).\n\n---\n\n## Install Plugin\n\nIn the directory of your Medusa backend, run the following command to install [Twilio SMS plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-twilio-sms):\n\n```bash npm2yarn\nnpm install medusa-plugin-twilio-sms\n```\n\nThen, you’ll need to add your credentials in `.env`:\n\n```bash\nTWILIO_SMS_ACCOUNT_SID=<YOUR_ACCOUNT_SID>\nTWILIO_SMS_AUTH_TOKEN=<YOUR_AUTH_TOKEN>\nTWILIO_SMS_FROM_NUMBER=<YOUR_TWILIO_NUMBER>\n```\n\nMake sure to replace `<YOUR_ACCOUNT_SID>`, `<YOUR_AUTH_TOKEN>`, and `<YOUR_TWILIO_NUMBER>` with the credentials you obtained from your Twilio Console.\n\nFinally, add the plugin and its options in the `medusa-config.js` file to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-twilio-sms`,\n    options: {\n      account_sid: process.env.TWILIO_SMS_ACCOUNT_SID,\n      auth_token: process.env.TWILIO_SMS_AUTH_TOKEN,\n      from_number: process.env.TWILIO_SMS_FROM_NUMBER,\n    },\n  },\n]\n```\n\n---\n\n## Example Usage of the Plugin\n\nThis plugin adds the service `twilioSmsService` to your Medusa backend. To send SMS using it, all you have to do is resolve it in your file as explained in the [Services](../../development/services/create-service.md#using-your-custom-service) documentation.\n\nIn this example, you’ll create a subscriber that listens to the `order.placed` event and sends an SMS to the customer to confirm their order.\n\n:::tip\n\nFor this example to work, you'll need to have an event bus module installed and configured, which should be available by default.\n\n:::\n\nCreate the file `src/services/sms.js` in your Medusa backend with the following content:\n\n```jsx title=src/services/sms.js\nclass SmsSubscriber {\n  constructor({ \n    twilioSmsService, \n    orderService, \n    eventBusService,\n  }) {\n    this.twilioSmsService_ = twilioSmsService\n    this.orderService = orderService\n\n    eventBusService.subscribe(\"order.placed\", this.sendSMS)\n  }\n\n  sendSMS = async (data) => {\n    const order = await this.orderService.retrieve(data.id, {\n      relations: [\"shipping_address\"],\n    })\n\n    if (order.shipping_address.phone) {\n      this.twilioSmsService_.sendSms({\n        to: order.shipping_address.phone,\n        body: \"We have received your order #\" + data.id,\n      })\n    }\n  }\n}\n\nexport default SmsSubscriber\n```\n\nIn the `constructor`, you resolve the `twilioSmsService` and `orderService` using dependency injection to use it later in the `sendSMS` method.\n\nYou also subscribe to the event `order.placed` and sets the event handler to be `sendSMS`.\n\nIn `sendSMS`, you first retrieve the order with its relation to `shipping_address` which contains a `phone` field. If the phone is set, you send an SMS to the customer using the method `sendSms` in the `twilioSmsService`.\n\nThis method accepts an object of parameters. These parameters are based on Twilio’s SMS APIs. You can check their [API documentation](https://www.twilio.com/docs/sms/api/message-resource#create-a-message-resource) for more fields that you can add.\n\nIf you create an order now on your storefront, you should receive a message from Twilio on the phone number you entered in the shipping address.\n\n:::tip\n\nIf you don’t have a storefront set up yet, you can install the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx).\n\n:::\n\n:::caution\n\nIf you’re on a Twilio trial make sure that the phone number you entered on checkout is a [verified Twilio number on your console](https://console.twilio.com/us1/develop/phone-numbers/manage/verified).\n\n:::\n\n![Twilio Dashboard](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001219/Medusa%20Docs/Stripe/MXtQMiL_kb7kxe.png)\n\n---\n\n## See Also\n\n- [Notifications Overview](../../development/notification/overview.mdx).\n- Install the [Medusa admin](../../admin/quickstart.mdx) for functionalities like Gift Cards creation, swaps, claims, order return requests, and more.\n","frontmatter":{"description":"Learn how to integrate Twilio SMS with the Medusa backend. Learn how to install the Twilio SMS plugin and test it out.","addHowToData":true},"isInternal":false,"tokens":1362,"sizeBytes":5660},{"name":"klarna.md","path":"docs/content/plugins/payment/klarna.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/payment/klarna.md","title":"Payment Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Klarna as a payment provider with the Medusa backend. Learn how to install Klarna and enable the payment provider in a region.'\naddHowToData: true\n---\n\n# Klarna\n\nIn this document, you’ll learn how to integrate Klarna as a payment provider in Medusa.\n\n:::tip\n\nFollowing the release of v1.8 of the core Medusa package, the naming of payment providers have changed to payment processors with the introduction of the Payment Processor API. However, plugins or implementation that still don't implement the Payment Processor API are still called payment providers.\n\n:::\n\n## Introduction\n\n[Klarna](https://www.klarna.com/) is a payment provider that allows customers to pay in different ways including direct payment, installment payments, payment after delivery, and more.\n\nYou can integrate Klarna into Medusa using the [official plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-klarna).\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is assumed that you already have a Medusa backend installed and set up. If not, you can follow the [quickstart guide](../../development/backend/install.mdx).\n\nIn addition, you’ll need to use the [Medusa Admin](../../admin/quickstart.mdx) to enable the payment provider in later steps. You can alternatively use the [REST APIs](/api/admin/#tag/Region/operation/PostRegionsRegionPaymentProviders).\n\n### Needed Accounts\n\n- A [Klarna business account](https://portal.klarna.com/)\n\n---\n\n## Install Plugin\n\nOn your Medusa backend, run the following command to install the plugin:\n\n```bash\nnpm install medusa-payment-klarna\n```\n\nThen, add the following environment variables:\n\n```bash\nKLARNA_BACKEND_URL=<YOUR_KLARNA_BACKEND_URL>\nKLARNA_URL=<YOUR_KLARNA_URL>\nKLARNA_USER=<YOUR_KLARNA_USER>\nKLARNA_PASSWORD=<YOUR_KLARNA_PASSWORD>\nKLARNA_TERMS_URL=<YOUR_KLARNA_TERMS_URL>\nKLARNA_CHECKOUT_URL=<YOUR_KLARNA_CHECKOUT_URL>\nKLARNA_CONFIRMATION_URL=<YOUR_KLARNA_CONFIRMATION_URL>\n```\n\nWhere:\n\n- `<YOUR_KLARNA_BACKEND_URL>` is your Klarna URL.\n- `<YOUR_KLARNA_URL>` is the [base Klarna URL based on your environment](https://docs.klarna.com/api/api-urls/).\n- `<YOUR_KLARNA_USER>` and `<YOUR_KLARNA_PASSWORD>` are your [API credentials](https://docs.klarna.com/api/authentication/).\n- `<YOUR_KLARNA_TERMS_URL>`, `<YOUR_KLARNA_CHECKOUT_URL>`, and `<YOUR_KLARNA_CONFIRMATION_URL>` are the terms, checkout, and confirmation URL of your Klarna account.\n\nFinally, in `medusa-config.js`, add the Klarna plugin to the `plugins` array with the necessary configurations:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // other plugins...\n  {\n    resolve: `medusa-payment-klarna`,\n    options: {\n      backend_url: process.env.KLARNA_BACKEND_URL,\n      url: process.env.KLARNA_URL,\n      user: process.env.KLARNA_USER,\n      password: process.env.KLARNA_PASSWORD,\n      merchant_urls: {\n        terms: process.env.KLARNA_TERMS_URL,\n        checkout: process.env.KLARNA_CHECKOUT_URL,\n        confirmation: process.env.KLARNA_CONFIRMATION_URL,\n      },\n    },\n  },\n]\n```\n\n---\n\n## Enable Klarna in Regions\n\nTo use Klarna in your store, you must enable it in at least one region.\n\nYou can follow [this user guide to learn how to enable a payment provider in a region](../../user-guide/regions/providers#manage-payment-providers). You can alternatively use the [REST APIs](/api/admin/#tag/Region/operation/PostRegionsRegionPaymentProviders).\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","frontmatter":{"description":"Learn how to integrate Klarna as a payment provider with the Medusa backend. Learn how to install Klarna and enable the payment provider in a region.","addHowToData":true},"isInternal":false,"tokens":876,"sizeBytes":3516},{"name":"paypal.md","path":"docs/content/plugins/payment/paypal.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/payment/paypal.md","title":"Payment Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate PayPal with the Medusa backend. Learn how to install the PayPal plugin on the Medusa backend and integrate into a storefront.'\naddHowToData: true\n---\n\n# PayPal\n\nThis document guides you through setting up PayPal as a payment processor in your Medusa backend, admin, and storefront using the [PayPal plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-paypal).\n\n## Overview\n\n[PayPal](https://www.paypal.com) is a payment processor used by millions around the world. It allows customers to purchase orders from your website using their PayPal account rather than the need to enter their card details.\n\nAs a developer, you can use PayPal’s SDKs and APIs to integrate PayPal as a payment method into your ecommerce store. You can test out the payment method in sandbox mode before going live with it as a payment method.\n\nUsing the `medusa-payment-paypal` plugin, this guide shows you how to set up your Medusa backend with PayPal as a payment processor.\n\n---\n\n## Prerequisites\n\nBefore you proceed with this guide, make sure you create a [PayPal account](https://www.paypal.com). You also need a PayPal Developer account and retrieve the Client ID and Client Secret. You can learn more about how to do that in [PayPal’s documentation](https://developer.paypal.com/api/rest/).\n\nIn addition, you need to configure a webhook listener on your PayPal Developer Dashboard and obtain the webhook ID. This is necessary for Webhooks to work.\n\nWebhooks are used in scenarios where the customer might leave the page during the authorization and before the checkout flow is fully complete. It will then create the order or swap after the payment is authorized if they weren’t created\n\nAdditionally, you need a Medusa backend installed and set up. If not, you can follow the [quickstart guide](../../development/backend/install.mdx) to get started.\n\nYou also need [Medusa Admin](../../admin/quickstart.mdx) installed to enable PayPal as a payment processor. You can alternatively use the [REST APIs](/api/admin).\n\n---\n\n## Medusa Backend\n\n### Install the PayPal Plugin\n\nIn the root of your Medusa backend, run the following command to install the PayPal plugin:\n\n```bash npm2yarn\nnpm install medusa-payment-paypal\n```\n\n### Configure the PayPal Plugin\n\nNext, you need to add configurations for your PayPal plugin.\n\nIn the `.env` file add the following new environment variables:\n\n```bash\nPAYPAL_SANDBOX=true\nPAYPAL_CLIENT_ID=<CLIENT_ID>\nPAYPAL_CLIENT_SECRET=<CLIENT_SECRET>\nPAYPAL_AUTH_WEBHOOK_ID=<WEBHOOK_ID>\n```\n\nWhere `<CLIENT_ID>`, `<CLIENT_SECRET>`, and `<WEBHOOK_ID>` are the keys you retrieved from the PayPal Developer dashboard as explained in the [Prerequisites](#prerequisites) section.\n\nNotice that during development it’s highly recommended to set `PAYPAL_SANDBOX` to `true` and ensure you have [sandbox accounts set up in PayPal](https://developer.paypal.com/api/rest/sandbox/).\n\nThen, in `medusa-config.js`, add the PayPal plugin to the `plugins` array with the configurations necessary:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // other plugins...\n  {\n    resolve: `medusa-payment-paypal`,\n    options: {\n      sandbox: process.env.PAYPAL_SANDBOX,\n      client_id: process.env.PAYPAL_CLIENT_ID,\n      client_secret: process.env.PAYPAL_CLIENT_SECRET,\n      auth_webhook_id: process.env.PAYPAL_AUTH_WEBHOOK_ID,\n    },\n  },\n]\n```\n\nThat’s all you need to install PayPal on your Medusa backend!\n\n---\n\n## Admin Setup\n\nThis section will guide you through adding PayPal as a payment processor in a region using your Medusa admin dashboard.\n\nThis step is required for you to be able to use PayPal as a payment processor in your storefront.\n\n### Admin Prerequisites\n\nIf you don’t have a Medusa admin installed, make sure to follow along with [the guide on how to install it](../../admin/quickstart.mdx) before continuing with this section.\n\n### Add PayPal to Regions\n\nYou can refer to [this documentation in the user guide](../../user-guide/regions/providers.mdx#manage-payment-providers) to learn how to add a payment processor like PayPal to a region.\n\n---\n\n## Storefront Setup\n\nThis section will take you through the steps to add PayPal as a payment method on the storefront. It includes the steps necessary when using one of Medusa’s official storefronts as well as your own custom React-based storefront.\n\n### Storefront Prerequisites\n\nAll storefronts require that you obtain your PayPal Client ID. You can retrieve it from your PayPal developer dashboard.\n\n### Process Overview\n\nAside from the Next.js Storefront, you need to add the implementation with PayPal manually.\n\n:::note\n\nIt is recommended to read through the [Frontend Checkout Flow](../../modules/carts-and-checkout/storefront/implement-checkout-flow.mdx) first to fully understand how payment is implemented on the storefront.\n\n:::\n\nAlthough the next sections have different implementations to add PayPal into your storefront, they essentially follow the same process:\n\n1. Show PayPal’s button if the PayPal processor is available for the current cart.\n2. When the button is clicked, open PayPal’s payment portal and wait for the customer to authorize the payment.\n3. If the payment is authorized successfully, set PayPal’s [Payment Session](../../modules/carts-and-checkout/payment.md#payment-session) as the session used to perform the payment for the current cart, then update the Payment Session on the backend with the data received from PayPal’s payment portal. This data is essential to the backend to verify the authorization and perform additional payment processing later such as capturing payment.\n4. Complete the cart to create the order.\n\n:::info\n\nIn Medusa, by default, payments are authorized during checkout, but the payment is not captured right away. The payment should be manually [captured from the Medusa Admin](#capture-payment).\n\n:::\n\n### Add to Next.js Storefront\n\nMedusa has a Next.js storefront that you can easily use with your Medusa backend. If you don’t have the storefront installed, you can follow [this quickstart guide](../../starters/nextjs-medusa-starter.mdx).\n\nIn your `.env.local` file (or the file you’re using for your environment variables), add the following variable:\n\n```bash title=.env.local\nNEXT_PUBLIC_PAYPAL_CLIENT_ID=<YOUR_CLIENT_ID>\n```\n\nMake sure to replace `<YOUR_CLIENT_ID>` with your PayPal Client ID.\n\nNow, if you run your Medusa backend and your storefront, on checkout you’ll be able to use PayPal].\n\n![PayPal Button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000463/Medusa%20Docs/PayPal/F8OvsOJ_v3ctol.png)\n\nYou can test out the payment with PayPal using your sandbox account.\n\n### Add to Custom Storefront\n\nThis section guides you to add PayPal into a React-based framework. The instructions are general instructions that you can use in your storefront.\n\nIn your storefront, you need to install the [PayPal React components library](https://www.npmjs.com/package/@paypal/react-paypal-js) and the [Medusa JS Client library](https://www.npmjs.com/package/@medusajs/medusa-js):\n\n```bash npm2yarn\nnpm install @paypal/react-paypal-js @medusajs/medusa-js\n```\n\nThen, add the Client ID as an environment variable based on the framework you’re using.\n\nNext, create the file that will hold the PayPal component with the following content:\n\n```jsx\nimport { \n  PayPalButtons, \n  PayPalScriptProcessor,\n} from \"@paypal/react-paypal-js\"\nimport { useEffect, useState } from \"react\"\n\nimport Medusa from \"@medusajs/medusa-js\"\n\nfunction Paypal() {\n  const client = new Medusa()\n  const [errorMessage, setErrorMessage] = useState(undefined)\n  const [processing, setProcessing] = useState(false)\n  const cart = \"...\" // TODO retrieve the cart here\n\n  const handlePayment = (data, actions) => {\n    actions.order.authorize().then(async (authorization) => {\n      if (authorization.status !== \"COMPLETED\") {\n        setErrorMessage(\n          `An error occurred, status: ${authorization.status}`\n        )\n        setProcessing(false)\n        return\n      }\n\n      const response = await client\n        .carts\n        .setPaymentSession(cart.id, {\n          \"processor_id\": \"paypal\",\n        })\n\n      if (!response.cart) {\n        setProcessing(false)\n        return\n      }\n\n      await client\n        .carts\n        .updatePaymentSession(cart.id, \"paypal\", {\n        data: {\n          data: {\n            ...authorization,\n          },\n        },\n      })\n\n      const { data } = await client.carts.complete(cart.id)\n\n      if (!data || data.object !== \"order\") {\n        setProcessing(false)\n        return\n      }\n      \n      // order successful\n      alert(\"success\")\n    })\n  }\n\n  return (\n    <div style={{ marginTop: \"10px\", marginLeft: \"10px\" }}>\n      {cart !== undefined && (\n        <PayPalScriptProcessor options={{ \n          \"client-id\": \"<CLIENT_ID>\",\n          \"currency\": \"EUR\",\n          \"intent\": \"authorize\",\n        }}>\n            {errorMessage && (\n              <span className=\"text-rose-500 mt-4\">\n                {errorMessage}\n              </span>\n            )}\n            <PayPalButtons \n              style={{ layout: \"horizontal\" }}\n              onApprove={handlePayment}\n              disabled={processing}\n            />\n        </PayPalScriptProcessor>\n      )}\n    </div>\n  )\n}\n\nexport default Paypal\n```\n\nHere’s briefly what this code snippet does:\n\n1. At the beginning of the component, the Medusa client is initialized using the JS Client you installed.\n2. You also need to retrieve the cart. Ideally, the cart should be managed through a context. So, every time the cart has been updated the cart should be updated in the context to be accessed from all components.\n3. This component renders a PayPal button to initialize the payment using PayPal. You use the components from the PayPal React components library to render the button and you pass the `PayPalScriptProcessor` component the Client ID. Make sure to replace `<CLIENT_ID>` with the environment variable you added.\n4. When the button is clicked, the `handlePayment` function is executed. In this method, you initialize the payment authorization using `actions.order.authorize()`. It takes the customer to another page to log in with PayPal and authorize the payment.\n5. After the payment is authorized successfully on PayPal’s portal, the fulfillment function passed to `actions.order.authorize().then` will be executed.\n6. In the fulfillment function, you first ensure that the payment session for the PayPal payment processor is set as the [selected Payment Session in the cart](/api/store/#tag/Cart/operation/PostCartsCartPaymentSession). Then, you send a request to the backend to [update the payment session](/api/store/#tag/Cart/operation/PostCartsCartPaymentSessionUpdate) data with the authorization data received from PayPal.\n7. You then [complete the cart and place the order](/api/store/#tag/Cart/operation/PostCartsCartComplete). If that is done successfully, you just show a success alert. You can change this based on the behavior you want in your storefront.\n\nYou can then import this component where you want to show it in your storefront.\n\nIf you run the Medusa backend and the storefront backend, you should see the PayPal button on checkout.\n\n![PayPal Button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000492/Medusa%20Docs/PayPal/PsibgPY_xtqdli.png)\n\n---\n\n## Capture Payments\n\nAfter the customer places an order, you can see the order on the admin panel. In the payment information under the “Payment” section, you should see a “Capture” button.\n\n![Capture Payment](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000502/Medusa%20Docs/PayPal/Mx357yY_xsandw.png)\n\nClicking this button lets you capture the payment for an order. You can also refund payments if an order has captured payments.\n\nRefunding or Capturing payments is reflected in your PayPal dashboard as well.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","frontmatter":{"description":"Learn how to integrate PayPal with the Medusa backend. Learn how to install the PayPal plugin on the Medusa backend and integrate into a storefront.","addHowToData":true},"isInternal":false,"tokens":2637,"sizeBytes":12036},{"name":"stripe.md","path":"docs/content/plugins/payment/stripe.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/payment/stripe.md","title":"Payment Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Stripe with the Medusa backend. Learn how to install the Stripe plugin on the Medusa backend and integrate it into a storefront.'\naddHowToData: true\n---\n\n# Stripe\n\nThis document guides you through setting up Stripe payments in your Medusa backend, admin, and storefront using the [Stripe Plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-stripe).\n\n## Video Guide\n\nYou can also follow this video guide to learn how the setup works:\n\n<div>\n  <video width=\"100%\" height=\"100%\" playsinline autoplay muted controls>\n    <source src=\"https://user-images.githubusercontent.com/59018053/154807206-6fbda0a6-bf3e-4e39-9fc2-f11710afe0b9.mp4\" type=\"video/mp4\" />\n  </video>\n</div>\n\n## Overview\n\n[Stripe](https://stripe.com/) is a battle-tested and unified platform for transaction handling. Stripe supplies you with the technical components needed to handle transactions safely and all the analytical features necessary to gain insight into your sales. These features are also available in a safe test environment which allows for a concern-free development process.\n\nUsing the `medusa-payment-stripe` plugin, this guide shows you how to set up your Medusa project with Stripe as a payment processor.\n\n---\n\n## Prerequisites\n\nBefore you proceed with this guide, make sure you create a [Stripe account](https://stripe.com). You’ll later retrieve the API Keys and secrets from your account to connect Medusa to your Stripe account.\n\n---\n\n## Medusa Backend\n\nThis section guides you over the steps necessary to add Stripe as a payment processor to your Medusa backend.\n\nIf you don’t have a Medusa backend installed yet, you must follow the [quickstart guide](../../development/backend/install.mdx) first.\n\n### Install the Stripe Plugin\n\nIn the root of your Medusa backend, run the following command to install the stripe plugin:\n\n```bash npm2yarn\nnpm install medusa-payment-stripe\n```\n\n### Configure the Stripe Plugin\n\nNext, you need to add configurations for your stripe plugin.\n\nIn `medusa-config.js` add the following at the end of the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-payment-stripe`,\n    options: {\n      api_key: process.env.STRIPE_API_KEY,\n      webhook_secret: process.env.STRIPE_WEBHOOK_SECRET,\n    },\n  },\n]\n```\n\n:::note\n\nYou might find that this code is already available but commented out. You can proceed with removing the comments instead of adding the code again, but make sure to replace `STRIPE_API_KEY` and `STRIPE_WEBHOOK_SECRET` with `process.env.STRIPE_API_KEY` and `process.env.STRIPE_WEBHOOK_SECRET` respectively.\n\n:::\n\nThe Stripe plugin uses two configuration options. The `api_key` is essential to both your development and production environments. As for the `webhook_secret`, it’s essential for your production environment. So, if you’re only using Stripe for development you can skip adding the value for this option at the moment.\n\n### Retrieve Stripe's Keys\n\nOn the [dashboard](https://dashboard.stripe.com) of your Stripe account click on the Developers link at the top right. This will take you to the developer dashboard.\n\nYou’ll first retrieve the API key. You can find it by choosing API Keys from the sidebar and copying the Secret key.\n\nNext, you need to add the key to your environment variables. In your Medusa backend, create `.env` if it doesn’t already exist and add the Stripe key:\n\n```bash\nSTRIPE_API_KEY=sk_...\n```\n\n:::note\n\nIf you store environment variables differently on your backend, for example, using the hosting processor’s UI, then you don’t need to add it in `.env`. Add the environment variables in a way relevant to your backend.\n\n:::\n\nNext, if you’re installing this plugin for production use, you need to retrieve the Webhook secret. Webhooks allows you to track different events on your Medusa backend, such as failed payments.\n\nGo to Webhooks on Stripe’s developer dashboard. Then, choose the Add an Endpoint button.\n\nThe endpoint for Stripe’s webhook on your Medusa backend is `{BACKEND_URL}/stripe/hooks`. So, add that endpoint in its field. Make sure to replace `{BACKEND_URL}` with the URL to your backend.\n\nThen, you can add a description. You must select at least one event to listen to. Once you’re done, click “Add endpoint”.\n\nAfter the Webhook is created, you’ll see \"Signing secret\" in the Webhook details. Click on \"Reveal\" to reveal the secret key. Copy that key and in your Medusa backend add the Webhook secret environment variable:\n\n```bash\nSTRIPE_WEBHOOK_SECRET=whsec_...\n```\n\n---\n\n## Admin Setup\n\nThis section will guide you through adding Stripe as a payment processor in a region using your Medusa admin dashboard.\n\nThis step is required for you to be able to use Stripe as a payment processor in your storefront.\n\n### Admin Prerequisites\n\nIf you don’t have a Medusa admin installed, make sure to follow along with [the guide on how to install it](https://github.com/medusajs/admin#-quickstart) before continuing with this section.\n\n### Add Stripe to Regions\n\nYou can refer to [this documentation in the user guide](../../user-guide/regions/providers.mdx#manage-payment-providers) to learn how to add a payment processor like Stripe to a region.\n\n---\n\n## Storefront Setup\n\nThis guide will take you through how to set up Stripe payments in your Medusa storefront. It includes the steps necessary when using one of Medusa’s official storefronts as well as your own custom React-based storefront.\n\n### Storefront Prerequisites\n\nAll storefronts require that you obtain your Stripe’s Publishable Key. You can retrieve it from your Stripe’s developer dashboard by choosing API Keys and then copying the Publishable Key.\n\n### Add to Next.js Storefront\n\nMedusa has a Next.js storefront that you can easily use with your Medusa backend. If you don’t have the storefront installed, you can follow [this quickstart guide](../../starters/nextjs-medusa-starter).\n\nIn your `.env.local` file (or the file you’re using for your environment variables), add the following variable:\n\n```bash title=.env.local\nNEXT_PUBLIC_STRIPE_KEY=<YOUR_PUBLISHABLE_KEY>\n```\n\nMake sure to replace `<YOUR_PUBLISHABLE_KEY>` with your Stripe Publishable Key.\n\nNow, if you run your Medusa backend and your storefront, on checkout you’ll be able to use Stripe.\n\n![Next.js Stripe Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001145/Medusa%20Docs/Stripe/h5mWdJT_n1bktt.png)\n\n### Add to Custom Storefront\n\nThis section will go over how to add Stripe into a React-based framework. The instructions are general instructions that you can use in your storefront.\n\n#### Workflow Overview\n\nThe integration with stripe must have the following workflow:\n\n1. During checkout when the user reaches the payment section, you should [create payment sessions](/api/store/#tag/Cart/operation/PostCartsCartPaymentSessions). This will initialize the `payment_sessions` array in the `cart` object received. The `payment_sessions` is an array of available payment processors.\n2. If Stripe is available as a payment processor, you should select Stripe as [the payment session](/api/store/#tag/Cart/operation/PostCartsCartPaymentSession) for the current cart. This will initialize the `payment_session` object in the `cart` object to include data related to Stripe and the current payment session. This includes the payment intent and client secret.\n3. After the user enters their card details and submits the form, confirm the payment with Stripe.\n4. If the payment is confirmed successfully, [complete the order](/api/store/#tag/Cart/operation/PostCartsCartComplete) in Medusa. Otherwise show an error.\n\n#### Install Dependencies\n\nBefore you start the implementations you need to install the necessary dependencies. You’ll be using Stripe’s React libraries to show the UI and handle the payment confirmation:\n\n```bash npm2yarn\nnpm install --save @stripe/react-stripe-js @stripe/stripe-js\n```\n\nYou’ll also use Medusa’s JS Client to easily call Medusa’s REST APIs:\n\n```bash npm2yarn\nnpm install @medusajs/medusa-js\n```\n\n#### Initialize Stripe\n\nIn this section, you’ll initialize Stripe without Medusa’s checkout workflow. Please note that this is one approach to add Stripe into your React project. You can check out [Stripe’s React documentation](https://stripe.com/docs/stripe-js/react) for other methods or components.\n\nCreate a container component that will hold the payment card component:\n\n```jsx\nimport { useState } from \"react\"\n\nimport { Elements } from \"@stripe/react-stripe-js\"\nimport Form from \"./Form\"\nimport { loadStripe } from \"@stripe/stripe-js\"\n\nconst stripePromise = loadStripe(\"pk_...\")\n\nexport default function Container() {\n  const [clientSecret, setClientSecret] = useState()\n\n  // TODO set clientSecret\n\n  return (\n    <div>\n      {clientSecret && (\n        <Elements stripe={stripePromise} options={{\n          clientSecret,\n        }}>\n        <Form clientSecret={clientSecret} cartId={cartId} />\n      </Elements>\n      )}\n    </div>\n  )\n};\n```\n\nIn this component, you need to use Stripe’s `loadStripe` function outside of the component’s implementation to ensure that Stripe doesn’t re-load with every change. The function accepts the Publishable Key.\n\n:::note\n\nYou’ll probably store this Publishable Key in an environment variable depending on your framework. It’s hard-coded here for simplicity.\n\n:::\n\nThen, inside the component’s implementation, you add a state variable `clientSecret` which you’ll retrieve in the next section. \n\nOnce the clientSecret is set, the `Elements` Stripe component will wrap a `Form` component you’ll create next. This is necessary because the `Elements` component allows child elements to get access to the card’s inputs and their data using Stripe’s `useElements` hook.\n\nCreate a new file for the `Form` component with the following content:\n\n```jsx\nimport { \n  CardElement,\n  useElements,\n  useStripe,\n} from \"@stripe/react-stripe-js\"\n\nexport default function Form({ clientSecret, cartId }) {\n  const stripe = useStripe()\n  const elements = useElements()\n\n  async function handlePayment(e) {\n    e.preventDefault()\n    // TODO handle payment\n  }\n\n  return (\n    <form>\n      <CardElement />\n      <button onClick={handlePayment}>Submit</button>\n  </form>\n  )\n};\n```\n\nThis component shows a CardElement component from Stripe’s React library. You can use `stripe` to be able to confirm the payment later. The `elements` variable will be used to retrieve the entered card details safely.\n\n#### Implement the Workflow\n\nYou’ll now implement the workflow explained earlier. You’ll use Medusa’s JS Client, so make sure to import it and initialize it in your `Container` component:\n\n```jsx\nimport Medusa from \"@medusajs/medusa-js\"\n\nexport default function Container() {\n  const client = new Medusa()\n  // ...\n}\n```\n\n:::note\n\nIn your storefront, you’ll probably be managing the Medusa client through a context for better performance.\n\n:::\n\nThen, in the place of the `//TODO` inside the `Container` element, initialize the payment sessions and create a payment session if Stripe is available:\n\n```tsx\nclient.carts.createPaymentSessions(cart.id)\n  .then(({ cart }) => {\n    // check if stripe is selected\n    const isStripeAvailable = cart.payment_sessions?.some(\n      (session) => (\n        session.processor_id === \"stripe\"\n      )\n    )\n    if (!isStripeAvailable) {\n      return\n    }\n\n    // select stripe payment session\n    client.carts.setPaymentSession(cart.id, {\n      processor_id: \"stripe\",\n    }).then(({ cart }) => {\n      setClientSecret(cart.payment_session.data.client_secret)\n    })\n  })\n```\n\n:::note\n\nNotice that here it’s assumed you have access to the `cart` object throughout your storefront. Ideally, the `cart` should be managed through a context. So, every time the cart is updated, for example, when the `createPaymentSessions` or `setPaymentSession` are called, the cart should be updated in the context to be accessed from other elements. In this case, you probably wouldn’t need a `clientSecret` state variable as you can use the client secret directly from the `cart` object.\n\n:::\n\nOnce the client secret is set, the form will be shown to the user.\n\nThe last step in the workflow is confirming the payment with Stripe and if it’s done successfully, completing the user’s order. This part is done in the `Form` component.\n\nAs you’ll use Medusa’s client again make sure to import it and initialize it:\n\n```jsx\nimport Medusa from \"@medusajs/medusa-js\"\n\nexport default function Form() {\n  const client = new Medusa()\n  // ...\n}\n```\n\nThen, replace the `//TODO` in the `handlePayment` function with the following content:\n\n```jsx\nreturn stripe.confirmCardPayment(clientSecret, {\n  payment_method: {\n    card: elements.getElement(CardElement),\n    billing_details: {\n      name,\n      email,\n      phone,\n      address: {\n        city,\n        country,\n        line1,\n        line2,\n        postal_code,\n      },\n    },\n  },\n}).then(({ error, paymentIntent }) => {\n  // TODO handle errors\n  client.carts.complete(cartId).then(\n    (resp) => console.log(resp)\n  )\n})\n```\n\nYou use the `confirmCardPayment` method in the `stripe` object. You’ll need to pass it the client secret, which you can have access to from the cart object if it’s available through the context.\n\nThis method also requires the customer’s information like `name`, `email`, and their address. Make sure to place the values for each based on your implementation.\n\nOnce the promise resolves you can handle the errors, if there are any. If not, you can complete the customer’s order using `complete` from Medusa’s client. This request expects the cart ID which you should have access to as well.\n\nIf you run your backend and storefront now, you’ll see the Stripe UI element and you’ll be able to make orders.\n\n![Stripe Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001190/Medusa%20Docs/Stripe/NOi8THw_xv3zsx.png)\n\n---\n\n## Capture Payments\n\nAfter the customer places an order, you’ll be able to see the order on the admin panel. In the payment information under the “Payment” section, you should see a “Capture” button.\n\n![Capture Payment](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001205/Medusa%20Docs/Stripe/Iz55PVZ_p6hiz6.png)\n\nClicking this button allows you to capture the payment for an order. You can also refund payments if an order has captured payments.\n\nRefunding or Capturing payments is reflected in your Stripe’s dashboard as well. This gives you access to all of Stripe’s analytical capabilities.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n","frontmatter":{"description":"Learn how to integrate Stripe with the Medusa backend. Learn how to install the Stripe plugin on the Medusa backend and integrate it into a storefront.","addHowToData":true},"isInternal":false,"tokens":3300,"sizeBytes":14752},{"name":"algolia.md","path":"docs/content/plugins/search/algolia.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/search/algolia.md","title":"Search Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate Algolia with the Medusa backend. Learn how to install the Algolia plugin into the Medusa backend and how to integrate it into a storefront.'\naddHowToData: true\n---\n\n# Algolia\n\nIn this document, you’ll learn how to install the [Algolia plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-algolia) and use it on both your Medusa backend and your storefront.\n\n---\n\n## Overview\n\n[Algolia](https://www.algolia.com/) is a search engine service that allows developers to integrate advanced search functionalities into their websites including typo tolerance, recommended results, and quick responses.\n\nAlgolia can be used for a wide range of use cases, including ecommerce websites. By integrating Algolia into your ecommerce website, you can provide your customers with a better user experience and help them find what they’re looking for swifltly.\n\nThrough Medusa's flexible plugin system, it is possible to add a search engine to your Medusa backend and storefront using Algolia with just a few steps.\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is required to have a Medusa backend installed before starting with this documentation. If not, please follow along with the [quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n### Algolia Account\n\nYou need to [create an Algolia account](https://www.algolia.com/users/sign_up) before you follow this documentation. Algolia offers a free plan to get started quickly.\n\n---\n\n## Create an Algolia App\n\nThe first step is to create an Algolia app for your Medusa backend. To create one, open the [Applications page](https://www.algolia.com/account/applications) or, on your dashboard, go to Settings then choose Applications.\n\nOn the Applications page, click on the New application button at the top right.\n\n![Click on New application button at the top right](https://res.cloudinary.com/dza7lstvk/image/upload/v1667999820/Medusa%20Docs/Algolia/WxckgS2_eygl8l.png)\n\nIn the new page that opens, optionally enter a name for the application and choose a subscription plan. You can choose the Free plan for now, but it’s recommended to switch to the Pay-as-you-go plan as your business grows.\n\n![Optionally enter a name for the application and choose a subscription plan](https://res.cloudinary.com/dza7lstvk/image/upload/v1667999980/Medusa%20Docs/Algolia/jpM2EBU_fui1lg.png)\n\nOnce you’re done, click on the Next Step button. If you picked Pay as you go service, you’ll need to enter billing details before you proceed.\n\nThen, you’ll be asked to pick a region for your application. Once you’re done, click on Review Application Details.\n\n![Select a region then click on Review Application Details at the bottom right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000005/Medusa%20Docs/Algolia/fahf2J2_qgm7sa.png)\n\nIn the last step, you’ll see a summary of your order. If all looks good, check the checkboxes at the end of the form to indicate that you agree to the terms and conditions. Then, click on the Create Application button.\n\n![Summary of your application's order with the terms and agreement checkboxes checked](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000019/Medusa%20Docs/Algolia/PTI2Swq_a1qbi5.png)\n\n---\n\n## Retrieve API Keys\n\nTo retrieve the API keys that you’ll use in the next sections, go to Settings, then choose API Keys in the Team and Access section.\n\n![Click on API Keys in the Team and Access section of your settings](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000028/Medusa%20Docs/Algolia/gnORibC_msuur5.png)\n\nOn this page, you’ll find the Application ID, Search-Only API Key, and Admin API Key. You’ll need the Application ID and Admin API Key for the Medusa backend. As for the storefront, you’ll need the Application ID and Search-Only API Key.\n\n:::note\n\nIf you have more than one application in your Algolia account, make sure you’re viewing the keys of the correct application by checking the Application dropdown at the top left.\n\n:::\n\n![Application ID, Search-Only API Key, and Admin API Key can be found in the API Keys page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000037/Medusa%20Docs/Algolia/i50Irki_jmtyk6.png)\n\n---\n\n## Install the Algolia Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Algolia plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-algolia\n```\n\nThen, add the following environment variables to your Medusa backend:\n\n```bash\nALGOLIA_APP_ID=<YOUR_APP_ID>\nALGOLIA_ADMIN_API_KEY=<YOUR_ADMIN_API_KEY>\n```\n\nWhere `<YOUR_APP_ID>` and `<YOUR_ADMIN_API_KEY>` are respectively the Application ID and Admin API Key found on the [API Keys page](#retrieve-api-keys).\n\nFinally, in `medusa-config.js` add the following item into the `plugins` array:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      applicationId: process.env.ALGOLIA_APP_ID,\n      adminApiKey: process.env.ALGOLIA_ADMIN_API_KEY,\n      settings: {\n        // index settings...\n      },\n    },\n  },\n]\n```\n\n### Index Settings\n\nUnder the `settings` key of the plugin's options, you can add settings specific to each index. The settings are of the following format:\n\n```js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      // other options...\n    settings: {\n      indexName: {\n        indexSettings: {\n          searchableAttributes,\n          attributesToRetrieve,\n        },\n        transformer,\n      },\n    },\n    },\n  },\n]\n```\n\nWhere:\n\n- `indexName`: the name of the index to create in Algolia. For example, `products`. Its value is an object containing the following properties:\n  - `indexSettings`: an object that includes the following properties:\n    - `searchableAttributes`: an array of strings indicating the attributes in the product entity that can be searched.\n    - `attributesToRetrieve`: an array of strings indicating the attributes in the product entity that should be retrieved in the search results.\n  - `transformer`: an optional function that accepts a product as a parameter and returns an object to be indexed. This allows you to have more control over what you're indexing. For example, you can add details related to variants or custom relations, or you can filter out certain products.\n\nUsing this index settings structure, you can add more than one index.\n\n:::tip\n\nThese settings are just examples of what you can pass to the Algolia provider. If you need to pass more settings to the Algolia SDK you can pass it inside `indexSettings`.\n\n:::\n\nHere's an example of the settings you can use:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      // other options...\n      settings: {\n        products: {\n          indexSettings: {\n            searchableAttributes: [\"title\", \"description\"],\n            attributesToRetrieve: [\n              \"id\",\n              \"title\",\n              \"description\",\n              \"handle\",\n              \"thumbnail\",\n              \"variants\",\n              \"variant_sku\",\n              \"options\",\n              \"collection_title\",\n              \"collection_handle\",\n              \"images\",\n            ],\n          },\n          transform: (product) => ({ \n            id: product.id, \n            // other attributes...\n          }),\n        },\n      },\n    },\n  },\n]\n```\n\n---\n\n## Test the Algolia Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThe quickest way to test that the integration is working is by sending a `POST` request to `/store/products/search`. This endpoint accepts a `q` body parameter of the query to search for and returns in the result the products that match this query.\n\n![Postman request send to the search endpoint that retrieves products using Algolia](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000054/Medusa%20Docs/Algolia/IHeTsi7_ymhb2p.png)\n\nYou can also check that the products are properly indexed by opening your Algolia dashboard and choosing Search from the left sidebar. You’ll find your products that are on your Medusa backend added there.\n\n:::note\n\nIf you have more than one application on your Algolia account, make sure you’re viewing the keys of the correct one by checking the Application dropdown at the top left.\n\n:::\n\n![Products from the Medusa backend can be seen on the Algolia dashboard](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000071/Medusa%20Docs/Algolia/wkXzUH0_dowyxj.png)\n\n### Add or Update Products\n\nIf you add or update products on your Medusa backend, the addition or update will be reflected in the Algolia indices.\n\n:::note\n\nThis feature is only available if you have an event module installed in your Medusa backend, as explained in the Prerequisites section.\n\n:::\n\n---\n\n## Add Search to your Storefront\n\nIn this section, you’ll learn how to add the UI on your storefront to allow searching with Algolia. This section has instructions for Medusa’s [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront as well as React-based frameworks.\n\n### Storefront Prerequisites\n\nIt is assumed you already have a storefront set up and working with the Medusa backend, as this section only covers how to add the search UI.\n\n:::tip\n\nIf you don’t have a storefront set up, you can use the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx) that Medusa provides.\n\n:::\n\n### Add to Next.js Storefront\n\nThe Next.js storefront has the Algolia integration available out of the box. To get it working, you just need to follow three steps.\n\nFirst, ensure that the search feature is enabled in `store.config.json`:\n\n```json title=store.config.json\n{\n  \"features\": {\n    \"search\": true\n  }\n}\n```\n\nThen, add the necessary environment variables:\n\n```bash\nNEXT_PUBLIC_SEARCH_APP_ID=<YOUR_APP_ID>\nNEXT_PUBLIC_SEARCH_API_KEY=<YOUR_SEARCH_API_KEY>\nNEXT_PUBLIC_SEARCH_INDEX_NAME=products\n```\n\nWhere `<YOUR_APP_ID>` and `<YOUR_SEARCH_API_KEY>` are respectively the Application ID and Search-Only API Key on the [API Keys page](#retrieve-api-keys).\n\nFinally, change the code in `src/lib/search-client.ts` to the following:\n\n```jsx title=src/lib/search-client.ts\nimport algoliasearch from \"algoliasearch/lite\"\n\nconst appId = process.env.NEXT_PUBLIC_SEARCH_APP_ID || \"\"\n\nconst apiKey = \n  process.env.NEXT_PUBLIC_SEARCH_API_KEY || \"test_key\"\n\nexport const searchClient = algoliasearch(appId, apiKey)\n\nexport const SEARCH_INDEX_NAME =\n  process.env.NEXT_PUBLIC_INDEX_NAME || \"products\"\n```\n\nIf you run your Next.js storefront now while the Medusa backend is running, the search functionality will be available in your storefront.\n\n:::note\n\nTo make sure the Next.js storefront properly displays the products in the search result, include in the `attributesToRetrieve` setting of the Algolia plugin on the Medusa backend at least the fields `title`, `handle`, `description`, and `thumbnail`.\n\n:::\n\n![Search pop up in the Next.js storefront](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000082/Medusa%20Docs/Algolia/1f9qqK6_c0z8zi.png)\n\n### Add to Other Storefronts\n\nTo integrate Algolia's search functionalities in your storefront, please refer to [Algolia's InstantSearch.js documentation](https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/). You'll find packages for different frontend frameworks and how you can use them.\n\n---\n\n## See Also\n\n- [Deploy your Medusa backend](../../deployments/server/index.mdx)\n- [Deploy your storefront](../../deployments/storefront/index.mdx)\n","frontmatter":{"description":"Learn how to integrate Algolia with the Medusa backend. Learn how to install the Algolia plugin into the Medusa backend and how to integrate it into a storefront.","addHowToData":true},"isInternal":false,"tokens":2731,"sizeBytes":11796},{"name":"meilisearch.md","path":"docs/content/plugins/search/meilisearch.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/plugins/search/meilisearch.md","title":"Search Skill","category":"anthropic-skill","format":"markdown","content":"---\ndescription: 'Learn how to integrate MeiliSearch with the Medusa backend. Learn how to install the MeiliSearch plugin on the Medusa backend and integrate it into the storefront.'\naddHowToData: true\n---\n\n# MeiliSearch\n\nIn this document, you’ll learn how to install the [MeiliSearch plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-meilisearch) and use it on both your Medusa Backend and your storefront.\n\n## Overview\n\n[MeiliSearch](https://www.meilisearch.com/) is a super-fast, open source search engine built in Rust. It comes with a wide range of features including typo-tolerance, filtering, and sorting.\n\nMeiliSearch also provides a pleasant developer experience, as it is extremely intuitive and newcomer-friendly. So, even if you're new to the search engine ecosystem, [their documentation](https://docs.meilisearch.com/) is resourceful enough for everyone to go through and understand.\n\nThrough Medusa's flexible plugin system, it is possible to add a search engine to your Medusa backend and storefront using MeiliSearch with just a few steps.\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is required to have a Medusa backend installed before starting with this documentation. If not, please follow along with the [quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n### MeiliSearch Instance\n\nYou must install MeiliSearch to use it with Medusa. You can follow [this documentation to install MeiliSearch](https://docs.meilisearch.com/learn/getting_started/quick_start.html#setup-and-installation) either locally or on a cloud.\n\nFurthermore, you should create a master key for your MeiliSearch instance. If you don’t have one created, follow [this guide](https://docs.meilisearch.com/learn/security/master_api_keys.html#protecting-a-meilisearch-instance) to create a master key.\n\n---\n\n## Install the MeiliSearch Plugin\n\nIn the directory of your Medusa backend, run the following command to install the MeiliSearch plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-meilisearch\n```\n\nThen, add the following environment variables to your Medusa backend:\n\n```bash\nMEILISEARCH_HOST=<YOUR_MEILISEARCH_HOST>\nMEILISEARCH_API_KEY=<YOUR_MASTER_KEY>\n```\n\nWhere `<YOUR_MEILISEARCH_HOST>` is the host of your MeiliSearch instance. By default, if MeiliSearch is installed locally, the host is `http://127.0.0.1:7700`.\n\n`<YOUR_MASTER_KEY>` is the master key of your MeiliSearch instance.\n\nFinally, in `medusa-config.js` add the following item into the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // config object passed when creating an instance\n      // of the MeiliSearch client\n      config: {\n        host: process.env.MEILISEARCH_HOST,\n        apiKey: process.env.MEILISEARCH_API_KEY,\n      },\n      settings: {\n        // index settings...\n      },\n    },\n  },\n]\n```\n\n### Index Settings\n\nUnder the `settings` key of the plugin's options, you can add settings specific to each index. The settings are of the following format:\n\n```js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // other options...\n    settings: {\n      indexName: {\n        indexSettings: {\n          searchableAttributes,\n          displayedAttributes,\n        },\n        primaryKey,\n        transformer,\n      },\n    },\n    },\n  },\n]\n```\n\nWhere:\n\n- `indexName`: the name of the index to create in MeiliSearch. For example, `products`. Its value is an object containing the following properties:\n  - `indexSettings`: an object that includes the following properties:\n    - `searchableAttributes`: an array of strings indicating the attributes in the product entity that can be searched.\n    - `displayedAttributes`: an array of strings indicating the attributes in the product entity that should be displayed in the search results.\n  - `primaryKey`: an optional string indicating which property acts as a primary key of a document. It's used to enforce unique documents in an index. The default value is `id`. You can learn more in [MeiliSearch's documentation](https://docs.meilisearch.com/learn/core_concepts/primary_key.html#primary-field).\n  - `transformer`: an optional function that accepts a product as a parameter and returns an object to be indexed. This allows you to have more control over what you're indexing. For example, you can add details related to variants or custom relations, or you can filter out certain products.\n\nUsing this index settings structure, you can add more than one index.\n\n:::tip\n\nThese settings are just examples of what you can pass to the MeiliSearch provider. If you need to pass more settings to the MeiliSearch SDK you can pass it inside `indexSettings`.\n\n:::\n\nHere's an example of the settings you can use:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // other options...\n      settings: {\n        products: {\n          indexSettings: {\n            searchableAttributes: [\n              \"title\", \n              \"description\",\n              \"variant_sku\",\n            ],\n            displayedAttributes: [\n              \"title\", \n              \"description\", \n              \"variant_sku\", \n              \"thumbnail\", \n              \"handle\",\n            ],\n          },\n          primaryKey: \"id\",\n          transform: (product) => ({ \n            id: product.id, \n            // other attributes...\n          }),\n        },\n      },\n    },\n  },\n]\n```\n\n---\n\n## Test MeiliSearch Plugin\n\nMake sure your MeiliSearch instance is running. If you’re unsure how to run it, you can check the [installation documentation](https://docs.meilisearch.com/learn/getting_started/quick_start.html#setup-and-installation) for the command to run the MeiliSearch instance.\n\nThen, run the Medusa backend:\n\n```bash npm2yarn\nnpm run start\n```\n\nThe quickest way to test that the integration is working is by sending a `POST` request to `/store/products/search`. This endpoint accepts a `q` body parameter of the query to search for and returns in the result the products that match this query.\n\n![Postman request to search endpoint that shows results returned from the search engine](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000265/Medusa%20Docs/MeiliSearch/RCGquxU_um3dvn.png)\n\nYou can also check that the products are properly indexed by opening the MeiliSearch host URL in your browser, which is `http://127.0.0.1:7700/` by default. You’ll find your products that are on your Medusa backend added there.\n\n![MeiliSearch dashboard showing products from the Medusa backend indexed](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000277/Medusa%20Docs/MeiliSearch/5sk3jyP_i3swkn.png)\n\n### Add or Update Products\n\nIf you add or update products on your Medusa backend, the addition or update will be reflected in the MeiliSearch indices.\n\n:::note\n\nThis feature is only available if you have an event module installed in your Medusa backend, as explained in the Prerequisites section.\n\n:::\n\n---\n\n## Add Search to your Storefront\n\nIn this section, you’ll learn how to add the UI on your storefront to allow searching with MeiliSearch. This section has instructions for Medusa’s [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront as well as React-based frameworks.\n\n### Storefront Prerequisites\n\nIt is assumed you already have a storefront set up and working with the Medusa backend, as this section only covers how to add the search UI.\n\n:::tip\n\nIf you don’t have a storefront set up, you can use the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx) that Medusa provides.\n\n:::\n\nFurthermore, you must create an API key in your MeiliSearch instance that will be used to search on the storefront. To do that, run the following command in your terminal while the MeiliSearch instance is running:\n\n```bash\ncurl \\\n  -X POST '<MEILISEARCH_HOST>/keys' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer <MEILISEARCH_MASTER_KEY>' \\\n  --data-binary '{\n    \"description\": \"Search products\",\n    \"actions\": [\"search\"],\n    \"indexes\": [\"products\"],\n    \"expiresAt\": \"2024-01-01T00:00:00Z\"\n  }'\n```\n\nMake sure to replace `<MEILISEARCH_HOST>` and `<MEILISEARCH_MASTER_KEY>` accordingly.\n\nIf this request is successful, the API key will be available under the `key` property returned in the JSON response.\n\n### Add to Next.js Storefront\n\nThe Next.js storefront has the MeiliSearch integration available out of the box. To get it working, you just need to follow two steps.\n\nFirst, ensure that the search feature is enabled in `store.config.json`:\n\n```json title=store.config.json\n{\n  \"features\": {\n    \"search\": true\n  }\n}\n```\n\nThen, add the necessary environment variables:\n\n```bash\nNEXT_PUBLIC_SEARCH_ENDPOINT=<YOUR_MEILISEARCH_HOST>\nNEXT_PUBLIC_SEARCH_API_KEY=<YOUR_API_KEY>\nNEXT_PUBLIC_SEARCH_INDEX_NAME=products\n```\n\nMake sure to replace `<YOUR_MEILISEARCH_HOST>` with your MeiliSearch host and `<YOUR_API_KEY>` with the API key you created as instructed in the [Storefront Prerequisites](#storefront-prerequisites) section.\n\nIf you run your Next.js storefront now while the Medusa backend and the MeiliSearch services are running, the search functionality will be available in your storefront.\n\n:::note\n\nTo make sure the Next.js storefront properly displays the products in the search result, include in the `displayedAttributes` setting of the MeiliSearch plugin on the Medusa backend at least the fields `title`, `handle`, `description`, and `thumbnail`.\n\n:::\n\n![Search Result on Next.js storefront](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000298/Medusa%20Docs/MeiliSearch/gQVWvH2_datei5.png)\n\n### Add to Other Storefronts\n\nTo integrate MeiliSearch's search functionalities in your storefront, please refer to [MeiliSearch's documentation](https://docs.meilisearch.com/learn/what_is_meilisearch/sdks.html#front-end-tools). They offer different tools that you can use based on the frontend framework of your storefront.\n\n---\n\n## See Also\n\n- [Deploy your Medusa backend](../../deployments/server/index.mdx).\n- [Deploy your storefront](../../deployments/storefront/index.mdx).\n","frontmatter":{"description":"Learn how to integrate MeiliSearch with the Medusa backend. Learn how to install the MeiliSearch plugin on the Medusa backend and integrate it into the storefront.","addHowToData":true},"isInternal":false,"tokens":2394,"sizeBytes":10377},{"name":"Address.md","path":"docs/content/references/entities/classes/Address.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Address.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Address\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Address`**\n\n## Constructors\n\n### constructor\n\n• **new Address**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### address\\_1\n\n• **address\\_1**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L36)\n\n___\n\n### address\\_2\n\n• **address\\_2**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L39)\n\n___\n\n### city\n\n• **city**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L42)\n\n___\n\n### company\n\n• **company**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L27)\n\n___\n\n### country\n\n• **country**: ``null`` \\| [`Country`](Country.md)\n\n#### Defined in\n\n[models/address.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L49)\n\n___\n\n### country\\_code\n\n• **country\\_code**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L45)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\n\n• **customer**: ``null`` \\| [`Customer`](Customer.md)\n\n#### Defined in\n\n[models/address.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L24)\n\n___\n\n### customer\\_id\n\n• **customer\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L20)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### first\\_name\n\n• **first\\_name**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L30)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### last\\_name\n\n• **last\\_name**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L33)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/address.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L61)\n\n___\n\n### phone\n\n• **phone**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:58](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L58)\n\n___\n\n### postal\\_code\n\n• **postal\\_code**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:55](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L55)\n\n___\n\n### province\n\n• **province**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L52)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/address.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L63)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1289,"sizeBytes":4321},{"name":"AnalyticsConfig.md","path":"docs/content/references/entities/classes/AnalyticsConfig.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/AnalyticsConfig.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: AnalyticsConfig\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`AnalyticsConfig`**\n\n## Constructors\n\n### constructor\n\n• **new AnalyticsConfig**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### anonymize\n\n• **anonymize**: `boolean`\n\n#### Defined in\n\n[models/analytics-config.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L17)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### opt\\_out\n\n• **opt\\_out**: `boolean`\n\n#### Defined in\n\n[models/analytics-config.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L14)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### user\\_id\n\n• **user\\_id**: `string`\n\n#### Defined in\n\n[models/analytics-config.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L11)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/analytics-config.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L19)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":631,"sizeBytes":2194},{"name":"BatchJob.md","path":"docs/content/references/entities/classes/BatchJob.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/BatchJob.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: BatchJob\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`BatchJob`**\n\n## Constructors\n\n### constructor\n\n• **new BatchJob**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• `Optional` **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:62](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L62)\n\n___\n\n### completed\\_at\n\n• `Optional` **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:59](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L59)\n\n___\n\n### confirmed\\_at\n\n• `Optional` **confirmed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L56)\n\n___\n\n### context\n\n• **context**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/batch-job.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L33)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### created\\_by\n\n• **created\\_by**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/batch-job.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L26)\n\n___\n\n### created\\_by\\_user\n\n• **created\\_by\\_user**: [`User`](User.md)\n\n#### Defined in\n\n[models/batch-job.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L30)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### dry\\_run\n\n• **dry\\_run**: `boolean` = `false`\n\n#### Defined in\n\n[models/batch-job.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L47)\n\n___\n\n### failed\\_at\n\n• `Optional` **failed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:65](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L65)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### pre\\_processed\\_at\n\n• `Optional` **pre\\_processed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L50)\n\n___\n\n### processing\\_at\n\n• `Optional` **processing\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L53)\n\n___\n\n### result\n\n• **result**: { `advancement_count?`: `number` ; `count?`: `number` ; `errors?`: `BatchJobResultError`[] ; `file_key?`: `string` ; `file_size?`: `number` ; `progress?`: `number` ; `stat_descriptors?`: `BatchJobResultStatDescriptor`[]  } & `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/batch-job.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L36)\n\n___\n\n### status\n\n• **status**: `BatchJobStatus`\n\n#### Defined in\n\n[models/batch-job.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L67)\n\n___\n\n### type\n\n• **type**: `string`\n\n#### Defined in\n\n[models/batch-job.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L23)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/batch-job.ts:94](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L94)\n\n___\n\n### loadStatus\n\n▸ **loadStatus**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/batch-job.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L69)\n\n___\n\n### toJSON\n\n▸ **toJSON**(): [`BatchJob`](BatchJob.md)\n\n#### Returns\n\n[`BatchJob`](BatchJob.md)\n\n#### Defined in\n\n[models/batch-job.ts:99](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L99)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1511,"sizeBytes":4848},{"name":"Cart.md","path":"docs/content/references/entities/classes/Cart.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Cart.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Cart\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Cart`**\n\n## Constructors\n\n### constructor\n\n• **new Cart**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### billing\\_address\n\n• **billing\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/cart.ts:226](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L226)\n\n___\n\n### billing\\_address\\_id\n\n• **billing\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:220](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L220)\n\n___\n\n### completed\\_at\n\n• **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/cart.ts:311](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L311)\n\n___\n\n### context\n\n• **context**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/cart.ts:320](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L320)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\n\n• **customer**: [`Customer`](Customer.md)\n\n#### Defined in\n\n[models/cart.ts:285](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L285)\n\n___\n\n### customer\\_id\n\n• **customer\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:281](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L281)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### discount\\_total\n\n• `Optional` **discount\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:335](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L335)\n\n___\n\n### discounts\n\n• **discounts**: [`Discount`](Discount.md)[]\n\n#### Defined in\n\n[models/cart.ts:263](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L263)\n\n___\n\n### email\n\n• **email**: `string`\n\n#### Defined in\n\n[models/cart.ts:216](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L216)\n\n___\n\n### gift\\_card\\_tax\\_total\n\n• `Optional` **gift\\_card\\_tax\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:344](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L344)\n\n___\n\n### gift\\_card\\_total\n\n• `Optional` **gift\\_card\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:343](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L343)\n\n___\n\n### gift\\_cards\n\n• **gift\\_cards**: [`GiftCard`](GiftCard.md)[]\n\n#### Defined in\n\n[models/cart.ts:277](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L277)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/cart.ts:317](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L317)\n\n___\n\n### item\\_tax\\_total\n\n• `Optional` **item\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:336](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L336)\n\n___\n\n### items\n\n• **items**: [`LineItem`](LineItem.md)[]\n\n#### Defined in\n\n[models/cart.ts:241](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L241)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/cart.ts:323](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L323)\n\n___\n\n### object\n\n• `Readonly` **object**: ``\"cart\"``\n\n#### Defined in\n\n[models/cart.ts:213](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L213)\n\n___\n\n### payment\n\n• **payment**: [`Payment`](Payment.md)\n\n#### Defined in\n\n[models/cart.ts:300](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L300)\n\n___\n\n### payment\\_authorized\\_at\n\n• **payment\\_authorized\\_at**: `Date`\n\n#### Defined in\n\n[models/cart.ts:314](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L314)\n\n___\n\n### payment\\_id\n\n• **payment\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:296](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L296)\n\n___\n\n### payment\\_session\n\n• **payment\\_session**: ``null`` \\| [`PaymentSession`](PaymentSession.md)\n\n#### Defined in\n\n[models/cart.ts:287](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L287)\n\n___\n\n### payment\\_sessions\n\n• **payment\\_sessions**: [`PaymentSession`](PaymentSession.md)[]\n\n#### Defined in\n\n[models/cart.ts:292](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L292)\n\n___\n\n### refundable\\_amount\n\n• `Optional` **refundable\\_amount**: `number`\n\n#### Defined in\n\n[models/cart.ts:342](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L342)\n\n___\n\n### refunded\\_total\n\n• `Optional` **refunded\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:339](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L339)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/cart.ts:249](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L249)\n\n___\n\n### region\\_id\n\n• **region\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:245](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L245)\n\n___\n\n### sales\\_channel\n\n• **sales\\_channel**: [`SalesChannel`](SalesChannel.md)\n\n#### Defined in\n\n[models/cart.ts:332](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L332)\n\n___\n\n### sales\\_channel\\_id\n\n• **sales\\_channel\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/cart.ts:326](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L326)\n\n___\n\n### shipping\\_address\n\n• **shipping\\_address**: ``null`` \\| [`Address`](Address.md)\n\n#### Defined in\n\n[models/cart.ts:236](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L236)\n\n___\n\n### shipping\\_address\\_id\n\n• **shipping\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:230](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L230)\n\n___\n\n### shipping\\_methods\n\n• **shipping\\_methods**: [`ShippingMethod`](ShippingMethod.md)[]\n\n#### Defined in\n\n[models/cart.ts:305](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L305)\n\n___\n\n### shipping\\_tax\\_total\n\n• `Optional` **shipping\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:337](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L337)\n\n___\n\n### shipping\\_total\n\n• `Optional` **shipping\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:334](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L334)\n\n___\n\n### subtotal\n\n• `Optional` **subtotal**: `number`\n\n#### Defined in\n\n[models/cart.ts:341](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L341)\n\n___\n\n### tax\\_total\n\n• `Optional` **tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:338](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L338)\n\n___\n\n### total\n\n• `Optional` **total**: `number`\n\n#### Defined in\n\n[models/cart.ts:340](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L340)\n\n___\n\n### type\n\n• **type**: [`CartType`](../enums/CartType.md)\n\n#### Defined in\n\n[models/cart.ts:308](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L308)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### afterLoad\n\n▸ `Private` **afterLoad**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/cart.ts:346](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L346)\n\n___\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/cart.ts:353](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L353)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":2796,"sizeBytes":9182},{"name":"ClaimImage.md","path":"docs/content/references/entities/classes/ClaimImage.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ClaimImage.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimImage\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimImage`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimImage**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### claim\\_item\n\n• **claim\\_item**: [`ClaimItem`](ClaimItem.md)\n\n#### Defined in\n\n[models/claim-image.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L23)\n\n___\n\n### claim\\_item\\_id\n\n• **claim\\_item\\_id**: `string`\n\n#### Defined in\n\n[models/claim-image.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L19)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-image.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L29)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### url\n\n• **url**: `string`\n\n#### Defined in\n\n[models/claim-image.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L26)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-image.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L31)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":703,"sizeBytes":2375},{"name":"ClaimItem.md","path":"docs/content/references/entities/classes/ClaimItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ClaimItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimItem\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimItem`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimItem**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/claim-item.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L42)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L38)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### images\n\n• **images**: [`ClaimImage`](ClaimImage.md)[]\n\n#### Defined in\n\n[models/claim-item.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L34)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/claim-item.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L50)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L46)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-item.ts:84](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L84)\n\n___\n\n### note\n\n• **note**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:64](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L64)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/claim-item.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L67)\n\n___\n\n### reason\n\n• **reason**: [`ClaimReason`](../enums/ClaimReason.md)\n\n#### Defined in\n\n[models/claim-item.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L61)\n\n___\n\n### tags\n\n• **tags**: [`ClaimTag`](ClaimTag.md)[]\n\n#### Defined in\n\n[models/claim-item.ts:81](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L81)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### variant\n\n• **variant**: [`ProductVariant`](ProductVariant.md)\n\n#### Defined in\n\n[models/claim-item.ts:58](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L58)\n\n___\n\n### variant\\_id\n\n• **variant\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L54)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-item.ts:86](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L86)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1207,"sizeBytes":3966},{"name":"ClaimOrder.md","path":"docs/content/references/entities/classes/ClaimOrder.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ClaimOrder.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimOrder\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimOrder`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimOrder**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### additional\\_items\n\n• **additional\\_items**: [`LineItem`](LineItem.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L69)\n\n___\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/claim-order.ts:107](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L107)\n\n___\n\n### claim\\_items\n\n• **claim\\_items**: [`ClaimItem`](ClaimItem.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:66](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L66)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[models/claim-order.ts:110](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L110)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[models/claim-order.ts:116](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L116)\n\n___\n\n### fulfillment\\_status\n\n• **fulfillment\\_status**: [`ClaimFulfillmentStatus`](../enums/ClaimFulfillmentStatus.md)\n\n#### Defined in\n\n[models/claim-order.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L63)\n\n___\n\n### fulfillments\n\n• **fulfillments**: [`Fulfillment`](Fulfillment.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:101](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L101)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:125](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L125)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-order.ts:122](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L122)\n\n___\n\n### no\\_notification\n\n• **no\\_notification**: `boolean`\n\n#### Defined in\n\n[models/claim-order.ts:119](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L119)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/claim-order.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L80)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:76](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L76)\n\n___\n\n### payment\\_status\n\n• **payment\\_status**: [`ClaimPaymentStatus`](../enums/ClaimPaymentStatus.md)\n\n#### Defined in\n\n[models/claim-order.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L56)\n\n___\n\n### refund\\_amount\n\n• **refund\\_amount**: `number`\n\n#### Defined in\n\n[models/claim-order.ts:104](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L104)\n\n___\n\n### return\\_order\n\n• **return\\_order**: [`Return`](Return.md)\n\n#### Defined in\n\n[models/claim-order.ts:83](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L83)\n\n___\n\n### shipping\\_address\n\n• **shipping\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/claim-order.ts:91](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L91)\n\n___\n\n### shipping\\_address\\_id\n\n• **shipping\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:87](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L87)\n\n___\n\n### shipping\\_methods\n\n• **shipping\\_methods**: [`ShippingMethod`](ShippingMethod.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:96](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L96)\n\n___\n\n### type\n\n• **type**: [`ClaimType`](../enums/ClaimType.md)\n\n#### Defined in\n\n[models/claim-order.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L72)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[models/claim-order.ts:113](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L113)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-order.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L127)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1561,"sizeBytes":5156},{"name":"ClaimTag.md","path":"docs/content/references/entities/classes/ClaimTag.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ClaimTag.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimTag\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimTag`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimTag**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-tag.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L14)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `string`\n\n#### Defined in\n\n[models/claim-tag.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L11)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-tag.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L16)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":570,"sizeBytes":1944},{"name":"Country.md","path":"docs/content/references/entities/classes/Country.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Country.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Country\n\n## Constructors\n\n### constructor\n\n• **new Country**()\n\n## Properties\n\n### display\\_name\n\n• **display\\_name**: `string`\n\n#### Defined in\n\n[models/country.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L31)\n\n___\n\n### id\n\n• **id**: `number`\n\n#### Defined in\n\n[models/country.ts:15](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L15)\n\n___\n\n### iso\\_2\n\n• **iso\\_2**: `string`\n\n#### Defined in\n\n[models/country.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L19)\n\n___\n\n### iso\\_3\n\n• **iso\\_3**: `string`\n\n#### Defined in\n\n[models/country.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L22)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/country.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L28)\n\n___\n\n### num\\_code\n\n• **num\\_code**: `number`\n\n#### Defined in\n\n[models/country.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L25)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/country.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L39)\n\n___\n\n### region\\_id\n\n• **region\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/country.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L35)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":503,"sizeBytes":1585},{"name":"Currency.md","path":"docs/content/references/entities/classes/Currency.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Currency.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Currency\n\n## Constructors\n\n### constructor\n\n• **new Currency**()\n\n## Properties\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/currency.ts:8](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L8)\n\n___\n\n### includes\\_tax\n\n• `Optional` **includes\\_tax**: `boolean`\n\n#### Defined in\n\n[models/currency.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L20)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/currency.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L17)\n\n___\n\n### symbol\n\n• **symbol**: `string`\n\n#### Defined in\n\n[models/currency.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L11)\n\n___\n\n### symbol\\_native\n\n• **symbol\\_native**: `string`\n\n#### Defined in\n\n[models/currency.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L14)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":319,"sizeBytes":1057},{"name":"Customer.md","path":"docs/content/references/entities/classes/Customer.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Customer.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Customer\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Customer`**\n\n## Constructors\n\n### constructor\n\n• **new Customer**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### billing\\_address\n\n• **billing\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/customer.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L38)\n\n___\n\n### billing\\_address\\_id\n\n• **billing\\_address\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/customer.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L34)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### email\n\n• **email**: `string`\n\n#### Defined in\n\n[models/customer.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L24)\n\n___\n\n### first\\_name\n\n• **first\\_name**: `string`\n\n#### Defined in\n\n[models/customer.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L27)\n\n___\n\n### groups\n\n• **groups**: [`CustomerGroup`](CustomerGroup.md)[]\n\n#### Defined in\n\n[models/customer.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L69)\n\n___\n\n### has\\_account\n\n• **has\\_account**: `boolean`\n\n#### Defined in\n\n[models/customer.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L50)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### last\\_name\n\n• **last\\_name**: `string`\n\n#### Defined in\n\n[models/customer.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L30)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/customer.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L72)\n\n___\n\n### orders\n\n• **orders**: [`Order`](Order.md)[]\n\n#### Defined in\n\n[models/customer.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L53)\n\n___\n\n### password\\_hash\n\n• **password\\_hash**: `string`\n\n#### Defined in\n\n[models/customer.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L44)\n\n___\n\n### phone\n\n• **phone**: `string`\n\n#### Defined in\n\n[models/customer.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L47)\n\n___\n\n### shipping\\_addresses\n\n• **shipping\\_addresses**: [`Address`](Address.md)[]\n\n#### Defined in\n\n[models/customer.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L41)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/customer.ts:74](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L74)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1151,"sizeBytes":3933},{"name":"CustomerGroup.md","path":"docs/content/references/entities/classes/CustomerGroup.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/CustomerGroup.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: CustomerGroup\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`CustomerGroup`**\n\n## Constructors\n\n### constructor\n\n• **new CustomerGroup**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customers\n\n• **customers**: [`Customer`](Customer.md)[]\n\n#### Defined in\n\n[models/customer-group.ts:18](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L18)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/customer-group.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L26)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/customer-group.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L13)\n\n___\n\n### price\\_lists\n\n• **price\\_lists**: [`PriceList`](PriceList.md)[]\n\n#### Defined in\n\n[models/customer-group.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L23)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/customer-group.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L28)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":692,"sizeBytes":2427},{"name":"CustomShippingOption.md","path":"docs/content/references/entities/classes/CustomShippingOption.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/CustomShippingOption.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: CustomShippingOption\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`CustomShippingOption`**\n\n## Constructors\n\n### constructor\n\n• **new CustomShippingOption**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/custom-shipping-option.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L37)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L33)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/custom-shipping-option.ts:40](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L40)\n\n___\n\n### price\n\n• **price**: `number`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:21](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L21)\n\n___\n\n### shipping\\_option\n\n• **shipping\\_option**: [`ShippingOption`](ShippingOption.md)\n\n#### Defined in\n\n[models/custom-shipping-option.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L29)\n\n___\n\n### shipping\\_option\\_id\n\n• **shipping\\_option\\_id**: `string`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L25)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L42)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":843,"sizeBytes":2972},{"name":"Discount.md","path":"docs/content/references/entities/classes/Discount.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Discount.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Discount\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Discount`**\n\n## Constructors\n\n### constructor\n\n• **new Discount**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/discount.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L22)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### ends\\_at\n\n• **ends\\_at**: ``null`` \\| `Date`\n\n#### Defined in\n\n[models/discount.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L52)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### is\\_disabled\n\n• **is\\_disabled**: `boolean`\n\n#### Defined in\n\n[models/discount.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L36)\n\n___\n\n### is\\_dynamic\n\n• **is\\_dynamic**: `boolean`\n\n#### Defined in\n\n[models/discount.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L25)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount.ts:78](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L78)\n\n___\n\n### parent\\_discount\n\n• **parent\\_discount**: [`Discount`](Discount.md)\n\n#### Defined in\n\n[models/discount.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L43)\n\n___\n\n### parent\\_discount\\_id\n\n• **parent\\_discount\\_id**: `string`\n\n#### Defined in\n\n[models/discount.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L39)\n\n___\n\n### regions\n\n• **regions**: [`Region`](Region.md)[]\n\n#### Defined in\n\n[models/discount.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L69)\n\n___\n\n### rule\n\n• **rule**: [`DiscountRule`](DiscountRule.md)\n\n#### Defined in\n\n[models/discount.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L33)\n\n___\n\n### rule\\_id\n\n• **rule\\_id**: `string`\n\n#### Defined in\n\n[models/discount.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L29)\n\n___\n\n### starts\\_at\n\n• **starts\\_at**: `Date`\n\n#### Defined in\n\n[models/discount.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L49)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### usage\\_count\n\n• **usage\\_count**: `number`\n\n#### Defined in\n\n[models/discount.ts:75](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L75)\n\n___\n\n### usage\\_limit\n\n• **usage\\_limit**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/discount.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L72)\n\n___\n\n### valid\\_duration\n\n• **valid\\_duration**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/discount.ts:55](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L55)\n\n## Methods\n\n### upperCaseCodeAndTrim\n\n▸ `Private` **upperCaseCodeAndTrim**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount.ts#L80)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1308,"sizeBytes":4317},{"name":"DiscountCondition.md","path":"docs/content/references/entities/classes/DiscountCondition.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/DiscountCondition.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountCondition\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`DiscountCondition`**\n\n## Constructors\n\n### constructor\n\n• **new DiscountCondition**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\\_groups\n\n• **customer\\_groups**: [`CustomerGroup`](CustomerGroup.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L127)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### discount\\_rule\n\n• **discount\\_rule**: [`DiscountRule`](DiscountRule.md)\n\n#### Defined in\n\n[models/discount-condition.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L57)\n\n___\n\n### discount\\_rule\\_id\n\n• **discount\\_rule\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L53)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition.ts:130](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L130)\n\n___\n\n### operator\n\n• **operator**: [`DiscountConditionOperator`](../enums/DiscountConditionOperator.md)\n\n#### Defined in\n\n[models/discount-condition.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L49)\n\n___\n\n### product\\_collections\n\n• **product\\_collections**: [`ProductCollection`](ProductCollection.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:113](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L113)\n\n___\n\n### product\\_tags\n\n• **product\\_tags**: [`ProductTag`](ProductTag.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:99](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L99)\n\n___\n\n### product\\_types\n\n• **product\\_types**: [`ProductType`](ProductType.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L85)\n\n___\n\n### products\n\n• **products**: [`Product`](Product.md)[]\n\n#### Defined in\n\n[models/discount-condition.ts:71](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L71)\n\n___\n\n### type\n\n• **type**: [`DiscountConditionType`](../enums/DiscountConditionType.md)\n\n#### Defined in\n\n[models/discount-condition.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L43)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount-condition.ts:132](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition.ts#L132)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1120,"sizeBytes":4017},{"name":"DiscountConditionCustomerGroup.md","path":"docs/content/references/entities/classes/DiscountConditionCustomerGroup.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/DiscountConditionCustomerGroup.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionCustomerGroup\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionCustomerGroup**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L31)\n\n___\n\n### customer\\_group\n\n• `Optional` **customer\\_group**: [`CustomerGroup`](CustomerGroup.md)\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L24)\n\n___\n\n### customer\\_group\\_id\n\n• **customer\\_group\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L17)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L37)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-customer-group.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-customer-group.ts#L34)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":534,"sizeBytes":1987},{"name":"DiscountConditionProduct.md","path":"docs/content/references/entities/classes/DiscountConditionProduct.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/DiscountConditionProduct.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProduct\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProduct**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L37)\n\n___\n\n### product\n\n• `Optional` **product**: [`Product`](Product.md)\n\n#### Defined in\n\n[models/discount-condition-product.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L24)\n\n___\n\n### product\\_id\n\n• **product\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product.ts#L34)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":494,"sizeBytes":1833},{"name":"DiscountConditionProductCollection.md","path":"docs/content/references/entities/classes/DiscountConditionProductCollection.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/DiscountConditionProductCollection.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductCollection\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductCollection**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L37)\n\n___\n\n### product\\_collection\n\n• `Optional` **product\\_collection**: [`ProductCollection`](ProductCollection.md)\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L24)\n\n___\n\n### product\\_collection\\_id\n\n• **product\\_collection\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-collection.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-collection.ts#L34)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":520,"sizeBytes":2075},{"name":"DiscountConditionProductTag.md","path":"docs/content/references/entities/classes/DiscountConditionProductTag.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/DiscountConditionProductTag.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductTag\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductTag**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L37)\n\n___\n\n### product\\_tag\n\n• `Optional` **product\\_tag**: [`ProductTag`](ProductTag.md)\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L24)\n\n___\n\n### product\\_tag\\_id\n\n• **product\\_tag\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-tag.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-tag.ts#L34)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":520,"sizeBytes":1921},{"name":"DiscountConditionProductType.md","path":"docs/content/references/entities/classes/DiscountConditionProductType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/DiscountConditionProductType.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountConditionProductType\n\n## Constructors\n\n### constructor\n\n• **new DiscountConditionProductType**()\n\n## Properties\n\n### condition\\_id\n\n• **condition\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L31)\n\n___\n\n### discount\\_condition\n\n• `Optional` **discount\\_condition**: [`DiscountCondition`](DiscountCondition.md)\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L28)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L37)\n\n___\n\n### product\\_type\n\n• `Optional` **product\\_type**: [`ProductType`](ProductType.md)\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L24)\n\n___\n\n### product\\_type\\_id\n\n• **product\\_type\\_id**: `string`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L17)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Defined in\n\n[models/discount-condition-product-type.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-condition-product-type.ts#L34)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":520,"sizeBytes":1943},{"name":"DiscountRule.md","path":"docs/content/references/entities/classes/DiscountRule.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/DiscountRule.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DiscountRule\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`DiscountRule`**\n\n## Constructors\n\n### constructor\n\n• **new DiscountRule**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### allocation\n\n• **allocation**: [`AllocationType`](../enums/AllocationType.md)\n\n#### Defined in\n\n[models/discount-rule.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L38)\n\n___\n\n### conditions\n\n• **conditions**: [`DiscountCondition`](DiscountCondition.md)[]\n\n#### Defined in\n\n[models/discount-rule.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L41)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/discount-rule.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L22)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/discount-rule.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L44)\n\n___\n\n### type\n\n• **type**: [`DiscountRuleType`](../enums/DiscountRuleType.md)\n\n#### Defined in\n\n[models/discount-rule.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L28)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `number`\n\n#### Defined in\n\n[models/discount-rule.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L31)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/discount-rule.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/discount-rule.ts#L46)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":827,"sizeBytes":2875},{"name":"DraftOrder.md","path":"docs/content/references/entities/classes/DraftOrder.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/DraftOrder.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: DraftOrder\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`DraftOrder`**\n\n## Constructors\n\n### constructor\n\n• **new DraftOrder**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/draft-order.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L54)\n\n___\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/draft-order.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L43)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L39)\n\n___\n\n### completed\\_at\n\n• **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/draft-order.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L57)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### display\\_id\n\n• **display\\_id**: `number`\n\n#### Defined in\n\n[models/draft-order.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L35)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:66](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L66)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/draft-order.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L63)\n\n___\n\n### no\\_notification\\_order\n\n• **no\\_notification\\_order**: `boolean`\n\n#### Defined in\n\n[models/draft-order.ts:60](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L60)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/draft-order.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L51)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/draft-order.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L47)\n\n___\n\n### status\n\n• **status**: [`DraftOrderStatus`](../enums/DraftOrderStatus.md)\n\n#### Defined in\n\n[models/draft-order.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L30)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `Promise`<`void`\\>\n\n#### Returns\n\n`Promise`<`void`\\>\n\n#### Defined in\n\n[models/draft-order.ts:68](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/draft-order.ts#L68)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1054,"sizeBytes":3462},{"name":"Fulfillment.md","path":"docs/content/references/entities/classes/Fulfillment.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Fulfillment.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Fulfillment\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`Fulfillment`**\n\n## Constructors\n\n### constructor\n\n• **new Fulfillment**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/fulfillment.ts:79](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L79)\n\n___\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/fulfillment.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L29)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L25)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### data\n\n• **data**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/fulfillment.ts:73](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L73)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L85)\n\n___\n\n### items\n\n• **items**: [`FulfillmentItem`](FulfillmentItem.md)[]\n\n#### Defined in\n\n[models/fulfillment.ts:62](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L62)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/fulfillment.ts:82](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L82)\n\n___\n\n### no\\_notification\n\n• **no\\_notification**: `boolean`\n\n#### Defined in\n\n[models/fulfillment.ts:48](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L48)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/fulfillment.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L45)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L41)\n\n___\n\n### provider\n\n• **provider**: [`FulfillmentProvider`](FulfillmentProvider.md)\n\n#### Defined in\n\n[models/fulfillment.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L56)\n\n___\n\n### provider\\_id\n\n• **provider\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L52)\n\n___\n\n### shipped\\_at\n\n• **shipped\\_at**: `Date`\n\n#### Defined in\n\n[models/fulfillment.ts:76](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L76)\n\n___\n\n### swap\n\n• **swap**: [`Swap`](Swap.md)\n\n#### Defined in\n\n[models/fulfillment.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L37)\n\n___\n\n### swap\\_id\n\n• **swap\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L33)\n\n___\n\n### tracking\\_links\n\n• **tracking\\_links**: [`TrackingLink`](TrackingLink.md)[]\n\n#### Defined in\n\n[models/fulfillment.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L67)\n\n___\n\n### tracking\\_numbers\n\n• **tracking\\_numbers**: `string`[]\n\n#### Defined in\n\n[models/fulfillment.ts:70](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L70)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/fulfillment.ts:87](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment.ts#L87)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1480,"sizeBytes":4707},{"name":"FulfillmentItem.md","path":"docs/content/references/entities/classes/FulfillmentItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/FulfillmentItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: FulfillmentItem\n\n## Constructors\n\n### constructor\n\n• **new FulfillmentItem**()\n\n## Properties\n\n### fulfillment\n\n• **fulfillment**: [`Fulfillment`](Fulfillment.md)\n\n#### Defined in\n\n[models/fulfillment-item.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L16)\n\n___\n\n### fulfillment\\_id\n\n• **fulfillment\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment-item.ts:9](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L9)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/fulfillment-item.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L20)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/fulfillment-item.ts:12](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L12)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/fulfillment-item.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-item.ts#L23)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":368,"sizeBytes":1189},{"name":"FulfillmentProvider.md","path":"docs/content/references/entities/classes/FulfillmentProvider.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/FulfillmentProvider.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: FulfillmentProvider\n\n## Constructors\n\n### constructor\n\n• **new FulfillmentProvider**()\n\n## Properties\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/fulfillment-provider.ts:6](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-provider.ts#L6)\n\n___\n\n### is\\_installed\n\n• **is\\_installed**: `boolean`\n\n#### Defined in\n\n[models/fulfillment-provider.ts:9](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/fulfillment-provider.ts#L9)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":162,"sizeBytes":561},{"name":"GiftCard.md","path":"docs/content/references/entities/classes/GiftCard.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/GiftCard.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: GiftCard\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`GiftCard`**\n\n## Constructors\n\n### constructor\n\n• **new GiftCard**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### balance\n\n• **balance**: `number`\n\n#### Defined in\n\n[models/gift-card.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L26)\n\n___\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L20)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### ends\\_at\n\n• **ends\\_at**: `Date`\n\n#### Defined in\n\n[models/gift-card.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L51)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### is\\_disabled\n\n• **is\\_disabled**: `boolean`\n\n#### Defined in\n\n[models/gift-card.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L45)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/gift-card.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L54)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/gift-card.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L42)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L38)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/gift-card.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L34)\n\n___\n\n### region\\_id\n\n• **region\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L30)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `number`\n\n#### Defined in\n\n[models/gift-card.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L23)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/gift-card.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card.ts#L56)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1056,"sizeBytes":3441},{"name":"GiftCardTransaction.md","path":"docs/content/references/entities/classes/GiftCardTransaction.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/GiftCardTransaction.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: GiftCardTransaction\n\n## Constructors\n\n### constructor\n\n• **new GiftCardTransaction**()\n\n## Properties\n\n### amount\n\n• **amount**: `number`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:40](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L40)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:43](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L43)\n\n___\n\n### gift\\_card\n\n• **gift\\_card**: [`GiftCard`](GiftCard.md)\n\n#### Defined in\n\n[models/gift-card-transaction.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L29)\n\n___\n\n### gift\\_card\\_id\n\n• **gift\\_card\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L25)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L22)\n\n___\n\n### is\\_taxable\n\n• **is\\_taxable**: `boolean`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L46)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/gift-card-transaction.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L37)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L33)\n\n___\n\n### tax\\_rate\n\n• **tax\\_rate**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L49)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/gift-card-transaction.ts:51](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/gift-card-transaction.ts#L51)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":709,"sizeBytes":2338},{"name":"IdempotencyKey.md","path":"docs/content/references/entities/classes/IdempotencyKey.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/IdempotencyKey.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: IdempotencyKey\n\n## Constructors\n\n### constructor\n\n• **new IdempotencyKey**()\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Defined in\n\n[models/idempotency-key.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L23)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L16)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L20)\n\n___\n\n### locked\\_at\n\n• **locked\\_at**: `Date`\n\n#### Defined in\n\n[models/idempotency-key.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L26)\n\n___\n\n### recovery\\_point\n\n• **recovery\\_point**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L44)\n\n___\n\n### request\\_method\n\n• **request\\_method**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L29)\n\n___\n\n### request\\_params\n\n• **request\\_params**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/idempotency-key.ts:32](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L32)\n\n___\n\n### request\\_path\n\n• **request\\_path**: `string`\n\n#### Defined in\n\n[models/idempotency-key.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L35)\n\n___\n\n### response\\_body\n\n• **response\\_body**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/idempotency-key.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L41)\n\n___\n\n### response\\_code\n\n• **response\\_code**: `number`\n\n#### Defined in\n\n[models/idempotency-key.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L38)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/idempotency-key.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/idempotency-key.ts#L46)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":792,"sizeBytes":2486},{"name":"Image.md","path":"docs/content/references/entities/classes/Image.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Image.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Image\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Image`**\n\n## Constructors\n\n### constructor\n\n• **new Image**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/image.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L13)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### url\n\n• **url**: `string`\n\n#### Defined in\n\n[models/image.ts:10](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L10)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/image.ts:15](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/image.ts#L15)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":555,"sizeBytes":1907},{"name":"Invite.md","path":"docs/content/references/entities/classes/Invite.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Invite.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Invite\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Invite`**\n\n## Constructors\n\n### constructor\n\n• **new Invite**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### accepted\n\n• **accepted**: `boolean`\n\n#### Defined in\n\n[models/invite.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L23)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### expires\\_at\n\n• **expires\\_at**: `Date`\n\n#### Defined in\n\n[models/invite.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L29)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/invite.ts:32](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L32)\n\n___\n\n### role\n\n• **role**: [`UserRoles`](../enums/UserRoles.md)\n\n#### Defined in\n\n[models/invite.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L20)\n\n___\n\n### token\n\n• **token**: `string`\n\n#### Defined in\n\n[models/invite.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L26)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### user\\_email\n\n• **user\\_email**: `string`\n\n#### Defined in\n\n[models/invite.ts:12](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L12)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/invite.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/invite.ts#L34)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":800,"sizeBytes":2667},{"name":"LineItem.md","path":"docs/content/references/entities/classes/LineItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/LineItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItem\n\n## Hierarchy\n\n- `BaseEntity`\n\n  ↳ **`LineItem`**\n\n## Constructors\n\n### constructor\n\n• **new LineItem**()\n\n#### Inherited from\n\nBaseEntity.constructor\n\n## Properties\n\n### adjustments\n\n• **adjustments**: [`LineItemAdjustment`](LineItemAdjustment.md)[]\n\n#### Defined in\n\n[models/line-item.ts:85](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L85)\n\n___\n\n### allow\\_discounts\n\n• **allow\\_discounts**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L127)\n\n___\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/line-item.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L53)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L49)\n\n___\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/line-item.ts:77](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L77)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:73](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L73)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/line-item.ts:112](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L112)\n\n___\n\n### discount\\_total\n\n• `Optional` **discount\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:167](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L167)\n\n___\n\n### fulfilled\\_quantity\n\n• **fulfilled\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:147](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L147)\n\n___\n\n### gift\\_card\\_total\n\n• `Optional` **gift\\_card\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:168](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L168)\n\n___\n\n### has\\_shipping\n\n• **has\\_shipping**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:130](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L130)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nBaseEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### includes\\_tax\n\n• **includes\\_tax**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:159](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L159)\n\n___\n\n### is\\_giftcard\n\n• **is\\_giftcard**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:121](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L121)\n\n___\n\n### is\\_return\n\n• **is\\_return**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:118](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L118)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/line-item.ts:156](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L156)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/line-item.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L61)\n\n___\n\n### order\\_edit\n\n• `Optional` **order\\_edit**: ``null`` \\| [`OrderEdit`](OrderEdit.md)\n\n#### Defined in\n\n[models/line-item.ts:106](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L106)\n\n___\n\n### order\\_edit\\_id\n\n• `Optional` **order\\_edit\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:97](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L97)\n\n___\n\n### order\\_id\n\n• **order\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:57](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L57)\n\n___\n\n### original\\_item\\_id\n\n• `Optional` **original\\_item\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:91](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L91)\n\n___\n\n### original\\_tax\\_total\n\n• `Optional` **original\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:166](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L166)\n\n___\n\n### original\\_total\n\n• `Optional` **original\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:165](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L165)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:144](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L144)\n\n___\n\n### refundable\n\n• `Optional` **refundable**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:161](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L161)\n\n___\n\n### returned\\_quantity\n\n• **returned\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:150](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L150)\n\n___\n\n### shipped\\_quantity\n\n• **shipped\\_quantity**: `number`\n\n#### Defined in\n\n[models/line-item.ts:153](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L153)\n\n___\n\n### should\\_merge\n\n• **should\\_merge**: `boolean`\n\n#### Defined in\n\n[models/line-item.ts:124](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L124)\n\n___\n\n### subtotal\n\n• `Optional` **subtotal**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:162](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L162)\n\n___\n\n### swap\n\n• **swap**: [`Swap`](Swap.md)\n\n#### Defined in\n\n[models/line-item.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L69)\n\n___\n\n### swap\\_id\n\n• **swap\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:65](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L65)\n\n___\n\n### tax\\_lines\n\n• **tax\\_lines**: [`LineItemTaxLine`](LineItemTaxLine.md)[]\n\n#### Defined in\n\n[models/line-item.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L80)\n\n___\n\n### tax\\_total\n\n• `Optional` **tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:163](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L163)\n\n___\n\n### thumbnail\n\n• **thumbnail**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/line-item.ts:115](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L115)\n\n___\n\n### title\n\n• **title**: `string`\n\n#### Defined in\n\n[models/line-item.ts:109](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L109)\n\n___\n\n### total\n\n• `Optional` **total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/line-item.ts:164](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L164)\n\n___\n\n### unit\\_price\n\n• **unit\\_price**: `number`\n\n#### Defined in\n\n[models/line-item.ts:133](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L133)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nBaseEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### variant\n\n• **variant**: [`ProductVariant`](ProductVariant.md)\n\n#### Defined in\n\n[models/line-item.ts:141](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L141)\n\n___\n\n### variant\\_id\n\n• **variant\\_id**: `string`\n\n#### Defined in\n\n[models/line-item.ts:137](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L137)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item.ts:170](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item.ts#L170)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":2815,"sizeBytes":9029},{"name":"LineItemAdjustment.md","path":"docs/content/references/entities/classes/LineItemAdjustment.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/LineItemAdjustment.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItemAdjustment\n\n## Constructors\n\n### constructor\n\n• **new LineItemAdjustment**()\n\n## Properties\n\n### amount\n\n• **amount**: `number`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L45)\n\n___\n\n### description\n\n• **description**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L34)\n\n___\n\n### discount\n\n• **discount**: [`Discount`](Discount.md)\n\n#### Defined in\n\n[models/line-item-adjustment.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L38)\n\n___\n\n### discount\\_id\n\n• **discount\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L42)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L23)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/line-item-adjustment.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L31)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L27)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/line-item-adjustment.ts:48](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L48)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item-adjustment.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-adjustment.ts#L50)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":631,"sizeBytes":2106},{"name":"LineItemTaxLine.md","path":"docs/content/references/entities/classes/LineItemTaxLine.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/LineItemTaxLine.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: LineItemTaxLine\n\n## Hierarchy\n\n- `TaxLine`\n\n  ↳ **`LineItemTaxLine`**\n\n## Constructors\n\n### constructor\n\n• **new LineItemTaxLine**()\n\n#### Inherited from\n\nTaxLine.constructor\n\n## Properties\n\n### code\n\n• **code**: ``null`` \\| `string`\n\n#### Inherited from\n\nTaxLine.code\n\n#### Defined in\n\n[models/tax-line.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L13)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nTaxLine.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nTaxLine.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/line-item-tax-line.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L24)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/line-item-tax-line.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L20)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Inherited from\n\nTaxLine.metadata\n\n#### Defined in\n\n[models/tax-line.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L16)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Inherited from\n\nTaxLine.name\n\n#### Defined in\n\n[models/tax-line.ts:10](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L10)\n\n___\n\n### rate\n\n• **rate**: `number`\n\n#### Inherited from\n\nTaxLine.rate\n\n#### Defined in\n\n[models/tax-line.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/tax-line.ts#L7)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nTaxLine.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/line-item-tax-line.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/line-item-tax-line.ts#L26)\n","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":766,"sizeBytes":2537},{"name":"MoneyAmount.md","path":"docs/content/references/entities/classes/MoneyAmount.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/MoneyAmount.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FMoneyAmount.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1186,"sizeBytes":3904},{"name":"Note.md","path":"docs/content/references/entities/classes/Note.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Note.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FNote.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":800,"sizeBytes":2631},{"name":"Notification.md","path":"docs/content/references/entities/classes/Notification.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Notification.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FNotification.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1038,"sizeBytes":3689},{"name":"Oauth.md","path":"docs/content/references/entities/classes/Oauth.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Oauth.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOauth.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":448,"sizeBytes":1458},{"name":"Order.md","path":"docs/content/references/entities/classes/Order.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Order.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrder.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":3387,"sizeBytes":11128},{"name":"OrderEdit.md","path":"docs/content/references/entities/classes/OrderEdit.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/OrderEdit.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrderEdit.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":2032,"sizeBytes":6778},{"name":"OrderItemChange.md","path":"docs/content/references/entities/classes/OrderItemChange.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/OrderItemChange.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FOrderItemChange.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":940,"sizeBytes":3239},{"name":"Payment.md","path":"docs/content/references/entities/classes/Payment.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Payment.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPayment.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1282,"sizeBytes":4249},{"name":"PaymentCollection.md","path":"docs/content/references/entities/classes/PaymentCollection.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/PaymentCollection.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentCollection.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1248,"sizeBytes":4520},{"name":"PaymentProvider.md","path":"docs/content/references/entities/classes/PaymentProvider.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/PaymentProvider.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentProvider.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":146,"sizeBytes":537},{"name":"PaymentSession.md","path":"docs/content/references/entities/classes/PaymentSession.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/PaymentSession.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPaymentSession.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":890,"sizeBytes":3097},{"name":"PriceList.md","path":"docs/content/references/entities/classes/PriceList.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/PriceList.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPriceList.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1018,"sizeBytes":3379},{"name":"Product.md","path":"docs/content/references/entities/classes/Product.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Product.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProduct.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":2172,"sizeBytes":7320},{"name":"ProductCollection.md","path":"docs/content/references/entities/classes/ProductCollection.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ProductCollection.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductCollection.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":689,"sizeBytes":2470},{"name":"ProductOption.md","path":"docs/content/references/entities/classes/ProductOption.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ProductOption.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductOption.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":748,"sizeBytes":2628},{"name":"ProductOptionValue.md","path":"docs/content/references/entities/classes/ProductOptionValue.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ProductOptionValue.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductOptionValue.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":823,"sizeBytes":2928},{"name":"ProductTag.md","path":"docs/content/references/entities/classes/ProductTag.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ProductTag.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTag.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":564,"sizeBytes":1962},{"name":"ProductTaxRate.md","path":"docs/content/references/entities/classes/ProductTaxRate.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ProductTaxRate.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTaxRate.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":480,"sizeBytes":1623},{"name":"ProductType.md","path":"docs/content/references/entities/classes/ProductType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ProductType.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":564,"sizeBytes":1971},{"name":"ProductTypeTaxRate.md","path":"docs/content/references/entities/classes/ProductTypeTaxRate.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ProductTypeTaxRate.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductTypeTaxRate.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":506,"sizeBytes":1733},{"name":"ProductVariant.md","path":"docs/content/references/entities/classes/ProductVariant.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ProductVariant.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FProductVariant.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1786,"sizeBytes":6049},{"name":"PublishableApiKey.md","path":"docs/content/references/entities/classes/PublishableApiKey.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/PublishableApiKey.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPublishableApiKey.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":623,"sizeBytes":2126},{"name":"PublishableApiKeySalesChannel.md","path":"docs/content/references/entities/classes/PublishableApiKeySalesChannel.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/PublishableApiKeySalesChannel.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FPublishableApiKeySalesChannel.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":186,"sizeBytes":680},{"name":"Refund.md","path":"docs/content/references/entities/classes/Refund.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Refund.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FRefund.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":877,"sizeBytes":2861},{"name":"Region.md","path":"docs/content/references/entities/classes/Region.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Region.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FRegion.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1393,"sizeBytes":4572},{"name":"Return.md","path":"docs/content/references/entities/classes/Return.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Return.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturn.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1275,"sizeBytes":4139},{"name":"ReturnItem.md","path":"docs/content/references/entities/classes/ReturnItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ReturnItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturnItem.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":775,"sizeBytes":2530},{"name":"ReturnReason.md","path":"docs/content/references/entities/classes/ReturnReason.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ReturnReason.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FReturnReason.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":924,"sizeBytes":3117},{"name":"SalesChannel.md","path":"docs/content/references/entities/classes/SalesChannel.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/SalesChannel.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FSalesChannel.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":628,"sizeBytes":2176},{"name":"ShippingMethod.md","path":"docs/content/references/entities/classes/ShippingMethod.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ShippingMethod.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingMethod.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1373,"sizeBytes":4577},{"name":"ShippingMethodTaxLine.md","path":"docs/content/references/entities/classes/ShippingMethodTaxLine.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ShippingMethodTaxLine.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingMethodTaxLine.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":774,"sizeBytes":2651},{"name":"ShippingOption.md","path":"docs/content/references/entities/classes/ShippingOption.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ShippingOption.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingOption.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1402,"sizeBytes":4820},{"name":"ShippingOptionRequirement.md","path":"docs/content/references/entities/classes/ShippingOptionRequirement.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ShippingOptionRequirement.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingOptionRequirement.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":524,"sizeBytes":1847},{"name":"ShippingProfile.md","path":"docs/content/references/entities/classes/ShippingProfile.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ShippingProfile.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingProfile.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":770,"sizeBytes":2708},{"name":"ShippingTaxRate.md","path":"docs/content/references/entities/classes/ShippingTaxRate.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/ShippingTaxRate.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FShippingTaxRate.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":504,"sizeBytes":1689},{"name":"StagedJob.md","path":"docs/content/references/entities/classes/StagedJob.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/StagedJob.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FStagedJob.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":291,"sizeBytes":933},{"name":"Store.md","path":"docs/content/references/entities/classes/Store.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Store.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FStore.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":954,"sizeBytes":3244},{"name":"Swap.md","path":"docs/content/references/entities/classes/Swap.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/Swap.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FSwap.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1709,"sizeBytes":5502},{"name":"TaxProvider.md","path":"docs/content/references/entities/classes/TaxProvider.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/TaxProvider.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTaxProvider.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":150,"sizeBytes":513},{"name":"TaxRate.md","path":"docs/content/references/entities/classes/TaxRate.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/TaxRate.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTaxRate.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1118,"sizeBytes":3642},{"name":"TrackingLink.md","path":"docs/content/references/entities/classes/TrackingLink.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/TrackingLink.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FTrackingLink.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":831,"sizeBytes":2823},{"name":"User.md","path":"docs/content/references/entities/classes/User.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/classes/User.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fclasses%2FUser.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":848,"sizeBytes":2823},{"name":"AllocationType.md","path":"docs/content/references/entities/enums/AllocationType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/AllocationType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FAllocationType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":142,"sizeBytes":472},{"name":"CartType.md","path":"docs/content/references/entities/enums/CartType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/CartType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FCartType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":324,"sizeBytes":1008},{"name":"ClaimFulfillmentStatus.md","path":"docs/content/references/entities/enums/ClaimFulfillmentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/ClaimFulfillmentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimFulfillmentStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":655,"sizeBytes":2001},{"name":"ClaimPaymentStatus.md","path":"docs/content/references/entities/enums/ClaimPaymentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/ClaimPaymentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimPaymentStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":220,"sizeBytes":681},{"name":"ClaimReason.md","path":"docs/content/references/entities/enums/ClaimReason.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/ClaimReason.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimReason.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":285,"sizeBytes":911},{"name":"ClaimType.md","path":"docs/content/references/entities/enums/ClaimType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/ClaimType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FClaimType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":145,"sizeBytes":471},{"name":"DiscountConditionOperator.md","path":"docs/content/references/entities/enums/DiscountConditionOperator.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/DiscountConditionOperator.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountConditionOperator.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":148,"sizeBytes":502},{"name":"DiscountConditionType.md","path":"docs/content/references/entities/enums/DiscountConditionType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/DiscountConditionType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountConditionType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":360,"sizeBytes":1239},{"name":"DiscountRuleType.md","path":"docs/content/references/entities/enums/DiscountRuleType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/DiscountRuleType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDiscountRuleType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":217,"sizeBytes":707},{"name":"DraftOrderStatus.md","path":"docs/content/references/entities/enums/DraftOrderStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/DraftOrderStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FDraftOrderStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":145,"sizeBytes":478},{"name":"FulfillmentStatus.md","path":"docs/content/references/entities/enums/FulfillmentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/FulfillmentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FFulfillmentStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":618,"sizeBytes":1888},{"name":"OrderEditItemChangeType.md","path":"docs/content/references/entities/enums/OrderEditItemChangeType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/OrderEditItemChangeType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderEditItemChangeType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":222,"sizeBytes":750},{"name":"OrderEditStatus.md","path":"docs/content/references/entities/enums/OrderEditStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/OrderEditStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderEditStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":332,"sizeBytes":1067},{"name":"OrderStatus.md","path":"docs/content/references/entities/enums/OrderStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/OrderStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FOrderStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":325,"sizeBytes":1033},{"name":"PaymentCollectionStatus.md","path":"docs/content/references/entities/enums/PaymentCollectionStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/PaymentCollectionStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentCollectionStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":346,"sizeBytes":1198},{"name":"PaymentCollectionType.md","path":"docs/content/references/entities/enums/PaymentCollectionType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/PaymentCollectionType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentCollectionType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":84,"sizeBytes":318},{"name":"PaymentSessionStatus.md","path":"docs/content/references/entities/enums/PaymentSessionStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/PaymentSessionStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentSessionStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":332,"sizeBytes":1130},{"name":"PaymentStatus.md","path":"docs/content/references/entities/enums/PaymentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/PaymentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FPaymentStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":471,"sizeBytes":1437},{"name":"ProductStatus.md","path":"docs/content/references/entities/enums/ProductStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/ProductStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FProductStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":263,"sizeBytes":838},{"name":"RefundReason.md","path":"docs/content/references/entities/enums/RefundReason.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/RefundReason.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FRefundReason.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":323,"sizeBytes":985},{"name":"RequirementType.md","path":"docs/content/references/entities/enums/RequirementType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/RequirementType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FRequirementType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":170,"sizeBytes":578},{"name":"ReturnStatus.md","path":"docs/content/references/entities/enums/ReturnStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/ReturnStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FReturnStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":273,"sizeBytes":861},{"name":"ShippingOptionPriceType.md","path":"docs/content/references/entities/enums/ShippingOptionPriceType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/ShippingOptionPriceType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FShippingOptionPriceType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":157,"sizeBytes":521},{"name":"ShippingProfileType.md","path":"docs/content/references/entities/enums/ShippingProfileType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/ShippingProfileType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FShippingProfileType.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":212,"sizeBytes":712},{"name":"SwapFulfillmentStatus.md","path":"docs/content/references/entities/enums/SwapFulfillmentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/SwapFulfillmentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FSwapFulfillmentStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":427,"sizeBytes":1261},{"name":"SwapPaymentStatus.md","path":"docs/content/references/entities/enums/SwapPaymentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/SwapPaymentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FSwapPaymentStatus.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":622,"sizeBytes":1829},{"name":"UserRoles.md","path":"docs/content/references/entities/enums/UserRoles.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/enums/UserRoles.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Fenums%2FUserRoles.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":196,"sizeBytes":618},{"name":"index.md","path":"docs/content/references/entities/index.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/entities/index.md","title":"Entities Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fentities%2Findex.md -->","frontmatter":{"displayed_sidebar":"entitiesSidebar"},"isInternal":false,"tokens":1212,"sizeBytes":4674},{"name":"AddressesResource.md","path":"docs/content/references/js-client/classes/AddressesResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AddressesResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAddressesResource.md -->","isInternal":false,"tokens":634,"sizeBytes":2529},{"name":"Admin.md","path":"docs/content/references/js-client/classes/Admin.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/Admin.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdmin.md -->","isInternal":false,"tokens":2258,"sizeBytes":8712},{"name":"AdminAuthResource.md","path":"docs/content/references/js-client/classes/AdminAuthResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminAuthResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminAuthResource.md -->","isInternal":false,"tokens":540,"sizeBytes":2042},{"name":"AdminBatchJobsResource.md","path":"docs/content/references/js-client/classes/AdminBatchJobsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminBatchJobsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminBatchJobsResource.md -->","isInternal":false,"tokens":963,"sizeBytes":3411},{"name":"AdminCollectionsResource.md","path":"docs/content/references/js-client/classes/AdminCollectionsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminCollectionsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCollectionsResource.md -->","isInternal":false,"tokens":1558,"sizeBytes":6125},{"name":"AdminCurrenciesResource.md","path":"docs/content/references/js-client/classes/AdminCurrenciesResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminCurrenciesResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCurrenciesResource.md -->","isInternal":false,"tokens":547,"sizeBytes":2150},{"name":"AdminCustomerGroupsResource.md","path":"docs/content/references/js-client/classes/AdminCustomerGroupsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminCustomerGroupsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCustomerGroupsResource.md -->","isInternal":false,"tokens":1820,"sizeBytes":7124},{"name":"AdminCustomersResource.md","path":"docs/content/references/js-client/classes/AdminCustomersResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminCustomersResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminCustomersResource.md -->","isInternal":false,"tokens":826,"sizeBytes":3145},{"name":"AdminDiscountsResource.md","path":"docs/content/references/js-client/classes/AdminDiscountsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminDiscountsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminDiscountsResource.md -->","isInternal":false,"tokens":3499,"sizeBytes":13126},{"name":"AdminDraftOrdersResource.md","path":"docs/content/references/js-client/classes/AdminDraftOrdersResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminDraftOrdersResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminDraftOrdersResource.md -->","isInternal":false,"tokens":1896,"sizeBytes":7014},{"name":"AdminGiftCardsResource.md","path":"docs/content/references/js-client/classes/AdminGiftCardsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminGiftCardsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminGiftCardsResource.md -->","isInternal":false,"tokens":1030,"sizeBytes":3684},{"name":"AdminInvitesResource.md","path":"docs/content/references/js-client/classes/AdminInvitesResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminInvitesResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminInvitesResource.md -->","isInternal":false,"tokens":845,"sizeBytes":2986},{"name":"AdminNotesResource.md","path":"docs/content/references/js-client/classes/AdminNotesResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminNotesResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminNotesResource.md -->","isInternal":false,"tokens":935,"sizeBytes":3344},{"name":"AdminNotificationsResource.md","path":"docs/content/references/js-client/classes/AdminNotificationsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminNotificationsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminNotificationsResource.md -->","isInternal":false,"tokens":416,"sizeBytes":1638},{"name":"AdminOrderEditsResource.md","path":"docs/content/references/js-client/classes/AdminOrderEditsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminOrderEditsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminOrderEditsResource.md -->","isInternal":false,"tokens":2417,"sizeBytes":8664},{"name":"AdminOrdersResource.md","path":"docs/content/references/js-client/classes/AdminOrdersResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminOrdersResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminOrdersResource.md -->","isInternal":false,"tokens":4943,"sizeBytes":17919},{"name":"AdminPaymentCollectionsResource.md","path":"docs/content/references/js-client/classes/AdminPaymentCollectionsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminPaymentCollectionsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPaymentCollectionsResource.md -->","isInternal":false,"tokens":797,"sizeBytes":3118},{"name":"AdminPaymentsResource.md","path":"docs/content/references/js-client/classes/AdminPaymentsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminPaymentsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPaymentsResource.md -->","isInternal":false,"tokens":595,"sizeBytes":2169},{"name":"AdminPriceListResource.md","path":"docs/content/references/js-client/classes/AdminPriceListResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminPriceListResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPriceListResource.md -->","isInternal":false,"tokens":2035,"sizeBytes":7312},{"name":"AdminProductsResource.md","path":"docs/content/references/js-client/classes/AdminProductsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminProductsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductsResource.md -->","isInternal":false,"tokens":2690,"sizeBytes":10152},{"name":"AdminProductTagsResource.md","path":"docs/content/references/js-client/classes/AdminProductTagsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminProductTagsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductTagsResource.md -->","isInternal":false,"tokens":200,"sizeBytes":765},{"name":"AdminProductTypesResource.md","path":"docs/content/references/js-client/classes/AdminProductTypesResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminProductTypesResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminProductTypesResource.md -->","isInternal":false,"tokens":223,"sizeBytes":842},{"name":"AdminPublishableApiKeyResource.md","path":"docs/content/references/js-client/classes/AdminPublishableApiKeyResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminPublishableApiKeyResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminPublishableApiKeyResource.md -->","isInternal":false,"tokens":1862,"sizeBytes":6845},{"name":"AdminRegionsResource.md","path":"docs/content/references/js-client/classes/AdminRegionsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminRegionsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminRegionsResource.md -->","isInternal":false,"tokens":2630,"sizeBytes":9967},{"name":"AdminReturnReasonsResource.md","path":"docs/content/references/js-client/classes/AdminReturnReasonsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminReturnReasonsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminReturnReasonsResource.md -->","isInternal":false,"tokens":1112,"sizeBytes":4145},{"name":"AdminReturnsResource.md","path":"docs/content/references/js-client/classes/AdminReturnsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminReturnsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminReturnsResource.md -->","isInternal":false,"tokens":689,"sizeBytes":2599},{"name":"AdminSalesChannelsResource.md","path":"docs/content/references/js-client/classes/AdminSalesChannelsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminSalesChannelsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminSalesChannelsResource.md -->","isInternal":false,"tokens":1754,"sizeBytes":7003},{"name":"AdminShippingOptionsResource.md","path":"docs/content/references/js-client/classes/AdminShippingOptionsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminShippingOptionsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminShippingOptionsResource.md -->","isInternal":false,"tokens":1119,"sizeBytes":4400},{"name":"AdminShippingProfilesResource.md","path":"docs/content/references/js-client/classes/AdminShippingProfilesResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminShippingProfilesResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminShippingProfilesResource.md -->","isInternal":false,"tokens":951,"sizeBytes":3627},{"name":"AdminStoresResource.md","path":"docs/content/references/js-client/classes/AdminStoresResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminStoresResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminStoresResource.md -->","isInternal":false,"tokens":1191,"sizeBytes":4612},{"name":"AdminSwapsResource.md","path":"docs/content/references/js-client/classes/AdminSwapsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminSwapsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminSwapsResource.md -->","isInternal":false,"tokens":397,"sizeBytes":1379},{"name":"AdminTaxRatesResource.md","path":"docs/content/references/js-client/classes/AdminTaxRatesResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminTaxRatesResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminTaxRatesResource.md -->","isInternal":false,"tokens":2587,"sizeBytes":9149},{"name":"AdminUploadsResource.md","path":"docs/content/references/js-client/classes/AdminUploadsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminUploadsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminUploadsResource.md -->","isInternal":false,"tokens":838,"sizeBytes":3126},{"name":"AdminUsersResource.md","path":"docs/content/references/js-client/classes/AdminUsersResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminUsersResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminUsersResource.md -->","isInternal":false,"tokens":1430,"sizeBytes":5375},{"name":"AdminVariantsResource.md","path":"docs/content/references/js-client/classes/AdminVariantsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AdminVariantsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAdminVariantsResource.md -->","isInternal":false,"tokens":221,"sizeBytes":798},{"name":"AuthResource.md","path":"docs/content/references/js-client/classes/AuthResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/AuthResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FAuthResource.md -->","isInternal":false,"tokens":739,"sizeBytes":2785},{"name":"CartsResource.md","path":"docs/content/references/js-client/classes/CartsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/CartsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCartsResource.md -->","isInternal":false,"tokens":2615,"sizeBytes":9560},{"name":"CollectionsResource.md","path":"docs/content/references/js-client/classes/CollectionsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/CollectionsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCollectionsResource.md -->","isInternal":false,"tokens":437,"sizeBytes":1688},{"name":"CustomerResource.md","path":"docs/content/references/js-client/classes/CustomerResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/CustomerResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FCustomerResource.md -->","isInternal":false,"tokens":1329,"sizeBytes":5279},{"name":"GiftCardsResource.md","path":"docs/content/references/js-client/classes/GiftCardsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/GiftCardsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FGiftCardsResource.md -->","isInternal":false,"tokens":229,"sizeBytes":818},{"name":"internal-1.AdminPostAuthReq.md","path":"docs/content/references/js-client/classes/internal-1.AdminPostAuthReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-1.AdminPostAuthReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-1.AdminPostAuthReq.md -->","isInternal":false,"tokens":83,"sizeBytes":329},{"name":"internal-1.User.md","path":"docs/content/references/js-client/classes/internal-1.User.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-1.User.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-1.User.md -->","isInternal":false,"tokens":564,"sizeBytes":2058},{"name":"internal-10.AdminPostInvitesInviteAcceptReq.md","path":"docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesInviteAcceptReq.md -->","isInternal":false,"tokens":117,"sizeBytes":441},{"name":"internal-10.AdminPostInvitesInviteAcceptUserReq.md","path":"docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptUserReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-10.AdminPostInvitesInviteAcceptUserReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesInviteAcceptUserReq.md -->","isInternal":false,"tokens":140,"sizeBytes":512},{"name":"internal-10.AdminPostInvitesReq.md","path":"docs/content/references/js-client/classes/internal-10.AdminPostInvitesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-10.AdminPostInvitesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.AdminPostInvitesReq.md -->","isInternal":false,"tokens":101,"sizeBytes":369},{"name":"internal-10.Invite.md","path":"docs/content/references/js-client/classes/internal-10.Invite.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-10.Invite.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-10.Invite.md -->","isInternal":false,"tokens":538,"sizeBytes":1963},{"name":"internal-11.AdminGetNotesParams.md","path":"docs/content/references/js-client/classes/internal-11.AdminGetNotesParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-11.AdminGetNotesParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminGetNotesParams.md -->","isInternal":false,"tokens":122,"sizeBytes":464},{"name":"internal-11.AdminPostNotesNoteReq.md","path":"docs/content/references/js-client/classes/internal-11.AdminPostNotesNoteReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-11.AdminPostNotesNoteReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminPostNotesNoteReq.md -->","isInternal":false,"tokens":57,"sizeBytes":216},{"name":"internal-11.AdminPostNotesReq.md","path":"docs/content/references/js-client/classes/internal-11.AdminPostNotesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-11.AdminPostNotesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.AdminPostNotesReq.md -->","isInternal":false,"tokens":123,"sizeBytes":468},{"name":"internal-11.Note.md","path":"docs/content/references/js-client/classes/internal-11.Note.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-11.Note.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-11.Note.md -->","isInternal":false,"tokens":538,"sizeBytes":1941},{"name":"internal-12.AdminGetNotificationsParams.md","path":"docs/content/references/js-client/classes/internal-12.AdminGetNotificationsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-12.AdminGetNotificationsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.AdminGetNotificationsParams.md -->","isInternal":false,"tokens":349,"sizeBytes":1440},{"name":"internal-12.AdminPostNotificationsNotificationResendReq.md","path":"docs/content/references/js-client/classes/internal-12.AdminPostNotificationsNotificationResendReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-12.AdminPostNotificationsNotificationResendReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.AdminPostNotificationsNotificationResendReq.md -->","isInternal":false,"tokens":65,"sizeBytes":281},{"name":"internal-12.Notification.md","path":"docs/content/references/js-client/classes/internal-12.Notification.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-12.Notification.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.Notification.md -->","isInternal":false,"tokens":608,"sizeBytes":2460},{"name":"internal-12.NotificationProvider.md","path":"docs/content/references/js-client/classes/internal-12.NotificationProvider.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-12.NotificationProvider.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-12.NotificationProvider.md -->","isInternal":false,"tokens":77,"sizeBytes":325},{"name":"internal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md","path":"docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsEditLineItemsLineItemReq.md -->","isInternal":false,"tokens":73,"sizeBytes":288},{"name":"internal-13.AdminPostOrderEditsEditLineItemsReq.md","path":"docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsEditLineItemsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsEditLineItemsReq.md -->","isInternal":false,"tokens":146,"sizeBytes":553},{"name":"internal-13.AdminPostOrderEditsOrderEditReq.md","path":"docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsOrderEditReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsOrderEditReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsOrderEditReq.md -->","isInternal":false,"tokens":72,"sizeBytes":277},{"name":"internal-13.AdminPostOrderEditsReq.md","path":"docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-13.AdminPostOrderEditsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.AdminPostOrderEditsReq.md -->","isInternal":false,"tokens":104,"sizeBytes":393},{"name":"internal-13.GetOrderEditsOrderEditParams.md","path":"docs/content/references/js-client/classes/internal-13.GetOrderEditsOrderEditParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-13.GetOrderEditsOrderEditParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.GetOrderEditsOrderEditParams.md -->","isInternal":false,"tokens":171,"sizeBytes":634},{"name":"internal-13.GetOrderEditsParams.md","path":"docs/content/references/js-client/classes/internal-13.GetOrderEditsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-13.GetOrderEditsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-13.GetOrderEditsParams.md -->","isInternal":false,"tokens":306,"sizeBytes":1140},{"name":"internal-14.AdditionalItem-1.md","path":"docs/content/references/js-client/classes/internal-14.AdditionalItem-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdditionalItem-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdditionalItem-1.md -->","isInternal":false,"tokens":85,"sizeBytes":340},{"name":"internal-14.AdditionalItem.md","path":"docs/content/references/js-client/classes/internal-14.AdditionalItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdditionalItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdditionalItem.md -->","isInternal":false,"tokens":85,"sizeBytes":338},{"name":"internal-14.AdminGetOrdersParams.md","path":"docs/content/references/js-client/classes/internal-14.AdminGetOrdersParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminGetOrdersParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminGetOrdersParams.md -->","isInternal":false,"tokens":1283,"sizeBytes":5131},{"name":"internal-14.AdminListOrdersSelector.md","path":"docs/content/references/js-client/classes/internal-14.AdminListOrdersSelector.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminListOrdersSelector.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminListOrdersSelector.md -->","isInternal":false,"tokens":603,"sizeBytes":2228},{"name":"internal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimFulfillmentsReq.md -->","isInternal":false,"tokens":119,"sizeBytes":459},{"name":"internal-14.AdminPostOrdersOrderClaimsClaimReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimReq.md -->","isInternal":false,"tokens":206,"sizeBytes":799},{"name":"internal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsClaimShipmentsReq.md -->","isInternal":false,"tokens":114,"sizeBytes":453},{"name":"internal-14.AdminPostOrdersOrderClaimsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderClaimsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderClaimsReq.md -->","isInternal":false,"tokens":417,"sizeBytes":1640},{"name":"internal-14.AdminPostOrdersOrderFulfillmentsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderFulfillmentsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderFulfillmentsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderFulfillmentsReq.md -->","isInternal":false,"tokens":155,"sizeBytes":595},{"name":"internal-14.AdminPostOrdersOrderRefundsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderRefundsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderRefundsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderRefundsReq.md -->","isInternal":false,"tokens":161,"sizeBytes":639},{"name":"internal-14.AdminPostOrdersOrderReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderReq.md -->","isInternal":false,"tokens":421,"sizeBytes":1727},{"name":"internal-14.AdminPostOrdersOrderReturnsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReturnsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderReturnsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderReturnsReq.md -->","isInternal":false,"tokens":250,"sizeBytes":1037},{"name":"internal-14.AdminPostOrdersOrderShipmentReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShipmentReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShipmentReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderShipmentReq.md -->","isInternal":false,"tokens":143,"sizeBytes":570},{"name":"internal-14.AdminPostOrdersOrderShippingMethodsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShippingMethodsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderShippingMethodsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderShippingMethodsReq.md -->","isInternal":false,"tokens":139,"sizeBytes":546},{"name":"internal-14.AdminPostOrdersOrderSwapsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsReq.md -->","isInternal":false,"tokens":299,"sizeBytes":1191},{"name":"internal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsSwapFulfillmentsReq.md -->","isInternal":false,"tokens":121,"sizeBytes":453},{"name":"internal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md","path":"docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.AdminPostOrdersOrderSwapsSwapShipmentsReq.md -->","isInternal":false,"tokens":155,"sizeBytes":605},{"name":"internal-14.CustomShippingOption.md","path":"docs/content/references/js-client/classes/internal-14.CustomShippingOption.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.CustomShippingOption.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.CustomShippingOption.md -->","isInternal":false,"tokens":87,"sizeBytes":342},{"name":"internal-14.Image.md","path":"docs/content/references/js-client/classes/internal-14.Image.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.Image.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Image.md -->","isInternal":false,"tokens":85,"sizeBytes":316},{"name":"internal-14.Item-1.md","path":"docs/content/references/js-client/classes/internal-14.Item-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.Item-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item-1.md -->","isInternal":false,"tokens":228,"sizeBytes":871},{"name":"internal-14.Item-2.md","path":"docs/content/references/js-client/classes/internal-14.Item-2.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.Item-2.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item-2.md -->","isInternal":false,"tokens":232,"sizeBytes":871},{"name":"internal-14.Item.md","path":"docs/content/references/js-client/classes/internal-14.Item.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.Item.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Item.md -->","isInternal":false,"tokens":87,"sizeBytes":326},{"name":"internal-14.OrdersReturnItem.md","path":"docs/content/references/js-client/classes/internal-14.OrdersReturnItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.OrdersReturnItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.OrdersReturnItem.md -->","isInternal":false,"tokens":137,"sizeBytes":504},{"name":"internal-14.PaymentMethod.md","path":"docs/content/references/js-client/classes/internal-14.PaymentMethod.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.PaymentMethod.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.PaymentMethod.md -->","isInternal":false,"tokens":97,"sizeBytes":376},{"name":"internal-14.ReturnItem.md","path":"docs/content/references/js-client/classes/internal-14.ReturnItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.ReturnItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnItem.md -->","isInternal":false,"tokens":155,"sizeBytes":586},{"name":"internal-14.ReturnShipping-1.md","path":"docs/content/references/js-client/classes/internal-14.ReturnShipping-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.ReturnShipping-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping-1.md -->","isInternal":false,"tokens":88,"sizeBytes":341},{"name":"internal-14.ReturnShipping-2.md","path":"docs/content/references/js-client/classes/internal-14.ReturnShipping-2.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.ReturnShipping-2.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping-2.md -->","isInternal":false,"tokens":91,"sizeBytes":354},{"name":"internal-14.ReturnShipping.md","path":"docs/content/references/js-client/classes/internal-14.ReturnShipping.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.ReturnShipping.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ReturnShipping.md -->","isInternal":false,"tokens":89,"sizeBytes":358},{"name":"internal-14.ShippingMethod-1.md","path":"docs/content/references/js-client/classes/internal-14.ShippingMethod-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.ShippingMethod-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod-1.md -->","isInternal":false,"tokens":124,"sizeBytes":476},{"name":"internal-14.ShippingMethod-2.md","path":"docs/content/references/js-client/classes/internal-14.ShippingMethod-2.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.ShippingMethod-2.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod-2.md -->","isInternal":false,"tokens":124,"sizeBytes":476},{"name":"internal-14.ShippingMethod.md","path":"docs/content/references/js-client/classes/internal-14.ShippingMethod.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.ShippingMethod.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.ShippingMethod.md -->","isInternal":false,"tokens":206,"sizeBytes":798},{"name":"internal-14.Tag.md","path":"docs/content/references/js-client/classes/internal-14.Tag.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-14.Tag.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-14.Tag.md -->","isInternal":false,"tokens":85,"sizeBytes":316},{"name":"internal-15.AdminUpdatePaymentCollectionsReq.md","path":"docs/content/references/js-client/classes/internal-15.AdminUpdatePaymentCollectionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-15.AdminUpdatePaymentCollectionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-15.AdminUpdatePaymentCollectionsReq.md -->","isInternal":false,"tokens":105,"sizeBytes":470},{"name":"internal-15.GetPaymentCollectionsParams.md","path":"docs/content/references/js-client/classes/internal-15.GetPaymentCollectionsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-15.GetPaymentCollectionsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-15.GetPaymentCollectionsParams.md -->","isInternal":false,"tokens":162,"sizeBytes":631},{"name":"internal-16.AdminPostPaymentRefundsReq.md","path":"docs/content/references/js-client/classes/internal-16.AdminPostPaymentRefundsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-16.AdminPostPaymentRefundsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-16.AdminPostPaymentRefundsReq.md -->","isInternal":false,"tokens":137,"sizeBytes":531},{"name":"internal-16.GetPaymentsParams.md","path":"docs/content/references/js-client/classes/internal-16.GetPaymentsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-16.GetPaymentsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-16.GetPaymentsParams.md -->","isInternal":false,"tokens":159,"sizeBytes":601},{"name":"internal-17.AdminDeletePriceListPricesPricesReq.md","path":"docs/content/references/js-client/classes/internal-17.AdminDeletePriceListPricesPricesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.AdminDeletePriceListPricesPricesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminDeletePriceListPricesPricesReq.md -->","isInternal":false,"tokens":72,"sizeBytes":270},{"name":"internal-17.AdminGetPriceListPaginationParams.md","path":"docs/content/references/js-client/classes/internal-17.AdminGetPriceListPaginationParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.AdminGetPriceListPaginationParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminGetPriceListPaginationParams.md -->","isInternal":false,"tokens":952,"sizeBytes":3700},{"name":"internal-17.AdminGetPriceListsPriceListProductsParams.md","path":"docs/content/references/js-client/classes/internal-17.AdminGetPriceListsPriceListProductsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.AdminGetPriceListsPriceListProductsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminGetPriceListsPriceListProductsParams.md -->","isInternal":false,"tokens":848,"sizeBytes":3383},{"name":"internal-17.AdminPostPriceListPricesPricesReq.md","path":"docs/content/references/js-client/classes/internal-17.AdminPostPriceListPricesPricesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.AdminPostPriceListPricesPricesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListPricesPricesReq.md -->","isInternal":false,"tokens":122,"sizeBytes":471},{"name":"internal-17.AdminPostPriceListsPriceListPriceListReq.md","path":"docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListPriceListReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListPriceListReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListsPriceListPriceListReq.md -->","isInternal":false,"tokens":433,"sizeBytes":1679},{"name":"internal-17.AdminPostPriceListsPriceListReq.md","path":"docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.AdminPostPriceListsPriceListReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPostPriceListsPriceListReq.md -->","isInternal":false,"tokens":407,"sizeBytes":1591},{"name":"internal-17.AdminPriceListPricesCreateReq.md","path":"docs/content/references/js-client/classes/internal-17.AdminPriceListPricesCreateReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.AdminPriceListPricesCreateReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPriceListPricesCreateReq.md -->","isInternal":false,"tokens":223,"sizeBytes":812},{"name":"internal-17.AdminPriceListPricesUpdateReq.md","path":"docs/content/references/js-client/classes/internal-17.AdminPriceListPricesUpdateReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.AdminPriceListPricesUpdateReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.AdminPriceListPricesUpdateReq.md -->","isInternal":false,"tokens":253,"sizeBytes":913},{"name":"internal-17.CustomerGroup-1.md","path":"docs/content/references/js-client/classes/internal-17.CustomerGroup-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.CustomerGroup-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.CustomerGroup-1.md -->","isInternal":false,"tokens":54,"sizeBytes":207},{"name":"internal-17.CustomerGroup.md","path":"docs/content/references/js-client/classes/internal-17.CustomerGroup.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.CustomerGroup.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.CustomerGroup.md -->","isInternal":false,"tokens":54,"sizeBytes":207},{"name":"internal-17.FilterablePriceListProps.md","path":"docs/content/references/js-client/classes/internal-17.FilterablePriceListProps.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-17.FilterablePriceListProps.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-17.FilterablePriceListProps.md -->","isInternal":false,"tokens":435,"sizeBytes":1643},{"name":"internal-18.AdminGetProductTagsPaginationParams.md","path":"docs/content/references/js-client/classes/internal-18.AdminGetProductTagsPaginationParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-18.AdminGetProductTagsPaginationParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-18.AdminGetProductTagsPaginationParams.md -->","isInternal":false,"tokens":126,"sizeBytes":526},{"name":"internal-18.AdminGetProductTagsParams.md","path":"docs/content/references/js-client/classes/internal-18.AdminGetProductTagsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-18.AdminGetProductTagsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-18.AdminGetProductTagsParams.md -->","isInternal":false,"tokens":515,"sizeBytes":2177},{"name":"internal-19.AdminGetProductTypesParams.md","path":"docs/content/references/js-client/classes/internal-19.AdminGetProductTypesParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-19.AdminGetProductTypesParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-19.AdminGetProductTypesParams.md -->","isInternal":false,"tokens":485,"sizeBytes":2021},{"name":"internal-2.AdminGetBatchPaginationParams.md","path":"docs/content/references/js-client/classes/internal-2.AdminGetBatchPaginationParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-2.AdminGetBatchPaginationParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminGetBatchPaginationParams.md -->","isInternal":false,"tokens":233,"sizeBytes":870},{"name":"internal-2.AdminGetBatchParams.md","path":"docs/content/references/js-client/classes/internal-2.AdminGetBatchParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-2.AdminGetBatchParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminGetBatchParams.md -->","isInternal":false,"tokens":867,"sizeBytes":3392},{"name":"internal-2.AdminPostBatchesReq.md","path":"docs/content/references/js-client/classes/internal-2.AdminPostBatchesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-2.AdminPostBatchesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.AdminPostBatchesReq.md -->","isInternal":false,"tokens":135,"sizeBytes":487},{"name":"internal-2.BatchJob.md","path":"docs/content/references/js-client/classes/internal-2.BatchJob.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-2.BatchJob.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.BatchJob.md -->","isInternal":false,"tokens":1003,"sizeBytes":3541},{"name":"internal-2.DateComparisonOperator.md","path":"docs/content/references/js-client/classes/internal-2.DateComparisonOperator.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-2.DateComparisonOperator.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-2.DateComparisonOperator.md -->","isInternal":false,"tokens":137,"sizeBytes":487},{"name":"internal-20.AdminGetProductsParams.md","path":"docs/content/references/js-client/classes/internal-20.AdminGetProductsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.AdminGetProductsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminGetProductsParams.md -->","isInternal":false,"tokens":1300,"sizeBytes":5203},{"name":"internal-20.AdminPostProductsProductMetadataReq.md","path":"docs/content/references/js-client/classes/internal-20.AdminPostProductsProductMetadataReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.AdminPostProductsProductMetadataReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductMetadataReq.md -->","isInternal":false,"tokens":87,"sizeBytes":362},{"name":"internal-20.AdminPostProductsProductOptionsOption.md","path":"docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsOption.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsOption.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductOptionsOption.md -->","isInternal":false,"tokens":58,"sizeBytes":253},{"name":"internal-20.AdminPostProductsProductOptionsReq.md","path":"docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.AdminPostProductsProductOptionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductOptionsReq.md -->","isInternal":false,"tokens":58,"sizeBytes":244},{"name":"internal-20.AdminPostProductsProductReq.md","path":"docs/content/references/js-client/classes/internal-20.AdminPostProductsProductReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.AdminPostProductsProductReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductReq.md -->","isInternal":false,"tokens":825,"sizeBytes":3430},{"name":"internal-20.AdminPostProductsProductVariantsReq.md","path":"docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductVariantsReq.md -->","isInternal":false,"tokens":719,"sizeBytes":2898},{"name":"internal-20.AdminPostProductsProductVariantsVariantReq.md","path":"docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsVariantReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.AdminPostProductsProductVariantsVariantReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsProductVariantsVariantReq.md -->","isInternal":false,"tokens":729,"sizeBytes":2936},{"name":"internal-20.AdminPostProductsReq.md","path":"docs/content/references/js-client/classes/internal-20.AdminPostProductsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.AdminPostProductsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.AdminPostProductsReq.md -->","isInternal":false,"tokens":890,"sizeBytes":3699},{"name":"internal-20.FilterableProductProps.md","path":"docs/content/references/js-client/classes/internal-20.FilterableProductProps.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.FilterableProductProps.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.FilterableProductProps.md -->","isInternal":false,"tokens":618,"sizeBytes":2317},{"name":"internal-20.ProductOptionReq.md","path":"docs/content/references/js-client/classes/internal-20.ProductOptionReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductOptionReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductOptionReq.md -->","isInternal":false,"tokens":52,"sizeBytes":213},{"name":"internal-20.ProductSalesChannelReq.md","path":"docs/content/references/js-client/classes/internal-20.ProductSalesChannelReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductSalesChannelReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductSalesChannelReq.md -->","isInternal":false,"tokens":50,"sizeBytes":192},{"name":"internal-20.ProductTagReq.md","path":"docs/content/references/js-client/classes/internal-20.ProductTagReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductTagReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductTagReq.md -->","isInternal":false,"tokens":76,"sizeBytes":279},{"name":"internal-20.ProductTypeReq.md","path":"docs/content/references/js-client/classes/internal-20.ProductTypeReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductTypeReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductTypeReq.md -->","isInternal":false,"tokens":76,"sizeBytes":281},{"name":"internal-20.ProductVariantOptionReq-1.md","path":"docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-1.md -->","isInternal":false,"tokens":89,"sizeBytes":358},{"name":"internal-20.ProductVariantOptionReq-2.md","path":"docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-2.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-2.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-2.md -->","isInternal":false,"tokens":54,"sizeBytes":227},{"name":"internal-20.ProductVariantOptionReq-3.md","path":"docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-3.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq-3.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq-3.md -->","isInternal":false,"tokens":87,"sizeBytes":358},{"name":"internal-20.ProductVariantOptionReq.md","path":"docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductVariantOptionReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantOptionReq.md -->","isInternal":false,"tokens":89,"sizeBytes":358},{"name":"internal-20.ProductVariantPricesCreateReq.md","path":"docs/content/references/js-client/classes/internal-20.ProductVariantPricesCreateReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductVariantPricesCreateReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantPricesCreateReq.md -->","isInternal":false,"tokens":190,"sizeBytes":732},{"name":"internal-20.ProductVariantPricesUpdateReq.md","path":"docs/content/references/js-client/classes/internal-20.ProductVariantPricesUpdateReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductVariantPricesUpdateReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantPricesUpdateReq.md -->","isInternal":false,"tokens":220,"sizeBytes":835},{"name":"internal-20.ProductVariantReq-1.md","path":"docs/content/references/js-client/classes/internal-20.ProductVariantReq-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductVariantReq-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantReq-1.md -->","isInternal":false,"tokens":732,"sizeBytes":3012},{"name":"internal-20.ProductVariantReq.md","path":"docs/content/references/js-client/classes/internal-20.ProductVariantReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-20.ProductVariantReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-20.ProductVariantReq.md -->","isInternal":false,"tokens":694,"sizeBytes":2864},{"name":"internal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md","path":"docs/content/references/js-client/classes/internal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminDeletePublishableApiKeySalesChannelsBatchReq.md -->","isInternal":false,"tokens":93,"sizeBytes":388},{"name":"internal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md","path":"docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeySalesChannelsBatchReq.md -->","isInternal":false,"tokens":93,"sizeBytes":381},{"name":"internal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md","path":"docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeysPublishableApiKeyReq.md -->","isInternal":false,"tokens":76,"sizeBytes":309},{"name":"internal-21.AdminPostPublishableApiKeysReq.md","path":"docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-21.AdminPostPublishableApiKeysReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.AdminPostPublishableApiKeysReq.md -->","isInternal":false,"tokens":67,"sizeBytes":264},{"name":"internal-21.GetPublishableApiKeySalesChannelsParams.md","path":"docs/content/references/js-client/classes/internal-21.GetPublishableApiKeySalesChannelsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-21.GetPublishableApiKeySalesChannelsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.GetPublishableApiKeySalesChannelsParams.md -->","isInternal":false,"tokens":29,"sizeBytes":128},{"name":"internal-21.GetPublishableApiKeysParams.md","path":"docs/content/references/js-client/classes/internal-21.GetPublishableApiKeysParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-21.GetPublishableApiKeysParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.GetPublishableApiKeysParams.md -->","isInternal":false,"tokens":281,"sizeBytes":1088},{"name":"internal-21.ProductBatchSalesChannel.md","path":"docs/content/references/js-client/classes/internal-21.ProductBatchSalesChannel.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-21.ProductBatchSalesChannel.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.ProductBatchSalesChannel.md -->","isInternal":false,"tokens":53,"sizeBytes":201},{"name":"internal-21.PublishableApiKey.md","path":"docs/content/references/js-client/classes/internal-21.PublishableApiKey.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-21.PublishableApiKey.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-21.PublishableApiKey.md -->","isInternal":false,"tokens":391,"sizeBytes":1478},{"name":"internal-22.AdminGetRegionsPaginationParams.md","path":"docs/content/references/js-client/classes/internal-22.AdminGetRegionsPaginationParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminGetRegionsPaginationParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsPaginationParams.md -->","isInternal":false,"tokens":127,"sizeBytes":507},{"name":"internal-22.AdminGetRegionsParams.md","path":"docs/content/references/js-client/classes/internal-22.AdminGetRegionsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminGetRegionsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsParams.md -->","isInternal":false,"tokens":342,"sizeBytes":1422},{"name":"internal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md","path":"docs/content/references/js-client/classes/internal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminGetRegionsRegionFulfillmentOptionsRes.md -->","isInternal":false,"tokens":84,"sizeBytes":333},{"name":"internal-22.AdminPostRegionsRegionCountriesReq.md","path":"docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionCountriesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionCountriesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionCountriesReq.md -->","isInternal":false,"tokens":63,"sizeBytes":260},{"name":"internal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md","path":"docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionFulfillmentProvidersReq.md -->","isInternal":false,"tokens":73,"sizeBytes":293},{"name":"internal-22.AdminPostRegionsRegionPaymentProvidersReq.md","path":"docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionPaymentProvidersReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionPaymentProvidersReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionPaymentProvidersReq.md -->","isInternal":false,"tokens":66,"sizeBytes":281},{"name":"internal-22.AdminPostRegionsRegionReq.md","path":"docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminPostRegionsRegionReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsRegionReq.md -->","isInternal":false,"tokens":491,"sizeBytes":1911},{"name":"internal-22.AdminPostRegionsReq.md","path":"docs/content/references/js-client/classes/internal-22.AdminPostRegionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminPostRegionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminPostRegionsReq.md -->","isInternal":false,"tokens":344,"sizeBytes":1353},{"name":"internal-22.AdminRegionsRes.md","path":"docs/content/references/js-client/classes/internal-22.AdminRegionsRes.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.AdminRegionsRes.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.AdminRegionsRes.md -->","isInternal":false,"tokens":56,"sizeBytes":224},{"name":"internal-22.FulfillmentOption.md","path":"docs/content/references/js-client/classes/internal-22.FulfillmentOption.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-22.FulfillmentOption.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-22.FulfillmentOption.md -->","isInternal":false,"tokens":89,"sizeBytes":335},{"name":"internal-23.AdminPostReturnReasonsReasonReq.md","path":"docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReasonReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReasonReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-23.AdminPostReturnReasonsReasonReq.md -->","isInternal":false,"tokens":183,"sizeBytes":706},{"name":"internal-23.AdminPostReturnReasonsReq.md","path":"docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-23.AdminPostReturnReasonsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-23.AdminPostReturnReasonsReq.md -->","isInternal":false,"tokens":223,"sizeBytes":850},{"name":"internal-24.AdminGetReturnsParams.md","path":"docs/content/references/js-client/classes/internal-24.AdminGetReturnsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-24.AdminGetReturnsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.AdminGetReturnsParams.md -->","isInternal":false,"tokens":93,"sizeBytes":360},{"name":"internal-24.AdminPostReturnsReturnReceiveReq.md","path":"docs/content/references/js-client/classes/internal-24.AdminPostReturnsReturnReceiveReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-24.AdminPostReturnsReturnReceiveReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.AdminPostReturnsReturnReceiveReq.md -->","isInternal":false,"tokens":102,"sizeBytes":400},{"name":"internal-24.Item.md","path":"docs/content/references/js-client/classes/internal-24.Item.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-24.Item.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-24.Item.md -->","isInternal":false,"tokens":85,"sizeBytes":318},{"name":"internal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md","path":"docs/content/references/js-client/classes/internal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminDeleteSalesChannelsChannelProductsBatchReq.md -->","isInternal":false,"tokens":85,"sizeBytes":364},{"name":"internal-25.AdminGetSalesChannelsParams.md","path":"docs/content/references/js-client/classes/internal-25.AdminGetSalesChannelsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-25.AdminGetSalesChannelsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminGetSalesChannelsParams.md -->","isInternal":false,"tokens":572,"sizeBytes":2286},{"name":"internal-25.AdminPostSalesChannelsChannelProductsBatchReq.md","path":"docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsChannelProductsBatchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsChannelProductsBatchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsChannelProductsBatchReq.md -->","isInternal":false,"tokens":85,"sizeBytes":356},{"name":"internal-25.AdminPostSalesChannelsReq.md","path":"docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsReq.md -->","isInternal":false,"tokens":133,"sizeBytes":542},{"name":"internal-25.AdminPostSalesChannelsSalesChannelReq.md","path":"docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsSalesChannelReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-25.AdminPostSalesChannelsSalesChannelReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-25.AdminPostSalesChannelsSalesChannelReq.md -->","isInternal":false,"tokens":143,"sizeBytes":588},{"name":"internal-26.AdminGetShippingOptionsParams.md","path":"docs/content/references/js-client/classes/internal-26.AdminGetShippingOptionsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-26.AdminGetShippingOptionsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminGetShippingOptionsParams.md -->","isInternal":false,"tokens":147,"sizeBytes":590},{"name":"internal-26.AdminPostShippingOptionsOptionReq.md","path":"docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsOptionReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsOptionReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminPostShippingOptionsOptionReq.md -->","isInternal":false,"tokens":267,"sizeBytes":1115},{"name":"internal-26.AdminPostShippingOptionsReq.md","path":"docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-26.AdminPostShippingOptionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.AdminPostShippingOptionsReq.md -->","isInternal":false,"tokens":490,"sizeBytes":2013},{"name":"internal-26.OptionRequirement-1.md","path":"docs/content/references/js-client/classes/internal-26.OptionRequirement-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-26.OptionRequirement-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.OptionRequirement-1.md -->","isInternal":false,"tokens":120,"sizeBytes":499},{"name":"internal-26.OptionRequirement.md","path":"docs/content/references/js-client/classes/internal-26.OptionRequirement.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-26.OptionRequirement.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-26.OptionRequirement.md -->","isInternal":false,"tokens":87,"sizeBytes":368},{"name":"internal-27.AdminPostShippingProfilesProfileReq.md","path":"docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesProfileReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesProfileReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-27.AdminPostShippingProfilesProfileReq.md -->","isInternal":false,"tokens":66,"sizeBytes":277},{"name":"internal-27.AdminPostShippingProfilesReq.md","path":"docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-27.AdminPostShippingProfilesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-27.AdminPostShippingProfilesReq.md -->","isInternal":false,"tokens":61,"sizeBytes":252},{"name":"internal-28.AdminPostStoreReq.md","path":"docs/content/references/js-client/classes/internal-28.AdminPostStoreReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-28.AdminPostStoreReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-28.AdminPostStoreReq.md -->","isInternal":false,"tokens":292,"sizeBytes":1150},{"name":"internal-28.Store.md","path":"docs/content/references/js-client/classes/internal-28.Store.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-28.Store.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-28.Store.md -->","isInternal":false,"tokens":572,"sizeBytes":2219},{"name":"internal-29.AdminGetSwapsParams.md","path":"docs/content/references/js-client/classes/internal-29.AdminGetSwapsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-29.AdminGetSwapsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-29.AdminGetSwapsParams.md -->","isInternal":false,"tokens":95,"sizeBytes":348},{"name":"internal-3.AdminDeleteProductsFromCollectionReq.md","path":"docs/content/references/js-client/classes/internal-3.AdminDeleteProductsFromCollectionReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-3.AdminDeleteProductsFromCollectionReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminDeleteProductsFromCollectionReq.md -->","isInternal":false,"tokens":65,"sizeBytes":271},{"name":"internal-3.AdminGetCollectionsPaginationParams.md","path":"docs/content/references/js-client/classes/internal-3.AdminGetCollectionsPaginationParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-3.AdminGetCollectionsPaginationParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminGetCollectionsPaginationParams.md -->","isInternal":false,"tokens":121,"sizeBytes":520},{"name":"internal-3.AdminGetCollectionsParams.md","path":"docs/content/references/js-client/classes/internal-3.AdminGetCollectionsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-3.AdminGetCollectionsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminGetCollectionsParams.md -->","isInternal":false,"tokens":480,"sizeBytes":2057},{"name":"internal-3.AdminPostCollectionsCollectionReq.md","path":"docs/content/references/js-client/classes/internal-3.AdminPostCollectionsCollectionReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-3.AdminPostCollectionsCollectionReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostCollectionsCollectionReq.md -->","isInternal":false,"tokens":134,"sizeBytes":566},{"name":"internal-3.AdminPostCollectionsReq.md","path":"docs/content/references/js-client/classes/internal-3.AdminPostCollectionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-3.AdminPostCollectionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostCollectionsReq.md -->","isInternal":false,"tokens":129,"sizeBytes":535},{"name":"internal-3.AdminPostProductsToCollectionReq.md","path":"docs/content/references/js-client/classes/internal-3.AdminPostProductsToCollectionReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-3.AdminPostProductsToCollectionReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-3.AdminPostProductsToCollectionReq.md -->","isInternal":false,"tokens":65,"sizeBytes":260},{"name":"internal-30.AdminDeleteTaxRatesTaxRateProductsParams.md","path":"docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductsParams.md -->","isInternal":false,"tokens":109,"sizeBytes":426},{"name":"internal-30.AdminDeleteTaxRatesTaxRateProductsReq.md","path":"docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductsReq.md -->","isInternal":false,"tokens":68,"sizeBytes":269},{"name":"internal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md","path":"docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductTypesParams.md -->","isInternal":false,"tokens":113,"sizeBytes":444},{"name":"internal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md","path":"docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateProductTypesReq.md -->","isInternal":false,"tokens":75,"sizeBytes":294},{"name":"internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md","path":"docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateShippingOptionsParams.md -->","isInternal":false,"tokens":115,"sizeBytes":456},{"name":"internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md","path":"docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminDeleteTaxRatesTaxRateShippingOptionsReq.md -->","isInternal":false,"tokens":76,"sizeBytes":309},{"name":"internal-30.AdminGetTaxRatesParams.md","path":"docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminGetTaxRatesParams.md -->","isInternal":false,"tokens":354,"sizeBytes":1275},{"name":"internal-30.AdminGetTaxRatesTaxRateParams.md","path":"docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesTaxRateParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminGetTaxRatesTaxRateParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminGetTaxRatesTaxRateParams.md -->","isInternal":false,"tokens":107,"sizeBytes":386},{"name":"internal-30.AdminPostTaxRatesReq.md","path":"docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesReq.md -->","isInternal":false,"tokens":292,"sizeBytes":1075},{"name":"internal-30.AdminPostTaxRatesTaxRateProductsReq.md","path":"docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateProductsReq.md -->","isInternal":false,"tokens":68,"sizeBytes":260},{"name":"internal-30.AdminPostTaxRatesTaxRateProductTypesReq.md","path":"docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductTypesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateProductTypesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateProductTypesReq.md -->","isInternal":false,"tokens":75,"sizeBytes":285},{"name":"internal-30.AdminPostTaxRatesTaxRateReq.md","path":"docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateReq.md -->","isInternal":false,"tokens":305,"sizeBytes":1122},{"name":"internal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md","path":"docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.AdminPostTaxRatesTaxRateShippingOptionsReq.md -->","isInternal":false,"tokens":76,"sizeBytes":300},{"name":"internal-30.NumericalComparisonOperator.md","path":"docs/content/references/js-client/classes/internal-30.NumericalComparisonOperator.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-30.NumericalComparisonOperator.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-30.NumericalComparisonOperator.md -->","isInternal":false,"tokens":139,"sizeBytes":506},{"name":"internal-31.AdminDeleteUploadsReq.md","path":"docs/content/references/js-client/classes/internal-31.AdminDeleteUploadsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-31.AdminDeleteUploadsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.AdminDeleteUploadsReq.md -->","isInternal":false,"tokens":60,"sizeBytes":228},{"name":"internal-31.AdminPostUploadsDownloadUrlReq.md","path":"docs/content/references/js-client/classes/internal-31.AdminPostUploadsDownloadUrlReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-31.AdminPostUploadsDownloadUrlReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.AdminPostUploadsDownloadUrlReq.md -->","isInternal":false,"tokens":65,"sizeBytes":249},{"name":"internal-31.IAdminPostUploadsFileReq.md","path":"docs/content/references/js-client/classes/internal-31.IAdminPostUploadsFileReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-31.IAdminPostUploadsFileReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-31.IAdminPostUploadsFileReq.md -->","isInternal":false,"tokens":91,"sizeBytes":356},{"name":"internal-32.AdminCreateUserRequest.md","path":"docs/content/references/js-client/classes/internal-32.AdminCreateUserRequest.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-32.AdminCreateUserRequest.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminCreateUserRequest.md -->","isInternal":false,"tokens":197,"sizeBytes":772},{"name":"internal-32.AdminResetPasswordRequest.md","path":"docs/content/references/js-client/classes/internal-32.AdminResetPasswordRequest.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-32.AdminResetPasswordRequest.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminResetPasswordRequest.md -->","isInternal":false,"tokens":115,"sizeBytes":478},{"name":"internal-32.AdminResetPasswordTokenRequest.md","path":"docs/content/references/js-client/classes/internal-32.AdminResetPasswordTokenRequest.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-32.AdminResetPasswordTokenRequest.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminResetPasswordTokenRequest.md -->","isInternal":false,"tokens":57,"sizeBytes":243},{"name":"internal-32.AdminUpdateUserRequest.md","path":"docs/content/references/js-client/classes/internal-32.AdminUpdateUserRequest.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-32.AdminUpdateUserRequest.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-32.AdminUpdateUserRequest.md -->","isInternal":false,"tokens":215,"sizeBytes":826},{"name":"internal-33.AdminGetVariantsParams.md","path":"docs/content/references/js-client/classes/internal-33.AdminGetVariantsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-33.AdminGetVariantsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.AdminGetVariantsParams.md -->","isInternal":false,"tokens":639,"sizeBytes":2528},{"name":"internal-33.AdminPriceSelectionParams.md","path":"docs/content/references/js-client/classes/internal-33.AdminPriceSelectionParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-33.AdminPriceSelectionParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.AdminPriceSelectionParams.md -->","isInternal":false,"tokens":307,"sizeBytes":1223},{"name":"internal-33.PriceSelectionParams.md","path":"docs/content/references/js-client/classes/internal-33.PriceSelectionParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-33.PriceSelectionParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-33.PriceSelectionParams.md -->","isInternal":false,"tokens":195,"sizeBytes":756},{"name":"internal-34.StorePostAuthReq.md","path":"docs/content/references/js-client/classes/internal-34.StorePostAuthReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-34.StorePostAuthReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-34.StorePostAuthReq.md -->","isInternal":false,"tokens":83,"sizeBytes":330},{"name":"internal-35.Discount.md","path":"docs/content/references/js-client/classes/internal-35.Discount.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-35.Discount.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.Discount.md -->","isInternal":false,"tokens":49,"sizeBytes":189},{"name":"internal-35.GiftCard.md","path":"docs/content/references/js-client/classes/internal-35.GiftCard.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-35.GiftCard.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.GiftCard.md -->","isInternal":false,"tokens":51,"sizeBytes":189},{"name":"internal-35.Item.md","path":"docs/content/references/js-client/classes/internal-35.Item.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-35.Item.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.Item.md -->","isInternal":false,"tokens":83,"sizeBytes":314},{"name":"internal-35.StorePostCartReq.md","path":"docs/content/references/js-client/classes/internal-35.StorePostCartReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-35.StorePostCartReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartReq.md -->","isInternal":false,"tokens":214,"sizeBytes":796},{"name":"internal-35.StorePostCartsCartPaymentSessionReq.md","path":"docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartPaymentSessionReq.md -->","isInternal":false,"tokens":68,"sizeBytes":266},{"name":"internal-35.StorePostCartsCartPaymentSessionUpdateReq.md","path":"docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionUpdateReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-35.StorePostCartsCartPaymentSessionUpdateReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartPaymentSessionUpdateReq.md -->","isInternal":false,"tokens":74,"sizeBytes":287},{"name":"internal-35.StorePostCartsCartReq.md","path":"docs/content/references/js-client/classes/internal-35.StorePostCartsCartReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-35.StorePostCartsCartReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartReq.md -->","isInternal":false,"tokens":432,"sizeBytes":1660},{"name":"internal-35.StorePostCartsCartShippingMethodReq.md","path":"docs/content/references/js-client/classes/internal-35.StorePostCartsCartShippingMethodReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-35.StorePostCartsCartShippingMethodReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-35.StorePostCartsCartShippingMethodReq.md -->","isInternal":false,"tokens":112,"sizeBytes":411},{"name":"internal-36.StoreGetCollectionsParams.md","path":"docs/content/references/js-client/classes/internal-36.StoreGetCollectionsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-36.StoreGetCollectionsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-36.StoreGetCollectionsParams.md -->","isInternal":false,"tokens":225,"sizeBytes":937},{"name":"internal-37.StoreGetCustomersCustomerOrdersPaginationParams.md","path":"docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersPaginationParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersPaginationParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StoreGetCustomersCustomerOrdersPaginationParams.md -->","isInternal":false,"tokens":195,"sizeBytes":832},{"name":"internal-37.StoreGetCustomersCustomerOrdersParams.md","path":"docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-37.StoreGetCustomersCustomerOrdersParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StoreGetCustomersCustomerOrdersParams.md -->","isInternal":false,"tokens":931,"sizeBytes":3945},{"name":"internal-37.StorePostCustomersCustomerPasswordTokenReq.md","path":"docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerPasswordTokenReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerPasswordTokenReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersCustomerPasswordTokenReq.md -->","isInternal":false,"tokens":62,"sizeBytes":271},{"name":"internal-37.StorePostCustomersCustomerReq.md","path":"docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-37.StorePostCustomersCustomerReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersCustomerReq.md -->","isInternal":false,"tokens":295,"sizeBytes":1177},{"name":"internal-37.StorePostCustomersReq.md","path":"docs/content/references/js-client/classes/internal-37.StorePostCustomersReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-37.StorePostCustomersReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersReq.md -->","isInternal":false,"tokens":191,"sizeBytes":756},{"name":"internal-37.StorePostCustomersResetPasswordReq.md","path":"docs/content/references/js-client/classes/internal-37.StorePostCustomersResetPasswordReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-37.StorePostCustomersResetPasswordReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-37.StorePostCustomersResetPasswordReq.md -->","isInternal":false,"tokens":119,"sizeBytes":497},{"name":"internal-39.StorePostCartsCartLineItemsItemReq.md","path":"docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsItemReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsItemReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-39.StorePostCartsCartLineItemsItemReq.md -->","isInternal":false,"tokens":66,"sizeBytes":253},{"name":"internal-39.StorePostCartsCartLineItemsReq.md","path":"docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-39.StorePostCartsCartLineItemsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-39.StorePostCartsCartLineItemsReq.md -->","isInternal":false,"tokens":144,"sizeBytes":552},{"name":"internal-4.AdminGetCurrenciesParams.md","path":"docs/content/references/js-client/classes/internal-4.AdminGetCurrenciesParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-4.AdminGetCurrenciesParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.AdminGetCurrenciesParams.md -->","isInternal":false,"tokens":279,"sizeBytes":1114},{"name":"internal-4.AdminPostCurrenciesCurrencyReq.md","path":"docs/content/references/js-client/classes/internal-4.AdminPostCurrenciesCurrencyReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-4.AdminPostCurrenciesCurrencyReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.AdminPostCurrenciesCurrencyReq.md -->","isInternal":false,"tokens":67,"sizeBytes":270},{"name":"internal-4.FindPaginationParams.md","path":"docs/content/references/js-client/classes/internal-4.FindPaginationParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-4.FindPaginationParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-4.FindPaginationParams.md -->","isInternal":false,"tokens":151,"sizeBytes":591},{"name":"internal-40.StorePostOrderEditsOrderEditDecline.md","path":"docs/content/references/js-client/classes/internal-40.StorePostOrderEditsOrderEditDecline.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-40.StorePostOrderEditsOrderEditDecline.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-40.StorePostOrderEditsOrderEditDecline.md -->","isInternal":false,"tokens":77,"sizeBytes":290},{"name":"internal-41.ShippingAddressPayload.md","path":"docs/content/references/js-client/classes/internal-41.ShippingAddressPayload.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-41.ShippingAddressPayload.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.ShippingAddressPayload.md -->","isInternal":false,"tokens":60,"sizeBytes":245},{"name":"internal-41.StoreGetOrdersParams.md","path":"docs/content/references/js-client/classes/internal-41.StoreGetOrdersParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-41.StoreGetOrdersParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StoreGetOrdersParams.md -->","isInternal":false,"tokens":137,"sizeBytes":552},{"name":"internal-41.StorePostCustomersCustomerAcceptClaimReq.md","path":"docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerAcceptClaimReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerAcceptClaimReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StorePostCustomersCustomerAcceptClaimReq.md -->","isInternal":false,"tokens":62,"sizeBytes":265},{"name":"internal-41.StorePostCustomersCustomerOrderClaimReq.md","path":"docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerOrderClaimReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-41.StorePostCustomersCustomerOrderClaimReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-41.StorePostCustomersCustomerOrderClaimReq.md -->","isInternal":false,"tokens":66,"sizeBytes":267},{"name":"internal-42.StorePaymentCollectionSessionsReq.md","path":"docs/content/references/js-client/classes/internal-42.StorePaymentCollectionSessionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-42.StorePaymentCollectionSessionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePaymentCollectionSessionsReq.md -->","isInternal":false,"tokens":63,"sizeBytes":279},{"name":"internal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md","path":"docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsBatchSessionsAuthorizeReq.md -->","isInternal":false,"tokens":75,"sizeBytes":329},{"name":"internal-42.StorePostPaymentCollectionsBatchSessionsReq.md","path":"docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsBatchSessionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsBatchSessionsReq.md -->","isInternal":false,"tokens":84,"sizeBytes":390},{"name":"internal-42.StorePostPaymentCollectionsSessionsReq.md","path":"docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsSessionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-42.StorePostPaymentCollectionsSessionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-42.StorePostPaymentCollectionsSessionsReq.md -->","isInternal":false,"tokens":145,"sizeBytes":616},{"name":"internal-44.StoreGetProductTypesParams.md","path":"docs/content/references/js-client/classes/internal-44.StoreGetProductTypesParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-44.StoreGetProductTypesParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-44.StoreGetProductTypesParams.md -->","isInternal":false,"tokens":485,"sizeBytes":2021},{"name":"internal-45.StoreGetVariantsParams.md","path":"docs/content/references/js-client/classes/internal-45.StoreGetVariantsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-45.StoreGetVariantsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-45.StoreGetVariantsParams.md -->","isInternal":false,"tokens":525,"sizeBytes":2052},{"name":"internal-46.StoreGetProductsPaginationParams.md","path":"docs/content/references/js-client/classes/internal-46.StoreGetProductsPaginationParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-46.StoreGetProductsPaginationParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StoreGetProductsPaginationParams.md -->","isInternal":false,"tokens":402,"sizeBytes":1649},{"name":"internal-46.StoreGetProductsParams.md","path":"docs/content/references/js-client/classes/internal-46.StoreGetProductsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-46.StoreGetProductsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StoreGetProductsParams.md -->","isInternal":false,"tokens":993,"sizeBytes":4150},{"name":"internal-46.StorePostSearchReq.md","path":"docs/content/references/js-client/classes/internal-46.StorePostSearchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-46.StorePostSearchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-46.StorePostSearchReq.md -->","isInternal":false,"tokens":149,"sizeBytes":585},{"name":"internal-49.Item.md","path":"docs/content/references/js-client/classes/internal-49.Item.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-49.Item.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.Item.md -->","isInternal":false,"tokens":153,"sizeBytes":586},{"name":"internal-49.ReturnShipping.md","path":"docs/content/references/js-client/classes/internal-49.ReturnShipping.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-49.ReturnShipping.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.ReturnShipping.md -->","isInternal":false,"tokens":55,"sizeBytes":217},{"name":"internal-49.StorePostReturnsReq.md","path":"docs/content/references/js-client/classes/internal-49.StorePostReturnsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-49.StorePostReturnsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-49.StorePostReturnsReq.md -->","isInternal":false,"tokens":142,"sizeBytes":560},{"name":"internal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md","path":"docs/content/references/js-client/classes/internal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminDeleteCustomerGroupsGroupCustomerBatchReq.md -->","isInternal":false,"tokens":84,"sizeBytes":370},{"name":"internal-5.AdminGetCustomerGroupsGroupParams.md","path":"docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsGroupParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsGroupParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomerGroupsGroupParams.md -->","isInternal":false,"tokens":168,"sizeBytes":648},{"name":"internal-5.AdminGetCustomerGroupsParams.md","path":"docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.AdminGetCustomerGroupsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomerGroupsParams.md -->","isInternal":false,"tokens":656,"sizeBytes":2711},{"name":"internal-5.AdminGetCustomersParams.md","path":"docs/content/references/js-client/classes/internal-5.AdminGetCustomersParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.AdminGetCustomersParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminGetCustomersParams.md -->","isInternal":false,"tokens":278,"sizeBytes":1100},{"name":"internal-5.AdminListCustomerSelector.md","path":"docs/content/references/js-client/classes/internal-5.AdminListCustomerSelector.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.AdminListCustomerSelector.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminListCustomerSelector.md -->","isInternal":false,"tokens":116,"sizeBytes":438},{"name":"internal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md","path":"docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsGroupCustomersBatchReq.md -->","isInternal":false,"tokens":84,"sizeBytes":365},{"name":"internal-5.AdminPostCustomerGroupsGroupReq.md","path":"docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsGroupReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsGroupReq.md -->","isInternal":false,"tokens":107,"sizeBytes":437},{"name":"internal-5.AdminPostCustomerGroupsReq.md","path":"docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.AdminPostCustomerGroupsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.AdminPostCustomerGroupsReq.md -->","isInternal":false,"tokens":102,"sizeBytes":416},{"name":"internal-5.CustomerGroupsBatchCustomer.md","path":"docs/content/references/js-client/classes/internal-5.CustomerGroupsBatchCustomer.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.CustomerGroupsBatchCustomer.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.CustomerGroupsBatchCustomer.md -->","isInternal":false,"tokens":51,"sizeBytes":208},{"name":"internal-5.FilterableCustomerGroupProps.md","path":"docs/content/references/js-client/classes/internal-5.FilterableCustomerGroupProps.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.FilterableCustomerGroupProps.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.FilterableCustomerGroupProps.md -->","isInternal":false,"tokens":292,"sizeBytes":1161},{"name":"internal-5.FindParams.md","path":"docs/content/references/js-client/classes/internal-5.FindParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.FindParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.FindParams.md -->","isInternal":false,"tokens":272,"sizeBytes":1160},{"name":"internal-5.StringComparisonOperator.md","path":"docs/content/references/js-client/classes/internal-5.StringComparisonOperator.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-5.StringComparisonOperator.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-5.StringComparisonOperator.md -->","isInternal":false,"tokens":136,"sizeBytes":499},{"name":"internal-50.StoreGetShippingOptionsParams.md","path":"docs/content/references/js-client/classes/internal-50.StoreGetShippingOptionsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-50.StoreGetShippingOptionsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-50.StoreGetShippingOptionsParams.md -->","isInternal":false,"tokens":141,"sizeBytes":563},{"name":"internal-51.AdditionalItem.md","path":"docs/content/references/js-client/classes/internal-51.AdditionalItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-51.AdditionalItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.AdditionalItem.md -->","isInternal":false,"tokens":87,"sizeBytes":336},{"name":"internal-51.Item.md","path":"docs/content/references/js-client/classes/internal-51.Item.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-51.Item.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.Item.md -->","isInternal":false,"tokens":157,"sizeBytes":570},{"name":"internal-51.StorePostSwapsReq.md","path":"docs/content/references/js-client/classes/internal-51.StorePostSwapsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-51.StorePostSwapsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-51.StorePostSwapsReq.md -->","isInternal":false,"tokens":193,"sizeBytes":717},{"name":"internal-6.AdminPostCustomersCustomerReq.md","path":"docs/content/references/js-client/classes/internal-6.AdminPostCustomersCustomerReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-6.AdminPostCustomersCustomerReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.AdminPostCustomersCustomerReq.md -->","isInternal":false,"tokens":289,"sizeBytes":1137},{"name":"internal-6.AdminPostCustomersReq.md","path":"docs/content/references/js-client/classes/internal-6.AdminPostCustomersReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-6.AdminPostCustomersReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.AdminPostCustomersReq.md -->","isInternal":false,"tokens":233,"sizeBytes":914},{"name":"internal-6.Group.md","path":"docs/content/references/js-client/classes/internal-6.Group.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-6.Group.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-6.Group.md -->","isInternal":false,"tokens":50,"sizeBytes":186},{"name":"internal-7.AdminCreateCondition.md","path":"docs/content/references/js-client/classes/internal-7.AdminCreateCondition.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminCreateCondition.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminCreateCondition.md -->","isInternal":false,"tokens":456,"sizeBytes":1843},{"name":"internal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md","path":"docs/content/references/js-client/classes/internal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminDeleteDiscountsDiscountConditionsConditionBatchReq.md -->","isInternal":false,"tokens":77,"sizeBytes":334},{"name":"internal-7.AdminGetDiscountsDiscountConditionsConditionParams.md","path":"docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountConditionsConditionParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountConditionsConditionParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsDiscountConditionsConditionParams.md -->","isInternal":false,"tokens":174,"sizeBytes":699},{"name":"internal-7.AdminGetDiscountsDiscountRuleParams.md","path":"docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountRuleParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminGetDiscountsDiscountRuleParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsDiscountRuleParams.md -->","isInternal":false,"tokens":109,"sizeBytes":445},{"name":"internal-7.AdminGetDiscountsParams.md","path":"docs/content/references/js-client/classes/internal-7.AdminGetDiscountsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminGetDiscountsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminGetDiscountsParams.md -->","isInternal":false,"tokens":396,"sizeBytes":1532},{"name":"internal-7.AdminPostDiscountsDiscountConditions.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditions.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditions.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditions.md -->","isInternal":false,"tokens":464,"sizeBytes":1892},{"name":"internal-7.AdminPostDiscountsDiscountConditionsCondition.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsCondition.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsCondition.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsCondition.md -->","isInternal":false,"tokens":426,"sizeBytes":1720},{"name":"internal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionBatchParams.md -->","isInternal":false,"tokens":177,"sizeBytes":717},{"name":"internal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionBatchReq.md -->","isInternal":false,"tokens":77,"sizeBytes":325},{"name":"internal-7.AdminPostDiscountsDiscountConditionsConditionParams.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsConditionParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsConditionParams.md -->","isInternal":false,"tokens":174,"sizeBytes":702},{"name":"internal-7.AdminPostDiscountsDiscountConditionsParams.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountConditionsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountConditionsParams.md -->","isInternal":false,"tokens":171,"sizeBytes":675},{"name":"internal-7.AdminPostDiscountsDiscountDynamicCodesReq.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountDynamicCodesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountDynamicCodesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountDynamicCodesReq.md -->","isInternal":false,"tokens":144,"sizeBytes":570},{"name":"internal-7.AdminPostDiscountsDiscountReq.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountReq.md -->","isInternal":false,"tokens":389,"sizeBytes":1508},{"name":"internal-7.AdminPostDiscountsDiscountRule.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountRule.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsDiscountRule.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsDiscountRule.md -->","isInternal":false,"tokens":222,"sizeBytes":938},{"name":"internal-7.AdminPostDiscountsReq.md","path":"docs/content/references/js-client/classes/internal-7.AdminPostDiscountsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminPostDiscountsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminPostDiscountsReq.md -->","isInternal":false,"tokens":402,"sizeBytes":1562},{"name":"internal-7.AdminUpdateDiscountRule.md","path":"docs/content/references/js-client/classes/internal-7.AdminUpdateDiscountRule.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminUpdateDiscountRule.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpdateDiscountRule.md -->","isInternal":false,"tokens":215,"sizeBytes":891},{"name":"internal-7.AdminUpsertCondition.md","path":"docs/content/references/js-client/classes/internal-7.AdminUpsertCondition.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminUpsertCondition.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpsertCondition.md -->","isInternal":false,"tokens":493,"sizeBytes":1971},{"name":"internal-7.AdminUpsertConditionsReq.md","path":"docs/content/references/js-client/classes/internal-7.AdminUpsertConditionsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-7.AdminUpsertConditionsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-7.AdminUpsertConditionsReq.md -->","isInternal":false,"tokens":292,"sizeBytes":1136},{"name":"internal-8.AdminGetDraftOrdersParams.md","path":"docs/content/references/js-client/classes/internal-8.AdminGetDraftOrdersParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.AdminGetDraftOrdersParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminGetDraftOrdersParams.md -->","isInternal":false,"tokens":135,"sizeBytes":517},{"name":"internal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md","path":"docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderLineItemsItemReq.md -->","isInternal":false,"tokens":189,"sizeBytes":745},{"name":"internal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md","path":"docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderLineItemsReq.md -->","isInternal":false,"tokens":223,"sizeBytes":875},{"name":"internal-8.AdminPostDraftOrdersDraftOrderReq.md","path":"docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersDraftOrderReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersDraftOrderReq.md -->","isInternal":false,"tokens":379,"sizeBytes":1508},{"name":"internal-8.AdminPostDraftOrdersReq.md","path":"docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.AdminPostDraftOrdersReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.AdminPostDraftOrdersReq.md -->","isInternal":false,"tokens":496,"sizeBytes":1964},{"name":"internal-8.Discount-1.md","path":"docs/content/references/js-client/classes/internal-8.Discount-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.Discount-1.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Discount-1.md -->","isInternal":false,"tokens":52,"sizeBytes":202},{"name":"internal-8.Discount.md","path":"docs/content/references/js-client/classes/internal-8.Discount.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.Discount.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Discount.md -->","isInternal":false,"tokens":52,"sizeBytes":202},{"name":"internal-8.Item.md","path":"docs/content/references/js-client/classes/internal-8.Item.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.Item.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.Item.md -->","isInternal":false,"tokens":212,"sizeBytes":814},{"name":"internal-8.ShippingMethod.md","path":"docs/content/references/js-client/classes/internal-8.ShippingMethod.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-8.ShippingMethod.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-8.ShippingMethod.md -->","isInternal":false,"tokens":138,"sizeBytes":526},{"name":"internal-9.AdminGetGiftCardsParams.md","path":"docs/content/references/js-client/classes/internal-9.AdminGetGiftCardsParams.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-9.AdminGetGiftCardsParams.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminGetGiftCardsParams.md -->","isInternal":false,"tokens":135,"sizeBytes":479},{"name":"internal-9.AdminPostGiftCardsGiftCardReq.md","path":"docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsGiftCardReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsGiftCardReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminPostGiftCardsGiftCardReq.md -->","isInternal":false,"tokens":236,"sizeBytes":853},{"name":"internal-9.AdminPostGiftCardsReq.md","path":"docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal-9.AdminPostGiftCardsReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal-9.AdminPostGiftCardsReq.md -->","isInternal":false,"tokens":229,"sizeBytes":822},{"name":"internal.Address.md","path":"docs/content/references/js-client/classes/internal.Address.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Address.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Address.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":809,"sizeBytes":3011},{"name":"internal.AddressCreatePayload.md","path":"docs/content/references/js-client/classes/internal.AddressCreatePayload.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.AddressCreatePayload.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.AddressCreatePayload.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":330,"sizeBytes":1250},{"name":"internal.AddressPayload.md","path":"docs/content/references/js-client/classes/internal.AddressPayload.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.AddressPayload.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.AddressPayload.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":402,"sizeBytes":1526},{"name":"internal.Axios.md","path":"docs/content/references/js-client/classes/internal.Axios.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Axios.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Axios.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1754,"sizeBytes":5387},{"name":"internal.BaseEntity.md","path":"docs/content/references/js-client/classes/internal.BaseEntity.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.BaseEntity.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.BaseEntity.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":325,"sizeBytes":1217},{"name":"internal.Cart.md","path":"docs/content/references/js-client/classes/internal.Cart.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Cart.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Cart.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1626,"sizeBytes":6085},{"name":"internal.ClaimImage.md","path":"docs/content/references/js-client/classes/internal.ClaimImage.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ClaimImage.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimImage.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":503,"sizeBytes":1846},{"name":"internal.ClaimItem.md","path":"docs/content/references/js-client/classes/internal.ClaimItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ClaimItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimItem.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":766,"sizeBytes":2820},{"name":"internal.ClaimOrder.md","path":"docs/content/references/js-client/classes/internal.ClaimOrder.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ClaimOrder.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimOrder.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":972,"sizeBytes":3632},{"name":"internal.ClaimTag.md","path":"docs/content/references/js-client/classes/internal.ClaimTag.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ClaimTag.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ClaimTag.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":430,"sizeBytes":1584},{"name":"internal.Client.md","path":"docs/content/references/js-client/classes/internal.Client.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Client.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Client.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1192,"sizeBytes":4312},{"name":"internal.Country.md","path":"docs/content/references/js-client/classes/internal.Country.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Country.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Country.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":263,"sizeBytes":926},{"name":"internal.Currency.md","path":"docs/content/references/js-client/classes/internal.Currency.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Currency.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Currency.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":168,"sizeBytes":631},{"name":"internal.Customer.md","path":"docs/content/references/js-client/classes/internal.Customer.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Customer.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Customer.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":731,"sizeBytes":2791},{"name":"internal.CustomerGroup.md","path":"docs/content/references/js-client/classes/internal.CustomerGroup.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.CustomerGroup.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.CustomerGroup.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":497,"sizeBytes":1892},{"name":"internal.Discount.md","path":"docs/content/references/js-client/classes/internal.Discount.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Discount.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Discount.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":816,"sizeBytes":3001},{"name":"internal.DiscountCondition.md","path":"docs/content/references/js-client/classes/internal.DiscountCondition.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.DiscountCondition.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DiscountCondition.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":741,"sizeBytes":2961},{"name":"internal.DiscountRule.md","path":"docs/content/references/js-client/classes/internal.DiscountRule.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.DiscountRule.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DiscountRule.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":567,"sizeBytes":2185},{"name":"internal.DraftOrder.md","path":"docs/content/references/js-client/classes/internal.DraftOrder.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.DraftOrder.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.DraftOrder.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":616,"sizeBytes":2307},{"name":"internal.Fulfillment.md","path":"docs/content/references/js-client/classes/internal.Fulfillment.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Fulfillment.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Fulfillment.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":854,"sizeBytes":3093},{"name":"internal.FulfillmentItem.md","path":"docs/content/references/js-client/classes/internal.FulfillmentItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.FulfillmentItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.FulfillmentItem.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":204,"sizeBytes":741},{"name":"internal.FulfillmentProvider.md","path":"docs/content/references/js-client/classes/internal.FulfillmentProvider.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.FulfillmentProvider.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.FulfillmentProvider.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":95,"sizeBytes":362},{"name":"internal.GiftCard.md","path":"docs/content/references/js-client/classes/internal.GiftCard.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.GiftCard.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.GiftCard.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":670,"sizeBytes":2433},{"name":"internal.GiftCardTransaction.md","path":"docs/content/references/js-client/classes/internal.GiftCardTransaction.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.GiftCardTransaction.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.GiftCardTransaction.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":371,"sizeBytes":1355},{"name":"internal.Image.md","path":"docs/content/references/js-client/classes/internal.Image.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Image.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Image.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":421,"sizeBytes":1559},{"name":"internal.LineItem.md","path":"docs/content/references/js-client/classes/internal.LineItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.LineItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItem.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1557,"sizeBytes":5673},{"name":"internal.LineItemAdjustment.md","path":"docs/content/references/js-client/classes/internal.LineItemAdjustment.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.LineItemAdjustment.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItemAdjustment.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":326,"sizeBytes":1227},{"name":"internal.LineItemTaxLine.md","path":"docs/content/references/js-client/classes/internal.LineItemTaxLine.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.LineItemTaxLine.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.LineItemTaxLine.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":556,"sizeBytes":1990},{"name":"internal.MoneyAmount.md","path":"docs/content/references/js-client/classes/internal.MoneyAmount.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.MoneyAmount.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.MoneyAmount.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":751,"sizeBytes":2767},{"name":"internal.Order.md","path":"docs/content/references/js-client/classes/internal.Order.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Order.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Order.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1868,"sizeBytes":7053},{"name":"internal.OrderEdit.md","path":"docs/content/references/js-client/classes/internal.OrderEdit.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.OrderEdit.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.OrderEdit.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1139,"sizeBytes":4337},{"name":"internal.OrderItemChange.md","path":"docs/content/references/js-client/classes/internal.OrderItemChange.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.OrderItemChange.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.OrderItemChange.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":648,"sizeBytes":2439},{"name":"internal.Payment.md","path":"docs/content/references/js-client/classes/internal.Payment.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Payment.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Payment.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":735,"sizeBytes":2768},{"name":"internal.PaymentCollection.md","path":"docs/content/references/js-client/classes/internal.PaymentCollection.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.PaymentCollection.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentCollection.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":782,"sizeBytes":3158},{"name":"internal.PaymentProvider.md","path":"docs/content/references/js-client/classes/internal.PaymentProvider.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.PaymentProvider.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentProvider.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":85,"sizeBytes":346},{"name":"internal.PaymentSession.md","path":"docs/content/references/js-client/classes/internal.PaymentSession.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.PaymentSession.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PaymentSession.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":532,"sizeBytes":2079},{"name":"internal.PriceList.md","path":"docs/content/references/js-client/classes/internal.PriceList.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.PriceList.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.PriceList.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":672,"sizeBytes":2493},{"name":"internal.Product.md","path":"docs/content/references/js-client/classes/internal.Product.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Product.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Product.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1266,"sizeBytes":4835},{"name":"internal.ProductCollection.md","path":"docs/content/references/js-client/classes/internal.ProductCollection.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ProductCollection.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductCollection.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":493,"sizeBytes":1906},{"name":"internal.ProductOption.md","path":"docs/content/references/js-client/classes/internal.ProductOption.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ProductOption.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductOption.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":523,"sizeBytes":2005},{"name":"internal.ProductOptionValue.md","path":"docs/content/references/js-client/classes/internal.ProductOptionValue.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ProductOptionValue.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductOptionValue.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":561,"sizeBytes":2175},{"name":"internal.ProductTag.md","path":"docs/content/references/js-client/classes/internal.ProductTag.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ProductTag.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductTag.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":427,"sizeBytes":1596},{"name":"internal.ProductType.md","path":"docs/content/references/js-client/classes/internal.ProductType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ProductType.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":427,"sizeBytes":1602},{"name":"internal.ProductVariant.md","path":"docs/content/references/js-client/classes/internal.ProductVariant.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ProductVariant.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ProductVariant.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1030,"sizeBytes":3917},{"name":"internal.Refund.md","path":"docs/content/references/js-client/classes/internal.Refund.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Refund.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Refund.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":520,"sizeBytes":1942},{"name":"internal.Region.md","path":"docs/content/references/js-client/classes/internal.Region.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Region.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Region.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":874,"sizeBytes":3233},{"name":"internal.Return.md","path":"docs/content/references/js-client/classes/internal.Return.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Return.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Return.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":744,"sizeBytes":2776},{"name":"internal.ReturnItem.md","path":"docs/content/references/js-client/classes/internal.ReturnItem.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ReturnItem.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ReturnItem.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":405,"sizeBytes":1519},{"name":"internal.ReturnReason.md","path":"docs/content/references/js-client/classes/internal.ReturnReason.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ReturnReason.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ReturnReason.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":623,"sizeBytes":2324},{"name":"internal.SalesChannel.md","path":"docs/content/references/js-client/classes/internal.SalesChannel.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.SalesChannel.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.SalesChannel.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":457,"sizeBytes":1716},{"name":"internal.ShippingMethod.md","path":"docs/content/references/js-client/classes/internal.ShippingMethod.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ShippingMethod.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingMethod.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":722,"sizeBytes":2723},{"name":"internal.ShippingMethodTaxLine.md","path":"docs/content/references/js-client/classes/internal.ShippingMethodTaxLine.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ShippingMethodTaxLine.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingMethodTaxLine.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":565,"sizeBytes":2086},{"name":"internal.ShippingOption.md","path":"docs/content/references/js-client/classes/internal.ShippingOption.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ShippingOption.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingOption.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":866,"sizeBytes":3333},{"name":"internal.ShippingOptionRequirement.md","path":"docs/content/references/js-client/classes/internal.ShippingOptionRequirement.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ShippingOptionRequirement.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingOptionRequirement.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":278,"sizeBytes":1110},{"name":"internal.ShippingProfile.md","path":"docs/content/references/js-client/classes/internal.ShippingProfile.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.ShippingProfile.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.ShippingProfile.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":541,"sizeBytes":2087},{"name":"internal.SoftDeletableEntity.md","path":"docs/content/references/js-client/classes/internal.SoftDeletableEntity.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.SoftDeletableEntity.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.SoftDeletableEntity.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":764,"sizeBytes":2791},{"name":"internal.StorePostCustomersCustomerAddressesAddressReq.md","path":"docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesAddressReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesAddressReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.StorePostCustomersCustomerAddressesAddressReq.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":676,"sizeBytes":2830},{"name":"internal.StorePostCustomersCustomerAddressesReq.md","path":"docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesReq.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.StorePostCustomersCustomerAddressesReq.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.StorePostCustomersCustomerAddressesReq.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":75,"sizeBytes":352},{"name":"internal.Swap.md","path":"docs/content/references/js-client/classes/internal.Swap.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.Swap.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.Swap.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1043,"sizeBytes":3834},{"name":"internal.TaxLine.md","path":"docs/content/references/js-client/classes/internal.TaxLine.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.TaxLine.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxLine.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":378,"sizeBytes":1414},{"name":"internal.TaxProvider.md","path":"docs/content/references/js-client/classes/internal.TaxProvider.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.TaxProvider.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxProvider.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":87,"sizeBytes":330},{"name":"internal.TaxRate.md","path":"docs/content/references/js-client/classes/internal.TaxRate.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.TaxRate.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TaxRate.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":661,"sizeBytes":2472},{"name":"internal.TrackingLink.md","path":"docs/content/references/js-client/classes/internal.TrackingLink.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/internal.TrackingLink.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2Finternal.TrackingLink.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":568,"sizeBytes":2109},{"name":"LineItemsResource.md","path":"docs/content/references/js-client/classes/LineItemsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/LineItemsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FLineItemsResource.md -->","isInternal":false,"tokens":737,"sizeBytes":2593},{"name":"OrderEditsResource.md","path":"docs/content/references/js-client/classes/OrderEditsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/OrderEditsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FOrderEditsResource.md -->","isInternal":false,"tokens":496,"sizeBytes":1644},{"name":"OrdersResource.md","path":"docs/content/references/js-client/classes/OrdersResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/OrdersResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FOrdersResource.md -->","isInternal":false,"tokens":993,"sizeBytes":3737},{"name":"PaymentCollectionsResource.md","path":"docs/content/references/js-client/classes/PaymentCollectionsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/PaymentCollectionsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FPaymentCollectionsResource.md -->","isInternal":false,"tokens":1243,"sizeBytes":4946},{"name":"PaymentMethodsResource.md","path":"docs/content/references/js-client/classes/PaymentMethodsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/PaymentMethodsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FPaymentMethodsResource.md -->","isInternal":false,"tokens":202,"sizeBytes":805},{"name":"ProductsResource.md","path":"docs/content/references/js-client/classes/ProductsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/ProductsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductsResource.md -->","isInternal":false,"tokens":702,"sizeBytes":2661},{"name":"ProductTypesResource.md","path":"docs/content/references/js-client/classes/ProductTypesResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/ProductTypesResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductTypesResource.md -->","isInternal":false,"tokens":254,"sizeBytes":969},{"name":"ProductVariantsResource.md","path":"docs/content/references/js-client/classes/ProductVariantsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/ProductVariantsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FProductVariantsResource.md -->","isInternal":false,"tokens":432,"sizeBytes":1595},{"name":"RegionsResource.md","path":"docs/content/references/js-client/classes/RegionsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/RegionsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FRegionsResource.md -->","isInternal":false,"tokens":391,"sizeBytes":1416},{"name":"ReturnReasonsResource.md","path":"docs/content/references/js-client/classes/ReturnReasonsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/ReturnReasonsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FReturnReasonsResource.md -->","isInternal":false,"tokens":417,"sizeBytes":1516},{"name":"ReturnsResource.md","path":"docs/content/references/js-client/classes/ReturnsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/ReturnsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FReturnsResource.md -->","isInternal":false,"tokens":228,"sizeBytes":843},{"name":"ShippingOptionsResource.md","path":"docs/content/references/js-client/classes/ShippingOptionsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/ShippingOptionsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FShippingOptionsResource.md -->","isInternal":false,"tokens":434,"sizeBytes":1664},{"name":"SwapsResource.md","path":"docs/content/references/js-client/classes/SwapsResource.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/classes/SwapsResource.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fclasses%2FSwapsResource.md -->","isInternal":false,"tokens":430,"sizeBytes":1492},{"name":"internal-1.UserRoles.md","path":"docs/content/references/js-client/enums/internal-1.UserRoles.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal-1.UserRoles.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-1.UserRoles.md -->","isInternal":false,"tokens":113,"sizeBytes":389},{"name":"internal-16.RefundReason.md","path":"docs/content/references/js-client/enums/internal-16.RefundReason.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal-16.RefundReason.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-16.RefundReason.md -->","isInternal":false,"tokens":178,"sizeBytes":588},{"name":"internal-2.BatchJobStatus.md","path":"docs/content/references/js-client/enums/internal-2.BatchJobStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal-2.BatchJobStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal-2.BatchJobStatus.md -->","isInternal":false,"tokens":262,"sizeBytes":872},{"name":"internal.AllocationType.md","path":"docs/content/references/js-client/enums/internal.AllocationType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.AllocationType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.AllocationType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":92,"sizeBytes":348},{"name":"internal.CartType.md","path":"docs/content/references/js-client/enums/internal.CartType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.CartType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.CartType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":191,"sizeBytes":658},{"name":"internal.ClaimFulfillmentStatus.md","path":"docs/content/references/js-client/enums/internal.ClaimFulfillmentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.ClaimFulfillmentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimFulfillmentStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":391,"sizeBytes":1295},{"name":"internal.ClaimPaymentStatus.md","path":"docs/content/references/js-client/enums/internal.ClaimPaymentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.ClaimPaymentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimPaymentStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":140,"sizeBytes":481},{"name":"internal.ClaimReason.md","path":"docs/content/references/js-client/enums/internal.ClaimReason.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.ClaimReason.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimReason.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":173,"sizeBytes":621},{"name":"internal.ClaimType.md","path":"docs/content/references/js-client/enums/internal.ClaimType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.ClaimType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ClaimType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":95,"sizeBytes":347},{"name":"internal.DiscountConditionOperator.md","path":"docs/content/references/js-client/enums/internal.DiscountConditionOperator.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.DiscountConditionOperator.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountConditionOperator.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":99,"sizeBytes":380},{"name":"internal.DiscountConditionType.md","path":"docs/content/references/js-client/enums/internal.DiscountConditionType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.DiscountConditionType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountConditionType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":218,"sizeBytes":836},{"name":"internal.DiscountRuleType.md","path":"docs/content/references/js-client/enums/internal.DiscountRuleType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.DiscountRuleType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DiscountRuleType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":137,"sizeBytes":498},{"name":"internal.DraftOrderStatus.md","path":"docs/content/references/js-client/enums/internal.DraftOrderStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.DraftOrderStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.DraftOrderStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":96,"sizeBytes":359},{"name":"internal.FulfillmentStatus.md","path":"docs/content/references/js-client/enums/internal.FulfillmentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.FulfillmentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.FulfillmentStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":371,"sizeBytes":1231},{"name":"internal.OrderEditItemChangeType.md","path":"docs/content/references/js-client/enums/internal.OrderEditItemChangeType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.OrderEditItemChangeType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderEditItemChangeType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":144,"sizeBytes":534},{"name":"internal.OrderEditStatus.md","path":"docs/content/references/js-client/enums/internal.OrderEditStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.OrderEditStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderEditStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":195,"sizeBytes":694},{"name":"internal.OrderStatus.md","path":"docs/content/references/js-client/enums/internal.OrderStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.OrderStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.OrderStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":192,"sizeBytes":686},{"name":"internal.PaymentCollectionStatus.md","path":"docs/content/references/js-client/enums/internal.PaymentCollectionStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.PaymentCollectionStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PaymentCollectionStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":209,"sizeBytes":793},{"name":"internal.PaymentStatus.md","path":"docs/content/references/js-client/enums/internal.PaymentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.PaymentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PaymentStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":280,"sizeBytes":934},{"name":"internal.PriceListStatus.md","path":"docs/content/references/js-client/enums/internal.PriceListStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.PriceListStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PriceListStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":96,"sizeBytes":347},{"name":"internal.PriceListType.md","path":"docs/content/references/js-client/enums/internal.PriceListType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.PriceListType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.PriceListType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":96,"sizeBytes":346},{"name":"internal.ProductStatus.md","path":"docs/content/references/js-client/enums/internal.ProductStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.ProductStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ProductStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":159,"sizeBytes":564},{"name":"internal.RequirementType.md","path":"docs/content/references/js-client/enums/internal.RequirementType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.RequirementType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.RequirementType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":114,"sizeBytes":426},{"name":"internal.ReturnStatus.md","path":"docs/content/references/js-client/enums/internal.ReturnStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.ReturnStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ReturnStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":165,"sizeBytes":588},{"name":"internal.ShippingOptionPriceType.md","path":"docs/content/references/js-client/enums/internal.ShippingOptionPriceType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.ShippingOptionPriceType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ShippingOptionPriceType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":109,"sizeBytes":401},{"name":"internal.ShippingProfileType.md","path":"docs/content/references/js-client/enums/internal.ShippingProfileType.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.ShippingProfileType.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.ShippingProfileType.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":132,"sizeBytes":495},{"name":"internal.SwapFulfillmentStatus.md","path":"docs/content/references/js-client/enums/internal.SwapFulfillmentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.SwapFulfillmentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.SwapFulfillmentStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":262,"sizeBytes":851},{"name":"internal.SwapPaymentStatus.md","path":"docs/content/references/js-client/enums/internal.SwapPaymentStatus.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/enums/internal.SwapPaymentStatus.md","title":"Enums Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fenums%2Finternal.SwapPaymentStatus.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":365,"sizeBytes":1181},{"name":"index.md","path":"docs/content/references/js-client/index.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/index.md","title":"Js-client Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Findex.md -->","isInternal":false,"tokens":1215,"sizeBytes":5099},{"name":"internal.AxiosAdapter.md","path":"docs/content/references/js-client/interfaces/internal.AxiosAdapter.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosAdapter.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosAdapter.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":137,"sizeBytes":495},{"name":"internal.AxiosBasicCredentials.md","path":"docs/content/references/js-client/interfaces/internal.AxiosBasicCredentials.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosBasicCredentials.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosBasicCredentials.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":88,"sizeBytes":363},{"name":"internal.AxiosDefaults.md","path":"docs/content/references/js-client/interfaces/internal.AxiosDefaults.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosDefaults.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosDefaults.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1824,"sizeBytes":6940},{"name":"internal.AxiosError.md","path":"docs/content/references/js-client/interfaces/internal.AxiosError.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosError.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosError.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":319,"sizeBytes":1118},{"name":"internal.AxiosInstance.md","path":"docs/content/references/js-client/interfaces/internal.AxiosInstance.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosInstance.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosInstance.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":2261,"sizeBytes":7027},{"name":"internal.AxiosInterceptorManager.md","path":"docs/content/references/js-client/interfaces/internal.AxiosInterceptorManager.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosInterceptorManager.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosInterceptorManager.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":252,"sizeBytes":806},{"name":"internal.AxiosPromise.md","path":"docs/content/references/js-client/interfaces/internal.AxiosPromise.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosPromise.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosPromise.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":91,"sizeBytes":304},{"name":"internal.AxiosProxyConfig.md","path":"docs/content/references/js-client/interfaces/internal.AxiosProxyConfig.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosProxyConfig.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosProxyConfig.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":184,"sizeBytes":681},{"name":"internal.AxiosRequestConfig.md","path":"docs/content/references/js-client/interfaces/internal.AxiosRequestConfig.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosRequestConfig.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosRequestConfig.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":1464,"sizeBytes":5598},{"name":"internal.AxiosRequestTransformer.md","path":"docs/content/references/js-client/interfaces/internal.AxiosRequestTransformer.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosRequestTransformer.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosRequestTransformer.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":126,"sizeBytes":485},{"name":"internal.AxiosResponse.md","path":"docs/content/references/js-client/interfaces/internal.AxiosResponse.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosResponse.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosResponse.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":268,"sizeBytes":983},{"name":"internal.AxiosResponseTransformer.md","path":"docs/content/references/js-client/interfaces/internal.AxiosResponseTransformer.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.AxiosResponseTransformer.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.AxiosResponseTransformer.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":126,"sizeBytes":491},{"name":"internal.Cancel.md","path":"docs/content/references/js-client/interfaces/internal.Cancel.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.Cancel.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.Cancel.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":55,"sizeBytes":224},{"name":"internal.CancelToken.md","path":"docs/content/references/js-client/interfaces/internal.CancelToken.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.CancelToken.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.CancelToken.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":143,"sizeBytes":560},{"name":"internal.Config.md","path":"docs/content/references/js-client/interfaces/internal.Config.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.Config.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.Config.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":257,"sizeBytes":891},{"name":"internal.HeadersDefaults.md","path":"docs/content/references/js-client/interfaces/internal.HeadersDefaults.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.HeadersDefaults.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.HeadersDefaults.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":482,"sizeBytes":1955},{"name":"internal.HTTPResponse.md","path":"docs/content/references/js-client/interfaces/internal.HTTPResponse.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.HTTPResponse.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.HTTPResponse.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":335,"sizeBytes":1096},{"name":"internal.RequestOptions.md","path":"docs/content/references/js-client/interfaces/internal.RequestOptions.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.RequestOptions.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.RequestOptions.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":146,"sizeBytes":535},{"name":"internal.RetryConfig.md","path":"docs/content/references/js-client/interfaces/internal.RetryConfig.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.RetryConfig.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.RetryConfig.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":952,"sizeBytes":3609},{"name":"internal.TransitionalOptions.md","path":"docs/content/references/js-client/interfaces/internal.TransitionalOptions.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/interfaces/internal.TransitionalOptions.md","title":"Interfaces Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Finterfaces%2Finternal.TransitionalOptions.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":136,"sizeBytes":561},{"name":"internal-1.md","path":"docs/content/references/js-client/modules/internal-1.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-1.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-1.md -->","isInternal":false,"tokens":140,"sizeBytes":481},{"name":"internal-10.md","path":"docs/content/references/js-client/modules/internal-10.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-10.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-10.md -->","isInternal":false,"tokens":358,"sizeBytes":1224},{"name":"internal-11.md","path":"docs/content/references/js-client/modules/internal-11.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-11.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-11.md -->","isInternal":false,"tokens":213,"sizeBytes":775},{"name":"internal-12.md","path":"docs/content/references/js-client/modules/internal-12.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-12.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-12.md -->","isInternal":false,"tokens":217,"sizeBytes":967},{"name":"internal-13.md","path":"docs/content/references/js-client/modules/internal-13.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-13.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-13.md -->","isInternal":false,"tokens":486,"sizeBytes":1769},{"name":"internal-14.md","path":"docs/content/references/js-client/modules/internal-14.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-14.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-14.md -->","isInternal":false,"tokens":756,"sizeBytes":2969},{"name":"internal-15.md","path":"docs/content/references/js-client/modules/internal-15.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-15.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-15.md -->","isInternal":false,"tokens":206,"sizeBytes":867},{"name":"internal-16.md","path":"docs/content/references/js-client/modules/internal-16.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-16.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-16.md -->","isInternal":false,"tokens":205,"sizeBytes":769},{"name":"internal-17.md","path":"docs/content/references/js-client/modules/internal-17.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-17.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-17.md -->","isInternal":false,"tokens":578,"sizeBytes":2260},{"name":"internal-18.md","path":"docs/content/references/js-client/modules/internal-18.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-18.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-18.md -->","isInternal":false,"tokens":123,"sizeBytes":503},{"name":"internal-19.md","path":"docs/content/references/js-client/modules/internal-19.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-19.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-19.md -->","isInternal":false,"tokens":101,"sizeBytes":408},{"name":"internal-2.md","path":"docs/content/references/js-client/modules/internal-2.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-2.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-2.md -->","isInternal":false,"tokens":504,"sizeBytes":1800},{"name":"internal-20.md","path":"docs/content/references/js-client/modules/internal-20.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-20.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-20.md -->","isInternal":false,"tokens":1521,"sizeBytes":5750},{"name":"internal-21.md","path":"docs/content/references/js-client/modules/internal-21.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-21.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-21.md -->","isInternal":false,"tokens":532,"sizeBytes":2153},{"name":"internal-22.md","path":"docs/content/references/js-client/modules/internal-22.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-22.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-22.md -->","isInternal":false,"tokens":288,"sizeBytes":1202},{"name":"internal-23.md","path":"docs/content/references/js-client/modules/internal-23.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-23.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-23.md -->","isInternal":false,"tokens":210,"sizeBytes":807},{"name":"internal-24.md","path":"docs/content/references/js-client/modules/internal-24.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-24.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-24.md -->","isInternal":false,"tokens":260,"sizeBytes":1008},{"name":"internal-25.md","path":"docs/content/references/js-client/modules/internal-25.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-25.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-25.md -->","isInternal":false,"tokens":290,"sizeBytes":1210},{"name":"internal-26.md","path":"docs/content/references/js-client/modules/internal-26.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-26.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-26.md -->","isInternal":false,"tokens":247,"sizeBytes":1052},{"name":"internal-27.md","path":"docs/content/references/js-client/modules/internal-27.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-27.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-27.md -->","isInternal":false,"tokens":203,"sizeBytes":857},{"name":"internal-28.md","path":"docs/content/references/js-client/modules/internal-28.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-28.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-28.md -->","isInternal":false,"tokens":251,"sizeBytes":973},{"name":"internal-29.md","path":"docs/content/references/js-client/modules/internal-29.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-29.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-29.md -->","isInternal":false,"tokens":168,"sizeBytes":586},{"name":"internal-3.md","path":"docs/content/references/js-client/modules/internal-3.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-3.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-3.md -->","isInternal":false,"tokens":336,"sizeBytes":1416},{"name":"internal-30.md","path":"docs/content/references/js-client/modules/internal-30.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-30.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-30.md -->","isInternal":false,"tokens":510,"sizeBytes":2005},{"name":"internal-31.md","path":"docs/content/references/js-client/modules/internal-31.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-31.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-31.md -->","isInternal":false,"tokens":212,"sizeBytes":768},{"name":"internal-32.md","path":"docs/content/references/js-client/modules/internal-32.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-32.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-32.md -->","isInternal":false,"tokens":883,"sizeBytes":3027},{"name":"internal-33.md","path":"docs/content/references/js-client/modules/internal-33.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-33.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-33.md -->","isInternal":false,"tokens":138,"sizeBytes":535},{"name":"internal-34.md","path":"docs/content/references/js-client/modules/internal-34.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-34.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-34.md -->","isInternal":false,"tokens":156,"sizeBytes":578},{"name":"internal-35.md","path":"docs/content/references/js-client/modules/internal-35.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-35.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-35.md -->","isInternal":false,"tokens":369,"sizeBytes":1293},{"name":"internal-36.md","path":"docs/content/references/js-client/modules/internal-36.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-36.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-36.md -->","isInternal":false,"tokens":163,"sizeBytes":698},{"name":"internal-37.md","path":"docs/content/references/js-client/modules/internal-37.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-37.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-37.md -->","isInternal":false,"tokens":208,"sizeBytes":925},{"name":"internal-38.md","path":"docs/content/references/js-client/modules/internal-38.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-38.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-38.md -->","isInternal":false,"tokens":82,"sizeBytes":295},{"name":"internal-39.md","path":"docs/content/references/js-client/modules/internal-39.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-39.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-39.md -->","isInternal":false,"tokens":62,"sizeBytes":229},{"name":"internal-4.md","path":"docs/content/references/js-client/modules/internal-4.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-4.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-4.md -->","isInternal":false,"tokens":204,"sizeBytes":813},{"name":"internal-40.md","path":"docs/content/references/js-client/modules/internal-40.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-40.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-40.md -->","isInternal":false,"tokens":148,"sizeBytes":510},{"name":"internal-41.md","path":"docs/content/references/js-client/modules/internal-41.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-41.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-41.md -->","isInternal":false,"tokens":159,"sizeBytes":662},{"name":"internal-42.md","path":"docs/content/references/js-client/modules/internal-42.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-42.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-42.md -->","isInternal":false,"tokens":248,"sizeBytes":1147},{"name":"internal-43.md","path":"docs/content/references/js-client/modules/internal-43.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-43.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-43.md -->","isInternal":false,"tokens":90,"sizeBytes":341},{"name":"internal-44.md","path":"docs/content/references/js-client/modules/internal-44.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-44.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-44.md -->","isInternal":false,"tokens":101,"sizeBytes":408},{"name":"internal-45.md","path":"docs/content/references/js-client/modules/internal-45.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-45.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-45.md -->","isInternal":false,"tokens":169,"sizeBytes":655},{"name":"internal-46.md","path":"docs/content/references/js-client/modules/internal-46.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-46.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-46.md -->","isInternal":false,"tokens":272,"sizeBytes":1070},{"name":"internal-47.md","path":"docs/content/references/js-client/modules/internal-47.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-47.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-47.md -->","isInternal":false,"tokens":142,"sizeBytes":539},{"name":"internal-48.md","path":"docs/content/references/js-client/modules/internal-48.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-48.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-48.md -->","isInternal":false,"tokens":161,"sizeBytes":615},{"name":"internal-49.md","path":"docs/content/references/js-client/modules/internal-49.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-49.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-49.md -->","isInternal":false,"tokens":121,"sizeBytes":467},{"name":"internal-5.md","path":"docs/content/references/js-client/modules/internal-5.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-5.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-5.md -->","isInternal":false,"tokens":455,"sizeBytes":1958},{"name":"internal-50.md","path":"docs/content/references/js-client/modules/internal-50.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-50.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-50.md -->","isInternal":false,"tokens":107,"sizeBytes":446},{"name":"internal-51.md","path":"docs/content/references/js-client/modules/internal-51.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-51.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-51.md -->","isInternal":false,"tokens":127,"sizeBytes":451},{"name":"internal-6.md","path":"docs/content/references/js-client/modules/internal-6.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-6.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-6.md -->","isInternal":false,"tokens":127,"sizeBytes":512},{"name":"internal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md","path":"docs/content/references/js-client/modules/internal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-7.__home_runner_work_medusa_medusa_packages_medusa_dist_types_global_.md -->","isInternal":false,"tokens":965,"sizeBytes":3279},{"name":"internal-7.md","path":"docs/content/references/js-client/modules/internal-7.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-7.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-7.md -->","isInternal":false,"tokens":765,"sizeBytes":3267},{"name":"internal-8.md","path":"docs/content/references/js-client/modules/internal-8.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-8.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-8.md -->","isInternal":false,"tokens":410,"sizeBytes":1604},{"name":"internal-9.md","path":"docs/content/references/js-client/modules/internal-9.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal-9.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal-9.md -->","isInternal":false,"tokens":221,"sizeBytes":810},{"name":"internal.md","path":"docs/content/references/js-client/modules/internal.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/js-client/modules/internal.md","title":"Modules Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fjs-client%2Fmodules%2Finternal.md -->","frontmatter":{"displayed_sidebar":"jsClientSidebar"},"isInternal":false,"tokens":2181,"sizeBytes":8550},{"name":"AnalyticsConfigService.md","path":"docs/content/references/services/classes/AnalyticsConfigService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/AnalyticsConfigService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FAnalyticsConfigService.md -->","isInternal":false,"tokens":1933,"sizeBytes":7200},{"name":"AuthService.md","path":"docs/content/references/services/classes/AuthService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/AuthService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FAuthService.md -->","isInternal":false,"tokens":2118,"sizeBytes":8081},{"name":"BatchJobService.md","path":"docs/content/references/services/classes/BatchJobService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/BatchJobService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FBatchJobService.md -->","isInternal":false,"tokens":3373,"sizeBytes":11419},{"name":"CartService.md","path":"docs/content/references/services/classes/CartService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/CartService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCartService.md -->","isInternal":false,"tokens":10410,"sizeBytes":36938},{"name":"ClaimItemService.md","path":"docs/content/references/services/classes/ClaimItemService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ClaimItemService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FClaimItemService.md -->","isInternal":false,"tokens":2351,"sizeBytes":8350},{"name":"ClaimService.md","path":"docs/content/references/services/classes/ClaimService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ClaimService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FClaimService.md -->","isInternal":false,"tokens":4396,"sizeBytes":15462},{"name":"CurrencyService.md","path":"docs/content/references/services/classes/CurrencyService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/CurrencyService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCurrencyService.md -->","isInternal":false,"tokens":2108,"sizeBytes":7810},{"name":"CustomerGroupService.md","path":"docs/content/references/services/classes/CustomerGroupService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/CustomerGroupService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomerGroupService.md -->","isInternal":false,"tokens":2960,"sizeBytes":10912},{"name":"CustomerService.md","path":"docs/content/references/services/classes/CustomerService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/CustomerService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomerService.md -->","isInternal":false,"tokens":4726,"sizeBytes":16902},{"name":"CustomShippingOptionService.md","path":"docs/content/references/services/classes/CustomShippingOptionService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/CustomShippingOptionService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FCustomShippingOptionService.md -->","isInternal":false,"tokens":1964,"sizeBytes":7439},{"name":"DiscountConditionService.md","path":"docs/content/references/services/classes/DiscountConditionService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/DiscountConditionService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDiscountConditionService.md -->","isInternal":false,"tokens":2560,"sizeBytes":9542},{"name":"DiscountService.md","path":"docs/content/references/services/classes/DiscountService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/DiscountService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDiscountService.md -->","isInternal":false,"tokens":5648,"sizeBytes":20349},{"name":"DraftOrderService.md","path":"docs/content/references/services/classes/DraftOrderService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/DraftOrderService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FDraftOrderService.md -->","isInternal":false,"tokens":3493,"sizeBytes":12565},{"name":"EventBusService.md","path":"docs/content/references/services/classes/EventBusService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/EventBusService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FEventBusService.md -->","isInternal":false,"tokens":2816,"sizeBytes":10109},{"name":"FulfillmentProviderService.md","path":"docs/content/references/services/classes/FulfillmentProviderService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/FulfillmentProviderService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FFulfillmentProviderService.md -->","isInternal":false,"tokens":3138,"sizeBytes":11084},{"name":"FulfillmentService.md","path":"docs/content/references/services/classes/FulfillmentService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/FulfillmentService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FFulfillmentService.md -->","isInternal":false,"tokens":3365,"sizeBytes":12288},{"name":"GiftCardService.md","path":"docs/content/references/services/classes/GiftCardService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/GiftCardService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FGiftCardService.md -->","isInternal":false,"tokens":3382,"sizeBytes":11898},{"name":"IdempotencyKeyService.md","path":"docs/content/references/services/classes/IdempotencyKeyService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/IdempotencyKeyService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FIdempotencyKeyService.md -->","isInternal":false,"tokens":2545,"sizeBytes":9026},{"name":"LineItemAdjustmentService.md","path":"docs/content/references/services/classes/LineItemAdjustmentService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/LineItemAdjustmentService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FLineItemAdjustmentService.md -->","isInternal":false,"tokens":2982,"sizeBytes":11080},{"name":"LineItemService.md","path":"docs/content/references/services/classes/LineItemService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/LineItemService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FLineItemService.md -->","isInternal":false,"tokens":4422,"sizeBytes":15151},{"name":"MiddlewareService.md","path":"docs/content/references/services/classes/MiddlewareService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/MiddlewareService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FMiddlewareService.md -->","isInternal":false,"tokens":1595,"sizeBytes":5801},{"name":"NewTotalsService.md","path":"docs/content/references/services/classes/NewTotalsService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/NewTotalsService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNewTotalsService.md -->","isInternal":false,"tokens":3800,"sizeBytes":13536},{"name":"NoteService.md","path":"docs/content/references/services/classes/NoteService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/NoteService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNoteService.md -->","isInternal":false,"tokens":2335,"sizeBytes":8308},{"name":"NotificationService.md","path":"docs/content/references/services/classes/NotificationService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/NotificationService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FNotificationService.md -->","isInternal":false,"tokens":3136,"sizeBytes":12015},{"name":"OauthService.md","path":"docs/content/references/services/classes/OauthService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/OauthService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOauthService.md -->","isInternal":false,"tokens":2487,"sizeBytes":8665},{"name":"OrderEditItemChangeService.md","path":"docs/content/references/services/classes/OrderEditItemChangeService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/OrderEditItemChangeService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderEditItemChangeService.md -->","isInternal":false,"tokens":2253,"sizeBytes":8197},{"name":"OrderEditService.md","path":"docs/content/references/services/classes/OrderEditService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/OrderEditService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderEditService.md -->","isInternal":false,"tokens":4797,"sizeBytes":16491},{"name":"OrderService.md","path":"docs/content/references/services/classes/OrderService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/OrderService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FOrderService.md -->","isInternal":false,"tokens":7773,"sizeBytes":27640},{"name":"PaymentCollectionService.md","path":"docs/content/references/services/classes/PaymentCollectionService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/PaymentCollectionService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentCollectionService.md -->","isInternal":false,"tokens":3421,"sizeBytes":13371},{"name":"PaymentProviderService.md","path":"docs/content/references/services/classes/PaymentProviderService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/PaymentProviderService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentProviderService.md -->","isInternal":false,"tokens":5548,"sizeBytes":20121},{"name":"PaymentService.md","path":"docs/content/references/services/classes/PaymentService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/PaymentService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPaymentService.md -->","isInternal":false,"tokens":2442,"sizeBytes":8875},{"name":"PriceListService.md","path":"docs/content/references/services/classes/PriceListService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/PriceListService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPriceListService.md -->","isInternal":false,"tokens":4819,"sizeBytes":16746},{"name":"PricingService.md","path":"docs/content/references/services/classes/PricingService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/PricingService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FPricingService.md -->","isInternal":false,"tokens":4061,"sizeBytes":14922},{"name":"ProductCategoryService.md","path":"docs/content/references/services/classes/ProductCategoryService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ProductCategoryService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductCategoryService.md -->","isInternal":false,"tokens":3916,"sizeBytes":14813},{"name":"ProductCollectionService.md","path":"docs/content/references/services/classes/ProductCollectionService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ProductCollectionService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductCollectionService.md -->","isInternal":false,"tokens":3347,"sizeBytes":12413},{"name":"ProductService.md","path":"docs/content/references/services/classes/ProductService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ProductService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductService.md -->","isInternal":false,"tokens":6270,"sizeBytes":22709},{"name":"ProductTypeService.md","path":"docs/content/references/services/classes/ProductTypeService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ProductTypeService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductTypeService.md -->","isInternal":false,"tokens":2017,"sizeBytes":7361},{"name":"ProductVariantInventoryService.md","path":"docs/content/references/services/classes/ProductVariantInventoryService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ProductVariantInventoryService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductVariantInventoryService.md -->","isInternal":false,"tokens":4294,"sizeBytes":16318},{"name":"ProductVariantService.md","path":"docs/content/references/services/classes/ProductVariantService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ProductVariantService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FProductVariantService.md -->","isInternal":false,"tokens":6509,"sizeBytes":23731},{"name":"RegionService.md","path":"docs/content/references/services/classes/RegionService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/RegionService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FRegionService.md -->","isInternal":false,"tokens":4952,"sizeBytes":17740},{"name":"ReturnReasonService.md","path":"docs/content/references/services/classes/ReturnReasonService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ReturnReasonService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FReturnReasonService.md -->","isInternal":false,"tokens":2045,"sizeBytes":7361},{"name":"ReturnService.md","path":"docs/content/references/services/classes/ReturnService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ReturnService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FReturnService.md -->","isInternal":false,"tokens":4117,"sizeBytes":14933},{"name":"SalesChannelInventoryService.md","path":"docs/content/references/services/classes/SalesChannelInventoryService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/SalesChannelInventoryService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelInventoryService.md -->","isInternal":false,"tokens":1411,"sizeBytes":5518},{"name":"SalesChannelLocationService.md","path":"docs/content/references/services/classes/SalesChannelLocationService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/SalesChannelLocationService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelLocationService.md -->","isInternal":false,"tokens":2209,"sizeBytes":8385},{"name":"SalesChannelService.md","path":"docs/content/references/services/classes/SalesChannelService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/SalesChannelService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSalesChannelService.md -->","isInternal":false,"tokens":3448,"sizeBytes":12733},{"name":"SearchService.md","path":"docs/content/references/services/classes/SearchService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/SearchService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSearchService.md -->","isInternal":false,"tokens":1457,"sizeBytes":5071},{"name":"ShippingOptionService.md","path":"docs/content/references/services/classes/ShippingOptionService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ShippingOptionService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FShippingOptionService.md -->","isInternal":false,"tokens":4800,"sizeBytes":17962},{"name":"ShippingProfileService.md","path":"docs/content/references/services/classes/ShippingProfileService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/ShippingProfileService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FShippingProfileService.md -->","isInternal":false,"tokens":4001,"sizeBytes":14883},{"name":"StagedJobService.md","path":"docs/content/references/services/classes/StagedJobService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/StagedJobService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStagedJobService.md -->","isInternal":false,"tokens":1801,"sizeBytes":6397},{"name":"StoreService.md","path":"docs/content/references/services/classes/StoreService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/StoreService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStoreService.md -->","isInternal":false,"tokens":2230,"sizeBytes":8139},{"name":"StrategyResolverService.md","path":"docs/content/references/services/classes/StrategyResolverService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/StrategyResolverService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FStrategyResolverService.md -->","isInternal":false,"tokens":1479,"sizeBytes":5579},{"name":"SwapService.md","path":"docs/content/references/services/classes/SwapService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/SwapService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSwapService.md -->","isInternal":false,"tokens":5523,"sizeBytes":19415},{"name":"SystemPaymentProviderService.md","path":"docs/content/references/services/classes/SystemPaymentProviderService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/SystemPaymentProviderService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FSystemPaymentProviderService.md -->","isInternal":false,"tokens":2575,"sizeBytes":9236},{"name":"TaxProviderService.md","path":"docs/content/references/services/classes/TaxProviderService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/TaxProviderService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTaxProviderService.md -->","isInternal":false,"tokens":4092,"sizeBytes":14750},{"name":"TaxRateService.md","path":"docs/content/references/services/classes/TaxRateService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/TaxRateService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTaxRateService.md -->","isInternal":false,"tokens":3973,"sizeBytes":13347},{"name":"TokenService.md","path":"docs/content/references/services/classes/TokenService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/TokenService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTokenService.md -->","isInternal":false,"tokens":476,"sizeBytes":1594},{"name":"TotalsService.md","path":"docs/content/references/services/classes/TotalsService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/TotalsService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FTotalsService.md -->","isInternal":false,"tokens":5788,"sizeBytes":20798},{"name":"UserService.md","path":"docs/content/references/services/classes/UserService.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/classes/UserService.md","title":"Classes Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Fclasses%2FUserService.md -->","isInternal":false,"tokens":3261,"sizeBytes":11762},{"name":"index.md","path":"docs/content/references/services/index.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/references/services/index.md","title":"Services Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Freferences%2Fservices%2Findex.md -->","isInternal":false,"tokens":739,"sizeBytes":3150},{"name":"_category_.json","path":"docs/content/upgrade-guides/plugins/_category_.json","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/upgrade-guides/plugins/_category_.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2F_category_.json -->","frontmatter":{"position":3,"link":null,"label":"Plugins"},"isInternal":false,"tokens":22,"sizeBytes":57},{"name":"_category_.json","path":"docs/content/upgrade-guides/plugins/algolia/_category_.json","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/upgrade-guides/plugins/algolia/_category_.json","title":"Algolia Skill","category":"anthropic-skill","format":"json","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Falgolia%2F_category_.json -->","frontmatter":{"label":"Algolia","customProps":{"reverse":true}},"isInternal":false,"tokens":24,"sizeBytes":68},{"name":"1-0-0.md","path":"docs/content/upgrade-guides/plugins/algolia/1-0-0.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/upgrade-guides/plugins/algolia/1-0-0.md","title":"Algolia Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Falgolia%2F1-0-0.md -->","frontmatter":{"description":"Actions Required for v.1.0.0","sidebar_label":"v1.0.0"},"isInternal":false,"tokens":511,"sizeBytes":2221},{"name":"_category_.json","path":"docs/content/upgrade-guides/plugins/meilisearch/_category_.json","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/upgrade-guides/plugins/meilisearch/_category_.json","title":"Meilisearch Skill","category":"anthropic-skill","format":"json","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Fmeilisearch%2F_category_.json -->","frontmatter":{"label":"MeiliSearch","customProps":{"reverse":true}},"isInternal":false,"tokens":25,"sizeBytes":72},{"name":"1-0-0.md","path":"docs/content/upgrade-guides/plugins/meilisearch/1-0-0.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs/content/upgrade-guides/plugins/meilisearch/1-0-0.md","title":"Meilisearch Skill","category":"anthropic-skill","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs%2Fcontent%2Fupgrade-guides%2Fplugins%2Fmeilisearch%2F1-0-0.md -->","frontmatter":{"description":"Actions Required for v.1.0.0","sidebar_label":"v1.0.0"},"isInternal":false,"tokens":494,"sizeBytes":2070},{"name":"README.md","path":"docs-util/typedoc-plugins/typedoc-frontmatter-plugin/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/docs-util/typedoc-plugins/typedoc-frontmatter-plugin/README.md","title":"typedoc-frontmatter-plugin Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=docs-util%2Ftypedoc-plugins%2Ftypedoc-frontmatter-plugin%2FREADME.md -->","isInternal":false,"tokens":242,"sizeBytes":1123},{"name":"README.md","path":"packages/admin-ui/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/admin-ui/README.md","title":"admin-ui Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fadmin-ui%2FREADME.md -->","isInternal":false,"tokens":583,"sizeBytes":1800},{"name":"README.md","path":"packages/admin/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/admin/README.md","title":"admin Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fadmin%2FREADME.md -->","isInternal":false,"tokens":1085,"sizeBytes":4381},{"name":"README.md","path":"packages/cache-inmemory/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/cache-inmemory/README.md","title":"cache-inmemory Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fcache-inmemory%2FREADME.md -->","isInternal":false,"tokens":103,"sizeBytes":403},{"name":"README.md","path":"packages/cache-redis/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/cache-redis/README.md","title":"cache-redis Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fcache-redis%2FREADME.md -->","isInternal":false,"tokens":125,"sizeBytes":533},{"name":"README.md","path":"packages/event-bus-local/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/event-bus-local/README.md","title":"event-bus-local Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fevent-bus-local%2FREADME.md -->","isInternal":false,"tokens":697,"sizeBytes":2323},{"name":"README.md","path":"packages/event-bus-redis/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/event-bus-redis/README.md","title":"event-bus-redis Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fevent-bus-redis%2FREADME.md -->","isInternal":false,"tokens":1013,"sizeBytes":3822},{"name":"README.md","path":"packages/gatsby-source-medusa/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/gatsby-source-medusa/README.md","title":"gatsby-source-medusa Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fgatsby-source-medusa%2FREADME.md -->","isInternal":false,"tokens":714,"sizeBytes":2629},{"name":"README.md","path":"packages/generated/client-types/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/generated/client-types/README.md","title":"client-types Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fgenerated%2Fclient-types%2FREADME.md -->","isInternal":false,"tokens":117,"sizeBytes":471},{"name":"README.md","path":"packages/medusa-dev-cli/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-dev-cli/README.md","title":"medusa-dev-cli Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-dev-cli%2FREADME.md -->","isInternal":false,"tokens":493,"sizeBytes":2111},{"name":"README.md","path":"packages/medusa-file-minio/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-file-minio/README.md","title":"medusa-file-minio Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-minio%2FREADME.md -->","isInternal":false,"tokens":433,"sizeBytes":1738},{"name":"README.md","path":"packages/medusa-file-s3/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-file-s3/README.md","title":"medusa-file-s3 Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-s3%2FREADME.md -->","isInternal":false,"tokens":453,"sizeBytes":1774},{"name":"README.md","path":"packages/medusa-file-spaces/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-file-spaces/README.md","title":"medusa-file-spaces Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-file-spaces%2FREADME.md -->","isInternal":false,"tokens":442,"sizeBytes":1855},{"name":"README.md","path":"packages/medusa-fulfillment-manual/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-fulfillment-manual/README.md","title":"medusa-fulfillment-manual Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-fulfillment-manual%2FREADME.md -->","isInternal":false,"tokens":326,"sizeBytes":1352},{"name":"README.md","path":"packages/medusa-fulfillment-webshipper/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-fulfillment-webshipper/README.md","title":"medusa-fulfillment-webshipper Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-fulfillment-webshipper%2FREADME.md -->","isInternal":false,"tokens":875,"sizeBytes":3611},{"name":"README.md","path":"packages/medusa-js/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-js/README.md","title":"medusa-js Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-js%2FREADME.md -->","isInternal":false,"tokens":124,"sizeBytes":517},{"name":"README.md","path":"packages/medusa-payment-adyen/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-payment-adyen/README.md","title":"medusa-payment-adyen Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-adyen%2FREADME.md -->","isInternal":false,"tokens":618,"sizeBytes":2491},{"name":"README.md","path":"packages/medusa-payment-klarna/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-payment-klarna/README.md","title":"medusa-payment-klarna Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-klarna%2FREADME.md -->","isInternal":false,"tokens":619,"sizeBytes":2348},{"name":"README.md","path":"packages/medusa-payment-manual/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-payment-manual/README.md","title":"medusa-payment-manual Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-manual%2FREADME.md -->","isInternal":false,"tokens":319,"sizeBytes":1317},{"name":"README.md","path":"packages/medusa-payment-paypal/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-payment-paypal/README.md","title":"medusa-payment-paypal Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-paypal%2FREADME.md -->","isInternal":false,"tokens":539,"sizeBytes":2178},{"name":"README.md","path":"packages/medusa-payment-stripe/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-payment-stripe/README.md","title":"medusa-payment-stripe Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-payment-stripe%2FREADME.md -->","isInternal":false,"tokens":524,"sizeBytes":2100},{"name":"README.md","path":"packages/medusa-plugin-algolia/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-algolia/README.md","title":"medusa-plugin-algolia Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-algolia%2FREADME.md -->","isInternal":false,"tokens":546,"sizeBytes":2406},{"name":"README.md","path":"packages/medusa-plugin-brightpearl/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-brightpearl/README.md","title":"medusa-plugin-brightpearl Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-brightpearl%2FREADME.md -->","isInternal":false,"tokens":1090,"sizeBytes":4664},{"name":"README.md","path":"packages/medusa-plugin-contentful/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-contentful/README.md","title":"medusa-plugin-contentful Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-contentful%2FREADME.md -->","isInternal":false,"tokens":611,"sizeBytes":2589},{"name":"README.md","path":"packages/medusa-plugin-discount-generator/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-discount-generator/README.md","title":"medusa-plugin-discount-generator Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-discount-generator%2FREADME.md -->","isInternal":false,"tokens":225,"sizeBytes":953},{"name":"README.md","path":"packages/medusa-plugin-economic/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-economic/README.md","title":"medusa-plugin-economic Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-economic%2FREADME.md -->","isInternal":false,"tokens":746,"sizeBytes":3016},{"name":"README.md","path":"packages/medusa-plugin-ip-lookup/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-ip-lookup/README.md","title":"medusa-plugin-ip-lookup Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-ip-lookup%2FREADME.md -->","isInternal":false,"tokens":322,"sizeBytes":1303},{"name":"README.md","path":"packages/medusa-plugin-mailchimp/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-mailchimp/README.md","title":"medusa-plugin-mailchimp Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-mailchimp%2FREADME.md -->","isInternal":false,"tokens":395,"sizeBytes":1647},{"name":"README.md","path":"packages/medusa-plugin-meilisearch/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-meilisearch/README.md","title":"medusa-plugin-meilisearch Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-meilisearch%2FREADME.md -->","isInternal":false,"tokens":568,"sizeBytes":2530},{"name":"README.md","path":"packages/medusa-plugin-restock-notification/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-restock-notification/README.md","title":"medusa-plugin-restock-notification Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-restock-notification%2FREADME.md -->","isInternal":false,"tokens":685,"sizeBytes":3010},{"name":"README.md","path":"packages/medusa-plugin-segment/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-segment/README.md","title":"medusa-plugin-segment Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-segment%2FREADME.md -->","isInternal":false,"tokens":357,"sizeBytes":1485},{"name":"README.md","path":"packages/medusa-plugin-sendgrid/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-sendgrid/README.md","title":"medusa-plugin-sendgrid Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-sendgrid%2FREADME.md -->","isInternal":false,"tokens":491,"sizeBytes":2029},{"name":"README.md","path":"packages/medusa-plugin-slack-notification/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-slack-notification/README.md","title":"medusa-plugin-slack-notification Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-slack-notification%2FREADME.md -->","isInternal":false,"tokens":439,"sizeBytes":1802},{"name":"README.md","path":"packages/medusa-plugin-twilio-sms/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-twilio-sms/README.md","title":"medusa-plugin-twilio-sms Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-twilio-sms%2FREADME.md -->","isInternal":false,"tokens":385,"sizeBytes":1478},{"name":"README.md","path":"packages/medusa-plugin-wishlist/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-plugin-wishlist/README.md","title":"medusa-plugin-wishlist Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-plugin-wishlist%2FREADME.md -->","isInternal":false,"tokens":224,"sizeBytes":902},{"name":"README.md","path":"packages/medusa-react/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-react/README.md","title":"medusa-react Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-react%2FREADME.md -->","isInternal":false,"tokens":59,"sizeBytes":279},{"name":"README.md","path":"packages/medusa-source-shopify/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa-source-shopify/README.md","title":"medusa-source-shopify Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa-source-shopify%2FREADME.md -->","isInternal":false,"tokens":336,"sizeBytes":1297},{"name":"README.md","path":"packages/medusa/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/medusa/README.md","title":"medusa Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Fmedusa%2FREADME.md -->","isInternal":false,"tokens":1233,"sizeBytes":4522},{"name":"README.md","path":"packages/oas/medusa-oas-cli/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/oas/medusa-oas-cli/README.md","title":"medusa-oas-cli Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Fmedusa-oas-cli%2FREADME.md -->","isInternal":false,"tokens":820,"sizeBytes":3108},{"name":"README.md","path":"packages/oas/oas-github-ci/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/oas/oas-github-ci/README.md","title":"oas-github-ci Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Foas-github-ci%2FREADME.md -->","isInternal":false,"tokens":24,"sizeBytes":77},{"name":"README.md","path":"packages/oas/openapi-typescript-codegen/README.md","rawUrl":"https://raw.githubusercontent.com/medusajs/medusa/HEAD/packages/oas/openapi-typescript-codegen/README.md","title":"openapi-typescript-codegen Documentation","category":"plugin-manifest","format":"markdown","content":"<!-- Skill available on-demand via /api/skills/medusajs/medusa?path=packages%2Foas%2Fopenapi-typescript-codegen%2FREADME.md -->","isInternal":false,"tokens":359,"sizeBytes":1631},{"name":".cursorrules","path":".cursorrules (medusa.mdc)","rawUrl":"https://raw.githubusercontent.com/PatrickJS/awesome-cursorrules/main/rules/medusa.mdc","title":"Awesome Cursorrules: medusa","category":"cursor-rule","format":"markdown","content":"---\ndescription: \"Medusa rules and best practices. These rules should be used when building applications with Medusa.\"\nglobs: **/*.tsx, **/*.ts, src/**/*.ts, src/**/*.tsx, src/**/*.js, src/**/*.jsx\nalwaysApply: false\n---\nYou are an expert senior software engineer specializing in modern web development, with deep expertise in TypeScript, Medusa, React.js, and TailwindCSS.\n\n# Medusa Rules\n\n## General Rules\n\n- Don't use type aliases when importing files.\n- When throwing errors, always throw `MedusaError`.\n- Always use Query to retrieve data.\n\n## Workflow Rules\n\n- When creating a workflow or step, always use Medusa's Workflow SDK `@medusajs/framework/workflows-sdk` to define it.\n- When creating a feature in an API route, scheduled job, or subscriber, always create a workflow for it.\n- When creating a workflow, always create a step for it.\n- In workflows, use `transform` for any data transformation.\n- In workflows, use `when` to define conditions.\n- Don't use `await` when calling steps.\n- In workflows, don't make the workflow function async.\n- Don't add typing to compensation function's input.\n- Only use steps in a workflow.\n\n## Data Model Rules\n\n- Use the `model` utility from `@medusajs/framework/utils` to define data models.\n- Data model variables should be camelCase. Data model names as passed to `model.define` should be snake case.\n- When adding an `id` field to a data model, always make it a primary key with `.primaryKey()`.\n- A data model can have one `id` only, other IDs should be `text` instead.\n- Data model fields should be snake case.\n\n## Service Rules\n\n- When creating a service, always make methods async.\n- If a module has data models, make the service extend `MedusaService`.\n\n## Admin Customization Rules\n\n- When sending requests in admin customizations, always use Medusa's JS SDK.\n- Use TailwindCSS for styling.\n\n# Additional Resources\n\n- [Medusa Documentation](https://docs.medusajs.com/llms-full.txt)\n","tokens":451,"sizeBytes":1941}],"systemPromptSnippet":"<yakaai_skills repo=\"medusajs/medusa\">\n<!-- File: docs/content/development/plugins/create.md (Tokens: ~2380 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to create a plugin in Medusa. This guide explains how to develop, configure, and test a plugin.'\naddHowToData: true\n---\n\n# How to Create a Plugin\n\nIn this document, you’ll learn how to create a plugin and some tips for develoment. If you’re interested to learn more about what plugins are and where to find available official and community plugins, check out the [overview document](./overview.mdx).\n\n## Prerequisites\n\nThis guide uses the Medusa CLI throughout different steps. If you don’t have the Medusa CLI installed you can install it with the following command:\n\n```bash npm2yarn\nnpm install @medusajs/medusa-cli -g\n```\n\n:::note\n\nIf you run into any errors while installing the CLI tool, check out the [troubleshooting guide](../../troubleshooting/cli-installation-errors.mdx).\n\n:::\n\n---\n\n## Initialize Project\n\nThe recommended way to create a plugin is using the Medusa CLI. Run the following command to create a new Medusa project:\n\n```bash\nmedusa new medusa-plugin-custom\n```\n\nWhere `medusa-plugin-custom` is the name of the plugin you’re creating. In Medusa, plugins are named based on their functionalities.\n\nBy convention, all plugin names start with `medusa` followed by a descriptive name of what the plugin does. For example, the Stripe plugin is named `medusa-payment-stripe`.\n\n---\n\n## Changes to package.json\n\n### Change Dependencies\n\nA basic Medusa backend installed with the `medusa new` command has dependencies similar to this:\n\n```json title=package.json\n\"dependencies\": {\n  \"@medusajs/medusa\": \"^1.3.1\",\n  \"@medusajs/medusa-cli\": \"^1.3.0\",\n  \"medusa-fulfillment-manual\": \"^1.1.31\",\n  \"medusa-interfaces\": \"^1.3.0\",\n  \"medusa-payment-manual\": \"^1.0.16\",\n  \"medusa-payment-stripe\": \"^1.1.38\",\n  \"typeorm\": \"^0.2.36\"\n},\n\"devDependencies\": {\n  \"@babel/cli\": \"^7.14.3\",\n  \"@babel/core\": \"^7.14.3\",\n  \"@babel/preset-typescript\": \"^7.14.5\",\n  \"babel-preset-medusa-package\": \"^1.1.19\"\n}\n```\n\nFor a plugin, some dependencies are not necessary. You can remove the packages `medusa-fulfillment-manual`, `medusa-payment-manual`, and `medusa-payment-stripe` as they are fulfillment and payment plugins necessary for a Medusa backend, but not for a plugin.\n\nAdditionally, you can remove `@medusajs/medusa-cli` as you don’t need to use the Medusa CLI while developing a plugin.\n\nOnce you’re done making these changes, re-run the install command to update your `node_modules` directory:\n\n```bash npm2yarn\nnpm install\n```\n\n### Recommended: Change scripts\n\nIt's recommended to remove the `seed` and `start` scripts from your `package.json` as they aren't necessary for plugin development.\n\nFurthermore, it's recommended to change the `build` command and add a new `watch` command:\n\n```json title=package.json\n\"scripts\": {\n  \"build\": \"babel src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\",\n  \"watch\": \"babel -w src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\"\n}\n```\n\nThe change to the `build` command ensures that the built files are placed as explained in the [plugin structure section](#plugin-structure). The `watch` command makes the [testing of the plugin](#test-your-plugin) easier.\n\n:::caution\n\nIf you don't make changes to the `build` and `watch` commands, please be aware of the [expected plugin structure](#plugin-structure).\n\n:::\n\n---\n\n## Develop your Plugin\n\nNow, You can start developing your plugin. This can include adding services, endpoints, entities, or anything that's relevant to your plugin.\n\n### Plugin Structure\n\nWhile developing your plugin, you can create your TypeScript or JavaScript files under the `src` directory. This includes creating services, endpoints, migrations, etc...\n\nHowever, before you test the changes on a Medusa backend or publish your plugin, you must transpile your files, which moves them into the root of your plugin directory.\n\nFor example, if you have an endpoint in `src/api/index.js`, after running the `build` or `watch` commands [as defined earlier](#change-scripts), the file should be transpiled into `api/index.js` in your plugin's root.\n\nIf files and directories aren't placed in the root of your plugin, the Medusa backend won't detect or load them.\n\nAn example of a plugin's directory before testing or publishing:\n\n```bash noReport\nmedusa-plugin-custom\n|\n|_ _ _ api\n|      |\n|      |_ _ _ index.js\n|\n|_ _ _ migrations\n|      |\n|      |_ _ _ <TIMESTAMP>_UserChanged.js\n|\n|_ _ _ src\n|      |\n|      |_ _ _ api\n|      |     |\n|      |     |_ _ _ index.ts\n|      |\n|      |_ _ _ migrations\n|      |\n|      |_ _ _ <TIMESTAMP>_UserChanged.ts\n|\n|_ _ _ package.json\n//... other files\n```\n\n### Development Resources\n\nThis guide doesn't cover how to create different files and components. If you’re interested in learning how to do that, you can check out these guides:\n\n- How to [create endpoints](../endpoints/create.md)\n- How to [create a service](../services/create-service.md)\n- How to [create a subscriber](../events/create-subscriber.md)\n- How to [create an entity](../entities/create.md)\n- How to [create a migration](../entities/migrations/create.md)\n\n---\n\n## Add Plugin Configuration\n\nPlugins often allow developers that will later use them to enter their own configuration. For example, you can allow developers to specify the API key of a service you’re integrating.\n\nTo pass a plugin its configurations on a Medusa backend, you have to add it to the `plugins` array in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-custom`,\n    options: {\n      name: \"My Store\",\n    },\n  },\n]\n```\n\nThen, you can have access to your plugin configuration in the constructor of services in your plugin:\n\n```jsx title=src/service/test.ts\n  // In a service in your plugin\nclass MyService extends TransactionBaseService {\n  constructor(container, options) {\n    super(container)\n    // options contains plugin configurations\n    this.name = options.name\n  }\n  // ...\n}\n```\n\nYou can also have access to the configurations in endpoints in your plugin:\n\n```jsx title=src/api/index.ts\n// in an endpoint in your plugin\nexport default (rootDirectory, options) => {\n  // options contain the plugin configurations\n  const router = Router()\n\n  router.get(\"/hello-world\", (req, res) => {\n    res.json({\n      message: \n      `Welcome to ${options.name ? options.name : \"Medusa\"}!`,\n    })\n  })\n\n  return router\n}\n```\n\n:::tip\n\nMake sure to include in the README of your plugin the configurations that can be passed to a plugin.\n\n:::\n\n---\n\n## Test Your Plugin\n\nWhile you develop your plugin, you’ll need to test it on an actual Medusa backend. This can be done by using the [npm link](https://docs.npmjs.com/cli/v8/commands/npm-link) command.\n\nIn the root of your plugin directory, run the following command:\n\n```bash npm2yarn\nnpm link\n```\n\nThen, change to the directory of the Medusa backend you want to test the plugin on and run the following command:\n\n```bash npm2yarn\nnpm link medusa-plugin-custom\n```\n\nWhere `medusa-plugin-custom` is the package name of your plugin.\n\nAfter linking to your plugin in a local Medusa backend, either run the `build` or `watch` commands in your plugin directory:\n\n```bash npm2yarn\n# in the directory of the plugin\nnpm run watch\n```\n\n:::tip\n\nIf you’re running the `watch` command, you don’t need to run the `build` command every time you make a change to your plugin.\n\n:::\n\nThen, add your plugin into the array of plugins in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-custom`,\n    // if your plugin has configurations\n    options: {\n      name: \"My Store\",\n    },\n  },\n]\n```\n\n:::note\n\nIf your plugin has migrations, you must run them before you start the backend. Check out the [Migrations guide](../entities/migrations/overview.mdx#migrate-command) for more details.\n\n:::\n\nFinally, start your backend and test your plugin’s functionalities:\n\n```bash npm2yarn\nnpm run start\n```\n\n### Troubleshoot Errors\n\n#### Error: The class must be a valid service implementation\n\nPlease make sure that your plugin is following the correct structure. If the error persists then please try the following fix:\n\n```bash npm2yarn\ncd <BACKEND_PATH>/node_modules/medusa-interfaces\nnpm link\ncd <BACKEND_PATH>/node_modules/@medusajs/medusa\nnpm link\ncd <PLUGIN_PATH>\nrm -rf node_modules/medusa-interfaces\nrm -rf node_modules/@medusajs/medusa\nnpm link medusa-interfaces\nnpm link @medusajs/medusa\nnpm link\ncd <BACKEND_PATH>\nnpm link your-plugin\n```\n\nWhere `<BACKEND_PATH>` is the path to your Medusa backend and `<PLUGIN_PATH>` is the path to your plugin.\n\nThis links the `medusa-interfaces` and `@medusajs/medusa` packages from your `medusa-backend` to your plugin directory and then links your plugin to your `medusa-backend`.\n\n#### APIs not loading\n\nIf the APIs you added to your Medussa backend are not loading then please try the following steps:\n\n```bash npm2yarn\ncd <PLUGIN_PATH>\nrm -rf node_modules\ncd <BACKEND_PATH>/node_modules/<PLUGIN_NAME>\nnpm install\ncd <PLUGIN_PATH>\nnpm run build\ncd <BACKEND_PATH>\nnpm run start\n```\n\nWhere `<BACKEND_PATH>` is the path to your Medusa backend, `<PLUGIN_PATH>` is the path to your plugin and `<PLUGIN_NAME>` is the name of your plugin as it is in your plugin `package.json` file.\n\n:::note\n\nIt is safe to ignore any `cross-env: command not found` error you may receive.\n\n:::\n\n---\n\n## Publish Plugin\n\nOnce you're done with the development of the plugin, you can publish it to NPM so that other Medusa developers and users can use it.\n\nPlease refer to [this guide on required steps to publish a plugin](./publish.md).\n\n<!-- File: docs/content/development/plugins/publish.md (Tokens: ~1276 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to publish a Medusa plugin to NPM. This guide lists some check lists to ensure you have implemented before publishing, as well as required steps.'\naddHowToData: true\n---\n\n# How to Publish a Plugin\n\nIn this document, you'll learn how to publish a Medusa plugin to NPM and what are some requirements to keep in mind before publishing. Afterwards, your plugin will be published on the [Medusa Plugins page](https://medusajs.com/plugins/).\n\n## Prerequisites\n\nIf you haven't created a plugin yet, please check [this guide to learn how to create a plugin](./create.md).\n\n---\n\n## Prepare the Plugin\n\n### package.json Checklist\n\nBefore publishing your plugin, make sure you've set the following fields in your plugin's package.json:\n\n- `name`: The name of your plugin. By convention, all plugin names start with `medusa` followed by a descriptive name of what the plugin does. For example, `medusa-payment-stripe`.\n- `description`: A short description of what the plugin does.\n- `author`: Your name or your company's name.\n- `repository`: This includes details about the repository that holds the source code of the plugin. It's an object that holds the following properties:\n  - `type`: Should be `git`.\n  - `url`: The URL to the repository (for example, the GitHub repository holding the code of your plugin).\n- `keywords`: An array of keywords that are related to the plugin. It's required for all Medusa plugins to use the keywords `medusa-plugin`. Other recommended keywords are:\n  - `medusa-plugin-analytics`: For plugins that add analytics functionalities or integrations.\n  - `medusa-plugin-cms`: For plugins that add CMS functionalities or integrations.\n  - `medusa-plugin-notification`: For plugins that add notification functionalities or integrations.\n  - `medusa-plugin-payment`: For plugins that add payment functionalities or integrations.\n  - `medusa-plugin-search`: For plugins that add search functionalities or integrations.\n  - `medusa-plugin-shipping`: For plugins that add shipping functionalities or integrations.\n  - `medusa-plugin-storage`: For plugins that add a file service or storage integration.\n  - `medusa-plugin-source`: For plugins that help migrate or import data into Medusa from another platform.\n  - `medusa-plugin-storefront`: For storefronts that can be integrated with a Medusa backend.\n  - `medusa-plugin-other`: For any other type of plugin.\n\n### Scripts in package.json\n\nMake sure you add the `publish` command to your `scripts` field and make the following change to the `build` command:\n\n```json title=package.json\n\"build\": \"babel src --out-dir . --ignore **/__tests__ --extensions \\\".ts,.js\\\"\",\n\"prepare\": \"cross-env NODE_ENV=production npm run build\"\n```\n\nThe `build` command ensures that the plugin's built files are placed as explained in the [plugin structure](./create.md#plugin-structure) section of the Create Plugin documentation.\n\nThe `prepare` command facilitates your publishing process. You would typically run this script before publishing your plugin.\n\nThis new script requires installing the package `cross-env` as a development dependency:\n\n```bash npm2yarn\nnpm install --save-dev cross-env\n```\n\n### Plugin Structure\n\nMake sure your plugin's structure is as described in the [Create Plugin](./create.md#plugin-structure) documentation. If you've made the changes mentioned in [the above section to the scripts](#scripts-in-packagejson) in `package.json`, you should have the correct structure when you run the `prepare` command.\n\n### NPM Ignore File\n\nNot all files that you use while developing your plugin are necessary to be published.\n\nFor example, the files you add in the `src` directory are compiled to the root of the plugin directory before publishing. Then, when a developer installs your plugin, they’ll just be using the files in the root.\n\nSo, you can ignore files and directories like `src` from the final published NPM package.\n\nTo do that, create the file `.npmignore` with the following content:\n\n```bash title=.npmignore\n/lib\nnode_modules\n.DS_store\n.env*\n/*.js\n!index.js\nyarn.lock\nsrc\n.gitignore\n.eslintrc\n.babelrc\n.prettierrc\n\n# These are files that are included in a\n# Medusa project and can be removed from a\n# plugin project\nmedusa-config.js\nDockerfile\nmedusa-db.sql\ndevelop.sh\n```\n\n---\n\n## Publish Plugin\n\nThis section explains how to publish your plugin to NPM.\n\nBefore you publish a plugin, you must [create an account on NPM](https://www.npmjs.com/signup).\n\n### Run Prepare Command\n\nBefore you publish or update your plugin, make sure to run the `prepare` command [defined earlier](#packagejson-checklist):\n\n```bash npm2yarn\nnpm run prepare\n```\n\n### Login\n\nIn your terminal, log in with your NPM account:\n\n```bash\nnpm login\n```\n\nYou’ll be asked to enter your NPM email and password.\n\n### Publish Plugin Package\n\nOnce you’re logged in, you can publish your package with the following command:\n\n```bash\nnpm publish\n```\n\nYour package is then published on NPM and everyone can use it and install it.\n\n### Install Plugin\n\nTo install your published plugin, you can run the following command on any Medusa backend project:\n\n```bash npm2yarn\nnpm install medusa-plugin-custom\n```\n\n### Update Plugin\n\nTo update your plugin at a later point, you can run the following command to change the NPM version:\n\n```bash\nnpm version <type>\n```\n\nWhere `<type>` indicates the type of version update you’re publishing. For example, it can be `major` or `minor`. You can see the [full list of types in NPM’s documentation](https://docs.npmjs.com/cli/v8/commands/npm-version).\n\nThen, publish the new update:\n\n```bash\nnpm publish\n```\n\n<!-- File: docs/content/plugins/analytics/segment.md (Tokens: ~2079 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Segment with the Medusa backend. Learn how to add custom tracking with Segment and Medusa.'\naddHowToData: true\n---\n\n# Segment\n\nIn this document, you’ll learn about the [Segment plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-segment), what it does, and how to install and use it.\n\n## Overview\n\n[Segment](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-segment) is a powerful Customer Data Platform that allows users to collect, transform, send and archive their customer data.\n\nSegment allows users to manage different tracking and marketing tools using one API and interface, making it very simple to try out and integrate with different services in your ecommerce stack.\n\nCommon integration use cases that can be implemented with Segment include:\n\n- Google Analytics\n- Mailchimp\n- Zendesk\n- Data warehousing for advanced data analytics and segmentation through services like Snowflake\n\nThe Segment plugin in Medusa allows you to track ecommerce events and record them in Segment. Then, you can push these events to other destinations using Segment.\n\n### Events That the Segment Plugin Tracks\n\nBy default, the Segment plugin tracks the following events:\n\n1. `order.placed`: Triggered when an order is placed.\n2. `order.shipment_created`: Triggered when a shipment is created for an order.\n3. `claim.created`: Triggered when a new claim is created.\n4. `order.items_returned`: Triggered when an item in an order is returned.\n5. `order.canceled`: Triggered when an order is canceled.\n6. `swap.created`: Triggered when a swap is created.\n7. `swap.shipment_created`: Triggered when a shipment is created for a swap.\n8. `swap.payment_completed`: Triggered when payment for a swap is completed.\n\n:::tip\n\nCheck out the [Event Reference](../../development/events/events-list.md) to learn about all available events in Medusa.\n\n:::\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nIt is assumed you already have a Medusa backend installed. If not, please follow the [Quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa starter.\n\n### Segment Account\n\nYou need to [create a Segment account](https://app.segment.com/signup/) to follow along with the tutorial. Segment offers a free plan to get started quickly.\n\n---\n\n## Create a Segment Source\n\nOn your Segment dashboard, choose Catalog from the sidebar under Connections.\n\n![Under Connections in the sidebar choose Catalog](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000661/Medusa%20Docs/Segment/rAeJkP3_ybyutz.png)\n\nThen, in the catalog list find the Backend category and choose Node.js from the list.\n\n![Choose Node.js under the Backend category](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000672/Medusa%20Docs/Segment/6RxQbW6_wjphte.png)\n\nThis opens a new side menu. In the side menu, click on Add Source.\n\n![Click on Add Source in the side menu showing information about the Node.js source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000683/Medusa%20Docs/Segment/0VZJnpd_ehagat.png)\n\nThis opens a new page to create a Node.js source. Enter the name of the source then click Add Source.\n\n![Enter a name under the Name field then click on the Add Source button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000693/Medusa%20Docs/Segment/u2hzkB5_t59yhj.png)\n\nOn the new source dashboard, you should find a Write Key. You’ll use this key in the next section after you install the Segment plugin on your Medusa backend.\n\n![The Write Key is available on the new source's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000708/Medusa%20Docs/Segment/OTJVsz7_v95qla.png)\n\n### Optional: Add Destination\n\nAfter you create the Segment source, you can add destinations. This is where the data is sent when you send them to Segment. You can add more than one destination.\n\nTo add a destination, on the same Segment source page, click on Add Destination in the Destinations section.\n\n![Click on the Add Destination button on the source page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000718/Medusa%20Docs/Segment/FrKlUxh_zlnkww.png)\n\nYou can then choose from a list of destinations such as Google Universal Analytics or Facebook Pixel.\n\n![List of some of the available destinations in Segment's catalog](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000730/Medusa%20Docs/Segment/y2YnPUh_mgfqdo.png)\n\nThe process of integrating each destination is different, so you must follow the steps detailed in Segment for each destination you choose.\n\n---\n\n## Install the Segment Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Segment plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-segment\n```\n\nThen, add the following environment variable:\n\n```bash\nSEGMENT_WRITE_KEY=<YOUR_SEGMENT_WRITE_KEY>\n```\n\nWhere `<YOUR_SEGMENT_WRITE_KEY>` is the Write Key shown on the page of the Segment source you created in the previous section.\n\nFinally, in `medusa-config.js`, add the following new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-segment`,\n    options: {\n      write_key: process.env.SEGMENT_WRITE_KEY,\n    },\n  },\n]\n```\n\n---\n\n## Test the Plugin\n\nRun your backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, try triggering one of the [mentioned events earlier in this document](#events-that-the-segment-plugin-tracks). For example, you can place an order either using the [REST APIs](https://docs.medusajs.com/api/store) or using the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx).\n\nAfter you place an order, on the Segment source that you created, click on the Debugger tab. You should see at least one event triggered for each order you place. If you click on the event, you can see the order details are passed to the event.\n\n![The order completed event is recorded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000743/Medusa%20Docs/Segment/LQVJTGg_i5jyge.png)\n\nIf you added a destination, you can also check your destination to make sure the data is reflected there.\n\n:::note\n\nIf the data is not appearing on the destination, the issue is related to your configuration between the Segment source and destination and not related to the Segment plugin. Go over the steps that Segment showed you when you added the destination to figure out the issue.\n\n:::\n\n---\n\n## Add Custom Tracking\n\nIn some cases, you might want to track more events or custom events. You can do that using the `SegmentService` provided by the Segment Plugin.\n\nFor example, you can add the following subscriber to listen to the `customer.created` event and add tracking for every customer created:\n\n```jsx title=src/subscribers/customer.ts\nclass CustomerSubscriber {\n  constructor({ segmentService, eventBusService }) {\n    this.segmentService = segmentService\n\n    eventBusService.subscribe(\n      \"customer.created\",\n      this.handleCustomer\n    )\n  }\n\n  handleCustomer = async (data) => {\n    const customerData = data\n    delete customerData[\"password_hash\"]\n\n    this.segmentService.track({\n      event: \"Customer Created\",\n      userId: data.id,\n      properties: customerData,\n    })\n  }\n}\n\nexport default CustomerSubscriber\n```\n\nYou resolve the `SegmentService` using dependency injection. Then, when the `customer.created` event is triggered, you use the `track` method available in the `SegmentService` to send tracking data to Segment.\n\n:::info\n\nServices can be resolved and used in Subscribers, endpoints, and other Services. Learn [how to resolve services in the Services documentation](../../development/services/create-service.md#using-your-custom-service).\n\n:::\n\n`track` accepts an object of data, where the keys `event` and `userId` are required. Instead of `userId`, you can use `anonymousId` to pass an anonymous user ID.\n\nIf you want to pass additional data to Segment, pass them under the `properties` object key.\n\nThe `SegmentService` also provides the method `identify` to tie a user to their actions or specific traits.\n\n### Test Custom Tracking\n\nAfter adding the above subscriber, run your backend again if it isn’t running and create a customer using the REST APIs or one of the Medusa storefronts. If you check the Debugger in your Segment source, you should see a new event “Customer Created” tracked. If you click on it, you’ll see the data you passed to the `track` method.\n\n![The customer created event is recoreded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000759/Medusa%20Docs/Segment/4LD41xE_qungdw.png)\n\n---\n\n## See Also\n\n- [Services Overview](../../development/services/create-service.md)\n- [Subscribers Overview](../../development/events/create-subscriber.md)\n- [Events Reference](../../development/events/events-list.md)\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n\n<!-- File: docs/content/plugins/cms/contentful/customize-contentful.md (Tokens: ~2829 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.'\naddHowToData: true\n---\n\n# Customize your Medusa and Contentful Integration\n\nIn this document, you’ll learn how to customize the Contentful integration with Medusa and how to customize the Gatsby storefront that is connected to Contentful.\n\n## Overview\n\nPart of what makes the integration between Medusa and Contentful powerful is that it’s completely customizable.\n\nOn the backend, you can create Contentful migrations that allow you to add or edit Content Types in Contentful. Although this can be done through Contentful’s interface, this solution allows you to create a reusable codebase for your store that is independent of a specific Contentful Space.\n\nOn your storefront, you can add any necessary components that can render the Content Types you create.\n\nAs an example to explain this process, in this documentation, you’ll create a migration that creates a Rich Text content model in Contentful and edits the Page and Product content models to allow using Rich Text content as a tile in pages and products. Then, you’ll modify the Gatsby storefront to render the Rich Text content model.\n\n---\n\n## Prerequisites\n\nIt’s assumed you already have set up a Medusa backend integrated with Contentful and have a Gatsby storefront integrated with Contentful. If not, [please follow this documentation first](index.md).\n\n---\n\n## Create a Contentful Migration\n\nThe Contentful migrations are located in the `contentful-migrations` directory in the Medusa Contentful backend starter. So, if you want to create your own Contentful migrations, you can create them under that directory.\n\nHere’s an example of a migration created in a new file `contentful-migrations/rich-text.js`:\n\n```jsx title=contentful-migrations/rich-text.js\n#! /usr/bin/env node\n\nrequire(\"dotenv\").config()\n\nconst { runMigration } = require(\"contentful-migration\")\n\nconst options = {\n  spaceId: process.env.CONTENTFUL_SPACE_ID,\n  accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,\n  environment: process.env.CONTENTFUL_ENVIRONMENT,\n  yes: true,\n}\n\nconst migration = async () => {\n  await runMigration({\n    ...options,\n    migrationFunction: function (migration, context) {\n\n      // create Rich Text content model\n      const richText = migration\n        .createContentType(\"richText\")\n        .name(\"Rich Text\")\n        .displayField(\"title\")\n    \n      richText\n        .createField(\"title\")\n        .name(\"Title (Internal)\")\n        .type(\"Symbol\")\n      richText\n        .createField(\"body\")\n        .name(\"Body\")\n        .type(\"RichText\")\n\n      // edit Page content model\n      const page = migration.editContentType(\"page\")\n\n      page.editField(\"contentModules\").items({\n        type: \"Link\",\n        linkType: \"Entry\",\n        validations: [\n          {\n            linkContentType: [\n              \"hero\", \"tileSection\", \"richText\",\n            ],\n          },\n        ],\n      })\n\n      // edit Product content model\n      const product = migration.editContentType(\"product\")\n\n      product\n        .createField(\"contentModules\")\n        .name(\"Content Modules\")\n        .type(\"Array\")\n        .items({\n          type: \"Link\",\n          linkType: \"Entry\",\n          validations: [\n            {\n              linkContentType: [\"richText\"],\n            },\n          ],\n        })\n    },\n  })\n}\n\nmigration()\n```\n\nThis example creates a new content model Rich Text that has two fields: title and body. It also edits the Page content model to allow using Rich Text content models on the page.\n\nIn addition, it edits the Product content model by adding a new field `contentModules`. This field accepts an array of sections that can be of type Rich Text. This allows you to display rich details on a product page.\n\nYou can also add other types of content models the `contentModules` should accept. For example, to accept `tileSection` add it to the `linkContentType` option:\n\n```jsx\nproduct\n  .createField(\"contentModules\")\n  .name(\"Content Modules\")\n  .type(\"Array\")\n  .items({\n    type: \"Link\",\n    linkType: \"Entry\",\n    validations: [\n      {\n        linkContentType: [\"richText\", \"tileSection\"],\n      },\n    ],\n  })\n```\n\n### Run a Contentful Migration\n\nTo run a Contentful Migration that you create you can use the following command:\n\n```bash\nnode <file_path>\n```\n\nWhere `<file_path>` is the path of the file you created.\n\nTo run the Contentful migration in the previous example, you can use the following command:\n\n```bash\nnode contentful-migrations/rich-text.js\n```\n\nThis runs the Contentful migration in that file and makes the necessary changes in your Contentful Space.\n\n### Test if Contentful Migration Worked\n\nTo check if the above migration worked, in your Contentful Space dashboard go to Content Models from the navigation bar. You should see the new content model Rich Text.\n\n![Rich Text can be found among content models](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001241/Medusa%20Docs/Contentful/W5WzcTG_vau6c9.png)\n\nThe above migration also allows you to add Rich Text content to pages. To test this out, go to Content from the navigation bar and choose Page in the select field next to the search bar. This shows the available pages in your Contentful Space.\n\n![Filter content to only show pages by choosing Page in the Content Type select field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001251/Medusa%20Docs/Contentful/ht87z4e_gmbk6c.png)\n\nChoose one of the pages. For example, the About page. Then, scroll down to the Add content button. If you click on it, you should be able to choose Rich Text under New Content.\n\n![Click on add content and choose from the dropdown Rich Text](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001261/Medusa%20Docs/Contentful/pJ5yM0m_dfb7vp.png)\n\nClick on Rich Text and a new form will open to create new Rich Text content. It has the same fields that you defined in the migration file.\n\n![The Rich Text form is filled with data](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001271/Medusa%20Docs/Contentful/lAglhc9_ejfs2i.png)\n\nAfter adding the content you want, click on the Publish button on the right then go back to the About page editor.\n\n![Click on the Publish button at the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001281/Medusa%20Docs/Contentful/oYpQKsc_piobfk.png)\n\nSimilarly, in the About page editor, click on the Publish Changes button on the right to view these changes later in the storefront.\n\n![Click on the Publish changes button at the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001296/Medusa%20Docs/Contentful/DIMo3hd_ylxkr3.png)\n\nSimilarly, you can add Rich Text content to any product page.\n\n![A rich text content is added to a product](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001305/Medusa%20Docs/Contentful/wgI8mEB_wbukpd.png)\n\n---\n\n## Render New Content Models in the Storefront\n\nAfter creating a new content model in your Contentful Space, you must add the necessary component to render it in your Gatsby storefront.\n\n### Create Component\n\nTo render the Rich Text content you created in the previous example, create the file `src/components/rich-text/rich-text.js` with the following content:\n\n```jsx title=src/components/rich-text/rich-text.js\nimport React from \"react\"\nimport { \n  renderRichText,\n} from \"gatsby-source-contentful/rich-text\"\n\nconst RichText = ({ data }) => {\n  return (\n    <div style={{\n      maxWidth: \"870px\",\n      margin: \"0 auto\",\n      paddingTop: \"20px\",\n      paddingBottom: \"20px\",\n    }}>\n      {data.body ? renderRichText(data.body) : \"\"}\n    </div>\n  )\n}\n\nexport default RichText\n```\n\nThis creates the component `RichText` responsible for rendering the Rich Text content model. Notice that the fields of the content model are available under the `data` prop variable.\n\n### Render Component in a Page\n\nSince the Rich Text model can be added to any page, you must edit `src/pages/{ContentfulPage.slug}.js` to show it.\n\nIn `src/pages/{ContentfulPage.slug}.js`, import the `RichText` component at the top of the file:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nimport RichText from \"../components/rich-text/rich-text\"\n```\n\nThen, in the returned JSX add a new case to the switch statement:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nswitch (cm.internal.type) {\n  // ...\n  case \"ContentfulRichText\":\n      return <RichText key={cm.id} data={cm} />\n  default:\n    return null\n}\n```\n\nIf the content model of a tile is Rich Text, you’ll display it with the `RichText` component.\n\nFinally, to retrieve all necessary data of the Rich Text content, in the `query` GraphQL variable add the following after the `... on ContentfulTileSection` fragment:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nexport const query = graphql`\n        # find the following line\n        ... on ContentfulTileSection {\n\n        }\n        # add the following\n        ... on ContentfulRichText {\n          id\n          body {\n            raw\n          }\n          internal {\n            type\n          }\n        }\n      }\n    }\n  }\n`\n```\n\n### Test Rich Text in Page Content\n\nTo test this out, run your Medusa backend by running this command in its directory:\n\n```bash\nnpm run start\n```\n\nThen run the Gatsby storefront by running this command in its directory:\n\n```bash\nnpm run start\n```\n\nThis runs the Gatsby storefront on `localhost:8000`. Go to the storefront in your browser and open the About page. You should see the Rich Text content you added.\n\n![Rich Text content you added to the about page should be visible now](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001320/Medusa%20Docs/Contentful/aQAY9Vz_yw4eop.png)\n\n### Render Component in a Product Page\n\nIn the example migration, you also edited the product page to include a new Content Modules field that allows inserting Rich Text content.\n\nTo render them on the Product Page, add the following in the GraphQL query defined in the `query` variable inside `product`:\n\n```jsx title=src/pages/{ContentfulPage.slug}.js\nexport const query = graphql`\n  query ($id: String!) {\n    product: contentfulProduct(id: { eq: $id }) {\n      # Other fields\n      contentModules {\n        ... on ContentfulRichText {\n          id\n          body {\n            raw\n          }\n          internal {\n            type\n          }\n        }\n      }\n    }\n  }\n`\n```\n\n:::note\n\nIf you added other accepted Content Models to the `contentModules` field of the Product content type, make sure to add them here.\n\n:::\n\nThen, in `src/views/product.js` import the `RichText` component:\n\n```jsx title=src/views/product.js\nimport RichText from \"../components/rich-text/rich-text\"\n```\n\nAnd in the returned JSX add the following before the last `</div>`:\n\n```jsx title=src/views/product.js\n<div className={styles.contentModules}>\n  {product.contentModules?.map((cm) => {\n    switch (cm.internal.type) {\n      case \"ContentfulRichText\":\n        return <RichText key={cm.id} data={cm} />\n      default:\n        return null\n    }\n  })}\n</div>\n```\n\n:::note\n\nIf you added other accepted Content Models to the `contentModules` field of the Product content type, make sure to add cases for them here to display them.\n\n:::\n\nThis loops over `contentModules` and if the type of the content is Rich Text, it is rendered with the `RichText` component.\n\n### Test Rich Text on a Product Page\n\nRestart the Gatsby storefront then open a product that you added Rich Text content to. You should see the Rich Text component at the end of the page.\n\n![Rich Text content you added to the product should be visible at the end of the page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001342/Medusa%20Docs/Contentful/LGiVMxx_rqsr2l.png)\n\n---\n\n## See Also\n\n- Deploy your Medusa backend to [Heroku](../../../deployments/server/deploying-on-heroku.mdx), [Qovery](../../../deployments/server/deploying-on-qovery.md), or [DigitalOcean](../../../deployments/server/deploying-on-digital-ocean.md).\n- [How to deploy your Gatsby storefront to Netlify](../../../deployments/storefront/deploying-gatsby-on-netlify.md).\n\n<!-- File: docs/content/plugins/cms/contentful/index.md (Tokens: ~2877 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Contentful with the Medusa backend and a Gatsby storefront. Contentful is a headless CMS backend that provides rich CMS functionalities.'\naddHowToData: true\n---\n\n# Contentful\n\nIn this document, you’ll learn how to integrate a Medusa backend with Contentful to add rich Content Management System (CMS) functionalities\n\n## Overview\n\n[Contentful](https://www.contentful.com/) is a headless CMS service that allows developers to integrate rich CMS functionalities into any platform.\n\nBy integrating Contentful to Medusa, you can benefit from powerful features in your ecommerce store including detailed product CMS details, easy-to-use interface to use for static content and pages, localization, and much more.\n\n---\n\n## Prerequisites\n\n### Needed Accounts\n\n- [Contentful](https://www.contentful.com/sign-up/) account with a space created. A space is created by default when you create a new account.\n\n### Required Tools\n\n- PostgreSQL with an empty database created. You can follow [this documentation to learn how to install it for your operating system](../../../development/backend/prepare-environment.mdx#postgres).\n- Redis. You can follow [their documentation to learn how to install it](https://redis.io/docs/getting-started/installation/).\n- Git’s CLI tool. You can follow [this documentation to learn how to install it for your operating system](../../../development/backend/prepare-environment.mdx#git).\n- Gatsby’s CLI tool. You can follow [this documentation to install it](https://www.gatsbyjs.com/docs/reference/gatsby-cli/#how-to-use-gatsby-cli).\n- Medusa’s CLI tool. You can follow [this documentation to install it](../../../cli/reference.md#how-to-install-cli-tool).\n\n---\n\n## Install Medusa Backend Using Contentful Starter\n\nInstead of using the default Medusa backend starter, you must use the [Contentful starter](https://github.com/medusajs/medusa-starter-contentful) to install a backend that is ready to be used with Contentful. This backend contains all the necessary files to make the integration work.\n\nIn your terminal, run the following command to install the backend:\n\n```bash\nmedusa new medusa-contentful https://github.com/medusajs/medusa-starter-contentful\n```\n\nThis installs a new Medusa backend in the directory `medusa-contentful`.\n\n### Add Contentful Environment Variables\n\nChange to the `medusa-contentful` directory. In `.env` you’ll find three variables:\n\n```bash title=.env\nCONTENTFUL_SPACE_ID=\nCONTENTFUL_ACCESS_TOKEN=\nCONTENTFUL_ENV=\n```\n\n#### Value of CONTENTFUL_ENV\n\nSet the value for `CONTENTFUL_ENV` to `master`.\n\n#### Value of CONTENTFUL_SPACE_ID\n\nTo retrieve the value of `CONTENTFUL_SPACE_ID`, go to your [Contentful Space dashboard](https://app.contentful.com/). Then, choose Settings in the navigation bar and select API keys from the dropdown.\n\n![Click on Settings then select API keys from the dropdown](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001360/Medusa%20Docs/Contentful/hvp6zo5_uaqtmi.png)\n\nOn the APIs page, click Add API Key.\n\n![Click on the Add API Key button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001375/Medusa%20Docs/Contentful/KlH2BDg_fiqd80.png)\n\nIn the form, enter a name for the API key and click Save.\n\n![A form with the name of API key entered](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001385/Medusa%20Docs/Contentful/hOG1RqM_tmctae.png)\n\nThen, copy the value of Space ID and set it as the value of `CONTENTFUL_SPACE_ID`.\n\n#### Value of CONTENTFUL_ACCESS_TOKEN\n\nGo back to the API Keys page and click on the Content management tokens tab.\n\n![API Keys page with Content management tokens tab opened](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001394/Medusa%20Docs/Contentful/7nWx1xk_co8ykw.png)\n\nClick on Generate personal token. A pop-up will open where you have to enter a name for the token.\n\n![Pop up model for Personal Access Token with token name entered](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001403/Medusa%20Docs/Contentful/y6R81pH_yhbg1u.png)\n\nOnce you click Generate, a personal access token will be generated. Use it to set the value of `CONTENTFUL_ACCESS_TOKEN`.\n\n:::warning\n\nOnce you close the pop-up, you won’t be able to get the value of the personal access token again. Make sure to copy it first.\n\n:::\n\n### Configure Redis\n\nIn `.env` set the value of your Redis URL:\n\n```bash\nREDIS_URL=<YOUR_REDIS_URL>\n```\n\nWhere `<YOUR_REDIS_URL>` is the URL of your Redis service.\n\n:::tip\n\nThe default Redis URL is `redis://localhost:6379`.\n\n:::\n\n### Configure PostgreSQL\n\nIn `.env` set the value of your PostgreSQL URL:\n\n```bash\nDATABASE_URL=<YOUR_DB_URL>\n```\n\nWhere `<YOUR_DB_URL>` is the URL of your PostgreSQL database.\n\n:::tip\n\nYou can find the format of the PostgreSQL database URL in [PostgreSQL’s documentation](https://www.postgresql.org/docs/current/libpq-connect.html).\n\n:::\n\nThen, in `medusa-config.js` in the exported object, comment out or remove the SQLite database configurations and add the PostgreSQL database configurations:\n\n```jsx title=medusa-config.js\nmodule.exports = {\n  projectConfig: {\n    // ...\n    database_url: DATABASE_URL,\n    database_type: \"postgres\",\n    // REMOVE OR COMMENT OUT THE BELOW:\n    // database_database: \"./medusa-db.sql\",\n    // database_type: \"sqlite\",\n  },\n}\n```\n\n### Migrate Content Types to Contentful\n\nThe Contentful starter provides the necessary scripts to create content types in your Contentful space.\n\nRun the following commands to migrate the content types into Contentful:\n\n```bash\nnpm run migrate:contentful\n```\n\nOnce this command finishes executing, in your Contentful Space dashboard click on Content Model in the navigation bar. You should see a list of new content models added.\n\n![Content Model page filled with new content models](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001419/Medusa%20Docs/Contentful/ZDJPNkr_avr7gy.png)\n\n### Seed Content to Contentful\n\nThe next step is to seed the Contentful Space with some content data.\n\nRun the following command to seed some data into it:\n\n```bash\nnpm run seed:contentful\n```\n\nAfter this command finishes running, in your Contentful Space dashboard click on Content in the navigation bar. You should see a list of new content added.\n\n![Content page filled with new content](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001429/Medusa%20Docs/Contentful/bfgFxPg_jb4zok.png)\n\n### (Optional) Seed Medusa Database\n\nThis step seeds your Medusa database with demo data to easily add products as well as other data to your Medusa backend.\n\nRun the following command to seed the Medusa database:\n\n```bash\nnpm run seed\n```\n\n### Start the Backend\n\nTo start the backend run the following command:\n\n```bash\nnpm run start\n```\n\nIf you seeded the database with demo data, you should see that events related to the products are triggered.\n\n![Seed the database](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001440/Medusa%20Docs/Contentful/ci4accp_okaro3.png)\n\nThe Contentful integration ensures a two-way sync between the Medusa backend and Contentful. So, when new products are added to Medusa, these products will be added to your Contentful Space as well.\n\n---\n\n## (Optional) Add Products with the Medusa Admin\n\nUsing the Medusa admin, you can add products to your Medusa backend. This will trigger product events that subsequently add these products to Contentful.\n\n---\n\n## Manage Contentful Data\n\n### Publish Products\n\nProducts added through the integration with the Medusa backend are by default saved as drafts. To show them on the storefront, you must set them as published.\n\nTo do that, open your Contentful Space Dashboard and click on Content in the Navigation bar. Then, change Any to Product in the select field next to the search bar. This shows only the content of the type Product, rather than all content.\n\nClick on the checkbox at the top of the table to select all products then click Publish to publish these products.\n\n![Select all products' checkboxes and click the publish button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001452/Medusa%20Docs/Contentful/3NrH5tJ_f16iym.png)\n\n### Added Featured Products\n\nOn the homepage of the storefront, there’s a featured products tile that shows a set of products. Before running the storefront, you must add at least one product to the list.\n\nTo do that, open your Contentful Space Dashboard and click on Content in the Navigation bar. Make sure the select field next to the search bar is set to Any and search for Featured Products. You should find one content of the type Tile Section.\n\n![Search for the featured products tile section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001462/Medusa%20Docs/Contentful/2gS0ozY_b2tpsb.png)\n\nClick on it. You should find on the page an empty Tiles section where you can add tiles and products.\n\n![On the content's page find the empty tiles section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001472/Medusa%20Docs/Contentful/inuN1OB_ipiszl.png)\n\nClick on Add content then on Add existing content and pick some of the products you want to show on the homepage.\n\n![Add at least 1 product as a tile](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001500/Medusa%20Docs/Contentful/N5m4LbF_fb97tm.png)\n\nOnce you’re done adding products, click on Publish changes in the right sidebar.\n\n![Click on the publish changes button on the right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001508/Medusa%20Docs/Contentful/URNpkXq_cb5ppp.png)\n\n---\n\n## Setup Gatsby Storefront\n\nIn this section, you’ll set up the Gatsby storefront of your Medusa backend.\n\nIn your terminal in a different directory of the Medusa backend, run the following command:\n\n```bash\ngatsby new medusa-contentful-storefront https://github.com/medusajs/medusa-contentful-storefront\n```\n\nThis will install the storefront in the directory `medusa-contentful-storefront`.\n\n### Set Contentful Environment Variables\n\nChange to the newly created directory and rename `.env.template`:\n\n```bash\nmv .env.template .env\n```\n\nThen, open `.env`. You should find the following environment variables:\n\n```bash title=.env\nCONTENTFUL_SPACE_ID=\nCONTENTFUL_ACCESS_TOKEN=\n```\n\nThe value of `CONTENTFUL_SPACE_ID` is the same value you [retrieved while setting up the Medusa backend](#value-of-contentful_space_id).\n\nTo retrieve the value of `CONTENTFUL_ACCESS_TOKEN`, on your Contentful Space dashboard click on Settings then API keys. Then, choose the API key you created in the previous section.\n\nYou should find the field \"Content Delivery API - access token”. Copy its value and set it as the value of `CONTENTFUL_ACCESS_TOKEN`.\n\n![Copy the value of the Content Delivery API access token](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001522/Medusa%20Docs/Contentful/a7dl7DI_mziogm.png)\n\n### Start Storefront\n\nMake sure the Medusa backend is still running. Then, start the storefront:\n\n```bash\nnpm run start\n```\n\nThis starts the storefront at `localhost:8000`. Open it in your browser and you should see on the homepage the Featured Product section with the products you chose on Contentful.\n\n![The storefront with the featured products section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001537/Medusa%20Docs/Contentful/f6xwYbS_w1v993.png)\n\n---\n\n## Make Changes to Content\n\nYou can update the CMS content of your storefront in your Contentful Space. This includes the CMS pages or product details.\n\n:::note\n\nIf you make changes to the data while your Gatsby storefront is running, the changes are not reflected instantly. That’s because the data is fetched from Contentful during build time. Instead, you must restart your Gatsby storefront to see the changes you make.\n\n:::\n\n---\n\n## What’s Next\n\nLearn [How to customize your Contentful backend and storefront](./customize-contentful.md).\n\n## See Also\n\n- How to deploy your Medusa backend to [Heroku](../../../deployments/server/deploying-on-heroku.mdx), [Qovery](../../../deployments/server/deploying-on-qovery.md), or [DigitalOcean](../../../deployments/server/deploying-on-digital-ocean.md).\n- [How to deploy your Gatsby storefront to Netlify](../../../deployments/storefront/deploying-gatsby-on-netlify.md).\n\n<!-- File: docs/content/plugins/cms/strapi.md (Tokens: ~1864 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Strapi with the Medusa backend. Learn how to install the plugin and test two-way sync between the ecommerce and CMS services.'\naddHowToData: true\n---\n\n# Strapi\n\nIn this document, you’ll learn how to integrate Strapi with Medusa to add rich Content Management System (CMS) functionalities.\n\n:::info\n\nThis plugin is a [community plugin](https://github.com/Deathwish98/medusa-plugin-strapi) and is not managed by the official Medusa team. At the moment, it supports v4 of Strapi.\n\n:::\n\n## Overview\n\n[Strapi](https://strapi.io/) is an open source headless CMS service that allows developers to have complete control over their content models. It can be integrated into many other frameworks, including Medusa.\n\nBy integrating Strapi to Medusa, you can benefit from powerful features in your ecommerce store including detailed product CMS details, [two-way sync](#test-two-way-sync), an easy-to-use interface to use for static content and pages, and much more.\n\n---\n\n## Prerequisites\n\n### Medusa CLI\n\n[Medusa’s CLI tool](../../cli/reference.md#how-to-install-cli-tool) is required to set up a new Medusa backend.\n\n### Redis\n\nRedis is required for the Strapi plugin to work as expected on your Medusa backend. If you don’t have it installed, you can learn [how to install it in this documentation](../../development/backend/prepare-environment.mdx#redis).\n\n---\n\n## Create Strapi Project\n\nThe first step is to create a Strapi project using the Medusa template:\n\n```bash\nnpx create-strapi-app strapi-medusa --template shahednasser/strapi-medusa-template\n```\n\nThis creates the Strapi project in the directory `strapi-medusa`.\n\nOnce the installation is finished, the Strapi development backend will run on `localhost:1337`. A new page will also open in your default browser to create a new admin user and log in.\n\n![Create User Form in Strapi](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001083/Medusa%20Docs/Strapi/9pFE1Ij_h2dicv.png)\n\nOnce you log in, you can access the Strapi dashboard.\n\n### Create a Strapi User\n\nThe Strapi plugin in Medusa requires the credentials of a Strapi user. To create a new user, go to Content Manager, then choose User under Collection Types.\n\n![Showing the users under Content Manager](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001096/Medusa%20Docs/Strapi/YyGJPUf_mr5sx7.png)\n\nClick on the Create new entry button at the top right. This opens a new form to enter the user’s details.\n\n![Create User Form on Strapi](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001105/Medusa%20Docs/Strapi/mdMhSlV_vy7ygv.png)\n\nEnter the user’s username, email, and password. Once you’re done, click on the Save button at the top right.\n\n---\n\n## Modify Permissions\n\nBy default, created users have the “Authenticated” role. Before you start using the Strapi plugin on your Medusa backend, you must modify this role’s permissions to allow making changes to Medusa’s models in Strapi.\n\nOn your Strapi dashboard, go to Settings → Roles → Authenticated. Then, under the Permissions section, expand the accordion of each content model type and check the Select All checkbox.\n\n![An example of modifying permissions on the Product content type](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001116/Medusa%20Docs/Strapi/QgckXqS_wlyxe8.png)\n\nOnce you’re done, click the Save button at the top right.\n\n---\n\n## Create Medusa Backend\n\n:::note\n\nYou can use the Strapi plugin on an existing Medusa backend, however, existing data (such as existing products) will not be imported. Only newer data will be imported.\n\n:::\n\nTo create your Medusa backend, run the following command:\n\n```bash\nmedusa new medusa-backend --seed\n```\n\nThe `--seed` flag creates an SQLite database and seeds it with some demo data.\n\n### Configure your Backend\n\nOnce the command is done executing, change to the newly created `medusa-backend` directory. Then, in `medusa-config.js`, change the exported object at the end of the file to enable Redis:\n\n```jsx title=medusa-config.js\nmodule.exports = {\n  projectConfig: {\n    redis_url: REDIS_URL,\n    // ...\n  },\n  // ...\n}\n```\n\nThis uses the default Redis configurations. If you want to learn more about configuring Redis, [check out this documentation](../../development/backend/configurations.md#redis).\n\n:::tip\n\nIt is also recommended to use PostgreSQL for an optimal experience, however, it is not required. Learn how to [install](../../development/backend/prepare-environment.mdx#postgres) and [configure](../../development/backend/configurations.md#postgresql-configurations) it on your Medusa backend.\n\n:::\n\n---\n\n## Install the Strapi Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Strapi plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-strapi\n```\n\nThen, add the following environment variables:\n\n```bash\nSTRAPI_USER=<STRAPI_IDENTIFIER>\nSTRAPI_PASSWORD=<STRAPI_PASSWORD>\nSTRAPI_PROTOCOL=http # Optional\nSTRAPI_URL=<STRAPI_URL> # Optional\nSTRAPI_PORT=<STRAPI_PORT> # Optional\n```\n\nWhere:\n\n- `<STRAPI_IDENTIFIER>` is either the email address or username of the user you created in the previous step.\n- `<STRAPI_PASSWORD>` is the password of the user you created in the previous step.\n- `<STRAPI_PROTOCOL>` is the protocol of your Strapi backend. If you’re using a local Strapi backend, set this to `http`. The default value is `https`.\n- `<STRAPI_URL>` is the URL of your Strapi backend. By default, the URL is `localhost`.\n- `<STRAPI_PORT>` is the port the Strapi backend runs on. By default, the port is `1337`.\n\nFinally, open `medusa-config.js` and add the following new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-strapi`,\n    options: {\n      strapi_medusa_user: process.env.STRAPI_USER,\n      strapi_medusa_password: process.env.STRAPI_PASSWORD,\n      strapi_url: process.env.STRAPI_URL, // optional\n      strapi_port: process.env.STRAPI_PORT, // optional\n      strapi_protocol: process.env.STRAPI_PROTOCOL, // optional\n    },\n  },\n]\n```\n\n---\n\n## Run Medusa Backend\n\nMake sure the Strapi backend is still running. If not, you can run the following command to run the Strapi backend in the directory of the Strapi project:\n\n```bash npm2yarn\nnpm run develop\n```\n\nThen, in the directory of your Medusa backend, run the following command to start the Medusa backend:\n\n```bash npm2yarn\nnpm run start\n```\n\nOnce you start your Medusa backend, if you ran the `--seed` command when you created your Medusa backend, you’ll see that `product.created` events have been triggered along with similar events. This will update Strapi with the products you seeded.\n\n---\n\n## Test Two-Way Sync\n\nThis plugin ensures a two-way sync between the Medusa backend and the Strapi backend. So, if you update data on Strapi, it will be reflected on your Medusa backend, and vice-versa.\n\n### Update Products on Strapi\n\nTry updating any products on Strapi by going to Content Manager → Products and choosing a product from the list. Then, make changes to the product and click Save. If you view the products on your backend now, either using the [REST APIs](/api/admin/#tag/Product/operation/GetProducts) or using [the Medusa Admin](../../user-guide/products/index.mdx), you’ll see that the product has been updated.\n\n### Update Products on Medusa\n\nIf you try to update products on Medusa either using the [REST APIs](/api/admin/#tag/Product/operation/PostProductsProduct) or using [the Medusa Admin](../../user-guide/products/manage.mdx), you’ll see that the product is also updated on Strapi.\n\n---\n\n## See Also\n\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n- [Create your own plugin](../../development/plugins/create.md)\n\n<!-- File: docs/content/plugins/file-service/minio.md (Tokens: ~1759 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate MinIO with the Medusa backend. Learn how to install the MinIO plugin on the Medusa backend and configure it.'\naddHowToData: true\n---\n\n# MinIO\n\nThis document will guide you through installing the MinIO file service plugin on your Medusa backend.\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document will focus on setting up [MinIO](https://min.io) on your local machine and connecting Medusa to it.\n\n---\n\n## Prerequisites\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n---\n\n## Set up MinIO\n\nYou can follow [MinIO’s guide to install it](https://docs.min.io/minio/baremetal/quickstart/quickstart.html) on your machine based on your operating system.\n\nAfter installing it, make sure MinIO is always running when your Medusa backend is running. It’s recommended that you set up an alias to quickly start the MinIO backend as instructed at the end of the installation guides in MinIO.\n\n### Change MinIO port\n\nIn MinIO’s documentation, port `9000` is used for the address of the MinIO backend. However, this collides with the port for the Medusa backend. You must change the port for MinIO to another one (for example, port `9001`).\n\nAfter setting up and installing MinIO on your system/sub-system, you can run the following command to change MinIO port to `9001` (or any other available port) instead of `9000` to avoid the port clash:\n\n```bash\nminio backend ~/minio --console-address :9090 --address :9001\n```\n\n### Create a MinIO bucket\n\nAfter installing MinIO and logging into the Console, you can create a bucket that will store the files of your Medusa backend by following these steps:\n\n1. Click on the “Create Bucket” button\n2. For the Bucket Name field, enter a name for the bucket. By MinIO’s requirement, the name can only consist of lower case characters, numbers, dots (`.`), and hyphens (`-`).\n3. Click on the Create Bucket button.\n4. On the bucket's page, click on the cog icon at the top right to configure the bucket.\n5. Click on the edit icon next to Access Policy.\n6. In the pop-up that opens, change the selected value to “public” and click Set.\n\n:::warning\n\nChanging the Access Policy to public will allow anyone to access your bucket. Avoid storing sensitive data in the bucket.\n\n:::\n\n### Generate Access Keys\n\nTo generate access keys for your plugin:\n\n1. From the sidebar of your MinIO console, click on Access Keys\n2. Click on the \"Create access key\" button\n3. This will open a new form with randomly-generated keys. Click on the Create button.\n4. A pop-up will then show the value for your Access Key and Secret Key. Copy them to use in the next section.\n\n:::caution\n\nYou will not be able to access the Secret Key after closing the pop-up. So, make sure to store it somewhere to use later when configuring the plugin.\n\n:::\n\n---\n\n## Plugin Installation\n\nIn the directory of your Medusa backend, run the following command to install the MinIO plugin:\n\n```bash npm2yarn\nnpm install medusa-file-minio\n```\n\nThen, add the following environment variables in `.env`:\n\n```bash\nMINIO_ENDPOINT=<ENDPOINT>\nMINIO_BUCKET=<BUCKET>\nMINIO_ACCESS_KEY=<ACCESS_KEY>\nMINIO_SECRET_KEY=<SECRET_KEY>\n```\n\nWhere `<ENDPOINT>` is the URL of your MinIO backend, `<BUCKET>` is the name of the bucket you created earlier, and `<ACCESS_KEY>` and `<SECRET_KEY>` are the keys you generated in the previous section.\n\nFinally, configure your `medusa-config.js` to include the plugin with the required options:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        endpoint: process.env.MINIO_ENDPOINT,\n        bucket: process.env.MINIO_BUCKET,\n        access_key_id: process.env.MINIO_ACCESS_KEY,\n        secret_access_key: process.env.MINIO_SECRET_KEY,\n    },\n  },\n]\n```\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test it Out\n\nRun your Medusa backend alongside the [Medusa Admin](../../admin/quickstart.mdx) to try out your new file service. Upon editing or creating products, you can now upload thumbnails and images, that are stored in a MinIO backend.\n\n![Image Uploaded on Admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000429/Medusa%20Docs/MinIO/alabX2i_dzg2mh.png)\n\n---\n\n## Private Buckets\n\n### Handle Exports\n\nMedusa provides export functionalities including exporting products and orders. For exports to work, you must [set up a private bucket](#create-private-bucket).\n\n### Handle Imports\n\nMedusa provides import functionalities including importing products. For imports to work, you must [set the private bucket](#add-private-bucket-environment-variable) to be the same as the public bucket.\n\n### Create Private Bucket\n\nTo create a private bucket, follow along the [steps mentioned earlier](#create-a-minio-bucket), but keep Access Policy set to private.\n\n### Add Private Bucket Environment Variable\n\nAdd the following environment variable on your Medusa backend:\n\n```bash\nMINIO_PRIVATE_BUCKET=exports\n```\n\nThen, add a new option to the plugin’s options in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        // ...\n        private_bucket: process.env.MINIO_PRIVATE_BUCKET,\n    },\n  },\n]\n```\n\n### Use Different Secret and Access Keys\n\nIf you only add the `private_bucket` option, the same secret and access keys that you used for the public bucket will be used to access the private bucket.\n\nIf you want to use different keys, set the following environment variables:\n\n```bash\nMINIO_PRIVATE_ACCESS_KEY=<YOUR_PRIVATE_ACCESS_KEY>\nMINIO_PRIVATE_SECRET_KEY=<YOUR_PRIVATE_SECRET_KEY>\n```\n\nWhere `<YOUR_PRIVATE_ACCESS_KEY>` and `<YOUR_PRIVATE_SECRET_KEY>` are the access key and secret access key that have access to the private MinIO bucket.\n\nThen, add two new options to the plugin’s options in `medusa-config.js`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-minio`,\n    options: {\n        // ...\n        private_access_key_id: \n          process.env.MINIO_PRIVATE_ACCESS_KEY,\n        private_secret_access_key: \n          process.env.MINIO_PRIVATE_SECRET_KEY,\n    },\n  },\n]\n```\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the MinIO domain name into the configured images domain names. This is because all URLs of product images will be from the MinIO backend.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"127.0.0.1\",\n    ],\n  },\n})\n```\n\nWhere `127.0.0.1` is the domain of your local MinIO backend.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n\n<!-- File: docs/content/plugins/file-service/s3.md (Tokens: ~2324 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate the S3 plugin with the Medusa backend. Learn how to configure and use S3 to store images related to the Medusa backend.'\naddHowToData: true\n---\n\n# S3\n\nIn this document, you’ll learn how to install the [S3 plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-s3) on your Medusa backend and use it for storage.\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting the images. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document focuses on using [S3](https://aws.amazon.com/s3/) to store images and files uploaded to the Medusa backend.\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n### Required Accounts\n\nYou need to [create an AWS account](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin) to follow along with this documentation.\n\n---\n\n## Create S3 Bucket\n\nOn your AWS Console, search for S3 in the search box at the top. Then, choose the first result you see which should be S3 under the Services category.\n\n![Enter S3 in the search box and choose S3 from the result in the Services category](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000547/Medusa%20Docs/S3/wuPTfQ8_bzbm8n.png)\n\nThen, on the new page that opens, click on Create Bucket button at the top right of the Buckets table.\n\n![Click on the Create bucket button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000527/Medusa%20Docs/S3/h95D38T_gptwpr.png)\n\nThe Create Bucket form will open. In the General Configuration section enter a name for the bucket and choose a region for the bucket. Both of the values of these fields are important as you’ll use them throughout the documentation.\n\n![Enter bucket name and choose region in the General Configuration section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000559/Medusa%20Docs/S3/wlxUU8I_m4ngqd.png)\n\nNext, in the Object Ownership section, choose ACLs enabled. Then, two radio buttons will show below it. Choose Bucket owner preferred.\n\n![In the Object Ownership section choose ACLs enabled, then choose Bucket owner preferred for the Object ownership field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000572/Medusa%20Docs/S3/ChUXQPt_eg8mn1.png)\n\nThen, in the “Block Public Access settings for this bucket” section, uncheck the “Block all public access” checkbox. This shows a warning message at the bottom of the section with another checkbox. Check the checkbox to ensure you understand that objects in the bucket are publicly accessible.\n\n![Uncheck Block all public access and all fields under it, and check the checkbox field \"I acknowledge that the current settings might result in this bucket and the objects within becoming public\"](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000586/Medusa%20Docs/S3/abHquFh_wypfbx.png)\n\nYou can leave the rest of the fields in the form as is and scroll down to the end of the page. Then, click on the Create Bucket button.\n\n---\n\n## Manage Bucket Policies\n\nOn the page of the bucket you just created, click on the Permissions tab. Then, scroll down until you find the Bucket policy section. Click on Edit in that section.\n\n![Find the bucket policy section which should be empty and click on the Edit button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000607/Medusa%20Docs/S3/I6BBLwv_zoknft.png)\n\nIn the Edit Bucket Policy page, enter the following in the field:\n\n```json\n{\n  \"Version\": \"2012-10-17\",\n  \"Id\": \"Policy1397632521960\",\n  \"Statement\": [\n    {\n      \"Sid\": \"Stmt1397633323327\",\n      \"Effect\": \"Allow\",\n      \"Principal\": {\n        \"AWS\": \"*\"\n      },\n      \"Action\": \"s3:GetObject\",\n      \"Resource\": \"arn:aws:s3:::<YOUR_BUCKET_NAME>/*\"\n    }\n  ]\n}\n```\n\nMake sure to replace `<YOUR_BUCKET_NAME>` with the name of the bucket you created.\n\nOnce you’re done, scroll down and click on the Save changes button.\n\n### User Permissions\n\nYour user must have the `AmazonS3FullAccess` policy attached to it. You can refer to [this guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-and-attach-iam-policy.html) to learn how to add a policy if necessary.\n\n### Obtain Access Keys\n\nYou must obtain access keys for your user as you’ll use them to integrate the S3 plugin in Medusa with your bucket. To obtain the Access Key ID and the Secret Access Key, check out [this guide](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\n\n---\n\n## Install the S3 Plugin\n\nIn the directory of your Medusa backend, run the following command to install the S3 Plugin:\n\n```bash npm2yarn\nnpm install medusa-file-s3\n```\n\nThen, add the following environment variables:\n\n```bash\nS3_URL=<YOUR_BUCKET_URL>\nS3_BUCKET=<YOUR_BUCKET_NAME>\nS3_REGION=<YOUR_BUCKET_REGION>\nS3_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>\nS3_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>\n```\n\nWhere:\n\n1. `<YOUR_BUCKET_URL>` is the URL to your bucket. It’s in the form `https://<BUCKET_NAME>.s3.<REGION>.amazonaws.com`, where `<BUCKET_NAME>` is the name of the bucket and the `<REGION>` is the region the bucket is created in. If you’re not sure which region, on your bucket’s page on S3 click on Properties. You can then find the region under AWS Region. Make sure to only copy the code (for example, `us-east-1`).\n2. `<YOUR_BUCKET_NAME>` is the name of the bucket you created.\n3. `<YOUR_BUCKET_REGION>` is the region code of your bucket. For example, `us-east-1`.\n4. `<YOUR_ACCESS_KEY_ID>` is the Access Key ID that you created for your user.\n5. `<YOUR_SECRET_ACCESS_KEY>` is the Secret Access Key that you created for your user.\n\nFinally, in `medusa-config.js`, add to the `plugins` array the following new item:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-s3`,\n    options: {\n        s3_url: process.env.S3_URL,\n        bucket: process.env.S3_BUCKET,\n        region: process.env.S3_REGION,\n        access_key_id: process.env.S3_ACCESS_KEY_ID,\n        secret_access_key: process.env.S3_SECRET_ACCESS_KEY,\n    },\n  },\n]\n```\n\n### Add AWS Configurations\n\nYou can pass AWS configurations in the plugin's options under the property `aws_config_object`. This property is an object that accepts [AWS Configurations](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html) as its properties.\n\nFor example, you can pass the `region`, `access_key_id` and `secret_access_key` in `aws_config_object`:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-s3`,\n    options: {\n        s3_url: process.env.S3_URL,\n        bucket: process.env.S3_BUCKET,\n        aws_config_object: {\n          region: process.env.S3_REGION,\n          access_key_id: process.env.S3_ACCESS_KEY_ID,\n          secret_access_key: process.env.S3_SECRET_ACCESS_KEY,\n        },\n    },\n  },\n]\n```\n\nMake sure to define `S3_REGION`, `S3_ACCESS_KEY_ID`, and `S3_SECRET_ACCESS_KEY` in your environment variables first.\n\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test the S3 Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, you can either test the plugin using the [REST APIs](/api/store) or using the [Medusa Admin](../../admin/quickstart.mdx).\n\nOn the Medusa Admin, create a new product and, in the Images section, upload an image then click Save. If the integration was successful, the product image will be uploaded successfully.\n\n![An image is successfully uploaded on the Medusa Admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000619/Medusa%20Docs/S3/zPC9qFH_dgqf76.png)\n\nYou can also check that the image was uploaded on the S3 bucket’s page.\n\n![Image is now available in the S3 Bucket](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000630/Medusa%20Docs/S3/NJZ5bP8_ovv9rc.png)\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the S3 bucket domain name into the configured images’ domain names. This is because all URLs of product images will be from the S3 bucket.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"<BUCKET_NAME>.s3.amazonaws.com\",\n    ],\n  },\n})\n```\n\nWhere `<BUCKET_NAME>` is the name of the S3 bucket you’re using.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n- [Deploy the Medusa backend](../../deployments/server/index.mdx)\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n\n<!-- File: docs/content/plugins/file-service/spaces.md (Tokens: ~1934 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Spaces with the Medusa backend. Learn how to install and configure the Spaces plugin on the Medusa backend.'\naddHowToData: true\n---\n\n# Spaces\n\nIn this document, you’ll learn how to install the [Spaces plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-spaces) on your Medusa backend and use it for storage.\n\n<div>\n  <video width=\"100%\" height=\"100%\" playsinline autoplay muted controls>\n    <source src=\"https://user-images.githubusercontent.com/59018053/154808767-7c030254-1879-41fd-a71c-b31c5508d8a4.mp4\" type=\"video/mp4\" />\n  </video>\n</div>\n\n## Overview\n\nTo manage images in Medusa, you need a file service plugin responsible for hosting the images. Without a file service plugin, you will face issues while working with Medusa, such as when uploading images for products.\n\nMedusa provides three different options to handle your file storage. This document focuses on using [Spaces](https://www.digitalocean.com/products/spaces) to store images and files uploaded to the Medusa backend.\n\n---\n\n## Prerequisites\n\n### Medusa Backend\n\nA Medusa backend is required to be set up before following along with this document. You can follow the [quickstart guide](../../development/backend/install.mdx) to get started in minutes.\n\n### Required Accounts\n\nYou need to [create a DigitalOcean account](https://cloud.digitalocean.com/registrations/new) to follow along with this documentation. A credit card is required during registration.\n\n---\n\n## Create DigitalOcean Space\n\nIn your DigitalOcean account, click on the Create button at the top right, then choose Spaces from the dropdown.\n\n![Click on the green Create button at the top right, then choose Spaces in the dropdown](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000907/Medusa%20Docs/Spaces/AQqMRoJ_uhkywh.png)\n\nIn the Create a Space form, you can choose any of the regions listed. You can alternatively leave all settings as they are and scroll down to the Finalize and Create section.\n\n![The Space form can be left as is and move towards the Finalize and Create section](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000929/Medusa%20Docs/Spaces/ipsIqoA_zeyfkf.png)\n\nIn the Finalize and Create section, enter a name for the field “Choose a unique name”. You’ll use this name later in the integration with Medusa. Also, select the project you want to add the new Space to.\n\n![Enter a name for the Space in the Choose a unique name field](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000949/Medusa%20Docs/Spaces/NhlRX0h_ptdhpk.png)\n\nOnce you’re done, click on the Create a Space button. This creates the Space and redirects you to the Space’s page.\n\n---\n\n## Create Space Access Keys\n\nChoose API from the bottom of the sidebar.\n\n![Choose API from the bottom of the sidebar.](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000964/Medusa%20Docs/Spaces/6zNoDOW_tqbeqv.png)\n\nThis opens the Application & API page. Scroll down to Spaces Access Keys and click the Generate New Key button.\n\n![In the Spaces access keys section, click the Generate New Key button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000977/Medusa%20Docs/Spaces/NUocdgh_doi0dq.png)\n\nThis shows a table with the Name field editable. Enter a name for the Access Keys and click on the checkmark button to save and generate the Spaces access keys.\n\n![Enter a name for the Space access key in the field under the Name column](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000987/Medusa%20Docs/Spaces/ihJBx0T_xfe4rh.png)\n\nThen, two keys will be available under the Key column of the table. The first one is the Access Key ID and the second is the Secret Access Key. Copy both as you’ll use them later.\n\n:::caution\n\nThe secret access key will not be shown again after you leave the page. Make sure to copy it when you see it or you’ll need to re-generate a new one.\n\n:::\n\n---\n\n## Install the Spaces Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Spaces plugin:\n\n```bash npm2yarn\nnpm install medusa-file-spaces\n```\n\nThen, add the following environment variables:\n\n```bash\nSPACE_URL=<YOUR_SPACE_URL>\nSPACE_BUCKET=<YOUR_SPACE_NAME>\nSPACE_ENDPOINT=<YOUR_SPACE_ENDPOINT>\nSPACE_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>\nSPACE_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>\n```\n\nWhere:\n\n1. `<YOUR_SPACE_URL>` is the URL of your Space which you can find on the Space’s page below the Space’s name.\n\n![The URL is available under the Space's name on the Space's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001004/Medusa%20Docs/Spaces/cA3vkvh_maixr0.png)\n\n2. `<YOUR_SPACE_NAME>` is the name of your Space.\n3. `<YOUR_SPACE_ENDPOINT>` is your Space’s endpoint which can be found by going to your Space’s page, clicking on the Settings tab, and scrolling to the Endpoint section.\n\n![Endpoint can be found on the Settings tab in the Space's page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001017/Medusa%20Docs/Spaces/CnvLr6R_tudlhu.png)\n\n4. `<YOUR_ACCESS_KEY_ID>` and `<YOUR_SECRET_ACCESS_KEY>` are the keys you created in the previous section.\n\nFinally, in `medusa-config.js` add a new item to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-file-spaces`,\n    options: {\n        spaces_url: process.env.SPACE_URL,\n        bucket: process.env.SPACE_BUCKET,\n        endpoint: process.env.SPACE_ENDPOINT,\n        access_key_id: process.env.SPACE_ACCESS_KEY_ID,\n        secret_access_key: process.env.SPACE_SECRET_ACCESS_KEY,\n    },\n  },\n]\n```\n\n:::caution\n\nIf you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.\n\n:::\n\n---\n\n## Test the Space Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThen, you can either test the plugin using the [REST APIs](/api/store) or using the [Medusa Admin](../../admin/quickstart.mdx).\n\nOn the Medusa Admin, create a new product and, in the Images section, upload an image then click Save. If the integration was successful, the product image will be uploaded successfully.\n\n![Image successfully uploaded on Medusa's admin](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001039/Medusa%20Docs/Spaces/oTi4jIw_c6vefa.png)\n\nYou can also check that the image was uploaded on the Space’s page.\n\n![Image can be seen on the Space's page on DigitalOcean](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001050/Medusa%20Docs/Spaces/BexmRkg_gimk1d.png)\n\n---\n\n## Next.js Storefront Configuration\n\nIf you’re using a [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront, you need to add an additional configuration that adds the Space’s domain name into the configured images’ domain names. This is because all URLs of product images will be from the Space.\n\nIf this configuration is not added, you’ll receive the error [\"next/image Un-configured Host”](https://nextjs.org/docs/messages/next-image-unconfigured-host).\n\nIn `next.config.js` add the following option in the exported object:\n\n```jsx title=next.config.js\nconst { withStoreConfig } = require(\"./store-config\")\n\n// ...\n\nmodule.exports = withStoreConfig({\n  // ...\n  images: {\n    domains: [\n      // ...\n      \"<YOUR_SPACE_DOMAIN>\",\n    ],\n  },\n})\n```\n\nWhere `<YOUR_SPACE_DOMAIN>` is the domain name for your Space which can be retrieved from the Space URL. For example, `medusa-backend.digitaloceanspaces.com`.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n- [Deploy the Medusa backend on DigitalOcean](../../deployments/server/deploying-on-digital-ocean.md).\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n\n<!-- File: docs/content/plugins/notifications/mailchimp.md (Tokens: ~1553 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Mailchimp with the Medusa backend. Learn how to install the plugin on the Medusa backend and how to add a subscription form.'\naddHowToData: true\n---\n\n# Mailchimp\n\nIn this document, you’ll learn about the Mailchimp plugin, what it does, and how to use it.\n\n## Overview\n\n[Mailchimp](https://mailchimp.com) is an email marketing service that can be used to create newsletters and subscriptions.\n\nBy integrating Mailchimp with Medusa, customers will be able to subscribe from Medusa to your Mailchimp newsletter and will be automatically added to your Mailchimp subscribers list.\n\n:::note\n\nThis plugin is only used to allow your customers to subscribe but does not actually do any email sending. If you want to send emails to customers based on specific events, for example, when an order is placed, you should check out the [SendGrid plugin](./sendgrid.mdx) instead.\n\n:::\n\n---\n\n## Prerequisites\n\nBefore going further with this guide make sure you have a Medusa backend set up. You can follow the [Quickstart guide](../../development/backend/install.mdx).\n\nYou also need a Mailchimp account, so please [create one](https://mailchimp.com/signup) before you start.\n\n---\n\n## Obtain Mailchimp Keys\n\nTo integrate the plugin into Medusa you need two keys: The API Key and the Newsletter list or Audience ID. The API Key acts as a credential for your account, whereas the Newsletter list ID determines which audience should the subscribed customers be added to.\n\nYou can follow [this guide](https://mailchimp.com/help/about-api-keys/#Find_or_generate_your_API_key) from Mailchimp’s documentation to obtain an API Key.\n\nYou can follow [this guide](https://mailchimp.com/help/find-audience-id/) from Mailchimp’s documentation to obtain your Newsletter list or Audience ID.\n\n---\n\n## Install the Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Mailchimp plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-mailchimp\n```\n\n### Add Keys\n\nOpen `.env` and add the following keys:\n\n```bash\nMAILCHIMP_API_KEY=<YOUR_API_KEY>\nMAILCHIMP_NEWSLETTER_LIST_ID=<YOUR_NEWSLETTER_LIST_ID>\n```\n\nMake sure to replace `<YOUR_API_KEY>` with your API Key and `<YOUR_NEWSLETTER_LIST_ID>` with your Newsletter list or Audience ID.\n\n### Add Plugin to Medusa Config\n\nOpen `medusa-config.js` and add the new plugin into the `plugins` array:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...,\n  {\n    resolve: `medusa-plugin-mailchimp`,\n    options: {\n      api_key: process.env.MAILCHIMP_API_KEY,\n      newsletter_list_id: \n        process.env.MAILCHIMP_NEWSLETTER_LIST_ID,\n    },\n  },\n]\n```\n\n---\n\n## Test it Out\n\nThis plugin adds a new `POST` endpoint at `/mailchimp/subscribe`. This endpoint requires in the body of the request an `email` field. You can also optionally include a `data` object that holds any additional data you want to send to Mailchimp. You can check out [Mailchimp’s subscription documentation](https://mailchimp.com/developer/marketing/api/list-members/add-member-to-list/) for more details on the data you can send.\n\n### Without Additional Data\n\nTry sending a `POST` request to `/mailchimp/subscribe` with the following JSON body:\n\n```json noReport\n{\n  \"email\": \"example@gmail.com\"\n}\n```\n\nIf the subscription is successful, a `200` response code will be returned with `OK` message.\n\n![Postman](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000185/Medusa%20Docs/Mailchimp/tpr7uCF_g4rymn.png)\n\nIf you check your Mailchimp dashboard, you should find the email added to your Audience list.\n\n![Email Added](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000199/Medusa%20Docs/Mailchimp/ALz6WUq_e4mkcs.png)\n\n### With Additional Data\n\nHere’s an example of sending additional data with the subscription:\n\n```json noReport\n{\n    \"email\": \"example@gmail.com\",\n    \"data\": {\n        \"tags\": [\"customer\"]\n    }\n}\n```\n\nAll fields inside `data` will be sent to Mailchimp’s API along with the email.\n\n---\n\n## Use Mailchimp Service\n\nIf you want to subscribe to users without using this endpoint or at a specific place in your code, you can use Mailchimp’s service `mailchimpService` in your endpoints, services, or subscribers. This service has a method `subscribeNewsletter` which lets you use the subscribe functionality.\n\nHere’s an example of using the `mailchimpService` inside an endpoint:\n\n```jsx title=src/api/index.ts\nconst mailchimpService = req.scope.resolve(\"mailchimpService\")\n\nmailchimpService.subscribeNewsletter(\n  \"example@gmail.com\",\n  { tags: [\"customer\"] } // optional\n)\n```\n\n:::tip\n\nYou can learn more about how you can use services in your endpoints, services, and subscribers in the [Services documentation](../../development/services/create-service.md#using-your-custom-service).\n\n:::\n\n---\n\n## Add Subscription Form\n\nThis section has a simple example of adding a subscription form in your storefront. The code is for React-based frameworks but you can use the same logic for your storefronts regardless of the framework you are using.\n\nYou’ll need to use [axios](https://github.com/axios/axios) to send API requests, so if you don’t have it installed make sure you install it first:\n\n```bash npm2yarn\nnpm install axios\n```\n\nThen, in the component you want to add the subscription form add the following code:\n\n```tsx\nimport axios from \"axios\"\nimport { useState } from \"react\"\n\nexport default function NewsletterForm() {\n  const [email, setEmail] = useState(\"\")\n\n  function subscribe(e) {\n    e.preventDefault()\n    if (!email) {\n      return\n    }\n\n    axios.post(\"http://localhost:9000/mailchimp/subscribe\", {\n      email,\n    })\n      .then((e) => {\n        alert(\"Subscribed sucessfully!\")\n        setEmail(\"\")\n      })\n      .catch((e) => {\n        console.error(e)\n        alert(\"An error occurred\")\n      })\n  }\n\n  return (\n    <form onSubmit={subscribe}>\n      <h2>Sign Up for our newsletter</h2>\n      <input \n        type=\"email\"\n        name=\"email\" \n        id=\"email\" \n        placeholder=\"example@gmail.com\"\n        value={email} \n        onChange={(e) => setEmail(e.target.value)}\n      />\n      <button type=\"submit\">Subscribe</button>\n    </form>\n  )\n}\n```\n\nThis will result in a subscription form similar to the following:\n\n![Subscription Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000210/Medusa%20Docs/Mailchimp/JHIFEwe_fu4rkv.png)\n\nIf you try entering an email and clicking Subscribe, the email will be subscribed to your Mailchimp newsletter successfully.\n\n---\n\n## See Also\n\n- Check out [SendGrid plugin](./sendgrid.mdx) for more Email functionalities.\n- [Plugins Overview](../../development/plugins/overview.mdx)\n\n<!-- File: docs/content/plugins/notifications/slack.md (Tokens: ~1171 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Slack with the Medusa backend. Learn how to create and configure a Slack app and install the Slack plugin on the Medusa backend.'\naddHowToData: true\n---\n\n# Slack\n\nIn this documentation, you'll learn how to add the [Slack plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-slack-notification) to your Medusa backend to start receiving order notifications.\n\n## Overview\n\nWhen you add this plugin, the store owner can receive order notifications into their Slack workspace.\n\nThe notification contains details about the order including:\n\n- Customer's details and address\n- Items ordered, their quantity, and the price\n- Order totals including Tax amount.\n- Promotion details if there are any (this is optional and can be turned off).\n\nThe plugin registers a subscriber to the `order.placed` event. When an order is placed, the subscriber handler method uses the ID of the order to retrieve order details mentioned above.\n\nThen, the order notificaiton is sent to Slack using Webhooks. So, you'll need to create a Slack App, add it into your workspace, and activate Incoming Webhooks.\n\n---\n\n## Prerequisites\n\n### Slack Account\n\nTo follow along with this guide, you need to have a Slack account with a connected workspace. If you don’t have one, you can [create a free account on Slack](https://slack.com/).\n\n### Medusa Backend\n\nThis tutorial assumes you already have a Medusa backend installed. If you don’t, please follow along with the [quickstart guide](../../development/backend/install.mdx). The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n---\n\n## Create Slack App\n\nThe first step is to create a Slack app. This app will be connected to your workspace and will have Incoming Webhooks activated to receive notifications from the Medusa backend using a Webhook URL.\n\nGo to [Slack API](https://api.slack.com/) and click Create app. This will take you to a new page with a pop-up. In the pop-up, choose From scratch.\n\n![Create Slack App](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000844/Medusa%20Docs/Slack/liVfwF8_ryzly3.png)\n\nYou’ll then need to enter some info like the App name and the workspace it will be connected to. Once you’re done, the app will be created.\n\n### Activate Incoming Webhooks\n\nTo activate Incoming Webhooks, choose Features > Incoming Webhooks from the sidebar. At first, it will be disabled so make sure to enable it by switching the toggle.\n\n![Incoming Webhooks](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000856/Medusa%20Docs/Slack/5Y0nv4p_mugzkb.png)\n\n### Add New Webhook\n\nAfter activating Incoming Webhooks, on the same page scroll down and click on the Add New Webhook to Workspace button.\n\n![Add New Webhook](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000867/Medusa%20Docs/Slack/sejdIqH_wyqgs5.png)\n\nAfter that, choose the channel to send the notifications to. You can also choose a DM to send the notifications to. Once you’re done click Allow.\n\n![Choose channel or DM](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000882/Medusa%20Docs/Slack/Zw3f5uF_hljfpr.png)\n\nThis will create a new Webhook with a URL which you can see in the table at the end of the Incoming Webhooks page. Copy the URL as you’ll use it in the next section.\n\n---\n\n## Install Slack Plugin\n\nThe next step is to install Medusa’s [Slack plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-slack-notification) into your Medusa backend.\n\nOpen the terminal in the Medusa backend’s directory and run the following command:\n\n```bash npm2yarn\nnpm install medusa-plugin-slack-notification\n```\n\nAfter that, open `medusa-config.js` and add the new plugin with its configurations in the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...,\n  {\n    resolve: `medusa-plugin-slack-notification`,\n    options: {\n      show_discount_code: false,\n      slack_url: `<WEBHOOK_URL>`,\n      admin_orders_url: `http://localhost:7001/a/orders`,\n    },\n  },\n]\n```\n\n- Make sure to change `<WEBHOOK_URL>` with the Webhook URL you copied after creating the Slack app.\n- The `show_discount_code` option enables or disables showing the discount code in the notification sent to Slack. \n- The `admin_orders_url` is the prefix of the URL of the order detail pages on your admin panel. If you’re using Medusa’s Admin locally, it should be `http://localhost:7001/a/orders`. This will result in a URL like `http://localhost:7001/a/orders/order_01FYP7DM7PS43H9VQ1PK59ZR5G`.\n\nThat’s all you need to do to integrate Slack into Medusa!\n\n---\n\n## See Also\n\n- Install [Medusa's Admin](../../admin/quickstart.mdx) for the full order-management experience.\n- Install the [Next.js](../../starters/nextjs-medusa-starter.mdx) starter storefront.\n\n<!-- File: docs/content/plugins/notifications/twilio-sms.md (Tokens: ~1362 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Twilio SMS with the Medusa backend. Learn how to install the Twilio SMS plugin and test it out.'\naddHowToData: true\n---\n\n# Twilio SMS\n\nIn this document, you’ll learn about the Twilio SMS Plugin, what it does, and how to use it in Medusa.\n\n## Overview\n\n[Twilio’s SMS API](https://www.twilio.com/sms) can be used to send users SMS messages instantly. It has a lot of additional features such as Whatsapp messaging and conversations.\n\nBy integrating Twilio SMS into Medusa, you’ll have easy access to Twilio’s SMS API to send SMS messages to your users and customers. You can use it to send Order confirmations, verification codes, reset password messages, and more.\n\n:::note\n\nThis plugin only gives you access to the Twilio SMS API but does not implement sending messages at any given point. You’ll have to add this yourself where you need it. You can look at the [example later in this tutorial](#example-usage-of-the-plugin) to check how you can send an SMS for a new order.\n\n:::\n\n---\n\n## Prerequisites\n\nBefore going further with this guide make sure you have a Medusa backend set up. You can follow the [Quickstart guide](../../development/backend/install.mdx) if you don’t.\n\nYou also must have a [Twilio account created](https://www.twilio.com/sms) so if you don’t already please go ahead and create one.\n\n---\n\n## Retrieve Credentials\n\nFor the [Twilio SMS plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-twilio-sms), you need three credentials from your Twilio account: Account SID, Auth Token, and a Twilio phone number to send from. You can find these three from your [Twilio Console’s homepage](https://console.twilio.com).\n\n---\n\n## Install Plugin\n\nIn the directory of your Medusa backend, run the following command to install [Twilio SMS plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-twilio-sms):\n\n```bash npm2yarn\nnpm install medusa-plugin-twilio-sms\n```\n\nThen, you’ll need to add your credentials in `.env`:\n\n```bash\nTWILIO_SMS_ACCOUNT_SID=<YOUR_ACCOUNT_SID>\nTWILIO_SMS_AUTH_TOKEN=<YOUR_AUTH_TOKEN>\nTWILIO_SMS_FROM_NUMBER=<YOUR_TWILIO_NUMBER>\n```\n\nMake sure to replace `<YOUR_ACCOUNT_SID>`, `<YOUR_AUTH_TOKEN>`, and `<YOUR_TWILIO_NUMBER>` with the credentials you obtained from your Twilio Console.\n\nFinally, add the plugin and its options in the `medusa-config.js` file to the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-twilio-sms`,\n    options: {\n      account_sid: process.env.TWILIO_SMS_ACCOUNT_SID,\n      auth_token: process.env.TWILIO_SMS_AUTH_TOKEN,\n      from_number: process.env.TWILIO_SMS_FROM_NUMBER,\n    },\n  },\n]\n```\n\n---\n\n## Example Usage of the Plugin\n\nThis plugin adds the service `twilioSmsService` to your Medusa backend. To send SMS using it, all you have to do is resolve it in your file as explained in the [Services](../../development/services/create-service.md#using-your-custom-service) documentation.\n\nIn this example, you’ll create a subscriber that listens to the `order.placed` event and sends an SMS to the customer to confirm their order.\n\n:::tip\n\nFor this example to work, you'll need to have an event bus module installed and configured, which should be available by default.\n\n:::\n\nCreate the file `src/services/sms.js` in your Medusa backend with the following content:\n\n```jsx title=src/services/sms.js\nclass SmsSubscriber {\n  constructor({ \n    twilioSmsService, \n    orderService, \n    eventBusService,\n  }) {\n    this.twilioSmsService_ = twilioSmsService\n    this.orderService = orderService\n\n    eventBusService.subscribe(\"order.placed\", this.sendSMS)\n  }\n\n  sendSMS = async (data) => {\n    const order = await this.orderService.retrieve(data.id, {\n      relations: [\"shipping_address\"],\n    })\n\n    if (order.shipping_address.phone) {\n      this.twilioSmsService_.sendSms({\n        to: order.shipping_address.phone,\n        body: \"We have received your order #\" + data.id,\n      })\n    }\n  }\n}\n\nexport default SmsSubscriber\n```\n\nIn the `constructor`, you resolve the `twilioSmsService` and `orderService` using dependency injection to use it later in the `sendSMS` method.\n\nYou also subscribe to the event `order.placed` and sets the event handler to be `sendSMS`.\n\nIn `sendSMS`, you first retrieve the order with its relation to `shipping_address` which contains a `phone` field. If the phone is set, you send an SMS to the customer using the method `sendSms` in the `twilioSmsService`.\n\nThis method accepts an object of parameters. These parameters are based on Twilio’s SMS APIs. You can check their [API documentation](https://www.twilio.com/docs/sms/api/message-resource#create-a-message-resource) for more fields that you can add.\n\nIf you create an order now on your storefront, you should receive a message from Twilio on the phone number you entered in the shipping address.\n\n:::tip\n\nIf you don’t have a storefront set up yet, you can install the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx).\n\n:::\n\n:::caution\n\nIf you’re on a Twilio trial make sure that the phone number you entered on checkout is a [verified Twilio number on your console](https://console.twilio.com/us1/develop/phone-numbers/manage/verified).\n\n:::\n\n![Twilio Dashboard](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001219/Medusa%20Docs/Stripe/MXtQMiL_kb7kxe.png)\n\n---\n\n## See Also\n\n- [Notifications Overview](../../development/notification/overview.mdx).\n- Install the [Medusa admin](../../admin/quickstart.mdx) for functionalities like Gift Cards creation, swaps, claims, order return requests, and more.\n\n<!-- File: docs/content/plugins/payment/klarna.md (Tokens: ~876 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Klarna as a payment provider with the Medusa backend. Learn how to install Klarna and enable the payment provider in a region.'\naddHowToData: true\n---\n\n# Klarna\n\nIn this document, you’ll learn how to integrate Klarna as a payment provider in Medusa.\n\n:::tip\n\nFollowing the release of v1.8 of the core Medusa package, the naming of payment providers have changed to payment processors with the introduction of the Payment Processor API. However, plugins or implementation that still don't implement the Payment Processor API are still called payment providers.\n\n:::\n\n## Introduction\n\n[Klarna](https://www.klarna.com/) is a payment provider that allows customers to pay in different ways including direct payment, installment payments, payment after delivery, and more.\n\nYou can integrate Klarna into Medusa using the [official plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-klarna).\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is assumed that you already have a Medusa backend installed and set up. If not, you can follow the [quickstart guide](../../development/backend/install.mdx).\n\nIn addition, you’ll need to use the [Medusa Admin](../../admin/quickstart.mdx) to enable the payment provider in later steps. You can alternatively use the [REST APIs](/api/admin/#tag/Region/operation/PostRegionsRegionPaymentProviders).\n\n### Needed Accounts\n\n- A [Klarna business account](https://portal.klarna.com/)\n\n---\n\n## Install Plugin\n\nOn your Medusa backend, run the following command to install the plugin:\n\n```bash\nnpm install medusa-payment-klarna\n```\n\nThen, add the following environment variables:\n\n```bash\nKLARNA_BACKEND_URL=<YOUR_KLARNA_BACKEND_URL>\nKLARNA_URL=<YOUR_KLARNA_URL>\nKLARNA_USER=<YOUR_KLARNA_USER>\nKLARNA_PASSWORD=<YOUR_KLARNA_PASSWORD>\nKLARNA_TERMS_URL=<YOUR_KLARNA_TERMS_URL>\nKLARNA_CHECKOUT_URL=<YOUR_KLARNA_CHECKOUT_URL>\nKLARNA_CONFIRMATION_URL=<YOUR_KLARNA_CONFIRMATION_URL>\n```\n\nWhere:\n\n- `<YOUR_KLARNA_BACKEND_URL>` is your Klarna URL.\n- `<YOUR_KLARNA_URL>` is the [base Klarna URL based on your environment](https://docs.klarna.com/api/api-urls/).\n- `<YOUR_KLARNA_USER>` and `<YOUR_KLARNA_PASSWORD>` are your [API credentials](https://docs.klarna.com/api/authentication/).\n- `<YOUR_KLARNA_TERMS_URL>`, `<YOUR_KLARNA_CHECKOUT_URL>`, and `<YOUR_KLARNA_CONFIRMATION_URL>` are the terms, checkout, and confirmation URL of your Klarna account.\n\nFinally, in `medusa-config.js`, add the Klarna plugin to the `plugins` array with the necessary configurations:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // other plugins...\n  {\n    resolve: `medusa-payment-klarna`,\n    options: {\n      backend_url: process.env.KLARNA_BACKEND_URL,\n      url: process.env.KLARNA_URL,\n      user: process.env.KLARNA_USER,\n      password: process.env.KLARNA_PASSWORD,\n      merchant_urls: {\n        terms: process.env.KLARNA_TERMS_URL,\n        checkout: process.env.KLARNA_CHECKOUT_URL,\n        confirmation: process.env.KLARNA_CONFIRMATION_URL,\n      },\n    },\n  },\n]\n```\n\n---\n\n## Enable Klarna in Regions\n\nTo use Klarna in your store, you must enable it in at least one region.\n\nYou can follow [this user guide to learn how to enable a payment provider in a region](../../user-guide/regions/providers#manage-payment-providers). You can alternatively use the [REST APIs](/api/admin/#tag/Region/operation/PostRegionsRegionPaymentProviders).\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n\n<!-- File: docs/content/plugins/payment/paypal.md (Tokens: ~2637 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate PayPal with the Medusa backend. Learn how to install the PayPal plugin on the Medusa backend and integrate into a storefront.'\naddHowToData: true\n---\n\n# PayPal\n\nThis document guides you through setting up PayPal as a payment processor in your Medusa backend, admin, and storefront using the [PayPal plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-paypal).\n\n## Overview\n\n[PayPal](https://www.paypal.com) is a payment processor used by millions around the world. It allows customers to purchase orders from your website using their PayPal account rather than the need to enter their card details.\n\nAs a developer, you can use PayPal’s SDKs and APIs to integrate PayPal as a payment method into your ecommerce store. You can test out the payment method in sandbox mode before going live with it as a payment method.\n\nUsing the `medusa-payment-paypal` plugin, this guide shows you how to set up your Medusa backend with PayPal as a payment processor.\n\n---\n\n## Prerequisites\n\nBefore you proceed with this guide, make sure you create a [PayPal account](https://www.paypal.com). You also need a PayPal Developer account and retrieve the Client ID and Client Secret. You can learn more about how to do that in [PayPal’s documentation](https://developer.paypal.com/api/rest/).\n\nIn addition, you need to configure a webhook listener on your PayPal Developer Dashboard and obtain the webhook ID. This is necessary for Webhooks to work.\n\nWebhooks are used in scenarios where the customer might leave the page during the authorization and before the checkout flow is fully complete. It will then create the order or swap after the payment is authorized if they weren’t created\n\nAdditionally, you need a Medusa backend installed and set up. If not, you can follow the [quickstart guide](../../development/backend/install.mdx) to get started.\n\nYou also need [Medusa Admin](../../admin/quickstart.mdx) installed to enable PayPal as a payment processor. You can alternatively use the [REST APIs](/api/admin).\n\n---\n\n## Medusa Backend\n\n### Install the PayPal Plugin\n\nIn the root of your Medusa backend, run the following command to install the PayPal plugin:\n\n```bash npm2yarn\nnpm install medusa-payment-paypal\n```\n\n### Configure the PayPal Plugin\n\nNext, you need to add configurations for your PayPal plugin.\n\nIn the `.env` file add the following new environment variables:\n\n```bash\nPAYPAL_SANDBOX=true\nPAYPAL_CLIENT_ID=<CLIENT_ID>\nPAYPAL_CLIENT_SECRET=<CLIENT_SECRET>\nPAYPAL_AUTH_WEBHOOK_ID=<WEBHOOK_ID>\n```\n\nWhere `<CLIENT_ID>`, `<CLIENT_SECRET>`, and `<WEBHOOK_ID>` are the keys you retrieved from the PayPal Developer dashboard as explained in the [Prerequisites](#prerequisites) section.\n\nNotice that during development it’s highly recommended to set `PAYPAL_SANDBOX` to `true` and ensure you have [sandbox accounts set up in PayPal](https://developer.paypal.com/api/rest/sandbox/).\n\nThen, in `medusa-config.js`, add the PayPal plugin to the `plugins` array with the configurations necessary:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // other plugins...\n  {\n    resolve: `medusa-payment-paypal`,\n    options: {\n      sandbox: process.env.PAYPAL_SANDBOX,\n      client_id: process.env.PAYPAL_CLIENT_ID,\n      client_secret: process.env.PAYPAL_CLIENT_SECRET,\n      auth_webhook_id: process.env.PAYPAL_AUTH_WEBHOOK_ID,\n    },\n  },\n]\n```\n\nThat’s all you need to install PayPal on your Medusa backend!\n\n---\n\n## Admin Setup\n\nThis section will guide you through adding PayPal as a payment processor in a region using your Medusa admin dashboard.\n\nThis step is required for you to be able to use PayPal as a payment processor in your storefront.\n\n### Admin Prerequisites\n\nIf you don’t have a Medusa admin installed, make sure to follow along with [the guide on how to install it](../../admin/quickstart.mdx) before continuing with this section.\n\n### Add PayPal to Regions\n\nYou can refer to [this documentation in the user guide](../../user-guide/regions/providers.mdx#manage-payment-providers) to learn how to add a payment processor like PayPal to a region.\n\n---\n\n## Storefront Setup\n\nThis section will take you through the steps to add PayPal as a payment method on the storefront. It includes the steps necessary when using one of Medusa’s official storefronts as well as your own custom React-based storefront.\n\n### Storefront Prerequisites\n\nAll storefronts require that you obtain your PayPal Client ID. You can retrieve it from your PayPal developer dashboard.\n\n### Process Overview\n\nAside from the Next.js Storefront, you need to add the implementation with PayPal manually.\n\n:::note\n\nIt is recommended to read through the [Frontend Checkout Flow](../../modules/carts-and-checkout/storefront/implement-checkout-flow.mdx) first to fully understand how payment is implemented on the storefront.\n\n:::\n\nAlthough the next sections have different implementations to add PayPal into your storefront, they essentially follow the same process:\n\n1. Show PayPal’s button if the PayPal processor is available for the current cart.\n2. When the button is clicked, open PayPal’s payment portal and wait for the customer to authorize the payment.\n3. If the payment is authorized successfully, set PayPal’s [Payment Session](../../modules/carts-and-checkout/payment.md#payment-session) as the session used to perform the payment for the current cart, then update the Payment Session on the backend with the data received from PayPal’s payment portal. This data is essential to the backend to verify the authorization and perform additional payment processing later such as capturing payment.\n4. Complete the cart to create the order.\n\n:::info\n\nIn Medusa, by default, payments are authorized during checkout, but the payment is not captured right away. The payment should be manually [captured from the Medusa Admin](#capture-payment).\n\n:::\n\n### Add to Next.js Storefront\n\nMedusa has a Next.js storefront that you can easily use with your Medusa backend. If you don’t have the storefront installed, you can follow [this quickstart guide](../../starters/nextjs-medusa-starter.mdx).\n\nIn your `.env.local` file (or the file you’re using for your environment variables), add the following variable:\n\n```bash title=.env.local\nNEXT_PUBLIC_PAYPAL_CLIENT_ID=<YOUR_CLIENT_ID>\n```\n\nMake sure to replace `<YOUR_CLIENT_ID>` with your PayPal Client ID.\n\nNow, if you run your Medusa backend and your storefront, on checkout you’ll be able to use PayPal].\n\n![PayPal Button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000463/Medusa%20Docs/PayPal/F8OvsOJ_v3ctol.png)\n\nYou can test out the payment with PayPal using your sandbox account.\n\n### Add to Custom Storefront\n\nThis section guides you to add PayPal into a React-based framework. The instructions are general instructions that you can use in your storefront.\n\nIn your storefront, you need to install the [PayPal React components library](https://www.npmjs.com/package/@paypal/react-paypal-js) and the [Medusa JS Client library](https://www.npmjs.com/package/@medusajs/medusa-js):\n\n```bash npm2yarn\nnpm install @paypal/react-paypal-js @medusajs/medusa-js\n```\n\nThen, add the Client ID as an environment variable based on the framework you’re using.\n\nNext, create the file that will hold the PayPal component with the following content:\n\n```jsx\nimport { \n  PayPalButtons, \n  PayPalScriptProcessor,\n} from \"@paypal/react-paypal-js\"\nimport { useEffect, useState } from \"react\"\n\nimport Medusa from \"@medusajs/medusa-js\"\n\nfunction Paypal() {\n  const client = new Medusa()\n  const [errorMessage, setErrorMessage] = useState(undefined)\n  const [processing, setProcessing] = useState(false)\n  const cart = \"...\" // TODO retrieve the cart here\n\n  const handlePayment = (data, actions) => {\n    actions.order.authorize().then(async (authorization) => {\n      if (authorization.status !== \"COMPLETED\") {\n        setErrorMessage(\n          `An error occurred, status: ${authorization.status}`\n        )\n        setProcessing(false)\n        return\n      }\n\n      const response = await client\n        .carts\n        .setPaymentSession(cart.id, {\n          \"processor_id\": \"paypal\",\n        })\n\n      if (!response.cart) {\n        setProcessing(false)\n        return\n      }\n\n      await client\n        .carts\n        .updatePaymentSession(cart.id, \"paypal\", {\n        data: {\n          data: {\n            ...authorization,\n          },\n        },\n      })\n\n      const { data } = await client.carts.complete(cart.id)\n\n      if (!data || data.object !== \"order\") {\n        setProcessing(false)\n        return\n      }\n      \n      // order successful\n      alert(\"success\")\n    })\n  }\n\n  return (\n    <div style={{ marginTop: \"10px\", marginLeft: \"10px\" }}>\n      {cart !== undefined && (\n        <PayPalScriptProcessor options={{ \n          \"client-id\": \"<CLIENT_ID>\",\n          \"currency\": \"EUR\",\n          \"intent\": \"authorize\",\n        }}>\n            {errorMessage && (\n              <span className=\"text-rose-500 mt-4\">\n                {errorMessage}\n              </span>\n            )}\n            <PayPalButtons \n              style={{ layout: \"horizontal\" }}\n              onApprove={handlePayment}\n              disabled={processing}\n            />\n        </PayPalScriptProcessor>\n      )}\n    </div>\n  )\n}\n\nexport default Paypal\n```\n\nHere’s briefly what this code snippet does:\n\n1. At the beginning of the component, the Medusa client is initialized using the JS Client you installed.\n2. You also need to retrieve the cart. Ideally, the cart should be managed through a context. So, every time the cart has been updated the cart should be updated in the context to be accessed from all components.\n3. This component renders a PayPal button to initialize the payment using PayPal. You use the components from the PayPal React components library to render the button and you pass the `PayPalScriptProcessor` component the Client ID. Make sure to replace `<CLIENT_ID>` with the environment variable you added.\n4. When the button is clicked, the `handlePayment` function is executed. In this method, you initialize the payment authorization using `actions.order.authorize()`. It takes the customer to another page to log in with PayPal and authorize the payment.\n5. After the payment is authorized successfully on PayPal’s portal, the fulfillment function passed to `actions.order.authorize().then` will be executed.\n6. In the fulfillment function, you first ensure that the payment session for the PayPal payment processor is set as the [selected Payment Session in the cart](/api/store/#tag/Cart/operation/PostCartsCartPaymentSession). Then, you send a request to the backend to [update the payment session](/api/store/#tag/Cart/operation/PostCartsCartPaymentSessionUpdate) data with the authorization data received from PayPal.\n7. You then [complete the cart and place the order](/api/store/#tag/Cart/operation/PostCartsCartComplete). If that is done successfully, you just show a success alert. You can change this based on the behavior you want in your storefront.\n\nYou can then import this component where you want to show it in your storefront.\n\nIf you run the Medusa backend and the storefront backend, you should see the PayPal button on checkout.\n\n![PayPal Button](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000492/Medusa%20Docs/PayPal/PsibgPY_xtqdli.png)\n\n---\n\n## Capture Payments\n\nAfter the customer places an order, you can see the order on the admin panel. In the payment information under the “Payment” section, you should see a “Capture” button.\n\n![Capture Payment](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000502/Medusa%20Docs/PayPal/Mx357yY_xsandw.png)\n\nClicking this button lets you capture the payment for an order. You can also refund payments if an order has captured payments.\n\nRefunding or Capturing payments is reflected in your PayPal dashboard as well.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n\n<!-- File: docs/content/plugins/payment/stripe.md (Tokens: ~3300 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Stripe with the Medusa backend. Learn how to install the Stripe plugin on the Medusa backend and integrate it into a storefront.'\naddHowToData: true\n---\n\n# Stripe\n\nThis document guides you through setting up Stripe payments in your Medusa backend, admin, and storefront using the [Stripe Plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-payment-stripe).\n\n## Video Guide\n\nYou can also follow this video guide to learn how the setup works:\n\n<div>\n  <video width=\"100%\" height=\"100%\" playsinline autoplay muted controls>\n    <source src=\"https://user-images.githubusercontent.com/59018053/154807206-6fbda0a6-bf3e-4e39-9fc2-f11710afe0b9.mp4\" type=\"video/mp4\" />\n  </video>\n</div>\n\n## Overview\n\n[Stripe](https://stripe.com/) is a battle-tested and unified platform for transaction handling. Stripe supplies you with the technical components needed to handle transactions safely and all the analytical features necessary to gain insight into your sales. These features are also available in a safe test environment which allows for a concern-free development process.\n\nUsing the `medusa-payment-stripe` plugin, this guide shows you how to set up your Medusa project with Stripe as a payment processor.\n\n---\n\n## Prerequisites\n\nBefore you proceed with this guide, make sure you create a [Stripe account](https://stripe.com). You’ll later retrieve the API Keys and secrets from your account to connect Medusa to your Stripe account.\n\n---\n\n## Medusa Backend\n\nThis section guides you over the steps necessary to add Stripe as a payment processor to your Medusa backend.\n\nIf you don’t have a Medusa backend installed yet, you must follow the [quickstart guide](../../development/backend/install.mdx) first.\n\n### Install the Stripe Plugin\n\nIn the root of your Medusa backend, run the following command to install the stripe plugin:\n\n```bash npm2yarn\nnpm install medusa-payment-stripe\n```\n\n### Configure the Stripe Plugin\n\nNext, you need to add configurations for your stripe plugin.\n\nIn `medusa-config.js` add the following at the end of the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-payment-stripe`,\n    options: {\n      api_key: process.env.STRIPE_API_KEY,\n      webhook_secret: process.env.STRIPE_WEBHOOK_SECRET,\n    },\n  },\n]\n```\n\n:::note\n\nYou might find that this code is already available but commented out. You can proceed with removing the comments instead of adding the code again, but make sure to replace `STRIPE_API_KEY` and `STRIPE_WEBHOOK_SECRET` with `process.env.STRIPE_API_KEY` and `process.env.STRIPE_WEBHOOK_SECRET` respectively.\n\n:::\n\nThe Stripe plugin uses two configuration options. The `api_key` is essential to both your development and production environments. As for the `webhook_secret`, it’s essential for your production environment. So, if you’re only using Stripe for development you can skip adding the value for this option at the moment.\n\n### Retrieve Stripe's Keys\n\nOn the [dashboard](https://dashboard.stripe.com) of your Stripe account click on the Developers link at the top right. This will take you to the developer dashboard.\n\nYou’ll first retrieve the API key. You can find it by choosing API Keys from the sidebar and copying the Secret key.\n\nNext, you need to add the key to your environment variables. In your Medusa backend, create `.env` if it doesn’t already exist and add the Stripe key:\n\n```bash\nSTRIPE_API_KEY=sk_...\n```\n\n:::note\n\nIf you store environment variables differently on your backend, for example, using the hosting processor’s UI, then you don’t need to add it in `.env`. Add the environment variables in a way relevant to your backend.\n\n:::\n\nNext, if you’re installing this plugin for production use, you need to retrieve the Webhook secret. Webhooks allows you to track different events on your Medusa backend, such as failed payments.\n\nGo to Webhooks on Stripe’s developer dashboard. Then, choose the Add an Endpoint button.\n\nThe endpoint for Stripe’s webhook on your Medusa backend is `{BACKEND_URL}/stripe/hooks`. So, add that endpoint in its field. Make sure to replace `{BACKEND_URL}` with the URL to your backend.\n\nThen, you can add a description. You must select at least one event to listen to. Once you’re done, click “Add endpoint”.\n\nAfter the Webhook is created, you’ll see \"Signing secret\" in the Webhook details. Click on \"Reveal\" to reveal the secret key. Copy that key and in your Medusa backend add the Webhook secret environment variable:\n\n```bash\nSTRIPE_WEBHOOK_SECRET=whsec_...\n```\n\n---\n\n## Admin Setup\n\nThis section will guide you through adding Stripe as a payment processor in a region using your Medusa admin dashboard.\n\nThis step is required for you to be able to use Stripe as a payment processor in your storefront.\n\n### Admin Prerequisites\n\nIf you don’t have a Medusa admin installed, make sure to follow along with [the guide on how to install it](https://github.com/medusajs/admin#-quickstart) before continuing with this section.\n\n### Add Stripe to Regions\n\nYou can refer to [this documentation in the user guide](../../user-guide/regions/providers.mdx#manage-payment-providers) to learn how to add a payment processor like Stripe to a region.\n\n---\n\n## Storefront Setup\n\nThis guide will take you through how to set up Stripe payments in your Medusa storefront. It includes the steps necessary when using one of Medusa’s official storefronts as well as your own custom React-based storefront.\n\n### Storefront Prerequisites\n\nAll storefronts require that you obtain your Stripe’s Publishable Key. You can retrieve it from your Stripe’s developer dashboard by choosing API Keys and then copying the Publishable Key.\n\n### Add to Next.js Storefront\n\nMedusa has a Next.js storefront that you can easily use with your Medusa backend. If you don’t have the storefront installed, you can follow [this quickstart guide](../../starters/nextjs-medusa-starter).\n\nIn your `.env.local` file (or the file you’re using for your environment variables), add the following variable:\n\n```bash title=.env.local\nNEXT_PUBLIC_STRIPE_KEY=<YOUR_PUBLISHABLE_KEY>\n```\n\nMake sure to replace `<YOUR_PUBLISHABLE_KEY>` with your Stripe Publishable Key.\n\nNow, if you run your Medusa backend and your storefront, on checkout you’ll be able to use Stripe.\n\n![Next.js Stripe Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001145/Medusa%20Docs/Stripe/h5mWdJT_n1bktt.png)\n\n### Add to Custom Storefront\n\nThis section will go over how to add Stripe into a React-based framework. The instructions are general instructions that you can use in your storefront.\n\n#### Workflow Overview\n\nThe integration with stripe must have the following workflow:\n\n1. During checkout when the user reaches the payment section, you should [create payment sessions](/api/store/#tag/Cart/operation/PostCartsCartPaymentSessions). This will initialize the `payment_sessions` array in the `cart` object received. The `payment_sessions` is an array of available payment processors.\n2. If Stripe is available as a payment processor, you should select Stripe as [the payment session](/api/store/#tag/Cart/operation/PostCartsCartPaymentSession) for the current cart. This will initialize the `payment_session` object in the `cart` object to include data related to Stripe and the current payment session. This includes the payment intent and client secret.\n3. After the user enters their card details and submits the form, confirm the payment with Stripe.\n4. If the payment is confirmed successfully, [complete the order](/api/store/#tag/Cart/operation/PostCartsCartComplete) in Medusa. Otherwise show an error.\n\n#### Install Dependencies\n\nBefore you start the implementations you need to install the necessary dependencies. You’ll be using Stripe’s React libraries to show the UI and handle the payment confirmation:\n\n```bash npm2yarn\nnpm install --save @stripe/react-stripe-js @stripe/stripe-js\n```\n\nYou’ll also use Medusa’s JS Client to easily call Medusa’s REST APIs:\n\n```bash npm2yarn\nnpm install @medusajs/medusa-js\n```\n\n#### Initialize Stripe\n\nIn this section, you’ll initialize Stripe without Medusa’s checkout workflow. Please note that this is one approach to add Stripe into your React project. You can check out [Stripe’s React documentation](https://stripe.com/docs/stripe-js/react) for other methods or components.\n\nCreate a container component that will hold the payment card component:\n\n```jsx\nimport { useState } from \"react\"\n\nimport { Elements } from \"@stripe/react-stripe-js\"\nimport Form from \"./Form\"\nimport { loadStripe } from \"@stripe/stripe-js\"\n\nconst stripePromise = loadStripe(\"pk_...\")\n\nexport default function Container() {\n  const [clientSecret, setClientSecret] = useState()\n\n  // TODO set clientSecret\n\n  return (\n    <div>\n      {clientSecret && (\n        <Elements stripe={stripePromise} options={{\n          clientSecret,\n        }}>\n        <Form clientSecret={clientSecret} cartId={cartId} />\n      </Elements>\n      )}\n    </div>\n  )\n};\n```\n\nIn this component, you need to use Stripe’s `loadStripe` function outside of the component’s implementation to ensure that Stripe doesn’t re-load with every change. The function accepts the Publishable Key.\n\n:::note\n\nYou’ll probably store this Publishable Key in an environment variable depending on your framework. It’s hard-coded here for simplicity.\n\n:::\n\nThen, inside the component’s implementation, you add a state variable `clientSecret` which you’ll retrieve in the next section. \n\nOnce the clientSecret is set, the `Elements` Stripe component will wrap a `Form` component you’ll create next. This is necessary because the `Elements` component allows child elements to get access to the card’s inputs and their data using Stripe’s `useElements` hook.\n\nCreate a new file for the `Form` component with the following content:\n\n```jsx\nimport { \n  CardElement,\n  useElements,\n  useStripe,\n} from \"@stripe/react-stripe-js\"\n\nexport default function Form({ clientSecret, cartId }) {\n  const stripe = useStripe()\n  const elements = useElements()\n\n  async function handlePayment(e) {\n    e.preventDefault()\n    // TODO handle payment\n  }\n\n  return (\n    <form>\n      <CardElement />\n      <button onClick={handlePayment}>Submit</button>\n  </form>\n  )\n};\n```\n\nThis component shows a CardElement component from Stripe’s React library. You can use `stripe` to be able to confirm the payment later. The `elements` variable will be used to retrieve the entered card details safely.\n\n#### Implement the Workflow\n\nYou’ll now implement the workflow explained earlier. You’ll use Medusa’s JS Client, so make sure to import it and initialize it in your `Container` component:\n\n```jsx\nimport Medusa from \"@medusajs/medusa-js\"\n\nexport default function Container() {\n  const client = new Medusa()\n  // ...\n}\n```\n\n:::note\n\nIn your storefront, you’ll probably be managing the Medusa client through a context for better performance.\n\n:::\n\nThen, in the place of the `//TODO` inside the `Container` element, initialize the payment sessions and create a payment session if Stripe is available:\n\n```tsx\nclient.carts.createPaymentSessions(cart.id)\n  .then(({ cart }) => {\n    // check if stripe is selected\n    const isStripeAvailable = cart.payment_sessions?.some(\n      (session) => (\n        session.processor_id === \"stripe\"\n      )\n    )\n    if (!isStripeAvailable) {\n      return\n    }\n\n    // select stripe payment session\n    client.carts.setPaymentSession(cart.id, {\n      processor_id: \"stripe\",\n    }).then(({ cart }) => {\n      setClientSecret(cart.payment_session.data.client_secret)\n    })\n  })\n```\n\n:::note\n\nNotice that here it’s assumed you have access to the `cart` object throughout your storefront. Ideally, the `cart` should be managed through a context. So, every time the cart is updated, for example, when the `createPaymentSessions` or `setPaymentSession` are called, the cart should be updated in the context to be accessed from other elements. In this case, you probably wouldn’t need a `clientSecret` state variable as you can use the client secret directly from the `cart` object.\n\n:::\n\nOnce the client secret is set, the form will be shown to the user.\n\nThe last step in the workflow is confirming the payment with Stripe and if it’s done successfully, completing the user’s order. This part is done in the `Form` component.\n\nAs you’ll use Medusa’s client again make sure to import it and initialize it:\n\n```jsx\nimport Medusa from \"@medusajs/medusa-js\"\n\nexport default function Form() {\n  const client = new Medusa()\n  // ...\n}\n```\n\nThen, replace the `//TODO` in the `handlePayment` function with the following content:\n\n```jsx\nreturn stripe.confirmCardPayment(clientSecret, {\n  payment_method: {\n    card: elements.getElement(CardElement),\n    billing_details: {\n      name,\n      email,\n      phone,\n      address: {\n        city,\n        country,\n        line1,\n        line2,\n        postal_code,\n      },\n    },\n  },\n}).then(({ error, paymentIntent }) => {\n  // TODO handle errors\n  client.carts.complete(cartId).then(\n    (resp) => console.log(resp)\n  )\n})\n```\n\nYou use the `confirmCardPayment` method in the `stripe` object. You’ll need to pass it the client secret, which you can have access to from the cart object if it’s available through the context.\n\nThis method also requires the customer’s information like `name`, `email`, and their address. Make sure to place the values for each based on your implementation.\n\nOnce the promise resolves you can handle the errors, if there are any. If not, you can complete the customer’s order using `complete` from Medusa’s client. This request expects the cart ID which you should have access to as well.\n\nIf you run your backend and storefront now, you’ll see the Stripe UI element and you’ll be able to make orders.\n\n![Stripe Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001190/Medusa%20Docs/Stripe/NOi8THw_xv3zsx.png)\n\n---\n\n## Capture Payments\n\nAfter the customer places an order, you’ll be able to see the order on the admin panel. In the payment information under the “Payment” section, you should see a “Capture” button.\n\n![Capture Payment](https://res.cloudinary.com/dza7lstvk/image/upload/v1668001205/Medusa%20Docs/Stripe/Iz55PVZ_p6hiz6.png)\n\nClicking this button allows you to capture the payment for an order. You can also refund payments if an order has captured payments.\n\nRefunding or Capturing payments is reflected in your Stripe’s dashboard as well. This gives you access to all of Stripe’s analytical capabilities.\n\n---\n\n## See Also\n\n- Check out [more plugins](../overview.mdx) you can add to your store.\n\n<!-- File: docs/content/plugins/search/algolia.md (Tokens: ~2731 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate Algolia with the Medusa backend. Learn how to install the Algolia plugin into the Medusa backend and how to integrate it into a storefront.'\naddHowToData: true\n---\n\n# Algolia\n\nIn this document, you’ll learn how to install the [Algolia plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-algolia) and use it on both your Medusa backend and your storefront.\n\n---\n\n## Overview\n\n[Algolia](https://www.algolia.com/) is a search engine service that allows developers to integrate advanced search functionalities into their websites including typo tolerance, recommended results, and quick responses.\n\nAlgolia can be used for a wide range of use cases, including ecommerce websites. By integrating Algolia into your ecommerce website, you can provide your customers with a better user experience and help them find what they’re looking for swifltly.\n\nThrough Medusa's flexible plugin system, it is possible to add a search engine to your Medusa backend and storefront using Algolia with just a few steps.\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is required to have a Medusa backend installed before starting with this documentation. If not, please follow along with the [quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n### Algolia Account\n\nYou need to [create an Algolia account](https://www.algolia.com/users/sign_up) before you follow this documentation. Algolia offers a free plan to get started quickly.\n\n---\n\n## Create an Algolia App\n\nThe first step is to create an Algolia app for your Medusa backend. To create one, open the [Applications page](https://www.algolia.com/account/applications) or, on your dashboard, go to Settings then choose Applications.\n\nOn the Applications page, click on the New application button at the top right.\n\n![Click on New application button at the top right](https://res.cloudinary.com/dza7lstvk/image/upload/v1667999820/Medusa%20Docs/Algolia/WxckgS2_eygl8l.png)\n\nIn the new page that opens, optionally enter a name for the application and choose a subscription plan. You can choose the Free plan for now, but it’s recommended to switch to the Pay-as-you-go plan as your business grows.\n\n![Optionally enter a name for the application and choose a subscription plan](https://res.cloudinary.com/dza7lstvk/image/upload/v1667999980/Medusa%20Docs/Algolia/jpM2EBU_fui1lg.png)\n\nOnce you’re done, click on the Next Step button. If you picked Pay as you go service, you’ll need to enter billing details before you proceed.\n\nThen, you’ll be asked to pick a region for your application. Once you’re done, click on Review Application Details.\n\n![Select a region then click on Review Application Details at the bottom right](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000005/Medusa%20Docs/Algolia/fahf2J2_qgm7sa.png)\n\nIn the last step, you’ll see a summary of your order. If all looks good, check the checkboxes at the end of the form to indicate that you agree to the terms and conditions. Then, click on the Create Application button.\n\n![Summary of your application's order with the terms and agreement checkboxes checked](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000019/Medusa%20Docs/Algolia/PTI2Swq_a1qbi5.png)\n\n---\n\n## Retrieve API Keys\n\nTo retrieve the API keys that you’ll use in the next sections, go to Settings, then choose API Keys in the Team and Access section.\n\n![Click on API Keys in the Team and Access section of your settings](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000028/Medusa%20Docs/Algolia/gnORibC_msuur5.png)\n\nOn this page, you’ll find the Application ID, Search-Only API Key, and Admin API Key. You’ll need the Application ID and Admin API Key for the Medusa backend. As for the storefront, you’ll need the Application ID and Search-Only API Key.\n\n:::note\n\nIf you have more than one application in your Algolia account, make sure you’re viewing the keys of the correct application by checking the Application dropdown at the top left.\n\n:::\n\n![Application ID, Search-Only API Key, and Admin API Key can be found in the API Keys page](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000037/Medusa%20Docs/Algolia/i50Irki_jmtyk6.png)\n\n---\n\n## Install the Algolia Plugin\n\nIn the directory of your Medusa backend, run the following command to install the Algolia plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-algolia\n```\n\nThen, add the following environment variables to your Medusa backend:\n\n```bash\nALGOLIA_APP_ID=<YOUR_APP_ID>\nALGOLIA_ADMIN_API_KEY=<YOUR_ADMIN_API_KEY>\n```\n\nWhere `<YOUR_APP_ID>` and `<YOUR_ADMIN_API_KEY>` are respectively the Application ID and Admin API Key found on the [API Keys page](#retrieve-api-keys).\n\nFinally, in `medusa-config.js` add the following item into the `plugins` array:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      applicationId: process.env.ALGOLIA_APP_ID,\n      adminApiKey: process.env.ALGOLIA_ADMIN_API_KEY,\n      settings: {\n        // index settings...\n      },\n    },\n  },\n]\n```\n\n### Index Settings\n\nUnder the `settings` key of the plugin's options, you can add settings specific to each index. The settings are of the following format:\n\n```js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      // other options...\n    settings: {\n      indexName: {\n        indexSettings: {\n          searchableAttributes,\n          attributesToRetrieve,\n        },\n        transformer,\n      },\n    },\n    },\n  },\n]\n```\n\nWhere:\n\n- `indexName`: the name of the index to create in Algolia. For example, `products`. Its value is an object containing the following properties:\n  - `indexSettings`: an object that includes the following properties:\n    - `searchableAttributes`: an array of strings indicating the attributes in the product entity that can be searched.\n    - `attributesToRetrieve`: an array of strings indicating the attributes in the product entity that should be retrieved in the search results.\n  - `transformer`: an optional function that accepts a product as a parameter and returns an object to be indexed. This allows you to have more control over what you're indexing. For example, you can add details related to variants or custom relations, or you can filter out certain products.\n\nUsing this index settings structure, you can add more than one index.\n\n:::tip\n\nThese settings are just examples of what you can pass to the Algolia provider. If you need to pass more settings to the Algolia SDK you can pass it inside `indexSettings`.\n\n:::\n\nHere's an example of the settings you can use:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-algolia`,\n    options: {\n      // other options...\n      settings: {\n        products: {\n          indexSettings: {\n            searchableAttributes: [\"title\", \"description\"],\n            attributesToRetrieve: [\n              \"id\",\n              \"title\",\n              \"description\",\n              \"handle\",\n              \"thumbnail\",\n              \"variants\",\n              \"variant_sku\",\n              \"options\",\n              \"collection_title\",\n              \"collection_handle\",\n              \"images\",\n            ],\n          },\n          transform: (product) => ({ \n            id: product.id, \n            // other attributes...\n          }),\n        },\n      },\n    },\n  },\n]\n```\n\n---\n\n## Test the Algolia Plugin\n\nRun your Medusa backend with the following command:\n\n```bash npm2yarn\nnpm run start\n```\n\nThe quickest way to test that the integration is working is by sending a `POST` request to `/store/products/search`. This endpoint accepts a `q` body parameter of the query to search for and returns in the result the products that match this query.\n\n![Postman request send to the search endpoint that retrieves products using Algolia](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000054/Medusa%20Docs/Algolia/IHeTsi7_ymhb2p.png)\n\nYou can also check that the products are properly indexed by opening your Algolia dashboard and choosing Search from the left sidebar. You’ll find your products that are on your Medusa backend added there.\n\n:::note\n\nIf you have more than one application on your Algolia account, make sure you’re viewing the keys of the correct one by checking the Application dropdown at the top left.\n\n:::\n\n![Products from the Medusa backend can be seen on the Algolia dashboard](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000071/Medusa%20Docs/Algolia/wkXzUH0_dowyxj.png)\n\n### Add or Update Products\n\nIf you add or update products on your Medusa backend, the addition or update will be reflected in the Algolia indices.\n\n:::note\n\nThis feature is only available if you have an event module installed in your Medusa backend, as explained in the Prerequisites section.\n\n:::\n\n---\n\n## Add Search to your Storefront\n\nIn this section, you’ll learn how to add the UI on your storefront to allow searching with Algolia. This section has instructions for Medusa’s [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront as well as React-based frameworks.\n\n### Storefront Prerequisites\n\nIt is assumed you already have a storefront set up and working with the Medusa backend, as this section only covers how to add the search UI.\n\n:::tip\n\nIf you don’t have a storefront set up, you can use the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx) that Medusa provides.\n\n:::\n\n### Add to Next.js Storefront\n\nThe Next.js storefront has the Algolia integration available out of the box. To get it working, you just need to follow three steps.\n\nFirst, ensure that the search feature is enabled in `store.config.json`:\n\n```json title=store.config.json\n{\n  \"features\": {\n    \"search\": true\n  }\n}\n```\n\nThen, add the necessary environment variables:\n\n```bash\nNEXT_PUBLIC_SEARCH_APP_ID=<YOUR_APP_ID>\nNEXT_PUBLIC_SEARCH_API_KEY=<YOUR_SEARCH_API_KEY>\nNEXT_PUBLIC_SEARCH_INDEX_NAME=products\n```\n\nWhere `<YOUR_APP_ID>` and `<YOUR_SEARCH_API_KEY>` are respectively the Application ID and Search-Only API Key on the [API Keys page](#retrieve-api-keys).\n\nFinally, change the code in `src/lib/search-client.ts` to the following:\n\n```jsx title=src/lib/search-client.ts\nimport algoliasearch from \"algoliasearch/lite\"\n\nconst appId = process.env.NEXT_PUBLIC_SEARCH_APP_ID || \"\"\n\nconst apiKey = \n  process.env.NEXT_PUBLIC_SEARCH_API_KEY || \"test_key\"\n\nexport const searchClient = algoliasearch(appId, apiKey)\n\nexport const SEARCH_INDEX_NAME =\n  process.env.NEXT_PUBLIC_INDEX_NAME || \"products\"\n```\n\nIf you run your Next.js storefront now while the Medusa backend is running, the search functionality will be available in your storefront.\n\n:::note\n\nTo make sure the Next.js storefront properly displays the products in the search result, include in the `attributesToRetrieve` setting of the Algolia plugin on the Medusa backend at least the fields `title`, `handle`, `description`, and `thumbnail`.\n\n:::\n\n![Search pop up in the Next.js storefront](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000082/Medusa%20Docs/Algolia/1f9qqK6_c0z8zi.png)\n\n### Add to Other Storefronts\n\nTo integrate Algolia's search functionalities in your storefront, please refer to [Algolia's InstantSearch.js documentation](https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/). You'll find packages for different frontend frameworks and how you can use them.\n\n---\n\n## See Also\n\n- [Deploy your Medusa backend](../../deployments/server/index.mdx)\n- [Deploy your storefront](../../deployments/storefront/index.mdx)\n\n<!-- File: docs/content/plugins/search/meilisearch.md (Tokens: ~2394 | Category: anthropic-skill) -->\n---\ndescription: 'Learn how to integrate MeiliSearch with the Medusa backend. Learn how to install the MeiliSearch plugin on the Medusa backend and integrate it into the storefront.'\naddHowToData: true\n---\n\n# MeiliSearch\n\nIn this document, you’ll learn how to install the [MeiliSearch plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-meilisearch) and use it on both your Medusa Backend and your storefront.\n\n## Overview\n\n[MeiliSearch](https://www.meilisearch.com/) is a super-fast, open source search engine built in Rust. It comes with a wide range of features including typo-tolerance, filtering, and sorting.\n\nMeiliSearch also provides a pleasant developer experience, as it is extremely intuitive and newcomer-friendly. So, even if you're new to the search engine ecosystem, [their documentation](https://docs.meilisearch.com/) is resourceful enough for everyone to go through and understand.\n\nThrough Medusa's flexible plugin system, it is possible to add a search engine to your Medusa backend and storefront using MeiliSearch with just a few steps.\n\n---\n\n## Prerequisites\n\n### Medusa Components\n\nIt is required to have a Medusa backend installed before starting with this documentation. If not, please follow along with the [quickstart guide](../../development/backend/install.mdx) to get started in minutes. The Medusa backend must also have an event bus module installed, which is available when using the default Medusa backend starter.\n\n### MeiliSearch Instance\n\nYou must install MeiliSearch to use it with Medusa. You can follow [this documentation to install MeiliSearch](https://docs.meilisearch.com/learn/getting_started/quick_start.html#setup-and-installation) either locally or on a cloud.\n\nFurthermore, you should create a master key for your MeiliSearch instance. If you don’t have one created, follow [this guide](https://docs.meilisearch.com/learn/security/master_api_keys.html#protecting-a-meilisearch-instance) to create a master key.\n\n---\n\n## Install the MeiliSearch Plugin\n\nIn the directory of your Medusa backend, run the following command to install the MeiliSearch plugin:\n\n```bash npm2yarn\nnpm install medusa-plugin-meilisearch\n```\n\nThen, add the following environment variables to your Medusa backend:\n\n```bash\nMEILISEARCH_HOST=<YOUR_MEILISEARCH_HOST>\nMEILISEARCH_API_KEY=<YOUR_MASTER_KEY>\n```\n\nWhere `<YOUR_MEILISEARCH_HOST>` is the host of your MeiliSearch instance. By default, if MeiliSearch is installed locally, the host is `http://127.0.0.1:7700`.\n\n`<YOUR_MASTER_KEY>` is the master key of your MeiliSearch instance.\n\nFinally, in `medusa-config.js` add the following item into the `plugins` array:\n\n```jsx title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // config object passed when creating an instance\n      // of the MeiliSearch client\n      config: {\n        host: process.env.MEILISEARCH_HOST,\n        apiKey: process.env.MEILISEARCH_API_KEY,\n      },\n      settings: {\n        // index settings...\n      },\n    },\n  },\n]\n```\n\n### Index Settings\n\nUnder the `settings` key of the plugin's options, you can add settings specific to each index. The settings are of the following format:\n\n```js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // other options...\n    settings: {\n      indexName: {\n        indexSettings: {\n          searchableAttributes,\n          displayedAttributes,\n        },\n        primaryKey,\n        transformer,\n      },\n    },\n    },\n  },\n]\n```\n\nWhere:\n\n- `indexName`: the name of the index to create in MeiliSearch. For example, `products`. Its value is an object containing the following properties:\n  - `indexSettings`: an object that includes the following properties:\n    - `searchableAttributes`: an array of strings indicating the attributes in the product entity that can be searched.\n    - `displayedAttributes`: an array of strings indicating the attributes in the product entity that should be displayed in the search results.\n  - `primaryKey`: an optional string indicating which property acts as a primary key of a document. It's used to enforce unique documents in an index. The default value is `id`. You can learn more in [MeiliSearch's documentation](https://docs.meilisearch.com/learn/core_concepts/primary_key.html#primary-field).\n  - `transformer`: an optional function that accepts a product as a parameter and returns an object to be indexed. This allows you to have more control over what you're indexing. For example, you can add details related to variants or custom relations, or you can filter out certain products.\n\nUsing this index settings structure, you can add more than one index.\n\n:::tip\n\nThese settings are just examples of what you can pass to the MeiliSearch provider. If you need to pass more settings to the MeiliSearch SDK you can pass it inside `indexSettings`.\n\n:::\n\nHere's an example of the settings you can use:\n\n```js title=medusa-config.js\nconst plugins = [\n  // ...\n  {\n    resolve: `medusa-plugin-meilisearch`,\n    options: {\n      // other options...\n      settings: {\n        products: {\n          indexSettings: {\n            searchableAttributes: [\n              \"title\", \n              \"description\",\n              \"variant_sku\",\n            ],\n            displayedAttributes: [\n              \"title\", \n              \"description\", \n              \"variant_sku\", \n              \"thumbnail\", \n              \"handle\",\n            ],\n          },\n          primaryKey: \"id\",\n          transform: (product) => ({ \n            id: product.id, \n            // other attributes...\n          }),\n        },\n      },\n    },\n  },\n]\n```\n\n---\n\n## Test MeiliSearch Plugin\n\nMake sure your MeiliSearch instance is running. If you’re unsure how to run it, you can check the [installation documentation](https://docs.meilisearch.com/learn/getting_started/quick_start.html#setup-and-installation) for the command to run the MeiliSearch instance.\n\nThen, run the Medusa backend:\n\n```bash npm2yarn\nnpm run start\n```\n\nThe quickest way to test that the integration is working is by sending a `POST` request to `/store/products/search`. This endpoint accepts a `q` body parameter of the query to search for and returns in the result the products that match this query.\n\n![Postman request to search endpoint that shows results returned from the search engine](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000265/Medusa%20Docs/MeiliSearch/RCGquxU_um3dvn.png)\n\nYou can also check that the products are properly indexed by opening the MeiliSearch host URL in your browser, which is `http://127.0.0.1:7700/` by default. You’ll find your products that are on your Medusa backend added there.\n\n![MeiliSearch dashboard showing products from the Medusa backend indexed](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000277/Medusa%20Docs/MeiliSearch/5sk3jyP_i3swkn.png)\n\n### Add or Update Products\n\nIf you add or update products on your Medusa backend, the addition or update will be reflected in the MeiliSearch indices.\n\n:::note\n\nThis feature is only available if you have an event module installed in your Medusa backend, as explained in the Prerequisites section.\n\n:::\n\n---\n\n## Add Search to your Storefront\n\nIn this section, you’ll learn how to add the UI on your storefront to allow searching with MeiliSearch. This section has instructions for Medusa’s [Next.js](../../starters/nextjs-medusa-starter.mdx) storefront as well as React-based frameworks.\n\n### Storefront Prerequisites\n\nIt is assumed you already have a storefront set up and working with the Medusa backend, as this section only covers how to add the search UI.\n\n:::tip\n\nIf you don’t have a storefront set up, you can use the [Next.js starter storefront](../../starters/nextjs-medusa-starter.mdx) that Medusa provides.\n\n:::\n\nFurthermore, you must create an API key in your MeiliSearch instance that will be used to search on the storefront. To do that, run the following command in your terminal while the MeiliSearch instance is running:\n\n```bash\ncurl \\\n  -X POST '<MEILISEARCH_HOST>/keys' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer <MEILISEARCH_MASTER_KEY>' \\\n  --data-binary '{\n    \"description\": \"Search products\",\n    \"actions\": [\"search\"],\n    \"indexes\": [\"products\"],\n    \"expiresAt\": \"2024-01-01T00:00:00Z\"\n  }'\n```\n\nMake sure to replace `<MEILISEARCH_HOST>` and `<MEILISEARCH_MASTER_KEY>` accordingly.\n\nIf this request is successful, the API key will be available under the `key` property returned in the JSON response.\n\n### Add to Next.js Storefront\n\nThe Next.js storefront has the MeiliSearch integration available out of the box. To get it working, you just need to follow two steps.\n\nFirst, ensure that the search feature is enabled in `store.config.json`:\n\n```json title=store.config.json\n{\n  \"features\": {\n    \"search\": true\n  }\n}\n```\n\nThen, add the necessary environment variables:\n\n```bash\nNEXT_PUBLIC_SEARCH_ENDPOINT=<YOUR_MEILISEARCH_HOST>\nNEXT_PUBLIC_SEARCH_API_KEY=<YOUR_API_KEY>\nNEXT_PUBLIC_SEARCH_INDEX_NAME=products\n```\n\nMake sure to replace `<YOUR_MEILISEARCH_HOST>` with your MeiliSearch host and `<YOUR_API_KEY>` with the API key you created as instructed in the [Storefront Prerequisites](#storefront-prerequisites) section.\n\nIf you run your Next.js storefront now while the Medusa backend and the MeiliSearch services are running, the search functionality will be available in your storefront.\n\n:::note\n\nTo make sure the Next.js storefront properly displays the products in the search result, include in the `displayedAttributes` setting of the MeiliSearch plugin on the Medusa backend at least the fields `title`, `handle`, `description`, and `thumbnail`.\n\n:::\n\n![Search Result on Next.js storefront](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000298/Medusa%20Docs/MeiliSearch/gQVWvH2_datei5.png)\n\n### Add to Other Storefronts\n\nTo integrate MeiliSearch's search functionalities in your storefront, please refer to [MeiliSearch's documentation](https://docs.meilisearch.com/learn/what_is_meilisearch/sdks.html#front-end-tools). They offer different tools that you can use based on the frontend framework of your storefront.\n\n---\n\n## See Also\n\n- [Deploy your Medusa backend](../../deployments/server/index.mdx).\n- [Deploy your storefront](../../deployments/storefront/index.mdx).\n\n<!-- File: docs/content/references/entities/classes/Address.md (Tokens: ~1289 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Address\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Address`**\n\n## Constructors\n\n### constructor\n\n• **new Address**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### address\\_1\n\n• **address\\_1**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L36)\n\n___\n\n### address\\_2\n\n• **address\\_2**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L39)\n\n___\n\n### city\n\n• **city**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L42)\n\n___\n\n### company\n\n• **company**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L27)\n\n___\n\n### country\n\n• **country**: ``null`` \\| [`Country`](Country.md)\n\n#### Defined in\n\n[models/address.ts:49](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L49)\n\n___\n\n### country\\_code\n\n• **country\\_code**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:45](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L45)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\n\n• **customer**: ``null`` \\| [`Customer`](Customer.md)\n\n#### Defined in\n\n[models/address.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L24)\n\n___\n\n### customer\\_id\n\n• **customer\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L20)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### first\\_name\n\n• **first\\_name**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L30)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### last\\_name\n\n• **last\\_name**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L33)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/address.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L61)\n\n___\n\n### phone\n\n• **phone**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:58](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L58)\n\n___\n\n### postal\\_code\n\n• **postal\\_code**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:55](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L55)\n\n___\n\n### province\n\n• **province**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/address.ts:52](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L52)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/address.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/address.ts#L63)\n\n<!-- File: docs/content/references/entities/classes/AnalyticsConfig.md (Tokens: ~631 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: AnalyticsConfig\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`AnalyticsConfig`**\n\n## Constructors\n\n### constructor\n\n• **new AnalyticsConfig**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### anonymize\n\n• **anonymize**: `boolean`\n\n#### Defined in\n\n[models/analytics-config.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L17)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### opt\\_out\n\n• **opt\\_out**: `boolean`\n\n#### Defined in\n\n[models/analytics-config.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L14)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### user\\_id\n\n• **user\\_id**: `string`\n\n#### Defined in\n\n[models/analytics-config.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L11)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/analytics-config.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/analytics-config.ts#L19)\n\n<!-- File: docs/content/references/entities/classes/BatchJob.md (Tokens: ~1511 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: BatchJob\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`BatchJob`**\n\n## Constructors\n\n### constructor\n\n• **new BatchJob**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### canceled\\_at\n\n• `Optional` **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:62](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L62)\n\n___\n\n### completed\\_at\n\n• `Optional` **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:59](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L59)\n\n___\n\n### confirmed\\_at\n\n• `Optional` **confirmed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L56)\n\n___\n\n### context\n\n• **context**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/batch-job.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L33)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### created\\_by\n\n• **created\\_by**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/batch-job.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L26)\n\n___\n\n### created\\_by\\_user\n\n• **created\\_by\\_user**: [`User`](User.md)\n\n#### Defined in\n\n[models/batch-job.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L30)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### dry\\_run\n\n• **dry\\_run**: `boolean` = `false`\n\n#### Defined in\n\n[models/batch-job.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L47)\n\n___\n\n### failed\\_at\n\n• `Optional` **failed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:65](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L65)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### pre\\_processed\\_at\n\n• `Optional` **pre\\_processed\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L50)\n\n___\n\n### processing\\_at\n\n• `Optional` **processing\\_at**: `Date`\n\n#### Defined in\n\n[models/batch-job.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L53)\n\n___\n\n### result\n\n• **result**: { `advancement_count?`: `number` ; `count?`: `number` ; `errors?`: `BatchJobResultError`[] ; `file_key?`: `string` ; `file_size?`: `number` ; `progress?`: `number` ; `stat_descriptors?`: `BatchJobResultStatDescriptor`[]  } & `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/batch-job.ts:36](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L36)\n\n___\n\n### status\n\n• **status**: `BatchJobStatus`\n\n#### Defined in\n\n[models/batch-job.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L67)\n\n___\n\n### type\n\n• **type**: `string`\n\n#### Defined in\n\n[models/batch-job.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L23)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/batch-job.ts:94](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L94)\n\n___\n\n### loadStatus\n\n▸ **loadStatus**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/batch-job.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L69)\n\n___\n\n### toJSON\n\n▸ **toJSON**(): [`BatchJob`](BatchJob.md)\n\n#### Returns\n\n[`BatchJob`](BatchJob.md)\n\n#### Defined in\n\n[models/batch-job.ts:99](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/batch-job.ts#L99)\n\n<!-- File: docs/content/references/entities/classes/Cart.md (Tokens: ~2796 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Cart\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Cart`**\n\n## Constructors\n\n### constructor\n\n• **new Cart**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### billing\\_address\n\n• **billing\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/cart.ts:226](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L226)\n\n___\n\n### billing\\_address\\_id\n\n• **billing\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:220](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L220)\n\n___\n\n### completed\\_at\n\n• **completed\\_at**: `Date`\n\n#### Defined in\n\n[models/cart.ts:311](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L311)\n\n___\n\n### context\n\n• **context**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/cart.ts:320](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L320)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customer\n\n• **customer**: [`Customer`](Customer.md)\n\n#### Defined in\n\n[models/cart.ts:285](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L285)\n\n___\n\n### customer\\_id\n\n• **customer\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:281](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L281)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### discount\\_total\n\n• `Optional` **discount\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:335](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L335)\n\n___\n\n### discounts\n\n• **discounts**: [`Discount`](Discount.md)[]\n\n#### Defined in\n\n[models/cart.ts:263](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L263)\n\n___\n\n### email\n\n• **email**: `string`\n\n#### Defined in\n\n[models/cart.ts:216](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L216)\n\n___\n\n### gift\\_card\\_tax\\_total\n\n• `Optional` **gift\\_card\\_tax\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:344](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L344)\n\n___\n\n### gift\\_card\\_total\n\n• `Optional` **gift\\_card\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:343](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L343)\n\n___\n\n### gift\\_cards\n\n• **gift\\_cards**: [`GiftCard`](GiftCard.md)[]\n\n#### Defined in\n\n[models/cart.ts:277](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L277)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/cart.ts:317](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L317)\n\n___\n\n### item\\_tax\\_total\n\n• `Optional` **item\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:336](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L336)\n\n___\n\n### items\n\n• **items**: [`LineItem`](LineItem.md)[]\n\n#### Defined in\n\n[models/cart.ts:241](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L241)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/cart.ts:323](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L323)\n\n___\n\n### object\n\n• `Readonly` **object**: ``\"cart\"``\n\n#### Defined in\n\n[models/cart.ts:213](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L213)\n\n___\n\n### payment\n\n• **payment**: [`Payment`](Payment.md)\n\n#### Defined in\n\n[models/cart.ts:300](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L300)\n\n___\n\n### payment\\_authorized\\_at\n\n• **payment\\_authorized\\_at**: `Date`\n\n#### Defined in\n\n[models/cart.ts:314](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L314)\n\n___\n\n### payment\\_id\n\n• **payment\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:296](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L296)\n\n___\n\n### payment\\_session\n\n• **payment\\_session**: ``null`` \\| [`PaymentSession`](PaymentSession.md)\n\n#### Defined in\n\n[models/cart.ts:287](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L287)\n\n___\n\n### payment\\_sessions\n\n• **payment\\_sessions**: [`PaymentSession`](PaymentSession.md)[]\n\n#### Defined in\n\n[models/cart.ts:292](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L292)\n\n___\n\n### refundable\\_amount\n\n• `Optional` **refundable\\_amount**: `number`\n\n#### Defined in\n\n[models/cart.ts:342](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L342)\n\n___\n\n### refunded\\_total\n\n• `Optional` **refunded\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:339](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L339)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/cart.ts:249](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L249)\n\n___\n\n### region\\_id\n\n• **region\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:245](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L245)\n\n___\n\n### sales\\_channel\n\n• **sales\\_channel**: [`SalesChannel`](SalesChannel.md)\n\n#### Defined in\n\n[models/cart.ts:332](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L332)\n\n___\n\n### sales\\_channel\\_id\n\n• **sales\\_channel\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/cart.ts:326](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L326)\n\n___\n\n### shipping\\_address\n\n• **shipping\\_address**: ``null`` \\| [`Address`](Address.md)\n\n#### Defined in\n\n[models/cart.ts:236](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L236)\n\n___\n\n### shipping\\_address\\_id\n\n• **shipping\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/cart.ts:230](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L230)\n\n___\n\n### shipping\\_methods\n\n• **shipping\\_methods**: [`ShippingMethod`](ShippingMethod.md)[]\n\n#### Defined in\n\n[models/cart.ts:305](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L305)\n\n___\n\n### shipping\\_tax\\_total\n\n• `Optional` **shipping\\_tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:337](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L337)\n\n___\n\n### shipping\\_total\n\n• `Optional` **shipping\\_total**: `number`\n\n#### Defined in\n\n[models/cart.ts:334](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L334)\n\n___\n\n### subtotal\n\n• `Optional` **subtotal**: `number`\n\n#### Defined in\n\n[models/cart.ts:341](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L341)\n\n___\n\n### tax\\_total\n\n• `Optional` **tax\\_total**: ``null`` \\| `number`\n\n#### Defined in\n\n[models/cart.ts:338](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L338)\n\n___\n\n### total\n\n• `Optional` **total**: `number`\n\n#### Defined in\n\n[models/cart.ts:340](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L340)\n\n___\n\n### type\n\n• **type**: [`CartType`](../enums/CartType.md)\n\n#### Defined in\n\n[models/cart.ts:308](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L308)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### afterLoad\n\n▸ `Private` **afterLoad**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/cart.ts:346](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L346)\n\n___\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/cart.ts:353](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/cart.ts#L353)\n\n<!-- File: docs/content/references/entities/classes/ClaimImage.md (Tokens: ~703 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimImage\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimImage`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimImage**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### claim\\_item\n\n• **claim\\_item**: [`ClaimItem`](ClaimItem.md)\n\n#### Defined in\n\n[models/claim-image.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L23)\n\n___\n\n### claim\\_item\\_id\n\n• **claim\\_item\\_id**: `string`\n\n#### Defined in\n\n[models/claim-image.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L19)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-image.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L29)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### url\n\n• **url**: `string`\n\n#### Defined in\n\n[models/claim-image.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L26)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-image.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-image.ts#L31)\n\n<!-- File: docs/content/references/entities/classes/ClaimItem.md (Tokens: ~1207 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimItem\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimItem`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimItem**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### claim\\_order\n\n• **claim\\_order**: [`ClaimOrder`](ClaimOrder.md)\n\n#### Defined in\n\n[models/claim-item.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L42)\n\n___\n\n### claim\\_order\\_id\n\n• **claim\\_order\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L38)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### images\n\n• **images**: [`ClaimImage`](ClaimImage.md)[]\n\n#### Defined in\n\n[models/claim-item.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L34)\n\n___\n\n### item\n\n• **item**: [`LineItem`](LineItem.md)\n\n#### Defined in\n\n[models/claim-item.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L50)\n\n___\n\n### item\\_id\n\n• **item\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:46](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L46)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-item.ts:84](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L84)\n\n___\n\n### note\n\n• **note**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:64](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L64)\n\n___\n\n### quantity\n\n• **quantity**: `number`\n\n#### Defined in\n\n[models/claim-item.ts:67](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L67)\n\n___\n\n### reason\n\n• **reason**: [`ClaimReason`](../enums/ClaimReason.md)\n\n#### Defined in\n\n[models/claim-item.ts:61](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L61)\n\n___\n\n### tags\n\n• **tags**: [`ClaimTag`](ClaimTag.md)[]\n\n#### Defined in\n\n[models/claim-item.ts:81](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L81)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### variant\n\n• **variant**: [`ProductVariant`](ProductVariant.md)\n\n#### Defined in\n\n[models/claim-item.ts:58](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L58)\n\n___\n\n### variant\\_id\n\n• **variant\\_id**: `string`\n\n#### Defined in\n\n[models/claim-item.ts:54](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L54)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-item.ts:86](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-item.ts#L86)\n\n<!-- File: docs/content/references/entities/classes/ClaimOrder.md (Tokens: ~1561 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimOrder\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimOrder`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimOrder**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### additional\\_items\n\n• **additional\\_items**: [`LineItem`](LineItem.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L69)\n\n___\n\n### canceled\\_at\n\n• **canceled\\_at**: `Date`\n\n#### Defined in\n\n[models/claim-order.ts:107](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L107)\n\n___\n\n### claim\\_items\n\n• **claim\\_items**: [`ClaimItem`](ClaimItem.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:66](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L66)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[models/claim-order.ts:110](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L110)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[models/claim-order.ts:116](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L116)\n\n___\n\n### fulfillment\\_status\n\n• **fulfillment\\_status**: [`ClaimFulfillmentStatus`](../enums/ClaimFulfillmentStatus.md)\n\n#### Defined in\n\n[models/claim-order.ts:63](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L63)\n\n___\n\n### fulfillments\n\n• **fulfillments**: [`Fulfillment`](Fulfillment.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:101](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L101)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### idempotency\\_key\n\n• **idempotency\\_key**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:125](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L125)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-order.ts:122](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L122)\n\n___\n\n### no\\_notification\n\n• **no\\_notification**: `boolean`\n\n#### Defined in\n\n[models/claim-order.ts:119](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L119)\n\n___\n\n### order\n\n• **order**: [`Order`](Order.md)\n\n#### Defined in\n\n[models/claim-order.ts:80](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L80)\n\n___\n\n### order\\_id\n\n• **order\\_id**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:76](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L76)\n\n___\n\n### payment\\_status\n\n• **payment\\_status**: [`ClaimPaymentStatus`](../enums/ClaimPaymentStatus.md)\n\n#### Defined in\n\n[models/claim-order.ts:56](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L56)\n\n___\n\n### refund\\_amount\n\n• **refund\\_amount**: `number`\n\n#### Defined in\n\n[models/claim-order.ts:104](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L104)\n\n___\n\n### return\\_order\n\n• **return\\_order**: [`Return`](Return.md)\n\n#### Defined in\n\n[models/claim-order.ts:83](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L83)\n\n___\n\n### shipping\\_address\n\n• **shipping\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/claim-order.ts:91](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L91)\n\n___\n\n### shipping\\_address\\_id\n\n• **shipping\\_address\\_id**: `string`\n\n#### Defined in\n\n[models/claim-order.ts:87](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L87)\n\n___\n\n### shipping\\_methods\n\n• **shipping\\_methods**: [`ShippingMethod`](ShippingMethod.md)[]\n\n#### Defined in\n\n[models/claim-order.ts:96](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L96)\n\n___\n\n### type\n\n• **type**: [`ClaimType`](../enums/ClaimType.md)\n\n#### Defined in\n\n[models/claim-order.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L72)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Overrides\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[models/claim-order.ts:113](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L113)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-order.ts:127](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-order.ts#L127)\n\n<!-- File: docs/content/references/entities/classes/ClaimTag.md (Tokens: ~570 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: ClaimTag\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`ClaimTag`**\n\n## Constructors\n\n### constructor\n\n• **new ClaimTag**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/claim-tag.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L14)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n___\n\n### value\n\n• **value**: `string`\n\n#### Defined in\n\n[models/claim-tag.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L11)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/claim-tag.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/claim-tag.ts#L16)\n\n<!-- File: docs/content/references/entities/classes/Country.md (Tokens: ~503 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Country\n\n## Constructors\n\n### constructor\n\n• **new Country**()\n\n## Properties\n\n### display\\_name\n\n• **display\\_name**: `string`\n\n#### Defined in\n\n[models/country.ts:31](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L31)\n\n___\n\n### id\n\n• **id**: `number`\n\n#### Defined in\n\n[models/country.ts:15](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L15)\n\n___\n\n### iso\\_2\n\n• **iso\\_2**: `string`\n\n#### Defined in\n\n[models/country.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L19)\n\n___\n\n### iso\\_3\n\n• **iso\\_3**: `string`\n\n#### Defined in\n\n[models/country.ts:22](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L22)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/country.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L28)\n\n___\n\n### num\\_code\n\n• **num\\_code**: `number`\n\n#### Defined in\n\n[models/country.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L25)\n\n___\n\n### region\n\n• **region**: [`Region`](Region.md)\n\n#### Defined in\n\n[models/country.ts:39](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L39)\n\n___\n\n### region\\_id\n\n• **region\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/country.ts:35](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/country.ts#L35)\n\n<!-- File: docs/content/references/entities/classes/Currency.md (Tokens: ~319 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Currency\n\n## Constructors\n\n### constructor\n\n• **new Currency**()\n\n## Properties\n\n### code\n\n• **code**: `string`\n\n#### Defined in\n\n[models/currency.ts:8](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L8)\n\n___\n\n### includes\\_tax\n\n• `Optional` **includes\\_tax**: `boolean`\n\n#### Defined in\n\n[models/currency.ts:20](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L20)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/currency.ts:17](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L17)\n\n___\n\n### symbol\n\n• **symbol**: `string`\n\n#### Defined in\n\n[models/currency.ts:11](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L11)\n\n___\n\n### symbol\\_native\n\n• **symbol\\_native**: `string`\n\n#### Defined in\n\n[models/currency.ts:14](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/currency.ts#L14)\n\n<!-- File: docs/content/references/entities/classes/Customer.md (Tokens: ~1151 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: Customer\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`Customer`**\n\n## Constructors\n\n### constructor\n\n• **new Customer**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### billing\\_address\n\n• **billing\\_address**: [`Address`](Address.md)\n\n#### Defined in\n\n[models/customer.ts:38](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L38)\n\n___\n\n### billing\\_address\\_id\n\n• **billing\\_address\\_id**: ``null`` \\| `string`\n\n#### Defined in\n\n[models/customer.ts:34](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L34)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### email\n\n• **email**: `string`\n\n#### Defined in\n\n[models/customer.ts:24](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L24)\n\n___\n\n### first\\_name\n\n• **first\\_name**: `string`\n\n#### Defined in\n\n[models/customer.ts:27](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L27)\n\n___\n\n### groups\n\n• **groups**: [`CustomerGroup`](CustomerGroup.md)[]\n\n#### Defined in\n\n[models/customer.ts:69](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L69)\n\n___\n\n### has\\_account\n\n• **has\\_account**: `boolean`\n\n#### Defined in\n\n[models/customer.ts:50](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L50)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### last\\_name\n\n• **last\\_name**: `string`\n\n#### Defined in\n\n[models/customer.ts:30](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L30)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/customer.ts:72](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L72)\n\n___\n\n### orders\n\n• **orders**: [`Order`](Order.md)[]\n\n#### Defined in\n\n[models/customer.ts:53](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L53)\n\n___\n\n### password\\_hash\n\n• **password\\_hash**: `string`\n\n#### Defined in\n\n[models/customer.ts:44](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L44)\n\n___\n\n### phone\n\n• **phone**: `string`\n\n#### Defined in\n\n[models/customer.ts:47](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L47)\n\n___\n\n### shipping\\_addresses\n\n• **shipping\\_addresses**: [`Address`](Address.md)[]\n\n#### Defined in\n\n[models/customer.ts:41](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L41)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/customer.ts:74](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer.ts#L74)\n\n<!-- File: docs/content/references/entities/classes/CustomerGroup.md (Tokens: ~692 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: CustomerGroup\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`CustomerGroup`**\n\n## Constructors\n\n### constructor\n\n• **new CustomerGroup**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### customers\n\n• **customers**: [`Customer`](Customer.md)[]\n\n#### Defined in\n\n[models/customer-group.ts:18](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L18)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/customer-group.ts:26](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L26)\n\n___\n\n### name\n\n• **name**: `string`\n\n#### Defined in\n\n[models/customer-group.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L13)\n\n___\n\n### price\\_lists\n\n• **price\\_lists**: [`PriceList`](PriceList.md)[]\n\n#### Defined in\n\n[models/customer-group.ts:23](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L23)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/customer-group.ts:28](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/customer-group.ts#L28)\n\n<!-- File: docs/content/references/entities/classes/CustomShippingOption.md (Tokens: ~843 | Category: anthropic-skill) -->\n---\ndisplayed_sidebar: entitiesSidebar\n---\n\n# Class: CustomShippingOption\n\n## Hierarchy\n\n- `SoftDeletableEntity`\n\n  ↳ **`CustomShippingOption`**\n\n## Constructors\n\n### constructor\n\n• **new CustomShippingOption**()\n\n#### Inherited from\n\nSoftDeletableEntity.constructor\n\n## Properties\n\n### cart\n\n• **cart**: [`Cart`](Cart.md)\n\n#### Defined in\n\n[models/custom-shipping-option.ts:37](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L37)\n\n___\n\n### cart\\_id\n\n• **cart\\_id**: `string`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:33](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L33)\n\n___\n\n### created\\_at\n\n• **created\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.created\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:16](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L16)\n\n___\n\n### deleted\\_at\n\n• **deleted\\_at**: ``null`` \\| `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.deleted\\_at\n\n#### Defined in\n\n[interfaces/models/soft-deletable-entity.ts:7](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/soft-deletable-entity.ts#L7)\n\n___\n\n### id\n\n• **id**: `string`\n\n#### Inherited from\n\nSoftDeletableEntity.id\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:13](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L13)\n\n___\n\n### metadata\n\n• **metadata**: `Record`<`string`, `unknown`\\>\n\n#### Defined in\n\n[models/custom-shipping-option.ts:40](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L40)\n\n___\n\n### price\n\n• **price**: `number`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:21](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L21)\n\n___\n\n### shipping\\_option\n\n• **shipping\\_option**: [`ShippingOption`](ShippingOption.md)\n\n#### Defined in\n\n[models/custom-shipping-option.ts:29](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L29)\n\n___\n\n### shipping\\_option\\_id\n\n• **shipping\\_option\\_id**: `string`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:25](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L25)\n\n___\n\n### updated\\_at\n\n• **updated\\_at**: `Date`\n\n#### Inherited from\n\nSoftDeletableEntity.updated\\_at\n\n#### Defined in\n\n[interfaces/models/base-entity.ts:19](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/interfaces/models/base-entity.ts#L19)\n\n## Methods\n\n### beforeInsert\n\n▸ `Private` **beforeInsert**(): `void`\n\n#### Returns\n\n`void`\n\n#### Defined in\n\n[models/custom-shipping-option.ts:42](https://github.com/medusajs/medusa/blob/da7ea8c5d/packages/medusa/src/models/custom-shipping-option.ts#L42)\n\n<!-- ... +665 more modular skills available via /api/skills/medusajs/medusa?path={path} -->\n</yakaai_skills>"}