Ecommerce Operations & Customer Risk Analyst (Remote — Philippines)

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

TYPE OF WORK

Any

SALARY

$500 - $800 based on experience

HOURS PER WEEK

40

DATE UPDATED

Sep 17, 2026

JOB OVERVIEW

We run 4 Shopify stores and we're growing faster than our operations can keep up. Orders slip through the cracks. Customers get frustrated waiting. Some of them stop emailing and file a chargeback instead. We want someone whose whole job is making sure that stops happening.


WHAT YOU'LL ACTUALLY DO

This is a rhythm, not a project list.

DAILY - Work the support inbox. Identify what needs escalation today, and catch the threads the CS team marked handled but didn't actually resolve. The second part is the real value.
DAILY - Audit unprocessed orders. Find what's been sitting too long, rank it by dollar value, and surface the reason it stalled.
WEEKLY - Chase aged orders: paid but unfulfilled, or fulfilled but stuck in transit with tracking that hasn't moved. Pull the real carrier status and flag the ones heading toward a dispute.
BI-WEEKLY - Review products that went to draft status from stock issues and never came back.
ONGOING - Cross-reference Shopify data, order trackers, and support history to build one prioritized list of customers who need intervention now. Then make sure someone acts on it.


HOW WE MEASURE YOU

- Chargeback rate
- Average order age at resolution
- Number of aged orders that reach a customer complaint before we catch them

If our dispute rate drops and customers stop having to email us twice, you're doing the job.


YOU'RE A FIT IF YOU

- Have 2+ years in Shopify ecommerce operations, order management, or CX - hands in the admin, not supervising from above
- Genuinely enjoy spreadsheet work and can hold a 500-row export in your head well enough to notice what's wrong with it
- Know how carrier tracking behaves, and can tell a package that's genuinely stuck from one that's just between scans
- Have handled chargebacks or PayPal disputes and understand that the best dispute is the one prevented three weeks earlier
- Use AI tools in your workflow already, or are eager to - much of this job is running structured analysis with Claude and knowing when the output looks wrong
- Write clear, warm English to customers


DETAILS

Full-time, remote. 40 hours per week with overlap on US Pacific (PST) business hours.
Paid 1-week trial before we commit either way.


TO APPLY

Skip the cover letter. Send a note answering this instead:

An order was placed 5 weeks ago. Tracking says "in transit" with no scan for 18 days. The customer has emailed twice and the last reply from our team was 9 days ago. What do you do, in what order, and why?

That answer tells us everything.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0171
Total Execution Time  0.0184
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,500,920 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Ecommerce-Operations-Customer-Risk-Analyst-Remote-Philippines-1732606
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0099 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1732606
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 856392
 LIMIT 1 
0.0010   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1732606
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-21',ej.date_added) duration_daysDATEDIFF('2026-09-21',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_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-09-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1732606' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1732606 
0.0006   UPDATE employer_jobs SET hit_counts '***Sep-17-2026=768***Sep-18-2026=71***Sep-19-2026=62***Sep-20-2026=2***Sep-21-2026=2' WHERE job_id'1732606'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Sep-2026=904' WHERE job_id'1732606'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1732606' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1732606 
0.0034   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '856392'
AND `date_added` >= '2022-06-08' 
0.0007   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)