Shopify Developer: Build a Custom Checkout Connected to Slash Payments (Fixed Price Project)

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Gig

SALARY

$200 to $600

HOURS PER WEEK

20

DATE UPDATED

Sep 29, 2026

JOB OVERVIEW

PLEASE READ TO THE END. Applications that do not start with the password word will not be read.

ABOUT US
Fitmo ( ---------- ) is a direct-to-consumer wellness brand: the Tetra smart bracelet, the Vitro smart band and the Soma smart scale. The store runs on Shopify and most of our customers are in the United States.

THE PROJECT
We are moving part of our US card payments from Shopify Payments to Slash Payments, the new payment processing product from Slash ( ---------- ). Slash does not provide a hosted checkout, a payment link or a Shopify app. It provides an API (payment intents, refunds, webhooks) and a React payment form (npm ---------- Payments runs on Whop's payment infrastructure. The product is new and in beta, so part of the job is to check with Slash's docs and support what our account supports before building.

So we need a developer to build and connect a fully custom checkout from A to Z. When a US customer clicks the main "Checkout" button on our Shopify store, they land on our own checkout page at ---------- , pay through Slash, and the paid order is created in Shopify automatically, like any normal Shopify order.

WHAT YOU WILL BUILD
- A checkout web app (React or Next.js, hosted on our Vercel account) at ---------- : contact, shipping address, shipping method, discount code, order summary, and payment through Slash by card, plus Apple Pay and Google Pay if Slash enables them on our account.
- A split cart for US visitors with a USD cart: one big main "Checkout" button that goes to the new Slash checkout, and right under it two smaller buttons, Shop Pay and PayPal, that open the native Shopify checkout express flows, so these customers keep their one-click payment and pay in 4. Every other visitor and currency stays on the normal Shopify checkout.
- The same rule on every checkout entry point of our theme (cart drawer, cart page, Buy it now buttons, checkout links in the theme).
- Server-side pricing from Shopify: products, discount codes, automatic discounts, bundles, shipping rates and US sales tax. Prices sent by the browser are never trusted.
- Creation of the order in Shopify after a successful Slash payment, with idempotency (never a duplicate order) and a reconciliation job (never a lost paid order).
- Refunds: a refund made in the Shopify admin is executed in Slash.
- Tracking: Meta Pixel plus Conversions API with event_id deduplication (exactly one Purchase per order), a Klaviyo Started Checkout event, UTM parameters saved on every order, and which cart button was clicked (main, Shop Pay or PayPal).
- A confirmation page, an order bump before payment, and the standard Shopify order confirmation email.
- A rollback switch that sends every cart back to the Shopify checkout in one click, plus an A/B split to send only part of the traffic to the new checkout.
- Tests in every market (US, UK, Canada, Europe), on iPhone and desktop, and a short written handover: how to run it, how to roll back, how to replay an order.

A full technical brief is ready and will be sent to shortlisted candidates.

MUST HAVE
- You have already built an external checkout for a Shopify store that went live. A theme customization does not count.
- Shopify Admin GraphQL API: order creation, including draft orders (draftOrderCalculate, draftOrderComplete) and orderCreate.
- Integration of a payment API: payment intents, webhooks with signature checks, idempotency keys, refunds. Experience with Stripe, Whop, Adyen or NMI counts.
- Apple Pay and Google Pay domain verification on a subdomain.
- Meta Pixel plus Conversions API with event_id deduplication.
- React or Next.js, Node.js, a database (Postgres or similar), deployment on Vercel.
- Clear written English and a short progress update every working day.

NICE TO HAVE
Whop Elements, the Klaviyo API, Shopify Markets and multi-currency, Shopify accelerated checkout buttons, previous work with CrispCheckout, Lasso or Checkout Champ.

HOW TO APPLY
Write the word VITRO at the very top of your application. Then answer these 6 points:
1. Links to external checkouts you built for Shopify stores (live URL or a screen recording), and the payment processor each one used.
2. How would you create the Shopify order after payment, and how do you guarantee that no paid order is ever lost or created twice?
3. How do you make sure Meta counts exactly one Purchase per order when the Pixel and the Conversions API both send it?
4. How would you handle discount codes, automatic discounts, shipping rates and US sales tax outside the Shopify checkout?
5. Your fixed price for the whole scope, what it includes, and your timeline in days.
6. Your availability in hours per week and your usual working hours (we work on Paris time).

BUDGET AND PAYMENT
- Fixed price for the whole project. Our budget is 200 to 600 USD. Quote your own price. If your quote is higher, explain what it covers.
- We pay per project, in two milestones (the split between them is agreed before the start): first when the checkout works end to end on the test setup with real orders created in Shopify, then after go-live and 7 days with every paid order present in Shopify.
- Bug fixes during the 14 days after go-live are included in the price.
- Later changes and new features are paid separately, per request, at a price agreed before the work starts. We are looking for a developer we can come back to.
- We own the code, the repository and every account used for the project.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0010
Controller Execution Time ( Jobseekers / Job )  0.0167
Total Execution Time  0.0185
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,511,104 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Shopify-Developer-Build-a-Custom-Checkout-Connected-to-Slash-Payments-Fixed-Price-Project-1740022
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0102 seconds)  (Hide)
0.0017   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0010   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1740022
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 943288
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1740022
AND `misc`.`id` IS NULL 
0.0005   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-03',ej.date_added) duration_days, DATEDIFF('2026-10-03',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_jobs ej WHERE e.employer_id = ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id = '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-10-03',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1740022' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1740022 
0.0009   UPDATE employer_jobs SET hit_counts = '***Sep-29-2026=857***Sep-30-2026=92***Oct-01-2026=51***Oct-02-2026=33***Oct-03-2026=22' WHERE job_id= '1740022'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Sep-2026=947***Oct-2026=106' WHERE job_id= '1740022'  
0.0011   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1740022' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1740022 
0.0017   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '943288'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0002   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)