Pricing Digital Asset Kits For Global Buyers: What 39 Products Taught Me About Tiered CSV Channels
Description and use
The author adopted tiered pricing and channel‑specific CSVs, boosting international sales and eliminating upload rejections. The pipeline runs on modest hardware.
Problem
Flat pricing excluded buyers in low‑income markets and caused channel upload rejections due to inconsistent CSV headers.
Outcome
Tiered pricing and channel‑specific CSVs increased international sales and eliminated upload rejections, while the lightweight pipeline ran efficiently on modest hardware.
Workflow
- Define three price tiers: full, mid, parity‑adjusted floor.
- Create separate CSV templates for Adobe Stock (5 columns), Vecteezy (4 columns), and Dreamstime (15 columns).
- Write make_metadata.py to generate channel‑specific CSVs from a single asset folder.
- Package products with pack_product.py, adding optional PDF docs (md2pdf.py) and source files for higher tiers.
- Use upload_tracker.py to log pending, done, and status of uploads, preventing duplicate posts.
- Run the entire pipeline on local hardware (single vCPU, 2 GB RAM) using lightweight Python scripts.
- Iterate on pricing and metadata across channels, monitoring performance with resource.getrusage and gc.collect().
Evidence
Last March I priced a sticker pack at $12 flat and watched a buyer from the Philippines abandon checkout twice in one evening.
Adobe Stock wants a 5-column CSV header. Get one column wrong and the whole upload fails before review even starts.
I wrote make_metadata.py so it emits the exact header each channel demands and nothing else, because I got tired of the instant rejection emails.
The entire pipeline, metadata generation, tracking, PDF rendering, packaging, 39 products, 856 MB of output, ran on a single vCPU with 2 GB of RAM and no GPU.
- Record date: 2026-10-19T11:56:10.333Z