@thorprovider/types 3.4.2 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/index.d.mts +89 -6
- package/dist/index.d.ts +89 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/admin/DropshippingAdmin.ts +97 -5
- package/src/index.ts +12 -3
package/AGENTS.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!-- TYPES-AGENTS-MD-START -->[@thorprovider/types Docs]|root: ./types|Documentation for @thorprovider/types. Always read package docs before making changes.|To regenerate: yarn
|
|
1
|
+
<!-- TYPES-AGENTS-MD-START -->[@thorprovider/types Docs]|root: ./types|Documentation for @thorprovider/types. Always read package docs before making changes.|To regenerate: yarn generate:agents-index|.:{README.md}|src:{header-config.README.md}<!-- TYPES-AGENTS-MD-END -->
|
package/CHANGELOG.md
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -3786,6 +3786,12 @@ interface DropshipperVariant {
|
|
|
3786
3786
|
margin: number;
|
|
3787
3787
|
/** (margin / sale_price) × 100 (calculated by backend) */
|
|
3788
3788
|
margin_percent: number;
|
|
3789
|
+
/** Margin set at product level when inherited by this variant. */
|
|
3790
|
+
margin_percent_global?: number;
|
|
3791
|
+
/** Explicit override margin for this variant when customized. */
|
|
3792
|
+
margin_percent_override?: number | null;
|
|
3793
|
+
/** Source used to derive the effective margin for this variant. */
|
|
3794
|
+
margin_percent_source?: 'global' | 'override';
|
|
3789
3795
|
}
|
|
3790
3796
|
/** A product as seen by the dropshipper */
|
|
3791
3797
|
interface DropshipperProduct {
|
|
@@ -3793,6 +3799,11 @@ interface DropshipperProduct {
|
|
|
3793
3799
|
title: string;
|
|
3794
3800
|
thumbnail: string | null;
|
|
3795
3801
|
status: 'published' | 'draft' | string;
|
|
3802
|
+
global_status?: string | null;
|
|
3803
|
+
can_publish?: boolean;
|
|
3804
|
+
cannot_publish_reason?: 'missing_price' | 'product_not_published' | null;
|
|
3805
|
+
/** Default margin applied to variants that do not have an override. */
|
|
3806
|
+
margin_percent?: number;
|
|
3796
3807
|
variants: DropshipperVariant[];
|
|
3797
3808
|
}
|
|
3798
3809
|
/** Options for `GET /admin/thor/dropshipper/products` */
|
|
@@ -3812,15 +3823,33 @@ interface GetDropshipperProductsResponse {
|
|
|
3812
3823
|
offset: number;
|
|
3813
3824
|
limit: number;
|
|
3814
3825
|
}
|
|
3815
|
-
/**
|
|
3816
|
-
interface
|
|
3826
|
+
/** Body for `POST /admin/thor/dropshipper/products/:id/status` */
|
|
3827
|
+
interface UpdateDropshipperProductStatusBody {
|
|
3828
|
+
status: 'published' | 'draft';
|
|
3829
|
+
}
|
|
3830
|
+
/** Response for `POST /admin/thor/dropshipper/products/:id/status` */
|
|
3831
|
+
interface UpdateDropshipperProductStatusResponse {
|
|
3832
|
+
product_id: string;
|
|
3833
|
+
status: 'published' | 'draft';
|
|
3834
|
+
previous_status: string | null;
|
|
3835
|
+
reason?: 'missing_price' | 'product_not_published';
|
|
3836
|
+
}
|
|
3837
|
+
/** Variant margin override in a price update payload. */
|
|
3838
|
+
interface DropshipperVariantMarginOverride {
|
|
3817
3839
|
variant_id: string;
|
|
3818
|
-
|
|
3840
|
+
margin_percent: number;
|
|
3841
|
+
}
|
|
3842
|
+
/** Product margin update item */
|
|
3843
|
+
interface DropshipperProductMarginItem {
|
|
3844
|
+
product_id: string;
|
|
3845
|
+
margin_percent: number;
|
|
3846
|
+
locked: boolean;
|
|
3847
|
+
variant_overrides?: DropshipperVariantMarginOverride[];
|
|
3819
3848
|
}
|
|
3820
3849
|
/** Body for `PUT /admin/thor/dropshipper/prices` */
|
|
3821
3850
|
interface UpdateDropshipperPricesBody {
|
|
3822
3851
|
currency_code: string;
|
|
3823
|
-
|
|
3852
|
+
products: DropshipperProductMarginItem[];
|
|
3824
3853
|
}
|
|
3825
3854
|
/** Response for `PUT /admin/thor/dropshipper/prices` */
|
|
3826
3855
|
interface UpdateDropshipperPricesResponse {
|
|
@@ -3868,12 +3897,57 @@ interface GetDropshipperOrdersResponse {
|
|
|
3868
3897
|
offset: number;
|
|
3869
3898
|
limit: number;
|
|
3870
3899
|
}
|
|
3900
|
+
/** A shipping option returned for manual dropshipper orders */
|
|
3901
|
+
interface DropshipperShippingOption {
|
|
3902
|
+
id: string;
|
|
3903
|
+
name: string;
|
|
3904
|
+
amount: number;
|
|
3905
|
+
currency_code: string;
|
|
3906
|
+
price_type: string;
|
|
3907
|
+
is_default: boolean;
|
|
3908
|
+
type: {
|
|
3909
|
+
id: string;
|
|
3910
|
+
label: string;
|
|
3911
|
+
code: string | null;
|
|
3912
|
+
} | null;
|
|
3913
|
+
}
|
|
3914
|
+
/** Options for `GET /admin/thor/dropshipper/orders/shipping-options` */
|
|
3915
|
+
interface GetDropshipperShippingOptionsParams {
|
|
3916
|
+
currency_code: string;
|
|
3917
|
+
country_code?: string;
|
|
3918
|
+
}
|
|
3919
|
+
/** Response for `GET /admin/thor/dropshipper/orders/shipping-options` */
|
|
3920
|
+
interface GetDropshipperShippingOptionsResponse {
|
|
3921
|
+
shipping_options: DropshipperShippingOption[];
|
|
3922
|
+
count: number;
|
|
3923
|
+
}
|
|
3924
|
+
/** Body for `POST /admin/thor/dropshipper/orders` with checkout-only extensions */
|
|
3925
|
+
interface ExtendedCreateDropshipperOrderBody extends CreateDropshipperOrderBody {
|
|
3926
|
+
billing_address?: CreateDropshipperOrderBody['shipping_address'];
|
|
3927
|
+
promo_codes?: string[];
|
|
3928
|
+
}
|
|
3929
|
+
/** Response for `POST /admin/thor/dropshipper/orders` with totals and shipping method */
|
|
3930
|
+
interface ExtendedCreateDropshipperOrderResponse {
|
|
3931
|
+
order: {
|
|
3932
|
+
id: string;
|
|
3933
|
+
display_id: number;
|
|
3934
|
+
status: string;
|
|
3935
|
+
subtotal: number;
|
|
3936
|
+
tax_total: number;
|
|
3937
|
+
shipping_total: number;
|
|
3938
|
+
discount_total: number;
|
|
3939
|
+
total: number;
|
|
3940
|
+
profit: number;
|
|
3941
|
+
created_at: string;
|
|
3942
|
+
shipping_method?: DropshipperShippingOption | null;
|
|
3943
|
+
};
|
|
3944
|
+
}
|
|
3871
3945
|
/** A shipping address on an order */
|
|
3872
3946
|
interface DropshipperOrderShippingAddress {
|
|
3873
3947
|
full_name: string;
|
|
3874
3948
|
address_1: string;
|
|
3875
3949
|
city: string;
|
|
3876
|
-
province
|
|
3950
|
+
province?: string | null;
|
|
3877
3951
|
postal_code: string;
|
|
3878
3952
|
country_code: string;
|
|
3879
3953
|
}
|
|
@@ -3942,6 +4016,7 @@ interface CreateDropshipperOrderBody {
|
|
|
3942
4016
|
phone?: string;
|
|
3943
4017
|
};
|
|
3944
4018
|
shipping_method_id?: string;
|
|
4019
|
+
payment_method_id: string;
|
|
3945
4020
|
notes?: string;
|
|
3946
4021
|
}
|
|
3947
4022
|
/** Response for `POST /admin/thor/dropshipper/orders` */
|
|
@@ -4207,6 +4282,13 @@ interface DropshipperPendingOrders {
|
|
|
4207
4282
|
receivable_count: number;
|
|
4208
4283
|
receivable_total: number;
|
|
4209
4284
|
}
|
|
4285
|
+
/** Payment method configuration for a dropshipper account */
|
|
4286
|
+
interface DropshipperPaymentMethodConfig {
|
|
4287
|
+
payment_provider_id: string;
|
|
4288
|
+
label: string;
|
|
4289
|
+
collected_by: 'dropshipper' | 'provider';
|
|
4290
|
+
is_enabled: boolean;
|
|
4291
|
+
}
|
|
4210
4292
|
/** Full account record as returned by `GET /admin/thor/dropshipper/account` */
|
|
4211
4293
|
interface DropshipperAccount {
|
|
4212
4294
|
id: string;
|
|
@@ -4215,6 +4297,7 @@ interface DropshipperAccount {
|
|
|
4215
4297
|
payment_terms_days: number;
|
|
4216
4298
|
balance: DropshipperBalance;
|
|
4217
4299
|
pending_orders: DropshipperPendingOrders;
|
|
4300
|
+
payment_method_configs?: DropshipperPaymentMethodConfig[];
|
|
4218
4301
|
}
|
|
4219
4302
|
/** Response for `GET /admin/thor/dropshipper/account` */
|
|
4220
4303
|
interface GetDropshipperAccountResponse {
|
|
@@ -4546,4 +4629,4 @@ interface GetStorefrontDropshipperCategoriesResponse {
|
|
|
4546
4629
|
categories: DropshipperCategory[];
|
|
4547
4630
|
}
|
|
4548
4631
|
|
|
4549
|
-
export { type AccountDropdownConfig, type AccountMenuItem, type ActiveFilter, type AddOrderEditItemBody, type AddOrderEditItemResponse, type Address, type AdminApiKey, type AdminChannelCategory, type AdminChannelCustomer, type AdminDropshipperAccount, type AdminDropshipperBalance, type AdminProduct, type AdminProductVariant, type AdminSalesChannelRef, type AdminSiteConfig, type AdminSiteConfigHistoryEntry, type AdminSiteConfigHistoryEntryFull, type AdminStorefrontConfig, type AdminStorefrontSeoDefaults, type AdminUser, type AdvancedSearchProductsOptions, type AssignCategoriesToChannelsBody, type AssignCategoriesToChannelsResponse, type AssignCollectionsToChannelsBody, type AssignCollectionsToChannelsResponse, type AuditLog, type AuditLogAdapter, type AuthConfig, type AuthMethod, type AuthProvider, type AuthResponse, type AuthStorage, type AuthorConfig, type BackendCapabilities, type BatchVariantCostItem, type BatchVariantCostsBody, type BatchVariantCostsResponse, type BrandConfig, type CachedPaymentMethods, type CancelDropshipperOrderResponse, type CancelSettlementBody, type Cart, type CartCost, type CartItem, type CartLineInput, type CartLineUpdate, type CartProduct, type CategoryMapping, type ChartDataPoint, type Collection, type CollectionProductsOptions, type CommerceProvider, type CompareProduct, type ConfigHistoryEntry, type ConfirmOrderEditResponse, type ConfirmSettlementBody, type Connection, type Country, type CreateAddressData, type CreateCategoryMappingBody, type CreateCategoryMappingResponse, type CreateDropshipperCategoryBody, type CreateDropshipperCustomerBody, type CreateDropshipperCustomerResponse, type CreateDropshipperOrderBody, type CreateDropshipperOrderResponse, type CreateDropshipperPromotionBody, type CreateOrderEditBody, type CreateOrderEditResponse, type CreateOrderItem, type CreateOrderNoteBody, type CreateSettlementBody, type CreateSettlementResponse, type CreateVariantCostBody, type CreateVariantCostResponse, type Customer, type DashboardChanges, type DashboardConfig, type DashboardMetrics, type DashboardMetricsAdapter, type DashboardOrdersAdapter, type DashboardPeriodMetrics, type DashboardProductsAdapter, type DashboardStats, type DashboardTopProduct, type DeleteCategoryMappingResponse, type DeleteDropshipperCategoryResponse, type DeleteDropshipperPromotionResponse, type DeleteOrderNoteResponse, type DeleteVariantCostResponse, type DesignerConfig, type DesignerHistoryEntry, type DesignerNavItem, type DesignerThemeConfig, type DesignerThemePreset, type DiscountCode, type DropshipperAccount, type DropshipperAccountRef, type DropshipperAddressBody, type DropshipperAddressResponse, type DropshipperBalance, type DropshipperCategory, type DropshipperCustomer, type DropshipperCustomerDetail, type DropshipperCustomerOrderRef, type DropshipperCustomerStats, type DropshipperOrder, type DropshipperOrderCustomer, type DropshipperOrderDetail, type DropshipperOrderItem, type DropshipperOrderShippingAddress, type DropshipperOrderTimelineEvent, type DropshipperOrderTotals, type DropshipperPayableOrder, type
|
|
4632
|
+
export { type AccountDropdownConfig, type AccountMenuItem, type ActiveFilter, type AddOrderEditItemBody, type AddOrderEditItemResponse, type Address, type AdminApiKey, type AdminChannelCategory, type AdminChannelCustomer, type AdminDropshipperAccount, type AdminDropshipperBalance, type AdminProduct, type AdminProductVariant, type AdminSalesChannelRef, type AdminSiteConfig, type AdminSiteConfigHistoryEntry, type AdminSiteConfigHistoryEntryFull, type AdminStorefrontConfig, type AdminStorefrontSeoDefaults, type AdminUser, type AdvancedSearchProductsOptions, type AssignCategoriesToChannelsBody, type AssignCategoriesToChannelsResponse, type AssignCollectionsToChannelsBody, type AssignCollectionsToChannelsResponse, type AuditLog, type AuditLogAdapter, type AuthConfig, type AuthMethod, type AuthProvider, type AuthResponse, type AuthStorage, type AuthorConfig, type BackendCapabilities, type BatchVariantCostItem, type BatchVariantCostsBody, type BatchVariantCostsResponse, type BrandConfig, type CachedPaymentMethods, type CancelDropshipperOrderResponse, type CancelSettlementBody, type Cart, type CartCost, type CartItem, type CartLineInput, type CartLineUpdate, type CartProduct, type CategoryMapping, type ChartDataPoint, type Collection, type CollectionProductsOptions, type CommerceProvider, type CompareProduct, type ConfigHistoryEntry, type ConfirmOrderEditResponse, type ConfirmSettlementBody, type Connection, type Country, type CreateAddressData, type CreateCategoryMappingBody, type CreateCategoryMappingResponse, type CreateDropshipperCategoryBody, type CreateDropshipperCustomerBody, type CreateDropshipperCustomerResponse, type CreateDropshipperOrderBody, type CreateDropshipperOrderResponse, type CreateDropshipperPromotionBody, type CreateOrderEditBody, type CreateOrderEditResponse, type CreateOrderItem, type CreateOrderNoteBody, type CreateSettlementBody, type CreateSettlementResponse, type CreateVariantCostBody, type CreateVariantCostResponse, type Customer, type DashboardChanges, type DashboardConfig, type DashboardMetrics, type DashboardMetricsAdapter, type DashboardOrdersAdapter, type DashboardPeriodMetrics, type DashboardProductsAdapter, type DashboardStats, type DashboardTopProduct, type DeleteCategoryMappingResponse, type DeleteDropshipperCategoryResponse, type DeleteDropshipperPromotionResponse, type DeleteOrderNoteResponse, type DeleteVariantCostResponse, type DesignerConfig, type DesignerHistoryEntry, type DesignerNavItem, type DesignerThemeConfig, type DesignerThemePreset, type DiscountCode, type DropshipperAccount, type DropshipperAccountRef, type DropshipperAddressBody, type DropshipperAddressResponse, type DropshipperBalance, type DropshipperCategory, type DropshipperCustomer, type DropshipperCustomerDetail, type DropshipperCustomerOrderRef, type DropshipperCustomerStats, type DropshipperOrder, type DropshipperOrderCustomer, type DropshipperOrderDetail, type DropshipperOrderItem, type DropshipperOrderShippingAddress, type DropshipperOrderTimelineEvent, type DropshipperOrderTotals, type DropshipperPayableOrder, type DropshipperPaymentMethodConfig, type DropshipperPendingOrders, type DropshipperProduct, type DropshipperProductMarginItem, type DropshipperPromotion, type DropshipperReceivableOrder, type DropshipperShippingOption, type DropshipperVariant, type DropshipperVariantMarginOverride, type DynamicSource, type Edge, type ExtendedCreateDropshipperOrderBody, type ExtendedCreateDropshipperOrderResponse, type FilterConfig, type FilterOption, type FilterSection, type FulfillmentOption, type FulfillmentSet, type FulfillmentStatus, type GetAdminAccountBalanceResponse, type GetAdminDropshipperAccountsResponse, type GetAdminPriceListsResponse, type GetAdminSiteConfigHistoryOptions, type GetAdminSiteConfigHistoryResponse, type GetAdminSiteConfigResponse, type GetAdminStorefrontConfigResponse, type GetCategoriesCallback, type GetCategoriesOptions, type GetCategoryMappingsOptions, type GetCategoryMappingsResponse, type GetCategorySalesChannelsResponse, type GetChannelApiKeysResponse, type GetChannelCategoriesOptions, type GetChannelCategoriesResponse, type GetChannelCustomersOptions, type GetChannelCustomersResponse, type GetCollectionSalesChannelsResponse, type GetCollectionsOptions, type GetCustomersCallback, type GetCustomersOptions, type GetDashboardStatsOptions, type GetDashboardStatsResponse, type GetDropshipperAccountResponse, type GetDropshipperAddressesResponse, type GetDropshipperCategoriesOptions, type GetDropshipperCategoriesResponse, type GetDropshipperCustomerDetailResponse, type GetDropshipperCustomersOptions, type GetDropshipperCustomersResponse, type GetDropshipperOrderDetailResponse, type GetDropshipperOrdersOptions, type GetDropshipperOrdersResponse, type GetDropshipperPayableResponse, type GetDropshipperProductsOptions, type GetDropshipperProductsResponse, type GetDropshipperPromotionsOptions, type GetDropshipperPromotionsResponse, type GetDropshipperReceivableResponse, type GetDropshipperShippingOptionsParams, type GetDropshipperShippingOptionsResponse, type GetOrderNotesResponse, type GetOrdersCallback, type GetOrdersOptions, type GetProductsOptions, type GetProviderCategoriesResponse, type GetSettlementDetailResponse, type GetSettlementsOptions, type GetSettlementsResponse, type GetStorefrontDropshipperCategoriesResponse, type GetUserChannelResponse, type GetVariantCostsOptions, type GetVariantCostsResponse, type HeaderLinkItem, type HeaderNavigationConfig, type IconConfig, type Image, type InventoryLevel, type LinkCustomerToChannelResponse, type LoginCredentials, type ModulesConfig, type Money, type NavigationCalloutItem, type NavigationItem, type NavigationLinkItem, type OnboardDropshipperBody, type OnboardDropshipperResponse, type Order, type OrderItem, type OrderNote, type OrderStatus, type OrdersMetrics, PROVIDER_METADATA, type PaginationOptions, type PasswordResetConfirm, type PasswordResetRequest, type PaymentMethod, type PaymentMethodFeatures, type PaymentMethodType, type PaymentMethodsOptions, type PaymentStatus, type PriceRange, type Product, type ProductCategory, type ProductOption, type ProductPreview, type ProductVariant, type ProductsMetrics, type PromotionRule, type ProviderCategory, type ProviderConfig, type ProviderTypeString, type Region, type RegisterData, type RestoreSiteConfigResponse, type Review, type SEO, type SalesMetrics, type SearchBarConfig, type SearchResultMeta, type SelectedOption, type SetPaymentCollectorBody, type SetPaymentCollectorResponse, type SettlementRecord, type ShippingMethod, type SiteConfig, type SiteConfigLabels, type SiteConfigMetadata, type SocialConfig, type SortOption, type SortOptions, type StockLocation, type StockStatus, type StockValidation, type StorefrontConfig, StorefrontConfigError, type StorefrontContext, type StorefrontPlatformType, type StorefrontSeoDefaults, SupportedProviderType, type UnassignCategoriesFromChannelsBody, type UnassignCategoriesFromChannelsResponse, type UnassignCollectionsFromChannelsBody, type UnassignCollectionsFromChannelsResponse, type UpdateCustomerData, type UpdateDropshipperCategoryBody, type UpdateDropshipperPricesBody, type UpdateDropshipperPricesResponse, type UpdateDropshipperProductStatusBody, type UpdateDropshipperProductStatusResponse, type UpdateDropshipperPromotionBody, type UpdateSettlementStatusResponse, type UpdateSiteConfigBody, type UpdateSiteConfigResponse, type UpdateStorefrontConfigBody, type UpdateStorefrontConfigResponse, type VariantCost, getProviderMetadata, isSupportedProviderType };
|
package/dist/index.d.ts
CHANGED
|
@@ -3786,6 +3786,12 @@ interface DropshipperVariant {
|
|
|
3786
3786
|
margin: number;
|
|
3787
3787
|
/** (margin / sale_price) × 100 (calculated by backend) */
|
|
3788
3788
|
margin_percent: number;
|
|
3789
|
+
/** Margin set at product level when inherited by this variant. */
|
|
3790
|
+
margin_percent_global?: number;
|
|
3791
|
+
/** Explicit override margin for this variant when customized. */
|
|
3792
|
+
margin_percent_override?: number | null;
|
|
3793
|
+
/** Source used to derive the effective margin for this variant. */
|
|
3794
|
+
margin_percent_source?: 'global' | 'override';
|
|
3789
3795
|
}
|
|
3790
3796
|
/** A product as seen by the dropshipper */
|
|
3791
3797
|
interface DropshipperProduct {
|
|
@@ -3793,6 +3799,11 @@ interface DropshipperProduct {
|
|
|
3793
3799
|
title: string;
|
|
3794
3800
|
thumbnail: string | null;
|
|
3795
3801
|
status: 'published' | 'draft' | string;
|
|
3802
|
+
global_status?: string | null;
|
|
3803
|
+
can_publish?: boolean;
|
|
3804
|
+
cannot_publish_reason?: 'missing_price' | 'product_not_published' | null;
|
|
3805
|
+
/** Default margin applied to variants that do not have an override. */
|
|
3806
|
+
margin_percent?: number;
|
|
3796
3807
|
variants: DropshipperVariant[];
|
|
3797
3808
|
}
|
|
3798
3809
|
/** Options for `GET /admin/thor/dropshipper/products` */
|
|
@@ -3812,15 +3823,33 @@ interface GetDropshipperProductsResponse {
|
|
|
3812
3823
|
offset: number;
|
|
3813
3824
|
limit: number;
|
|
3814
3825
|
}
|
|
3815
|
-
/**
|
|
3816
|
-
interface
|
|
3826
|
+
/** Body for `POST /admin/thor/dropshipper/products/:id/status` */
|
|
3827
|
+
interface UpdateDropshipperProductStatusBody {
|
|
3828
|
+
status: 'published' | 'draft';
|
|
3829
|
+
}
|
|
3830
|
+
/** Response for `POST /admin/thor/dropshipper/products/:id/status` */
|
|
3831
|
+
interface UpdateDropshipperProductStatusResponse {
|
|
3832
|
+
product_id: string;
|
|
3833
|
+
status: 'published' | 'draft';
|
|
3834
|
+
previous_status: string | null;
|
|
3835
|
+
reason?: 'missing_price' | 'product_not_published';
|
|
3836
|
+
}
|
|
3837
|
+
/** Variant margin override in a price update payload. */
|
|
3838
|
+
interface DropshipperVariantMarginOverride {
|
|
3817
3839
|
variant_id: string;
|
|
3818
|
-
|
|
3840
|
+
margin_percent: number;
|
|
3841
|
+
}
|
|
3842
|
+
/** Product margin update item */
|
|
3843
|
+
interface DropshipperProductMarginItem {
|
|
3844
|
+
product_id: string;
|
|
3845
|
+
margin_percent: number;
|
|
3846
|
+
locked: boolean;
|
|
3847
|
+
variant_overrides?: DropshipperVariantMarginOverride[];
|
|
3819
3848
|
}
|
|
3820
3849
|
/** Body for `PUT /admin/thor/dropshipper/prices` */
|
|
3821
3850
|
interface UpdateDropshipperPricesBody {
|
|
3822
3851
|
currency_code: string;
|
|
3823
|
-
|
|
3852
|
+
products: DropshipperProductMarginItem[];
|
|
3824
3853
|
}
|
|
3825
3854
|
/** Response for `PUT /admin/thor/dropshipper/prices` */
|
|
3826
3855
|
interface UpdateDropshipperPricesResponse {
|
|
@@ -3868,12 +3897,57 @@ interface GetDropshipperOrdersResponse {
|
|
|
3868
3897
|
offset: number;
|
|
3869
3898
|
limit: number;
|
|
3870
3899
|
}
|
|
3900
|
+
/** A shipping option returned for manual dropshipper orders */
|
|
3901
|
+
interface DropshipperShippingOption {
|
|
3902
|
+
id: string;
|
|
3903
|
+
name: string;
|
|
3904
|
+
amount: number;
|
|
3905
|
+
currency_code: string;
|
|
3906
|
+
price_type: string;
|
|
3907
|
+
is_default: boolean;
|
|
3908
|
+
type: {
|
|
3909
|
+
id: string;
|
|
3910
|
+
label: string;
|
|
3911
|
+
code: string | null;
|
|
3912
|
+
} | null;
|
|
3913
|
+
}
|
|
3914
|
+
/** Options for `GET /admin/thor/dropshipper/orders/shipping-options` */
|
|
3915
|
+
interface GetDropshipperShippingOptionsParams {
|
|
3916
|
+
currency_code: string;
|
|
3917
|
+
country_code?: string;
|
|
3918
|
+
}
|
|
3919
|
+
/** Response for `GET /admin/thor/dropshipper/orders/shipping-options` */
|
|
3920
|
+
interface GetDropshipperShippingOptionsResponse {
|
|
3921
|
+
shipping_options: DropshipperShippingOption[];
|
|
3922
|
+
count: number;
|
|
3923
|
+
}
|
|
3924
|
+
/** Body for `POST /admin/thor/dropshipper/orders` with checkout-only extensions */
|
|
3925
|
+
interface ExtendedCreateDropshipperOrderBody extends CreateDropshipperOrderBody {
|
|
3926
|
+
billing_address?: CreateDropshipperOrderBody['shipping_address'];
|
|
3927
|
+
promo_codes?: string[];
|
|
3928
|
+
}
|
|
3929
|
+
/** Response for `POST /admin/thor/dropshipper/orders` with totals and shipping method */
|
|
3930
|
+
interface ExtendedCreateDropshipperOrderResponse {
|
|
3931
|
+
order: {
|
|
3932
|
+
id: string;
|
|
3933
|
+
display_id: number;
|
|
3934
|
+
status: string;
|
|
3935
|
+
subtotal: number;
|
|
3936
|
+
tax_total: number;
|
|
3937
|
+
shipping_total: number;
|
|
3938
|
+
discount_total: number;
|
|
3939
|
+
total: number;
|
|
3940
|
+
profit: number;
|
|
3941
|
+
created_at: string;
|
|
3942
|
+
shipping_method?: DropshipperShippingOption | null;
|
|
3943
|
+
};
|
|
3944
|
+
}
|
|
3871
3945
|
/** A shipping address on an order */
|
|
3872
3946
|
interface DropshipperOrderShippingAddress {
|
|
3873
3947
|
full_name: string;
|
|
3874
3948
|
address_1: string;
|
|
3875
3949
|
city: string;
|
|
3876
|
-
province
|
|
3950
|
+
province?: string | null;
|
|
3877
3951
|
postal_code: string;
|
|
3878
3952
|
country_code: string;
|
|
3879
3953
|
}
|
|
@@ -3942,6 +4016,7 @@ interface CreateDropshipperOrderBody {
|
|
|
3942
4016
|
phone?: string;
|
|
3943
4017
|
};
|
|
3944
4018
|
shipping_method_id?: string;
|
|
4019
|
+
payment_method_id: string;
|
|
3945
4020
|
notes?: string;
|
|
3946
4021
|
}
|
|
3947
4022
|
/** Response for `POST /admin/thor/dropshipper/orders` */
|
|
@@ -4207,6 +4282,13 @@ interface DropshipperPendingOrders {
|
|
|
4207
4282
|
receivable_count: number;
|
|
4208
4283
|
receivable_total: number;
|
|
4209
4284
|
}
|
|
4285
|
+
/** Payment method configuration for a dropshipper account */
|
|
4286
|
+
interface DropshipperPaymentMethodConfig {
|
|
4287
|
+
payment_provider_id: string;
|
|
4288
|
+
label: string;
|
|
4289
|
+
collected_by: 'dropshipper' | 'provider';
|
|
4290
|
+
is_enabled: boolean;
|
|
4291
|
+
}
|
|
4210
4292
|
/** Full account record as returned by `GET /admin/thor/dropshipper/account` */
|
|
4211
4293
|
interface DropshipperAccount {
|
|
4212
4294
|
id: string;
|
|
@@ -4215,6 +4297,7 @@ interface DropshipperAccount {
|
|
|
4215
4297
|
payment_terms_days: number;
|
|
4216
4298
|
balance: DropshipperBalance;
|
|
4217
4299
|
pending_orders: DropshipperPendingOrders;
|
|
4300
|
+
payment_method_configs?: DropshipperPaymentMethodConfig[];
|
|
4218
4301
|
}
|
|
4219
4302
|
/** Response for `GET /admin/thor/dropshipper/account` */
|
|
4220
4303
|
interface GetDropshipperAccountResponse {
|
|
@@ -4546,4 +4629,4 @@ interface GetStorefrontDropshipperCategoriesResponse {
|
|
|
4546
4629
|
categories: DropshipperCategory[];
|
|
4547
4630
|
}
|
|
4548
4631
|
|
|
4549
|
-
export { type AccountDropdownConfig, type AccountMenuItem, type ActiveFilter, type AddOrderEditItemBody, type AddOrderEditItemResponse, type Address, type AdminApiKey, type AdminChannelCategory, type AdminChannelCustomer, type AdminDropshipperAccount, type AdminDropshipperBalance, type AdminProduct, type AdminProductVariant, type AdminSalesChannelRef, type AdminSiteConfig, type AdminSiteConfigHistoryEntry, type AdminSiteConfigHistoryEntryFull, type AdminStorefrontConfig, type AdminStorefrontSeoDefaults, type AdminUser, type AdvancedSearchProductsOptions, type AssignCategoriesToChannelsBody, type AssignCategoriesToChannelsResponse, type AssignCollectionsToChannelsBody, type AssignCollectionsToChannelsResponse, type AuditLog, type AuditLogAdapter, type AuthConfig, type AuthMethod, type AuthProvider, type AuthResponse, type AuthStorage, type AuthorConfig, type BackendCapabilities, type BatchVariantCostItem, type BatchVariantCostsBody, type BatchVariantCostsResponse, type BrandConfig, type CachedPaymentMethods, type CancelDropshipperOrderResponse, type CancelSettlementBody, type Cart, type CartCost, type CartItem, type CartLineInput, type CartLineUpdate, type CartProduct, type CategoryMapping, type ChartDataPoint, type Collection, type CollectionProductsOptions, type CommerceProvider, type CompareProduct, type ConfigHistoryEntry, type ConfirmOrderEditResponse, type ConfirmSettlementBody, type Connection, type Country, type CreateAddressData, type CreateCategoryMappingBody, type CreateCategoryMappingResponse, type CreateDropshipperCategoryBody, type CreateDropshipperCustomerBody, type CreateDropshipperCustomerResponse, type CreateDropshipperOrderBody, type CreateDropshipperOrderResponse, type CreateDropshipperPromotionBody, type CreateOrderEditBody, type CreateOrderEditResponse, type CreateOrderItem, type CreateOrderNoteBody, type CreateSettlementBody, type CreateSettlementResponse, type CreateVariantCostBody, type CreateVariantCostResponse, type Customer, type DashboardChanges, type DashboardConfig, type DashboardMetrics, type DashboardMetricsAdapter, type DashboardOrdersAdapter, type DashboardPeriodMetrics, type DashboardProductsAdapter, type DashboardStats, type DashboardTopProduct, type DeleteCategoryMappingResponse, type DeleteDropshipperCategoryResponse, type DeleteDropshipperPromotionResponse, type DeleteOrderNoteResponse, type DeleteVariantCostResponse, type DesignerConfig, type DesignerHistoryEntry, type DesignerNavItem, type DesignerThemeConfig, type DesignerThemePreset, type DiscountCode, type DropshipperAccount, type DropshipperAccountRef, type DropshipperAddressBody, type DropshipperAddressResponse, type DropshipperBalance, type DropshipperCategory, type DropshipperCustomer, type DropshipperCustomerDetail, type DropshipperCustomerOrderRef, type DropshipperCustomerStats, type DropshipperOrder, type DropshipperOrderCustomer, type DropshipperOrderDetail, type DropshipperOrderItem, type DropshipperOrderShippingAddress, type DropshipperOrderTimelineEvent, type DropshipperOrderTotals, type DropshipperPayableOrder, type
|
|
4632
|
+
export { type AccountDropdownConfig, type AccountMenuItem, type ActiveFilter, type AddOrderEditItemBody, type AddOrderEditItemResponse, type Address, type AdminApiKey, type AdminChannelCategory, type AdminChannelCustomer, type AdminDropshipperAccount, type AdminDropshipperBalance, type AdminProduct, type AdminProductVariant, type AdminSalesChannelRef, type AdminSiteConfig, type AdminSiteConfigHistoryEntry, type AdminSiteConfigHistoryEntryFull, type AdminStorefrontConfig, type AdminStorefrontSeoDefaults, type AdminUser, type AdvancedSearchProductsOptions, type AssignCategoriesToChannelsBody, type AssignCategoriesToChannelsResponse, type AssignCollectionsToChannelsBody, type AssignCollectionsToChannelsResponse, type AuditLog, type AuditLogAdapter, type AuthConfig, type AuthMethod, type AuthProvider, type AuthResponse, type AuthStorage, type AuthorConfig, type BackendCapabilities, type BatchVariantCostItem, type BatchVariantCostsBody, type BatchVariantCostsResponse, type BrandConfig, type CachedPaymentMethods, type CancelDropshipperOrderResponse, type CancelSettlementBody, type Cart, type CartCost, type CartItem, type CartLineInput, type CartLineUpdate, type CartProduct, type CategoryMapping, type ChartDataPoint, type Collection, type CollectionProductsOptions, type CommerceProvider, type CompareProduct, type ConfigHistoryEntry, type ConfirmOrderEditResponse, type ConfirmSettlementBody, type Connection, type Country, type CreateAddressData, type CreateCategoryMappingBody, type CreateCategoryMappingResponse, type CreateDropshipperCategoryBody, type CreateDropshipperCustomerBody, type CreateDropshipperCustomerResponse, type CreateDropshipperOrderBody, type CreateDropshipperOrderResponse, type CreateDropshipperPromotionBody, type CreateOrderEditBody, type CreateOrderEditResponse, type CreateOrderItem, type CreateOrderNoteBody, type CreateSettlementBody, type CreateSettlementResponse, type CreateVariantCostBody, type CreateVariantCostResponse, type Customer, type DashboardChanges, type DashboardConfig, type DashboardMetrics, type DashboardMetricsAdapter, type DashboardOrdersAdapter, type DashboardPeriodMetrics, type DashboardProductsAdapter, type DashboardStats, type DashboardTopProduct, type DeleteCategoryMappingResponse, type DeleteDropshipperCategoryResponse, type DeleteDropshipperPromotionResponse, type DeleteOrderNoteResponse, type DeleteVariantCostResponse, type DesignerConfig, type DesignerHistoryEntry, type DesignerNavItem, type DesignerThemeConfig, type DesignerThemePreset, type DiscountCode, type DropshipperAccount, type DropshipperAccountRef, type DropshipperAddressBody, type DropshipperAddressResponse, type DropshipperBalance, type DropshipperCategory, type DropshipperCustomer, type DropshipperCustomerDetail, type DropshipperCustomerOrderRef, type DropshipperCustomerStats, type DropshipperOrder, type DropshipperOrderCustomer, type DropshipperOrderDetail, type DropshipperOrderItem, type DropshipperOrderShippingAddress, type DropshipperOrderTimelineEvent, type DropshipperOrderTotals, type DropshipperPayableOrder, type DropshipperPaymentMethodConfig, type DropshipperPendingOrders, type DropshipperProduct, type DropshipperProductMarginItem, type DropshipperPromotion, type DropshipperReceivableOrder, type DropshipperShippingOption, type DropshipperVariant, type DropshipperVariantMarginOverride, type DynamicSource, type Edge, type ExtendedCreateDropshipperOrderBody, type ExtendedCreateDropshipperOrderResponse, type FilterConfig, type FilterOption, type FilterSection, type FulfillmentOption, type FulfillmentSet, type FulfillmentStatus, type GetAdminAccountBalanceResponse, type GetAdminDropshipperAccountsResponse, type GetAdminPriceListsResponse, type GetAdminSiteConfigHistoryOptions, type GetAdminSiteConfigHistoryResponse, type GetAdminSiteConfigResponse, type GetAdminStorefrontConfigResponse, type GetCategoriesCallback, type GetCategoriesOptions, type GetCategoryMappingsOptions, type GetCategoryMappingsResponse, type GetCategorySalesChannelsResponse, type GetChannelApiKeysResponse, type GetChannelCategoriesOptions, type GetChannelCategoriesResponse, type GetChannelCustomersOptions, type GetChannelCustomersResponse, type GetCollectionSalesChannelsResponse, type GetCollectionsOptions, type GetCustomersCallback, type GetCustomersOptions, type GetDashboardStatsOptions, type GetDashboardStatsResponse, type GetDropshipperAccountResponse, type GetDropshipperAddressesResponse, type GetDropshipperCategoriesOptions, type GetDropshipperCategoriesResponse, type GetDropshipperCustomerDetailResponse, type GetDropshipperCustomersOptions, type GetDropshipperCustomersResponse, type GetDropshipperOrderDetailResponse, type GetDropshipperOrdersOptions, type GetDropshipperOrdersResponse, type GetDropshipperPayableResponse, type GetDropshipperProductsOptions, type GetDropshipperProductsResponse, type GetDropshipperPromotionsOptions, type GetDropshipperPromotionsResponse, type GetDropshipperReceivableResponse, type GetDropshipperShippingOptionsParams, type GetDropshipperShippingOptionsResponse, type GetOrderNotesResponse, type GetOrdersCallback, type GetOrdersOptions, type GetProductsOptions, type GetProviderCategoriesResponse, type GetSettlementDetailResponse, type GetSettlementsOptions, type GetSettlementsResponse, type GetStorefrontDropshipperCategoriesResponse, type GetUserChannelResponse, type GetVariantCostsOptions, type GetVariantCostsResponse, type HeaderLinkItem, type HeaderNavigationConfig, type IconConfig, type Image, type InventoryLevel, type LinkCustomerToChannelResponse, type LoginCredentials, type ModulesConfig, type Money, type NavigationCalloutItem, type NavigationItem, type NavigationLinkItem, type OnboardDropshipperBody, type OnboardDropshipperResponse, type Order, type OrderItem, type OrderNote, type OrderStatus, type OrdersMetrics, PROVIDER_METADATA, type PaginationOptions, type PasswordResetConfirm, type PasswordResetRequest, type PaymentMethod, type PaymentMethodFeatures, type PaymentMethodType, type PaymentMethodsOptions, type PaymentStatus, type PriceRange, type Product, type ProductCategory, type ProductOption, type ProductPreview, type ProductVariant, type ProductsMetrics, type PromotionRule, type ProviderCategory, type ProviderConfig, type ProviderTypeString, type Region, type RegisterData, type RestoreSiteConfigResponse, type Review, type SEO, type SalesMetrics, type SearchBarConfig, type SearchResultMeta, type SelectedOption, type SetPaymentCollectorBody, type SetPaymentCollectorResponse, type SettlementRecord, type ShippingMethod, type SiteConfig, type SiteConfigLabels, type SiteConfigMetadata, type SocialConfig, type SortOption, type SortOptions, type StockLocation, type StockStatus, type StockValidation, type StorefrontConfig, StorefrontConfigError, type StorefrontContext, type StorefrontPlatformType, type StorefrontSeoDefaults, SupportedProviderType, type UnassignCategoriesFromChannelsBody, type UnassignCategoriesFromChannelsResponse, type UnassignCollectionsFromChannelsBody, type UnassignCollectionsFromChannelsResponse, type UpdateCustomerData, type UpdateDropshipperCategoryBody, type UpdateDropshipperPricesBody, type UpdateDropshipperPricesResponse, type UpdateDropshipperProductStatusBody, type UpdateDropshipperProductStatusResponse, type UpdateDropshipperPromotionBody, type UpdateSettlementStatusResponse, type UpdateSiteConfigBody, type UpdateSiteConfigResponse, type UpdateStorefrontConfigBody, type UpdateStorefrontConfigResponse, type VariantCost, getProviderMetadata, isSupportedProviderType };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/provider.ts","../src/storefront.ts"],"sourcesContent":["/**\n * @thorprovider/types v1.0\n * Shared TypeScript types for Thor Commerce ecosystem\n * \n * Pure type definitions with zero runtime dependencies.\n * Foundation for type-safe commerce operations following SOLID principles.\n */\n\n// ============================================\n// Common Types\n// ============================================\nexport type {\n Money,\n Image,\n SEO,\n Connection,\n Edge,\n PaginationOptions,\n SortOptions,\n Country,\n} from './common';\n\nexport type {\n AuthorConfig,\n BrandConfig,\n ModulesConfig,\n NavigationItem,\n SiteConfig,\n SocialConfig,\n} from './site-config';\n\nexport type { SiteConfigLabels } from './site-config-labels';\n\n// ============================================\n// Product Types\n// ============================================\nexport type {\n Product,\n ProductOption,\n ProductVariant,\n SelectedOption,\n PriceRange,\n GetProductsOptions,\n ActiveFilter,\n SortOption,\n FilterSection,\n FilterOption,\n ProductPreview,\n Review,\n CompareProduct,\n AdminProductVariant,\n AdminProduct,\n AdvancedSearchProductsOptions,\n SearchResultMeta,\n FilterConfig,\n} from './product';\n\n// ============================================\n// Cart Types\n// ============================================\nexport type {\n Cart,\n CartItem,\n CartProduct,\n CartCost,\n CartLineInput,\n CartLineUpdate,\n ShippingMethod,\n DiscountCode,\n} from './cart';\n\n// ============================================\n// Inventory & Fulfillment Types\n// ============================================\nexport type {\n StockLocation,\n InventoryLevel,\n FulfillmentSet,\n FulfillmentOption,\n StockStatus,\n StockValidation,\n} from './stock-location';\n\n// ============================================\n// Collection Types\n// ============================================\nexport type {\n Collection,\n CollectionProductsOptions,\n GetCollectionsOptions,\n} from './collection';\n\n// ============================================\n// Category Types\n// ============================================\nexport type {\n ProductCategory,\n GetCategoriesOptions,\n GetCategoriesCallback,\n} from './category';\n\n// ============================================\n// Customer Types\n// ============================================\nexport type {\n Customer,\n Address,\n GetCustomersOptions,\n GetCustomersCallback,\n} from './customer';\n\n// ============================================\n// Region Types\n// ============================================\nexport type {\n Region,\n} from './region';\n\n// ============================================\n// Order Types\n// ============================================\nexport type {\n Order,\n OrderItem,\n OrderStatus,\n PaymentStatus,\n FulfillmentStatus,\n GetOrdersOptions,\n GetOrdersCallback,\n} from './order';\n\n// ============================================\n// Provider Types (L1 - Source of Truth)\n// ============================================\nexport { SupportedProviderType, type ProviderTypeString } from './provider';\n\nexport {\n isSupportedProviderType,\n getProviderMetadata,\n PROVIDER_METADATA,\n} from './provider';\n\n// ============================================\n// Storefront Types\n// ============================================\nexport type {\n StorefrontContext,\n StorefrontPlatformType,\n} from './storefront';\n\nexport {\n StorefrontConfigError,\n} from './storefront';\n\n// ============================================\n// Storefront Configuration Types\n// ============================================\nexport type {\n StorefrontConfig,\n StorefrontSeoDefaults,\n} from './storefront-config';\n\n// ============================================\n// Designer Configuration Types\n// ============================================\nexport type {\n DesignerConfig,\n DesignerThemeConfig,\n DesignerThemePreset,\n DesignerNavItem,\n DesignerHistoryEntry,\n} from './designer-config';\n\n// ============================================\n// Auth Types\n// ============================================\nexport type {\n AuthProvider,\n AuthConfig,\n AuthMethod,\n AuthStorage,\n LoginCredentials,\n RegisterData,\n AuthResponse,\n UpdateCustomerData,\n CreateAddressData,\n PasswordResetRequest,\n PasswordResetConfirm,\n} from './auth';\n\n// ============================================\n// Payment Types\n// ============================================\nexport type {\n PaymentMethod,\n PaymentMethodType,\n PaymentMethodFeatures,\n PaymentMethodsOptions,\n CachedPaymentMethods,\n} from './payment';\n\n// ============================================\n// Commerce Provider Interface\n// ============================================\nexport type {\n CommerceProvider,\n BackendCapabilities,\n ProviderConfig,\n} from './commerce-provider';\n\n// ============================================\n// Admin Types\n// ============================================\nexport type {\n AdminUser,\n AuditLog,\n DashboardConfig,\n DashboardMetrics,\n SalesMetrics,\n OrdersMetrics,\n ProductsMetrics,\n ChartDataPoint,\n DashboardMetricsAdapter,\n DashboardOrdersAdapter,\n DashboardProductsAdapter,\n AuditLogAdapter,\n SiteConfigMetadata,\n ConfigHistoryEntry,\n // Multi-tenant admin types\n AdminChannelCustomer,\n GetChannelCustomersResponse,\n GetChannelCustomersOptions,\n AdminApiKey,\n GetChannelApiKeysResponse,\n AdminChannelCategory,\n GetChannelCategoriesResponse,\n GetChannelCategoriesOptions,\n AdminSalesChannelRef,\n GetCategorySalesChannelsResponse,\n AssignCategoriesToChannelsBody,\n AssignCategoriesToChannelsResponse,\n UnassignCategoriesFromChannelsBody,\n UnassignCategoriesFromChannelsResponse,\n GetCollectionSalesChannelsResponse,\n AssignCollectionsToChannelsBody,\n AssignCollectionsToChannelsResponse,\n UnassignCollectionsFromChannelsBody,\n UnassignCollectionsFromChannelsResponse,\n AdminStorefrontSeoDefaults,\n AdminStorefrontConfig,\n GetAdminStorefrontConfigResponse,\n UpdateStorefrontConfigBody,\n UpdateStorefrontConfigResponse,\n AdminSiteConfigHistoryEntry,\n AdminSiteConfig,\n GetAdminSiteConfigResponse,\n UpdateSiteConfigBody,\n UpdateSiteConfigResponse,\n AdminSiteConfigHistoryEntryFull,\n GetAdminSiteConfigHistoryResponse,\n GetAdminSiteConfigHistoryOptions,\n RestoreSiteConfigResponse,\n LinkCustomerToChannelResponse,\n // Dropshipping types\n DropshipperAccountRef,\n OnboardDropshipperBody,\n OnboardDropshipperResponse,\n VariantCost,\n GetVariantCostsOptions,\n GetVariantCostsResponse,\n CreateVariantCostBody,\n CreateVariantCostResponse,\n BatchVariantCostItem,\n BatchVariantCostsBody,\n BatchVariantCostsResponse,\n DeleteVariantCostResponse,\n DropshipperVariant,\n DropshipperProduct,\n GetDropshipperProductsOptions,\n GetDropshipperProductsResponse,\n DropshipperPriceItem,\n UpdateDropshipperPricesBody,\n UpdateDropshipperPricesResponse,\n DropshipperOrderCustomer,\n DropshipperOrder,\n GetDropshipperOrdersOptions,\n GetDropshipperOrdersResponse,\n DropshipperOrderShippingAddress,\n DropshipperOrderItem,\n DropshipperOrderTotals,\n DropshipperOrderTimelineEvent,\n DropshipperOrderDetail,\n GetDropshipperOrderDetailResponse,\n CreateOrderItem,\n CreateDropshipperOrderBody,\n CreateDropshipperOrderResponse,\n SetPaymentCollectorBody,\n SetPaymentCollectorResponse,\n DropshipperCategory,\n GetDropshipperCategoriesOptions,\n GetDropshipperCategoriesResponse,\n CreateDropshipperCategoryBody,\n UpdateDropshipperCategoryBody,\n DeleteDropshipperCategoryResponse,\n ProviderCategory,\n GetProviderCategoriesResponse,\n GetCategoryMappingsOptions,\n CategoryMapping,\n GetCategoryMappingsResponse,\n CreateCategoryMappingBody,\n CreateCategoryMappingResponse,\n DeleteCategoryMappingResponse,\n DropshipperCustomer,\n DropshipperCustomerStats,\n DropshipperCustomerOrderRef,\n DropshipperCustomerDetail,\n GetDropshipperCustomersOptions,\n GetDropshipperCustomersResponse,\n GetDropshipperCustomerDetailResponse,\n CreateDropshipperCustomerBody,\n CreateDropshipperCustomerResponse,\n DropshipperBalance,\n DropshipperPendingOrders,\n DropshipperAccount,\n GetDropshipperAccountResponse,\n DropshipperPayableOrder,\n GetDropshipperPayableResponse,\n DropshipperReceivableOrder,\n GetDropshipperReceivableResponse,\n SettlementRecord,\n GetSettlementsOptions,\n GetSettlementsResponse,\n GetSettlementDetailResponse,\n CreateSettlementBody,\n CreateSettlementResponse,\n ConfirmSettlementBody,\n CancelSettlementBody,\n UpdateSettlementStatusResponse,\n AdminDropshipperAccount,\n AdminDropshipperBalance,\n GetAdminDropshipperAccountsResponse,\n GetAdminAccountBalanceResponse,\n GetAdminPriceListsResponse,\n GetUserChannelResponse,\n DropshipperPromotion,\n GetDropshipperPromotionsOptions,\n GetDropshipperPromotionsResponse,\n PromotionRule,\n CreateDropshipperPromotionBody,\n UpdateDropshipperPromotionBody,\n DeleteDropshipperPromotionResponse,\n GetDashboardStatsOptions,\n DashboardPeriodMetrics,\n DashboardChanges,\n DashboardTopProduct,\n DashboardStats,\n GetDashboardStatsResponse,\n GetStorefrontDropshipperCategoriesResponse,\n OrderNote,\n CreateOrderNoteBody,\n GetOrderNotesResponse,\n DeleteOrderNoteResponse,\n // Order cancel and edits\n CancelDropshipperOrderResponse,\n CreateOrderEditBody,\n CreateOrderEditResponse,\n AddOrderEditItemBody,\n AddOrderEditItemResponse,\n ConfirmOrderEditResponse,\n // Dropshipper addresses (channel-scoped)\n DropshipperAddressBody,\n DropshipperAddressResponse,\n GetDropshipperAddressesResponse,\n } from './admin';\n\n// ============================================\n// Header Configuration Types\n// ============================================\nexport type {\n IconConfig,\n NavigationCalloutItem,\n NavigationLinkItem,\n DynamicSource,\n HeaderLinkItem,\n AccountMenuItem,\n AccountDropdownConfig,\n SearchBarConfig,\n HeaderNavigationConfig,\n} from './header-config';\n","/**\n * @thorprovider/types — Supported Providers\n *\n * Centralized list of all supported commerce providers.\n * This is the single source of truth for provider types across the monorepo.\n *\n * @remarks\n * - L1 (Foundation): Defines the contract\n * - L2 (@thorprovider/adapters) imports from here to build the factory\n * - L5 (Starters) uses the factory which is bound to this enum\n *\n * When adding a new provider (e.g., Stel Order):\n * 1. Add to SupportedProviderType enum below\n * 2. Update @thorprovider/adapters factory/index.ts with discriminated union\n * 3. Create packages/adapters/src/providers/shopify/\n * 4. Implement CommerceProvider interface\n * 5. Update StorefrontPlatformType in storefront.ts\n */\n\n/**\n * All supported commerce platform providers.\n * `mock` is the backend-optional runtime provider used for layout/design mode.\n * `medusa` is fully implemented for real backend usage; others are placeholders for future expansion.\n *\n * @remarks Implementation status:\n * - ✅ mock: Fixture-backed provider for backend-optional storefronts\n * - ✅ medusa: Fully implemented\n * - 🟡 stelorder: In progress (ERP adapter v1)\n * - 🟡 shopify: Planned (Phase 2)\n * - 🟡 bigcommerce: Planned (Phase 2)\n * - 🟡 woocommerce: Planned (Phase 3)\n * - 🟡 spree: Planned (Phase 3)\n * - 🟡 magento: Planned (Phase 3)\n */\nexport enum SupportedProviderType {\n Mock = 'mock',\n Medusa = 'medusa',\n StelOrder = 'stelorder',\n Shopify = 'shopify',\n BigCommerce = 'bigcommerce',\n WooCommerce = 'woocommerce',\n Spree = 'spree',\n Magento = 'magento',\n}\n\n/**\n * Union type of all supported provider string values.\n * Use this for type annotations when a provider type is expected.\n *\n * @example\n * ```typescript\n * function getProviderName(type: ProviderTypeString): string {\n * // type is 'medusa'\n * }\n * ```\n */\nexport type ProviderTypeString = 'mock' | 'medusa' | 'stelorder' | 'shopify' | 'bigcommerce' | 'woocommerce' | 'spree' | 'magento';\n\n/**\n * Metadata about each provider.\n * Useful for UI, error messages, validation, and documentation.\n *\n * @internal\n */\nexport const PROVIDER_METADATA: Record<\n ProviderTypeString,\n {\n name: string;\n description: string;\n requiresStorefront: boolean;\n requiredEnvVars: string[];\n maxRetries: number;\n }\n> = {\n mock: {\n name: 'Mock',\n description: 'Fixture-backed runtime provider for layout/design mode without a real backend',\n requiresStorefront: false,\n requiredEnvVars: [],\n maxRetries: 0,\n },\n medusa: {\n name: 'Medusa JS',\n description: 'Medusa v2 commerce engine',\n requiresStorefront: true,\n requiredEnvVars: [\n 'NEXT_PUBLIC_COMMERCE_API_URL',\n 'NEXT_PUBLIC_COMMERCE_API_KEY',\n 'NEXT_PUBLIC_SALES_CHANNEL_ID',\n ],\n maxRetries: 3,\n },\n stelorder: {\n name: 'Stel Order',\n description: 'Stel Order ERP and sales document API',\n requiresStorefront: false,\n requiredEnvVars: [\n 'NEXT_PUBLIC_COMMERCE_API_URL',\n 'NEXT_PUBLIC_COMMERCE_API_KEY',\n ],\n maxRetries: 2,\n },\n shopify: {\n name: 'Shopify',\n description: 'Shopify Storefront API (GraphQL)',\n requiresStorefront: false,\n requiredEnvVars: [\n 'NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN',\n 'NEXT_PUBLIC_SHOPIFY_STOREFRONT_TOKEN',\n ],\n maxRetries: 3,\n },\n bigcommerce: {\n name: 'BigCommerce',\n description: 'BigCommerce REST Storefront API',\n requiresStorefront: false,\n requiredEnvVars: [\n 'BIGCOMMERCE_STORE_HASH',\n 'BIGCOMMERCE_STOREFRONT_API_TOKEN',\n 'BIGCOMMERCE_CHANNEL_ID',\n ],\n maxRetries: 3,\n },\n woocommerce: {\n name: 'WooCommerce',\n description: 'WooCommerce Store API + REST API v3',\n requiresStorefront: false,\n requiredEnvVars: [\n 'WOOCOMMERCE_URL',\n 'WOOCOMMERCE_CONSUMER_KEY',\n 'WOOCOMMERCE_CONSUMER_SECRET',\n ],\n maxRetries: 3,\n },\n spree: {\n name: 'Spree Commerce',\n description: 'Spree API v2 Storefront (JSON:API)',\n requiresStorefront: false,\n requiredEnvVars: [\n 'SPREE_API_URL',\n ],\n maxRetries: 3,\n },\n magento: {\n name: 'Adobe Commerce (Magento)',\n description: 'Adobe Commerce GraphQL + REST API',\n requiresStorefront: true,\n requiredEnvVars: [\n 'MAGENTO_URL',\n 'MAGENTO_STORE_CODE',\n ],\n maxRetries: 3,\n },\n};\n\n/**\n * Check if a string is a valid provider type.\n *\n * @example\n * ```typescript\n * if (isSupportedProviderType(process.env.COMMERCE_PROVIDER)) {\n * // type is narrowed to ProviderTypeString\n * }\n * ```\n */\nexport function isSupportedProviderType(\n value: unknown\n): value is ProviderTypeString {\n return (\n typeof value === 'string' &&\n Object.values(SupportedProviderType).includes(value as SupportedProviderType)\n );\n}\n\n/**\n * Get metadata for a provider type.\n * Useful for validation, error messages, and logging.\n *\n * @example\n * ```typescript\n * const meta = getProviderMetadata('medusa');\n * console.log(`Using ${meta.name} with max ${meta.maxRetries} retries`);\n * ```\n */\nexport function getProviderMetadata(\n type: ProviderTypeString\n): (typeof PROVIDER_METADATA)[ProviderTypeString] {\n if (!isSupportedProviderType(type)) {\n throw new Error(\n `Unsupported provider: ${type}. Supported: ${Object.values(\n SupportedProviderType\n ).join(', ')}`\n );\n }\n return PROVIDER_METADATA[type];\n}\n","/**\n * @thorprovider/types — Storefront Context\n *\n * Platform-agnostic representation of a \"sales channel\" or equivalent.\n * Abstracts differences between Medusa sales_channel, Shopify publications,\n * BigCommerce channels, WooCommerce sites, Spree stores, and Magento store views.\n *\n * @remarks\n * - Required for all multi-tenant deployments\n * - Returned by `CommerceProvider.getStorefrontContext()`\n * - MUST be validated on startup; errors should NOT be silently ignored\n */\n\n/**\n * Supported commerce platform types for storefront identification.\n *\n * @remarks\n * Keep this type in sync with SupportedProviderType from provider.ts.\n * When adding a new provider, update both packages/types/src/provider.ts\n * and this type.\n *\n * Currently supported:\n * - ✅ 'mock': Backend-optional layout/design mode using fixture data\n * - ✅ 'medusa': Fully implemented\n * - 🟡 'stelorder': ERP adapter v1\n *\n * Planned (not yet implemented):\n * - 🟡 'shopify': Phase 2\n * - 🟡 'bigcommerce': Phase 2\n * - 🟡 'woocommerce': Phase 3\n * - 🟡 'spree': Phase 3\n * - 🟡 'magento': Phase 3\n */\nexport type StorefrontPlatformType = 'mock' | 'medusa' | 'stelorder' | 'shopify' | 'bigcommerce' | 'woocommerce' | 'spree' | 'magento';\n\n/**\n * StorefrontContext\n *\n * Platform-agnostic representation of a \"sales channel\" or equivalent.\n *\n * @example\n * ```typescript\n * const ctx: StorefrontContext = {\n * id: 'sc_01J...',\n * name: 'B2C Storefront',\n * platformType: 'medusa',\n * requiresProductScoping: true,\n * currencyCode: 'USD',\n * };\n * ```\n */\nexport interface StorefrontContext {\n /**\n * Unique identifier for this storefront across the system.\n * Examples: \"sc_123\" (Medusa), \"gid://shopify/Channel/789\" (Shopify), \"1\" (WooCommerce)\n */\n id: string;\n\n /**\n * Human-readable name for logging and debugging.\n */\n name: string;\n\n /**\n * Platform this storefront belongs to.\n */\n platformType: StorefrontPlatformType;\n\n /**\n * Whether products must be explicitly linked/published to this storefront.\n *\n * @remarks\n * - Medusa: true (products must be linked to sales channel)\n * - Shopify: false (products visible by default unless unlisted)\n * - Stel Order: false (single-company ERP model, no native channel scoping)\n * - WooCommerce: false (no scoping concept)\n * - BigCommerce: false (products visible by default unless delisted)\n * - Spree: true (products must be assigned per store)\n * - Magento: true (products must be assigned per website)\n */\n requiresProductScoping: boolean;\n\n /**\n * Primary currency code for this storefront.\n * Examples: \"USD\", \"EUR\", \"GBP\"\n */\n currencyCode: string;\n\n /**\n * Optional region or locale code.\n * Examples: \"US\", \"EU\", \"en-US\", \"es-ES\"\n */\n locale?: string;\n\n /**\n * Optional: Store/Channel metadata from platform.\n * @internal\n */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Storefront validation error.\n * Thrown when storefront configuration is invalid or missing.\n *\n * @example\n * ```typescript\n * throw new StorefrontConfigError(\n * 'Medusa requires NEXT_PUBLIC_SALES_CHANNEL_ID',\n * 'medusa',\n * 'NEXT_PUBLIC_SALES_CHANNEL_ID',\n * );\n * ```\n */\nexport class StorefrontConfigError extends Error {\n public readonly platformType: string;\n public readonly requiredEnvVar?: string;\n\n constructor(\n message: string,\n platformType: string,\n requiredEnvVar?: string,\n ) {\n super(message);\n this.name = 'StorefrontConfigError';\n this.platformType = platformType;\n this.requiredEnvVar = requiredEnvVar;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACkCO,IAAK,wBAAL,kBAAKA,2BAAL;AACL,EAAAA,uBAAA,UAAO;AACP,EAAAA,uBAAA,YAAS;AACT,EAAAA,uBAAA,eAAY;AACZ,EAAAA,uBAAA,aAAU;AACV,EAAAA,uBAAA,iBAAc;AACd,EAAAA,uBAAA,iBAAc;AACd,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,aAAU;AARA,SAAAA;AAAA,GAAA;AA8BL,IAAM,oBAST;AAAA,EACF,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB,CAAC;AAAA,IAClB,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AACF;AAYO,SAAS,wBACd,OAC6B;AAC7B,SACE,OAAO,UAAU,YACjB,OAAO,OAAO,qBAAqB,EAAE,SAAS,KAA8B;AAEhF;AAYO,SAAS,oBACd,MACgD;AAChD,MAAI,CAAC,wBAAwB,IAAI,GAAG;AAClC,UAAM,IAAI;AAAA,MACR,yBAAyB,IAAI,gBAAgB,OAAO;AAAA,QAClD;AAAA,MACF,EAAE,KAAK,IAAI,CAAC;AAAA,IACd;AAAA,EACF;AACA,SAAO,kBAAkB,IAAI;AAC/B;;;ACjFO,IAAM,wBAAN,cAAoC,MAAM;AAAA,EAC/B;AAAA,EACA;AAAA,EAEhB,YACE,SACA,cACA,gBACA;AACA,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,eAAe;AACpB,SAAK,iBAAiB;AAAA,EACxB;AACF;","names":["SupportedProviderType"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/provider.ts","../src/storefront.ts"],"sourcesContent":["/**\n * @thorprovider/types v1.0\n * Shared TypeScript types for Thor Commerce ecosystem\n * \n * Pure type definitions with zero runtime dependencies.\n * Foundation for type-safe commerce operations following SOLID principles.\n */\n\n// ============================================\n// Common Types\n// ============================================\nexport type {\n Money,\n Image,\n SEO,\n Connection,\n Edge,\n PaginationOptions,\n SortOptions,\n Country,\n} from './common';\n\nexport type {\n AuthorConfig,\n BrandConfig,\n ModulesConfig,\n NavigationItem,\n SiteConfig,\n SocialConfig,\n} from './site-config';\n\nexport type { SiteConfigLabels } from './site-config-labels';\n\n// ============================================\n// Product Types\n// ============================================\nexport type {\n Product,\n ProductOption,\n ProductVariant,\n SelectedOption,\n PriceRange,\n GetProductsOptions,\n ActiveFilter,\n SortOption,\n FilterSection,\n FilterOption,\n ProductPreview,\n Review,\n CompareProduct,\n AdminProductVariant,\n AdminProduct,\n AdvancedSearchProductsOptions,\n SearchResultMeta,\n FilterConfig,\n} from './product';\n\n// ============================================\n// Cart Types\n// ============================================\nexport type {\n Cart,\n CartItem,\n CartProduct,\n CartCost,\n CartLineInput,\n CartLineUpdate,\n ShippingMethod,\n DiscountCode,\n} from './cart';\n\n// ============================================\n// Inventory & Fulfillment Types\n// ============================================\nexport type {\n StockLocation,\n InventoryLevel,\n FulfillmentSet,\n FulfillmentOption,\n StockStatus,\n StockValidation,\n} from './stock-location';\n\n// ============================================\n// Collection Types\n// ============================================\nexport type {\n Collection,\n CollectionProductsOptions,\n GetCollectionsOptions,\n} from './collection';\n\n// ============================================\n// Category Types\n// ============================================\nexport type {\n ProductCategory,\n GetCategoriesOptions,\n GetCategoriesCallback,\n} from './category';\n\n// ============================================\n// Customer Types\n// ============================================\nexport type {\n Customer,\n Address,\n GetCustomersOptions,\n GetCustomersCallback,\n} from './customer';\n\n// ============================================\n// Region Types\n// ============================================\nexport type {\n Region,\n} from './region';\n\n// ============================================\n// Order Types\n// ============================================\nexport type {\n Order,\n OrderItem,\n OrderStatus,\n PaymentStatus,\n FulfillmentStatus,\n GetOrdersOptions,\n GetOrdersCallback,\n} from './order';\n\n// ============================================\n// Provider Types (L1 - Source of Truth)\n// ============================================\nexport { SupportedProviderType, type ProviderTypeString } from './provider';\n\nexport {\n isSupportedProviderType,\n getProviderMetadata,\n PROVIDER_METADATA,\n} from './provider';\n\n// ============================================\n// Storefront Types\n// ============================================\nexport type {\n StorefrontContext,\n StorefrontPlatformType,\n} from './storefront';\n\nexport {\n StorefrontConfigError,\n} from './storefront';\n\n// ============================================\n// Storefront Configuration Types\n// ============================================\nexport type {\n StorefrontConfig,\n StorefrontSeoDefaults,\n} from './storefront-config';\n\n// ============================================\n// Designer Configuration Types\n// ============================================\nexport type {\n DesignerConfig,\n DesignerThemeConfig,\n DesignerThemePreset,\n DesignerNavItem,\n DesignerHistoryEntry,\n} from './designer-config';\n\n// ============================================\n// Auth Types\n// ============================================\nexport type {\n AuthProvider,\n AuthConfig,\n AuthMethod,\n AuthStorage,\n LoginCredentials,\n RegisterData,\n AuthResponse,\n UpdateCustomerData,\n CreateAddressData,\n PasswordResetRequest,\n PasswordResetConfirm,\n} from './auth';\n\n// ============================================\n// Payment Types\n// ============================================\nexport type {\n PaymentMethod,\n PaymentMethodType,\n PaymentMethodFeatures,\n PaymentMethodsOptions,\n CachedPaymentMethods,\n} from './payment';\n\n// ============================================\n// Commerce Provider Interface\n// ============================================\nexport type {\n CommerceProvider,\n BackendCapabilities,\n ProviderConfig,\n} from './commerce-provider';\n\n// ============================================\n// Admin Types\n// ============================================\nexport type {\n AdminUser,\n AuditLog,\n DashboardConfig,\n DashboardMetrics,\n SalesMetrics,\n OrdersMetrics,\n ProductsMetrics,\n ChartDataPoint,\n DashboardMetricsAdapter,\n DashboardOrdersAdapter,\n DashboardProductsAdapter,\n AuditLogAdapter,\n SiteConfigMetadata,\n ConfigHistoryEntry,\n // Multi-tenant admin types\n AdminChannelCustomer,\n GetChannelCustomersResponse,\n GetChannelCustomersOptions,\n AdminApiKey,\n GetChannelApiKeysResponse,\n AdminChannelCategory,\n GetChannelCategoriesResponse,\n GetChannelCategoriesOptions,\n AdminSalesChannelRef,\n GetCategorySalesChannelsResponse,\n AssignCategoriesToChannelsBody,\n AssignCategoriesToChannelsResponse,\n UnassignCategoriesFromChannelsBody,\n UnassignCategoriesFromChannelsResponse,\n GetCollectionSalesChannelsResponse,\n AssignCollectionsToChannelsBody,\n AssignCollectionsToChannelsResponse,\n UnassignCollectionsFromChannelsBody,\n UnassignCollectionsFromChannelsResponse,\n AdminStorefrontSeoDefaults,\n AdminStorefrontConfig,\n GetAdminStorefrontConfigResponse,\n UpdateStorefrontConfigBody,\n UpdateStorefrontConfigResponse,\n AdminSiteConfigHistoryEntry,\n AdminSiteConfig,\n GetAdminSiteConfigResponse,\n UpdateSiteConfigBody,\n UpdateSiteConfigResponse,\n AdminSiteConfigHistoryEntryFull,\n GetAdminSiteConfigHistoryResponse,\n GetAdminSiteConfigHistoryOptions,\n RestoreSiteConfigResponse,\n LinkCustomerToChannelResponse,\n // Dropshipping types\n DropshipperAccountRef,\n OnboardDropshipperBody,\n OnboardDropshipperResponse,\n VariantCost,\n GetVariantCostsOptions,\n GetVariantCostsResponse,\n CreateVariantCostBody,\n CreateVariantCostResponse,\n BatchVariantCostItem,\n BatchVariantCostsBody,\n BatchVariantCostsResponse,\n DeleteVariantCostResponse,\n DropshipperVariant,\n DropshipperProduct,\n GetDropshipperProductsOptions,\n GetDropshipperProductsResponse,\n UpdateDropshipperProductStatusBody,\n UpdateDropshipperProductStatusResponse,\n DropshipperVariantMarginOverride,\n DropshipperProductMarginItem,\n UpdateDropshipperPricesBody,\n UpdateDropshipperPricesResponse,\n DropshipperOrderCustomer,\n DropshipperOrder,\n GetDropshipperOrdersOptions,\n GetDropshipperOrdersResponse,\n DropshipperShippingOption,\n GetDropshipperShippingOptionsParams,\n GetDropshipperShippingOptionsResponse,\n DropshipperOrderShippingAddress,\n DropshipperOrderItem,\n DropshipperOrderTotals,\n DropshipperOrderTimelineEvent,\n DropshipperOrderDetail,\n GetDropshipperOrderDetailResponse,\n CreateOrderItem,\n CreateDropshipperOrderBody,\n CreateDropshipperOrderResponse,\n ExtendedCreateDropshipperOrderBody,\n ExtendedCreateDropshipperOrderResponse,\n SetPaymentCollectorBody,\n SetPaymentCollectorResponse,\n DropshipperCategory,\n GetDropshipperCategoriesOptions,\n GetDropshipperCategoriesResponse,\n CreateDropshipperCategoryBody,\n UpdateDropshipperCategoryBody,\n DeleteDropshipperCategoryResponse,\n ProviderCategory,\n GetProviderCategoriesResponse,\n GetCategoryMappingsOptions,\n CategoryMapping,\n GetCategoryMappingsResponse,\n CreateCategoryMappingBody,\n CreateCategoryMappingResponse,\n DeleteCategoryMappingResponse,\n DropshipperCustomer,\n DropshipperCustomerStats,\n DropshipperCustomerOrderRef,\n DropshipperCustomerDetail,\n GetDropshipperCustomersOptions,\n GetDropshipperCustomersResponse,\n GetDropshipperCustomerDetailResponse,\n CreateDropshipperCustomerBody,\n CreateDropshipperCustomerResponse,\n DropshipperBalance,\n DropshipperPendingOrders,\n DropshipperPaymentMethodConfig,\n DropshipperAccount,\n GetDropshipperAccountResponse,\n DropshipperPayableOrder,\n GetDropshipperPayableResponse,\n DropshipperReceivableOrder,\n GetDropshipperReceivableResponse,\n SettlementRecord,\n GetSettlementsOptions,\n GetSettlementsResponse,\n GetSettlementDetailResponse,\n CreateSettlementBody,\n CreateSettlementResponse,\n ConfirmSettlementBody,\n CancelSettlementBody,\n UpdateSettlementStatusResponse,\n AdminDropshipperAccount,\n AdminDropshipperBalance,\n GetAdminDropshipperAccountsResponse,\n GetAdminAccountBalanceResponse,\n GetAdminPriceListsResponse,\n GetUserChannelResponse,\n DropshipperPromotion,\n GetDropshipperPromotionsOptions,\n GetDropshipperPromotionsResponse,\n PromotionRule,\n CreateDropshipperPromotionBody,\n UpdateDropshipperPromotionBody,\n DeleteDropshipperPromotionResponse,\n GetDashboardStatsOptions,\n DashboardPeriodMetrics,\n DashboardChanges,\n DashboardTopProduct,\n DashboardStats,\n GetDashboardStatsResponse,\n GetStorefrontDropshipperCategoriesResponse,\n OrderNote,\n CreateOrderNoteBody,\n GetOrderNotesResponse,\n DeleteOrderNoteResponse,\n // Order cancel and edits\n CancelDropshipperOrderResponse,\n CreateOrderEditBody,\n CreateOrderEditResponse,\n AddOrderEditItemBody,\n AddOrderEditItemResponse,\n ConfirmOrderEditResponse,\n // Dropshipper addresses (channel-scoped)\n DropshipperAddressBody,\n DropshipperAddressResponse,\n GetDropshipperAddressesResponse,\n } from './admin';\n\n// ============================================\n// Header Configuration Types\n// ============================================\nexport type {\n IconConfig,\n NavigationCalloutItem,\n NavigationLinkItem,\n DynamicSource,\n HeaderLinkItem,\n AccountMenuItem,\n AccountDropdownConfig,\n SearchBarConfig,\n HeaderNavigationConfig,\n} from './header-config';\n","/**\n * @thorprovider/types — Supported Providers\n *\n * Centralized list of all supported commerce providers.\n * This is the single source of truth for provider types across the monorepo.\n *\n * @remarks\n * - L1 (Foundation): Defines the contract\n * - L2 (@thorprovider/adapters) imports from here to build the factory\n * - L5 (Starters) uses the factory which is bound to this enum\n *\n * When adding a new provider (e.g., Stel Order):\n * 1. Add to SupportedProviderType enum below\n * 2. Update @thorprovider/adapters factory/index.ts with discriminated union\n * 3. Create packages/adapters/src/providers/shopify/\n * 4. Implement CommerceProvider interface\n * 5. Update StorefrontPlatformType in storefront.ts\n */\n\n/**\n * All supported commerce platform providers.\n * `mock` is the backend-optional runtime provider used for layout/design mode.\n * `medusa` is fully implemented for real backend usage; others are placeholders for future expansion.\n *\n * @remarks Implementation status:\n * - ✅ mock: Fixture-backed provider for backend-optional storefronts\n * - ✅ medusa: Fully implemented\n * - 🟡 stelorder: In progress (ERP adapter v1)\n * - 🟡 shopify: Planned (Phase 2)\n * - 🟡 bigcommerce: Planned (Phase 2)\n * - 🟡 woocommerce: Planned (Phase 3)\n * - 🟡 spree: Planned (Phase 3)\n * - 🟡 magento: Planned (Phase 3)\n */\nexport enum SupportedProviderType {\n Mock = 'mock',\n Medusa = 'medusa',\n StelOrder = 'stelorder',\n Shopify = 'shopify',\n BigCommerce = 'bigcommerce',\n WooCommerce = 'woocommerce',\n Spree = 'spree',\n Magento = 'magento',\n}\n\n/**\n * Union type of all supported provider string values.\n * Use this for type annotations when a provider type is expected.\n *\n * @example\n * ```typescript\n * function getProviderName(type: ProviderTypeString): string {\n * // type is 'medusa'\n * }\n * ```\n */\nexport type ProviderTypeString = 'mock' | 'medusa' | 'stelorder' | 'shopify' | 'bigcommerce' | 'woocommerce' | 'spree' | 'magento';\n\n/**\n * Metadata about each provider.\n * Useful for UI, error messages, validation, and documentation.\n *\n * @internal\n */\nexport const PROVIDER_METADATA: Record<\n ProviderTypeString,\n {\n name: string;\n description: string;\n requiresStorefront: boolean;\n requiredEnvVars: string[];\n maxRetries: number;\n }\n> = {\n mock: {\n name: 'Mock',\n description: 'Fixture-backed runtime provider for layout/design mode without a real backend',\n requiresStorefront: false,\n requiredEnvVars: [],\n maxRetries: 0,\n },\n medusa: {\n name: 'Medusa JS',\n description: 'Medusa v2 commerce engine',\n requiresStorefront: true,\n requiredEnvVars: [\n 'NEXT_PUBLIC_COMMERCE_API_URL',\n 'NEXT_PUBLIC_COMMERCE_API_KEY',\n 'NEXT_PUBLIC_SALES_CHANNEL_ID',\n ],\n maxRetries: 3,\n },\n stelorder: {\n name: 'Stel Order',\n description: 'Stel Order ERP and sales document API',\n requiresStorefront: false,\n requiredEnvVars: [\n 'NEXT_PUBLIC_COMMERCE_API_URL',\n 'NEXT_PUBLIC_COMMERCE_API_KEY',\n ],\n maxRetries: 2,\n },\n shopify: {\n name: 'Shopify',\n description: 'Shopify Storefront API (GraphQL)',\n requiresStorefront: false,\n requiredEnvVars: [\n 'NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN',\n 'NEXT_PUBLIC_SHOPIFY_STOREFRONT_TOKEN',\n ],\n maxRetries: 3,\n },\n bigcommerce: {\n name: 'BigCommerce',\n description: 'BigCommerce REST Storefront API',\n requiresStorefront: false,\n requiredEnvVars: [\n 'BIGCOMMERCE_STORE_HASH',\n 'BIGCOMMERCE_STOREFRONT_API_TOKEN',\n 'BIGCOMMERCE_CHANNEL_ID',\n ],\n maxRetries: 3,\n },\n woocommerce: {\n name: 'WooCommerce',\n description: 'WooCommerce Store API + REST API v3',\n requiresStorefront: false,\n requiredEnvVars: [\n 'WOOCOMMERCE_URL',\n 'WOOCOMMERCE_CONSUMER_KEY',\n 'WOOCOMMERCE_CONSUMER_SECRET',\n ],\n maxRetries: 3,\n },\n spree: {\n name: 'Spree Commerce',\n description: 'Spree API v2 Storefront (JSON:API)',\n requiresStorefront: false,\n requiredEnvVars: [\n 'SPREE_API_URL',\n ],\n maxRetries: 3,\n },\n magento: {\n name: 'Adobe Commerce (Magento)',\n description: 'Adobe Commerce GraphQL + REST API',\n requiresStorefront: true,\n requiredEnvVars: [\n 'MAGENTO_URL',\n 'MAGENTO_STORE_CODE',\n ],\n maxRetries: 3,\n },\n};\n\n/**\n * Check if a string is a valid provider type.\n *\n * @example\n * ```typescript\n * if (isSupportedProviderType(process.env.COMMERCE_PROVIDER)) {\n * // type is narrowed to ProviderTypeString\n * }\n * ```\n */\nexport function isSupportedProviderType(\n value: unknown\n): value is ProviderTypeString {\n return (\n typeof value === 'string' &&\n Object.values(SupportedProviderType).includes(value as SupportedProviderType)\n );\n}\n\n/**\n * Get metadata for a provider type.\n * Useful for validation, error messages, and logging.\n *\n * @example\n * ```typescript\n * const meta = getProviderMetadata('medusa');\n * console.log(`Using ${meta.name} with max ${meta.maxRetries} retries`);\n * ```\n */\nexport function getProviderMetadata(\n type: ProviderTypeString\n): (typeof PROVIDER_METADATA)[ProviderTypeString] {\n if (!isSupportedProviderType(type)) {\n throw new Error(\n `Unsupported provider: ${type}. Supported: ${Object.values(\n SupportedProviderType\n ).join(', ')}`\n );\n }\n return PROVIDER_METADATA[type];\n}\n","/**\n * @thorprovider/types — Storefront Context\n *\n * Platform-agnostic representation of a \"sales channel\" or equivalent.\n * Abstracts differences between Medusa sales_channel, Shopify publications,\n * BigCommerce channels, WooCommerce sites, Spree stores, and Magento store views.\n *\n * @remarks\n * - Required for all multi-tenant deployments\n * - Returned by `CommerceProvider.getStorefrontContext()`\n * - MUST be validated on startup; errors should NOT be silently ignored\n */\n\n/**\n * Supported commerce platform types for storefront identification.\n *\n * @remarks\n * Keep this type in sync with SupportedProviderType from provider.ts.\n * When adding a new provider, update both packages/types/src/provider.ts\n * and this type.\n *\n * Currently supported:\n * - ✅ 'mock': Backend-optional layout/design mode using fixture data\n * - ✅ 'medusa': Fully implemented\n * - 🟡 'stelorder': ERP adapter v1\n *\n * Planned (not yet implemented):\n * - 🟡 'shopify': Phase 2\n * - 🟡 'bigcommerce': Phase 2\n * - 🟡 'woocommerce': Phase 3\n * - 🟡 'spree': Phase 3\n * - 🟡 'magento': Phase 3\n */\nexport type StorefrontPlatformType = 'mock' | 'medusa' | 'stelorder' | 'shopify' | 'bigcommerce' | 'woocommerce' | 'spree' | 'magento';\n\n/**\n * StorefrontContext\n *\n * Platform-agnostic representation of a \"sales channel\" or equivalent.\n *\n * @example\n * ```typescript\n * const ctx: StorefrontContext = {\n * id: 'sc_01J...',\n * name: 'B2C Storefront',\n * platformType: 'medusa',\n * requiresProductScoping: true,\n * currencyCode: 'USD',\n * };\n * ```\n */\nexport interface StorefrontContext {\n /**\n * Unique identifier for this storefront across the system.\n * Examples: \"sc_123\" (Medusa), \"gid://shopify/Channel/789\" (Shopify), \"1\" (WooCommerce)\n */\n id: string;\n\n /**\n * Human-readable name for logging and debugging.\n */\n name: string;\n\n /**\n * Platform this storefront belongs to.\n */\n platformType: StorefrontPlatformType;\n\n /**\n * Whether products must be explicitly linked/published to this storefront.\n *\n * @remarks\n * - Medusa: true (products must be linked to sales channel)\n * - Shopify: false (products visible by default unless unlisted)\n * - Stel Order: false (single-company ERP model, no native channel scoping)\n * - WooCommerce: false (no scoping concept)\n * - BigCommerce: false (products visible by default unless delisted)\n * - Spree: true (products must be assigned per store)\n * - Magento: true (products must be assigned per website)\n */\n requiresProductScoping: boolean;\n\n /**\n * Primary currency code for this storefront.\n * Examples: \"USD\", \"EUR\", \"GBP\"\n */\n currencyCode: string;\n\n /**\n * Optional region or locale code.\n * Examples: \"US\", \"EU\", \"en-US\", \"es-ES\"\n */\n locale?: string;\n\n /**\n * Optional: Store/Channel metadata from platform.\n * @internal\n */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Storefront validation error.\n * Thrown when storefront configuration is invalid or missing.\n *\n * @example\n * ```typescript\n * throw new StorefrontConfigError(\n * 'Medusa requires NEXT_PUBLIC_SALES_CHANNEL_ID',\n * 'medusa',\n * 'NEXT_PUBLIC_SALES_CHANNEL_ID',\n * );\n * ```\n */\nexport class StorefrontConfigError extends Error {\n public readonly platformType: string;\n public readonly requiredEnvVar?: string;\n\n constructor(\n message: string,\n platformType: string,\n requiredEnvVar?: string,\n ) {\n super(message);\n this.name = 'StorefrontConfigError';\n this.platformType = platformType;\n this.requiredEnvVar = requiredEnvVar;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACkCO,IAAK,wBAAL,kBAAKA,2BAAL;AACL,EAAAA,uBAAA,UAAO;AACP,EAAAA,uBAAA,YAAS;AACT,EAAAA,uBAAA,eAAY;AACZ,EAAAA,uBAAA,aAAU;AACV,EAAAA,uBAAA,iBAAc;AACd,EAAAA,uBAAA,iBAAc;AACd,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,aAAU;AARA,SAAAA;AAAA,GAAA;AA8BL,IAAM,oBAST;AAAA,EACF,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB,CAAC;AAAA,IAClB,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AACF;AAYO,SAAS,wBACd,OAC6B;AAC7B,SACE,OAAO,UAAU,YACjB,OAAO,OAAO,qBAAqB,EAAE,SAAS,KAA8B;AAEhF;AAYO,SAAS,oBACd,MACgD;AAChD,MAAI,CAAC,wBAAwB,IAAI,GAAG;AAClC,UAAM,IAAI;AAAA,MACR,yBAAyB,IAAI,gBAAgB,OAAO;AAAA,QAClD;AAAA,MACF,EAAE,KAAK,IAAI,CAAC;AAAA,IACd;AAAA,EACF;AACA,SAAO,kBAAkB,IAAI;AAC/B;;;ACjFO,IAAM,wBAAN,cAAoC,MAAM;AAAA,EAC/B;AAAA,EACA;AAAA,EAEhB,YACE,SACA,cACA,gBACA;AACA,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,eAAe;AACpB,SAAK,iBAAiB;AAAA,EACxB;AACF;","names":["SupportedProviderType"]}
|
package/package.json
CHANGED
|
@@ -159,6 +159,12 @@ export interface DropshipperVariant {
|
|
|
159
159
|
margin: number;
|
|
160
160
|
/** (margin / sale_price) × 100 (calculated by backend) */
|
|
161
161
|
margin_percent: number;
|
|
162
|
+
/** Margin set at product level when inherited by this variant. */
|
|
163
|
+
margin_percent_global?: number;
|
|
164
|
+
/** Explicit override margin for this variant when customized. */
|
|
165
|
+
margin_percent_override?: number | null;
|
|
166
|
+
/** Source used to derive the effective margin for this variant. */
|
|
167
|
+
margin_percent_source?: 'global' | 'override';
|
|
162
168
|
}
|
|
163
169
|
|
|
164
170
|
/** A product as seen by the dropshipper */
|
|
@@ -167,6 +173,11 @@ export interface DropshipperProduct {
|
|
|
167
173
|
title: string;
|
|
168
174
|
thumbnail: string | null;
|
|
169
175
|
status: 'published' | 'draft' | string;
|
|
176
|
+
global_status?: string | null;
|
|
177
|
+
can_publish?: boolean;
|
|
178
|
+
cannot_publish_reason?: 'missing_price' | 'product_not_published' | null;
|
|
179
|
+
/** Default margin applied to variants that do not have an override. */
|
|
180
|
+
margin_percent?: number;
|
|
170
181
|
variants: DropshipperVariant[];
|
|
171
182
|
}
|
|
172
183
|
|
|
@@ -189,16 +200,37 @@ export interface GetDropshipperProductsResponse {
|
|
|
189
200
|
limit: number;
|
|
190
201
|
}
|
|
191
202
|
|
|
192
|
-
/**
|
|
193
|
-
export interface
|
|
203
|
+
/** Body for `POST /admin/thor/dropshipper/products/:id/status` */
|
|
204
|
+
export interface UpdateDropshipperProductStatusBody {
|
|
205
|
+
status: 'published' | 'draft';
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/** Response for `POST /admin/thor/dropshipper/products/:id/status` */
|
|
209
|
+
export interface UpdateDropshipperProductStatusResponse {
|
|
210
|
+
product_id: string;
|
|
211
|
+
status: 'published' | 'draft';
|
|
212
|
+
previous_status: string | null;
|
|
213
|
+
reason?: 'missing_price' | 'product_not_published';
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** Variant margin override in a price update payload. */
|
|
217
|
+
export interface DropshipperVariantMarginOverride {
|
|
194
218
|
variant_id: string;
|
|
195
|
-
|
|
219
|
+
margin_percent: number;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/** Product margin update item */
|
|
223
|
+
export interface DropshipperProductMarginItem {
|
|
224
|
+
product_id: string;
|
|
225
|
+
margin_percent: number;
|
|
226
|
+
locked: boolean;
|
|
227
|
+
variant_overrides?: DropshipperVariantMarginOverride[];
|
|
196
228
|
}
|
|
197
229
|
|
|
198
230
|
/** Body for `PUT /admin/thor/dropshipper/prices` */
|
|
199
231
|
export interface UpdateDropshipperPricesBody {
|
|
200
232
|
currency_code: string;
|
|
201
|
-
|
|
233
|
+
products: DropshipperProductMarginItem[];
|
|
202
234
|
}
|
|
203
235
|
|
|
204
236
|
/** Response for `PUT /admin/thor/dropshipper/prices` */
|
|
@@ -256,12 +288,62 @@ export interface GetDropshipperOrdersResponse {
|
|
|
256
288
|
limit: number;
|
|
257
289
|
}
|
|
258
290
|
|
|
291
|
+
/** A shipping option returned for manual dropshipper orders */
|
|
292
|
+
export interface DropshipperShippingOption {
|
|
293
|
+
id: string;
|
|
294
|
+
name: string;
|
|
295
|
+
amount: number;
|
|
296
|
+
currency_code: string;
|
|
297
|
+
price_type: string;
|
|
298
|
+
is_default: boolean;
|
|
299
|
+
type: {
|
|
300
|
+
id: string;
|
|
301
|
+
label: string;
|
|
302
|
+
code: string | null;
|
|
303
|
+
} | null;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/** Options for `GET /admin/thor/dropshipper/orders/shipping-options` */
|
|
307
|
+
export interface GetDropshipperShippingOptionsParams {
|
|
308
|
+
currency_code: string;
|
|
309
|
+
country_code?: string;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/** Response for `GET /admin/thor/dropshipper/orders/shipping-options` */
|
|
313
|
+
export interface GetDropshipperShippingOptionsResponse {
|
|
314
|
+
shipping_options: DropshipperShippingOption[];
|
|
315
|
+
count: number;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/** Body for `POST /admin/thor/dropshipper/orders` with checkout-only extensions */
|
|
319
|
+
export interface ExtendedCreateDropshipperOrderBody extends CreateDropshipperOrderBody {
|
|
320
|
+
billing_address?: CreateDropshipperOrderBody['shipping_address'];
|
|
321
|
+
promo_codes?: string[];
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/** Response for `POST /admin/thor/dropshipper/orders` with totals and shipping method */
|
|
325
|
+
export interface ExtendedCreateDropshipperOrderResponse {
|
|
326
|
+
order: {
|
|
327
|
+
id: string;
|
|
328
|
+
display_id: number;
|
|
329
|
+
status: string;
|
|
330
|
+
subtotal: number;
|
|
331
|
+
tax_total: number;
|
|
332
|
+
shipping_total: number;
|
|
333
|
+
discount_total: number;
|
|
334
|
+
total: number;
|
|
335
|
+
profit: number;
|
|
336
|
+
created_at: string;
|
|
337
|
+
shipping_method?: DropshipperShippingOption | null;
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
|
|
259
341
|
/** A shipping address on an order */
|
|
260
342
|
export interface DropshipperOrderShippingAddress {
|
|
261
343
|
full_name: string;
|
|
262
344
|
address_1: string;
|
|
263
345
|
city: string;
|
|
264
|
-
province
|
|
346
|
+
province?: string | null;
|
|
265
347
|
postal_code: string;
|
|
266
348
|
country_code: string;
|
|
267
349
|
}
|
|
@@ -333,6 +415,7 @@ export interface CreateDropshipperOrderBody {
|
|
|
333
415
|
items: CreateOrderItem[];
|
|
334
416
|
shipping_address: DropshipperOrderShippingAddress & { phone?: string };
|
|
335
417
|
shipping_method_id?: string;
|
|
418
|
+
payment_method_id: string;
|
|
336
419
|
notes?: string;
|
|
337
420
|
}
|
|
338
421
|
|
|
@@ -638,6 +721,14 @@ export interface DropshipperPendingOrders {
|
|
|
638
721
|
receivable_total: number;
|
|
639
722
|
}
|
|
640
723
|
|
|
724
|
+
/** Payment method configuration for a dropshipper account */
|
|
725
|
+
export interface DropshipperPaymentMethodConfig {
|
|
726
|
+
payment_provider_id: string;
|
|
727
|
+
label: string;
|
|
728
|
+
collected_by: 'dropshipper' | 'provider';
|
|
729
|
+
is_enabled: boolean;
|
|
730
|
+
}
|
|
731
|
+
|
|
641
732
|
/** Full account record as returned by `GET /admin/thor/dropshipper/account` */
|
|
642
733
|
export interface DropshipperAccount {
|
|
643
734
|
id: string;
|
|
@@ -646,6 +737,7 @@ export interface DropshipperAccount {
|
|
|
646
737
|
payment_terms_days: number;
|
|
647
738
|
balance: DropshipperBalance;
|
|
648
739
|
pending_orders: DropshipperPendingOrders;
|
|
740
|
+
payment_method_configs?: DropshipperPaymentMethodConfig[];
|
|
649
741
|
}
|
|
650
742
|
|
|
651
743
|
/** Response for `GET /admin/thor/dropshipper/account` */
|
package/src/index.ts
CHANGED
|
@@ -278,13 +278,19 @@ export type {
|
|
|
278
278
|
DropshipperProduct,
|
|
279
279
|
GetDropshipperProductsOptions,
|
|
280
280
|
GetDropshipperProductsResponse,
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
281
|
+
UpdateDropshipperProductStatusBody,
|
|
282
|
+
UpdateDropshipperProductStatusResponse,
|
|
283
|
+
DropshipperVariantMarginOverride,
|
|
284
|
+
DropshipperProductMarginItem,
|
|
285
|
+
UpdateDropshipperPricesBody,
|
|
286
|
+
UpdateDropshipperPricesResponse,
|
|
284
287
|
DropshipperOrderCustomer,
|
|
285
288
|
DropshipperOrder,
|
|
286
289
|
GetDropshipperOrdersOptions,
|
|
287
290
|
GetDropshipperOrdersResponse,
|
|
291
|
+
DropshipperShippingOption,
|
|
292
|
+
GetDropshipperShippingOptionsParams,
|
|
293
|
+
GetDropshipperShippingOptionsResponse,
|
|
288
294
|
DropshipperOrderShippingAddress,
|
|
289
295
|
DropshipperOrderItem,
|
|
290
296
|
DropshipperOrderTotals,
|
|
@@ -294,6 +300,8 @@ export type {
|
|
|
294
300
|
CreateOrderItem,
|
|
295
301
|
CreateDropshipperOrderBody,
|
|
296
302
|
CreateDropshipperOrderResponse,
|
|
303
|
+
ExtendedCreateDropshipperOrderBody,
|
|
304
|
+
ExtendedCreateDropshipperOrderResponse,
|
|
297
305
|
SetPaymentCollectorBody,
|
|
298
306
|
SetPaymentCollectorResponse,
|
|
299
307
|
DropshipperCategory,
|
|
@@ -321,6 +329,7 @@ export type {
|
|
|
321
329
|
CreateDropshipperCustomerResponse,
|
|
322
330
|
DropshipperBalance,
|
|
323
331
|
DropshipperPendingOrders,
|
|
332
|
+
DropshipperPaymentMethodConfig,
|
|
324
333
|
DropshipperAccount,
|
|
325
334
|
GetDropshipperAccountResponse,
|
|
326
335
|
DropshipperPayableOrder,
|