Toolkit for automating the buying and selling of designer clothes from Yahoo Japan Auctions, Mercari JP, and Rakuten
CherryBlossom provides several features to speed up and automate the tedious process of buying clothes from Japan at discounts. Use cases include:
-Propagating PostgreSQL databases with listings to easily find relavant products across multiple searches
-Cross referencing listing prices with sold Grailed listings
-Estimating product markups using computer vision
CherryBlossom APIs are meant to be used with PostgreSQL databases. Create a '.env' file and include a DATABASE_URL environment variable
DATABASE_URL = YOUR DATABASE URL
name (String)
: Name of item to be searched
name (String)
: Name of item to be searched
{'Item Name':'Item','Price': $0}
name (String)
: Name of item to be updated
key (String)
: Keyword to be searched, returning all items with name containing key
{
{'Item Name':'Item1','Price': $0},
{'Item Name':'Item2','Price': $0},
{'Item Name':'Item3','Price': $0}
}
minPrice (Integer)
: Minimum price of items in search
maxPrice (Integer)
: Maximum price of items in search
{
{'Item Name':'Item1','Price': $0},
{'Item Name':'Item2','Price': $0},
{'Item Name':'Item3','Price': $0}
}
searchTerm (String)
: Search term that item appears under
searchTerm (String)
: Search term that item appears under
name (String)
: Name of item
link (String)
: URL linking to item page
price (Integer)
: Price of item
searchTerm (String)
: Term to be searched, returning all items that appear under given search term
{
{'searchTerm':'searchTerm', 'name':''item1', link:'example.com/item1, 'Price': $0},
{'searchTerm':'searchTerm', 'name':''item2', link:'example.com/item2, 'Price': $0},
{'searchTerm':'searchTerm', 'name':''item3', link:'example.com/item3, 'Price': $0}
}
searchTerm (String)
: Term to be searched, returning all items with name containing searchTerm
{
{'searchTerm':'searchTerm', 'name':''item1', link:'example.com/item1, 'Price': $0},
{'searchTerm':'searchTerm', 'name':''item2', link:'example.com/item2, 'Price': $0},
{'searchTerm':'searchTerm', 'name':''item3', link:'example.com/item3, 'Price': $0}
}
searchTerm (String)
: Term to be searched, returning all items with searchTerm containing searchTerm
{
{'searchTerm':'searchTerm', 'name':''item1', link:'example.com/item1, 'Price': $0},
{'searchTerm':'searchTerm', 'name':''item2', link:'example.com/item2, 'Price': $0},
{'searchTerm':'searchTerm', 'name':''item3', link:'example.com/item3, 'Price': $0}
}
minPrice (Integer)
: Minimum price of items in search
maxPrice (Integer)
: Maximum price of items in search
{
{'searchTerm':'searchTerm', 'name':''item1', link:'example.com/item1, 'Price': $0},
{'searchTerm':'searchTerm', 'name':''item2', link:'example.com/item2, 'Price': $0},
{'searchTerm':'searchTerm', 'name':''item3', link:'example.com/item3, 'Price': $0}
}
An outline for predicting the prices of items using a ConvNet and linear regression in TensorFlow can be found in ProductRegression.ipynb. This model can be trained on data from products found in users' past searches, tailoring predictions to brands and styles that they search for.
After conducting a search using the FromJapan API, the Images
table in the user's PostgreSQL database will be populated with all images of items found in the search, linked to the item in the FJPItems
table by their id
. Using the scripts found in imageClassify.py, this data can be converted into a set used to train the model, where each image is associated with a price.