Features Pricing Services
Compare
Resources
Contact Start Free Trial
Home/ Docs/ Getting Started
Browse all sections

Getting Started with Soryk

From a blank Shopify store to your first live B2B order, with field agents earning commissions and a customer app that doesn't look like an off-the-shelf plugin. Plan for 30–60 minutes if you have your data ready, longer if you're starting from scratch.

i

Prefer to skip the manual. Our onboarding services handle the entire flow for you, async-first, with calls in italiano if you want them. App Quick Setup from €499, Complete B2B Setup from €1,200.

Prerequisites — what you need before installing

Soryk is a Shopify-native app: it stores nothing in its own database, and reads / writes everything through the Shopify Admin API. That keeps your data portable, but it also means a few things must already be in place on Shopify before you install.

!

Which Shopify plan do I need? Since April 2026, Shopify B2B native features are available on all paid Shopify plans (Basic at $39/mo, Grow at $105/mo, Advanced at $299/mo, and Plus). Soryk works on every paid plan. The only differences come from Shopify itself: non-Plus plans cap active catalogs at 3, while Plus has unlimited. For most B2B operations, that cap doesn't matter.

The onboarding flow

Five steps. The first three are infrastructure, steps 4 and 5 are domain-specific. You can pause between any of them — nothing is locked in until you start sending magic links.

  1. Install Soryk from the Shopify App Store

    Search "Soryk" in the App Store or open the direct listing. Click Install and Shopify will prompt you to accept the requested scopes:

    read_products, write_products
    read_orders, write_orders
    read_draft_orders, write_draft_orders
    read_customers, write_customers
    read_companies, write_companies
    read_inventory
    read_locations
    read_metaobject_definitions, write_metaobject_definitions
    read_metaobjects, write_metaobjects

    After accepting, you'll be redirected back into the Shopify admin with Soryk embedded. The first thing Soryk does on first load is create the metaobject definitions it needs (one-time, idempotent — see Metaobjects).

    i

    Installation is reversible at any time. If you uninstall, Shopify revokes the access token, and your data stays exactly where it is — in Shopify. There's no Soryk database to delete from.

    Screenshot: Shopify App Store listing with Install button — coming soon
  2. Initial configuration (5-minute wizard)

    The first time you open Soryk you'll see a short configuration wizard. You can edit any of these later from Settings, so don't overthink it — just pick sensible defaults.

    SettingRecommended startWhat it does
    inventoryModetraffic_lightShow stock as green/yellow/red dots in the agent app. Less scary than raw numbers, more honest than "off".
    requireCompanyApprovaltrueAgents propose new companies; you approve before they hit Shopify. Turn off later if you trust your team.
    agentDiscountMaxPercent5 or 10Auto-apply discounts up to this %. Above the cap → pending approval queue.
    LanguagesEN + your localEight available: EN, IT, ES, FR, DE, NL, PL, PT. Both UI and customer-facing.
    territoryEnabledfalseLeave off to start. Enable once you've actually drawn territories.
    buyerPortalEnabledfalseOff for now. Enable when you're ready to invite customers to self-serve.

    Skip the advanced settings for now — territory shapes, manager hierarchy, payment-term label overrides. Come back once the basics work.

    Full reference: all 12 settings explained.

  3. Import data

    You can do this manually for small teams (under ~20 companies and a handful of agents). Bulk imports are a CSV away.

    Companies — CSV bulk import

    Use Shopify's native B2B company import if your data fits their format. For Soryk-side metadata (assigned agents, custom flags) you can attach those in the next step.

    Agents — CSV bulk import

    Download the agents template from the Agents page. Required columns:

    email,name,company_ids
    marco.bianchi@example.com,Marco Bianchi,"gid://shopify/Company/123,gid://shopify/Company/456"
    laura.conti@example.com,Laura Conti,"gid://shopify/Company/789"
    sara.romano@example.com,Sara Romano,
    • email — must be a valid email format. Used as the agent's unique identifier.
    • name — display name in the app and on commission reports.
    • company_ids — comma-separated Shopify Company GIDs (use gid://shopify/Company/<numericId>). Leave blank if you'll assign companies manually.
    !

    Malformed values are reported, not silently dropped. Invalid emails or wrong-format Company GIDs come back in unresolvedCompanies in the import response so you can fix and retry. Nothing is half-imported.

    If you have under ~10 agents and 50 companies, manual entry is faster than fighting CSVs. Manual agent creation →

  4. Configure commission rules

    Available on Growth tier and above. Commission rules define who earns what, on which orders, and at what %. The engine matches the most specific rule per order using a priority tie-break.

    Decide:

    • Scopeglobal (everyone, every order), agent (one specific agent), collection (everyone, but only orders touching this collection), or variant (specific SKU).
    • Base — what to multiply by: total, subtotal, no_shipping or no_tax_no_shipping. Most merchants pick no_tax_no_shipping.
    • Rate % — flat percentage. Tiered rates are achieved by stacking rules with different scopes and priorities.
    • Priority — integer for tie-breaks when two rules apply. Higher wins.
    • Deduct on refund — if a refund is issued on an already-paid commission, raise an alert and reverse the earning.

    A typical starter setup:

    Rule 1 — Global baseline
     scope: global
     base: no_tax_no_shipping
     rate: 5%
     priority: 1
     deduct_on_refund: true
    
    Rule 2 — Premium wine collection bonus
     scope: collection (Vini Premium)
     base: no_tax_no_shipping
     rate: 8%
     priority: 10
     deduct_on_refund: true

    An order with three regular bottles + two Premium ones triggers Rule 2 (higher priority, scope match). Without the Premium SKU, Rule 1 applies.

    Full reference: Commissions. If your business uses payouts in cash or via PayPal, configure those payout methods too.

  5. Test & go live

    Don't send the first agent invitation until you've placed a test order yourself. Use a real-looking but disposable customer email so you can also verify the buyer flow.

    1. Open the Agent app at https://your-shop.myshopify.com/apps/soryk/agent.
    2. Sign in with your own email — you'll receive a magic link via Resend.
    3. Pick a test company, browse the catalog, build a small cart, place a draft order with a 3% discount.
    4. Back in the admin, open the draft order. Confirm it has soryk + soryk_agent:<your-email> tags and the correct discount.
    5. Mark it as paid in Shopify (test gateway is fine). Open Commissions → Da pagare and verify the earning shows up with the right base and rate.
    6. Test the customer app (if enabled): sign in as a customer, see the catalog scoped to your company, place a small order.
    7. Send your first agent invite via Agents → [Agent] → Send magic link.
    i

    Live. If everything passed, you're production-ready. Set up a recurring 15-minute weekly check-in for the first month to monitor the Pending banner (companies / location changes / discount approvals / commission alerts).

Realistic timeline

ScenarioTime to liveNotes
Already on Shopify B2B, agents < 5, companies < 5030–60 minMostly clicking through the wizard and assigning companies.
On Plus, no B2B yet, mid-sized catalog1–2 daysB2B activation + price-list import is the slow part. Soryk itself is fast.
Migrating from SparkLayer / Pepperi / Handshake1–4 weeksData mapping, reps re-training, parallel run period. Custom Migration service recommended.
From scratch (no Shopify, no B2B, no catalog)4–8 weeksBulk of the time goes to Shopify + B2B activation, not Soryk.

Don't want to do this alone?

Soryk is fully self-service, but we offer paid setup if you'd rather hand the wheel to us. All packages are async-first (no fixed call slots, no timezone tax) and capacity is intentionally limited so each customer gets real attention.

What's next

Was this helpful?
Edit this page on GitHub