Wordpress Ecommerce Website Developer and Graphic Designer

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

TYPE OF WORK

Full Time

SALARY

$1500/month

HOURS PER WEEK

60

DATE UPDATED

Aug 28, 2026

JOB OVERVIEW

We're redesigning the visual and front-end layer of our brand ecosystem. There are two distinct tracks below. Apply to one or both — tell us clearly which.

Most applicants should apply to one. We'd rather hire two specialists than one generalist who is adequate at both.

Track A — Graphic Design & 3D Product Visualization
The work

1. Product render library (primary deliverable)

We need a consistent, photorealistic render set covering our full catalog of roughly 18 SKUs — lyophilized powder in glass vials with blue aluminum crimp caps, plus a small number of liquid products.

We already have one render that defines the target quality: a 3/4-angle GLP-TZ vial, studio lighting, transparent background. That image is the standard. Every other SKU needs to match it — same camera angle, same lighting setup, same shadow treatment, same crop ratio.

Consistency matters more than individual image quality here. A catalog grid where every vial sits at a slightly different angle is what makes a brand read as small.

Deliverables per SKU: transparent PNG at high resolution, plus white-background WebP optimized for web. Source files (Blender/C4D/KeyShot scene) delivered at project close.

Critical: all label text must be pixel-accurate to the artwork we supply. Compound name, milligram strength, and disclaimer text are non-negotiable. Our customers are technically literate and a garbled label destroys trust instantly. If you work with AI-assisted generation, we need real artwork composited in post rather than model-generated text.

2. Presentation packaging visualization

We have 2,500 magnetic-closure presentation boxes in inventory: neutral white, square footprint, front-flap magnetic latch producing a visible horizontal seam roughly one-fifth of the box width in height. We need renders of these with our artwork applied, in both standalone and vial-composite arrangements.

3. Web design comps

Figma comps for homepage and a representative product page. This is the spec our developer builds against, so we need real specificity: type scale, spacing system, component states, mobile and desktop breakpoints, motion and interaction direction. Not a static picture of a page.

Aesthetic direction

Think Apple restraint crossed with pharmaceutical clinical credibility. Pure neutral white backgrounds. Generous whitespace. Navy on white — not dark mode. Clean geometric sans typography. Nothing decorative, nothing "supplement industry," no gradients-and-glow wellness styling.

Reference for the level of front-end polish we're targeting: ---------- .

We have documented brand standards, a locked color palette, and existing logo artwork. You'll receive all of it.

Track B — Front-End / WooCommerce Development
The work

Implement approved Figma comps on our existing WordPress store. Homepage, product pages, catalog grid, and mobile treatment across all of it.

This is an implementation role, not a design role. You'll be building against an approved comp. Success is binary: does the live page match the file. We're not asking you to make aesthetic calls, and we won't ask you to guess what we want.

Mobile quality is weighted heavily. Most of our traffic is mobile and it's where most builds fall apart.

Technical environment — read this before quoting

Being straight about the constraints, because they're real and they've cost us debugging time. We have all of this documented and will share the full runbook with shortlisted candidates.

WordPress + WooCommerce + Astra 4.13 + Elementor Pro on Hostinger, PHP 8.3
No child theme currently exists. Astra runs as the parent theme, so custom PHP lives in the Code Snippets plugin rather than in version-controlled files. Migrating to a proper child theme with a git repo and rsync deploy is a possible additional scope item — a build brief already exists for it.
The host WAF rejects REST request bodies containing literal script or meta tags — 403 or a silent 500. Existing code works around this with wp_enqueue_* and wp_add_inline_script rather than echoing tags. The firewall does plain substring matching, so even tag text inside a PHP comment trips it.
LiteSpeed caches aggressively and does not auto-purge on Code Snippets writes, because that plugin uses its own database table and never fires save_post. Manual purge required after every snippet change.
Elementor page structure lives in _elementor_data, a single JSON blob that is not exposed to REST. The homepage alone is 159 widgets. Current work is done through render filters rather than by writing to that blob.
Two separate snippet plugins are in play — Code Snippets (REST-accessible) and WPCode (not). Some existing CSS is only reachable through wp-admin.
Airlift and LiteSpeed both defer JavaScript until first interaction. A previous client-side product grid rendered empty on load. Rendering happens in PHP for that reason. Don't move it back to the client.
Also running: AIOSEO, AffiliateWP, Solid Security, PixelYourSite, Omnisend, Woo Discount Rules, and OTTO (Search Atlas), which rewrites headings client-side.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0009
Controller Execution Time ( Jobseekers / Job )  0.0152
Total Execution Time  0.0167
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,510,088 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Wordpress-Ecommerce-Website-Developer-and-Graphic-Designer-1719165
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0080 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0006   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1719165
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 965502
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1719165
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-03',ej.date_added) duration_daysDATEDIFF('2026-09-03',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-03',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1719165' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1719165 
0.0009   UPDATE employer_jobs SET hit_counts '***Aug-28-2026=227***Aug-29-2026=272***Aug-30-2026=34***Aug-31-2026=4***Sep-03-2026=1' WHERE job_id'1719165'  
0.0012   UPDATE employer_jobs SET monthly_hits '***Aug-2026=536***Sep-2026=1' WHERE job_id'1719165'  
0.0011   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1719165' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1719165 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '965502'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)