Shipping CSV - Shopify Shipping Data Generator
A Shopify app that generates Yamato B2 Cloud shipping label CSVs from unfulfilled orders. Handles prefecture code conversion, name reordering, Shift_JIS encoding, and the fixed 97-column format.
Duration
Short-term development
Team
1 person
01 // OVERVIEW
Project Overview
A Shopify app that solves the problem of overseas shipping apps not supporting Japanese address and name formats. It converts the romanized prefecture codes Shopify returns into Japanese prefecture names, reorders name fields from first-last to last-first, converts UTF-8 to Shift_JIS, and generates the fixed 97-column, CRLF-formatted CSV required by Yamato B2 Cloud. It also includes a history feature to prevent duplicate exports.
02 // KEY FEATURES
Key Features
Japanese-format address and name conversion
Looks up the prefecture name (e.g., Osaka) from Shopify's `provinceCode` (e.g., JP-27), and reorders the `name` field from first-last to last-first order. Converts UTF-8 to Shift_JIS with iconv-lite and outputs a fixed 97-column, CRLF-formatted file.
Yamato B2 Cloud-compliant CSV generation
Implements format handling that fills unused columns with blanks to maintain exactly 97 columns. Verified the correct implementation by cross-checking discrepancies between the official spec (97 columns) and a third-party site (85 columns).
Duplicate export prevention and history
Records exported orders in an ExportedOrder table and hides them by default in the list, preventing the same order's shipping label from being exported twice. Deleting a record allows the order to be re-exported.
03 // TECHNICAL DEEP-DIVE
Technical Highlights
Solution
Applying for access to protected customer data
Retrieving name, address, and phone number via Shopify's order API requires applying for access to "protected customer data," which applies without exception even for development stores. Set up the application process via the Partner Dashboard, and built the implementation flow around passing that review.
04 // IMPACT & RESULTS
Results
97 columns
Fully compliant with Yamato B2 Cloud's format
Shift_JIS
Automatic conversion to Japanese character encoding
Duplicate prevention
Automatically tracks exported orders