arrow_back Back to Works
Web Application

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

Engineered With TypeScriptShopifyNode.jsPostgres

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

receipt_long

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.

local_shipping

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).

block

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

Ready to Build?

Want to build something similar? Tell us about your project.

Free Consultation