Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
2c42c1a
feat: Add Vendor Stripe Connect Onboarding
bogdal Mar 13, 2026
948b6b2
Merge branch 'develop' into feat/stripe-onboarding
bogdal Mar 13, 2026
6adaf3e
feat: Fix syntax
bogdal Mar 13, 2026
f57418d
Merge branch 'develop' into feat/stripe-onboarding
bogdal Mar 13, 2026
02185ce
Merge branch 'develop' into feat/stripe-onboarding
bogdal Mar 16, 2026
feaa9d3
feat: Add translations
bogdal Mar 16, 2026
df3c64b
fix: Linter warnings
bogdal Mar 16, 2026
8a7490b
feat: working on payment flow
tstuba Mar 22, 2026
bfcd077
feat: adding checkoutComplete to Stripe webhook
tstuba Mar 22, 2026
ca34378
feat: add permission in manifest
tstuba Mar 23, 2026
b6c5256
feat: payments for marketplace integrated with storefront
tstuba Mar 26, 2026
38a9cc6
Merge branch 'develop' into feat/stripe-onboarding
bogdal Mar 26, 2026
703dd3e
feat: add refund logic
tstuba Mar 27, 2026
34c7f15
fix: fix manifest
tstuba Mar 27, 2026
0bede20
Merge branch 'develop' into feat/stripe-onboarding
bogdal Apr 7, 2026
744970a
Merge remote-tracking branch 'origin/MS-1159' into feat/stripe-onboar…
bogdal Apr 7, 2026
0a13f54
feat: unify stripe envs
bogdal Apr 7, 2026
25cb975
Remove linter warnings and adapt types
bogdal Apr 7, 2026
1f9dbc4
feat: adjust types and functionality to create multi-ventor orders
bogdal Apr 13, 2026
c00df20
feat: add ledger for vendor payouts
bogdal Apr 16, 2026
77b069a
Merge branch 'develop' into feat/stripe-onboarding
bogdal Apr 16, 2026
ffda556
feat: add migrate command
bogdal Apr 17, 2026
21b9122
feat(marketplace): adjust cart and checkout view to marketplace use-case
GrzegorzDerdak Apr 22, 2026
5dc8a79
fix build
GrzegorzDerdak Apr 22, 2026
8348998
Merge branch 'develop' into MS-1158-as-a-buyer-i-want-a-multi-vendor-…
GrzegorzDerdak Apr 22, 2026
06a43bb
feat(marketplace): handle multi-vendor cart and checkout
GrzegorzDerdak Apr 28, 2026
9868edc
style: prettier changes
GrzegorzDerdak Apr 28, 2026
4d514d0
fixes
GrzegorzDerdak Apr 28, 2026
b4aea0e
Merge branch 'develop' into MS-1158-as-a-buyer-i-want-a-multi-vendor-…
GrzegorzDerdak Apr 28, 2026
a943bd6
fix: missing vendor name, improve logging
GrzegorzDerdak May 5, 2026
f1b93c9
Merge branch 'develop' into MS-1158-as-a-buyer-i-want-a-multi-vendor-…
GrzegorzDerdak May 7, 2026
8426e89
publish vendor on account confirm
GrzegorzDerdak May 12, 2026
d545ffa
eslint fixes
GrzegorzDerdak May 12, 2026
176dbc4
Merge branch 'develop' into MS-1158-as-a-buyer-i-want-a-multi-vendor-…
GrzegorzDerdak May 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ test.describe("Guest checkout", () => {
test.beforeEach(async ({ productPage, cartPage, checkoutLoginPage }) => {
await productPage.goto(product.url);

// Add to bag mutation must finished and set checkoutId cookie, thus
// Add to bag mutation must finished and set checkout cookie, thus
// navigation to cart page is required - the cookie will be set by the time the page loads
await productPage.addProductToBagAndGoToCart();

Expand Down
2 changes: 1 addition & 1 deletion apps/automated-tests/tests/e2e/checkout/checkout.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ test.describe("Logged-in user checkout", () => {
test.beforeEach(async ({ productPage, cartPage, checkoutLoginPage }) => {
await productPage.goto(product.url);

// Add to bag mutation must finished and set checkoutId cookie, thus
// Add to bag mutation must finished and set checkout cookie, thus
// navigation to cart page is required - the cookie will be set by the time the page loads
await productPage.addProductToBagAndGoToCart();

Expand Down
6 changes: 6 additions & 0 deletions apps/docs/versioned_docs/version-1.15.0/marketplace.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,12 @@ The marketplace app provides the following vendor-facing features:
- **Vendor Pages** - Manage vendor profile pages and page status
- **Customer Management** - View and manage customers

## Vendor onboarding flow

During public vendor sign-up, the marketplace app creates the Saleor vendor profile page and default vendor collection before registering the customer account. The vendor page is created as a draft with `isPublished: false`, then the customer account is linked to that page through the `vendor.id` customer metadata key.

The vendor page is published only after the vendor confirms their Saleor account from the account confirmation link. When confirmation succeeds and Saleor returns an active user, the marketplace app reads the customer's `vendor.id` metadata and updates the linked vendor page with `isPublished: true`.

## i18n

The marketplace app also uses the shared i18n package described in the [i18n architecture docs](/i18n). It passes `app: "marketplace"` to `@nimara/i18n`'s `createRequestConfig`, so it receives the `common` + `marketplace` message bundles (with locale-specific overrides applied where defined).
Expand Down
21 changes: 20 additions & 1 deletion apps/marketplace/src/app/(public)/account-confirm/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,33 @@

import { ConfirmVendorAccountDocument } from "@/graphql/generated/client";
import { executeGraphQL } from "@/lib/graphql/execute";
import { publishVendorPageForConfirmedAccount } from "@/lib/saleor/vendor-page-publication";

export async function confirmAccount(variables: {
email: string;
token: string;
}) {
return executeGraphQL(
const result = await executeGraphQL(
ConfirmVendorAccountDocument,
"ConfirmVendorAccountMutation",
variables,
);

if (!result.ok) {
return result;
}

const user = result.data.confirmAccount?.user;

if (user?.isActive) {
const publishResult = await publishVendorPageForConfirmedAccount(
user.email,
);

if (!publishResult.ok) {
return publishResult;
}
}

return result;
}
Loading
Loading