DevelopmentPayment protectionDetails
- Revisions within the package are free.
- If you do not respond within 3 days of delivery, the work is accepted automatically.
The money is reserved when you pay and released only once you accept the work.

Example result
Merging the monthly sales files of 9 shops into one Excel report
How it is run
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Folder: sales/2026-10, 9 files found
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 rows
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 rows
2026-11-02 09:14:04 WARN shop-07.csv: 3 rows without a price skipped (lines 88, 412, 913)
2026-11-02 09:14:05 INFO Done: 10,412 rows -> report-2026-10.xlsx (sheets "Sales" and "Totals")
Settings, not code
The column names of each shop live in settings.ini, so a new shop or a renamed column is a line there:
[columns]
date = Date, Sale date, Day
product = Product, Item, Name
quantity = Qty, Quantity, Pcs
price = Price, Unit price
A part of the code
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Reads one shop's file and gives it the report's column names."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: no column for '{name}' (looked for {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
Files: a ZIP archive with merge_sales.py (310 lines), settings.ini, requirements.txt and a README with installing Python, running the script and what each message in the log means. The client runs it on their own computer.
Client: a small chain of 9 stationery shops; each shop sends its sales for the month as a CSV or Excel file, with slightly different column names. Task: one script that reads every file in a folder, brings the columns to one shape, and writes a single Excel report with all sales and a sheet of totals by shop.
The client and all details are made up.
About this service
Shopify imports products from a CSV file, but only in its own layout: one Handle for a product and all its variants, option names and values in set columns, pictures as public links. This Python script turns the file you have, a supplier's price list, an export from your old shop or your own Excel, into that layout. It maps your columns to Shopify's, turns sizes and colours into variants from Standard, cleans prices and stock and adds tags. It follows Shopify's current product CSV template, which you can download from your admin. Pictures must be at links Shopify can open. You import the file in Shopify yourself; we never log in to your store. Try a few products first: what you get is only as complete as your data.
What is included
- What you getA ZIP archive with the Python script, a README with step-by-step instructions and, from Standard, a settings file with the column map; the code is also shown on the order page.
- Shopify's layoutBy Shopify's current product CSV template
- Variants groupedFrom Standard, sizes and colours under one product
- Clean prices and stockNumbers Shopify accepts, without currency signs or spaces
- Problems listedRows with no price, SKU or picture are reported
- Readable codeWith comments, easy to add a column later
How it works
- 1FilesYou send a sample of your product file and say what goes where
- 2CodeWe write the script and the guide to running it
- 3Try itYou import a few products into Shopify and check them
- 4ChangesYou ask for changes within your package and send any error message
What we need from you
20-30 rows of the file you have (supplier price list, old shop export or your own table), how variants are written in it (a row per size, or sizes in one cell), where the pictures are (links, or files you will upload to Shopify first) and how prices should be set. If you have one, an export of a few products from your Shopify store, so the columns match exactly. Your system: Windows, macOS or Linux.
We will ask you:
- What file do you have now?
- How are variants written in it?
- Where are the pictures?
- How should prices be set?
Compare packages
| Packages | BasicSimple products$16 | StandardProducts with variants$33 | PremiumProduct import tool$67 |
|---|---|---|---|
| Deadline | 1 day | 2 days | 3 days |
| Revisions | 1 | 2 | 3 |
| Code | up to 150 lines | up to 400 lines | up to 1,000 lines |
| Files of code | 1 | up to 3 | up to 8 |
| Settings file | No | Yes | Yes |
| Clear error messages and a log | No | Yes | Yes |
| Run options and a guide to running it on a schedule | No | No | Yes |
| Guide to installing and running it (README) | Yes | Yes | Yes |
| Language | Python | Python | Python |
| Order Basic | Order Standard | Order Premium |
Payment protection
You pay when you order, but the money is released only for accepted work.
- Fixed priceThe package price does not change after you pay.
- The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
- Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
- Free revisionsAsk for changes within your brief as many times as the package allows.
- Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
- Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
Questions and answers
Will you import the products into my store?
No. We never log in to your store. You import the CSV in your Shopify admin yourself; the README shows where and which options to choose.
What about pictures that are files on my computer?
Shopify takes pictures in a CSV only as links it can open. Upload the files to Shopify's Files section first and give the script the list of their links, or use links your supplier gives.
Can it update prices and stock of products I already have?
Yes, if the Handles match your existing products: Shopify can overwrite products with the same Handle on import. Try it on a few products first.
Will it write product descriptions?
No. It carries over the descriptions and facts in your file and can tidy their formatting. Texts it does not have are left empty and reported.
Did not find your answer?


