Liquid/PHP Development- gaming website (Shopify exp only)

Job ID: 35285406

Budget: $15 – $25 USD

Hey there!

We're looking for a developer that has experienced with Shopify, liquid/PHP and Development/working with data.

We have a shopify gaming accessories store for custom products and 95% of our sales are coming from customers uploading their own images in our site and our suppliers print and ship the products directly to the customers.

Test for new dev

We’re looking for a developer to work long term within a gaming accessories ecommerce website hosted in Shopify. The job is $15 an hour and a secure one for years. Our site is heavily customised and there’s always something to do in the store so there’s no shortage of work.

1. These are the requirements we have. If you don’t have experience in it but you're a quick learner, we’re open to working with you.

----liquid----
1). Using Shopify's section rendering api, create liquid section, which would serve as REST API endpoint for collection page, taking parameters "collectionSlug", "sortBy", "pageNum" & "pageSize". It should return json array of certain number of products from collection, defined by slug, ordered by some value (price, alphabetical, manual etc.), ascending or descending. Request example: /?sections=section-name&collectionSlug=card-sleeves&sortBy=created-descending&pageNum=0
2). Create liquid snippet, which be included with 2 arguments - image asset name and optional indicator of center-cropping. It should output string with srcsets for that asset with predefined widths ( for example, following values in px: '180,240,360,540,720,1200')
3). An app injects an unwanted script in content_for_header. It has a hash, that changes over time. Injection has the following format:
"https:\/\/app.thirdparty.com\/abcde12345alphanumerichash1234\/shopify.js\u0026shop=my-shop-name.myshopify.com",
How do we get rid of that script (using liquid)?

----javaScript----
create function splitArrayIntoChunks(array, chunkSize),
which takes array of elements and chunk size as arguments and returns array of chunks (arrays of given size). Last chunk may have less elements, then its max size. Example:
splitArrayIntoChunks([1,2,3,4,5,6,7], 3):
[[1,2,3],[4,5,6],[7]]
splitArrayIntoChunks(['q','w','e','r','t','y'], 4):
[['q','w','e','r'],['t','y']]
function should be a one-liner arrow function (use Array.reduce)

----react+webpack----
Implement a component called App, that would render following components inside react fragment:
CustomHeader (has links to Home and 2 Customers with ids 1 and 2)
Routes (use react-router-dom)
CustomFooter (has links to Home and 2 Blogs with ids 1 and 2)

following routes should be supported:
/ (component Home)
/blog/:blogId (component Blog, displays blogId)
/customer/:customerId (component Customer, displayscustomerId )
components Home, Customer and Blogs should be split into separate bundles (https://reactjs.org/docs/code-splitting.html).

Also -
Needed skills: Shopify, PHP, liquid, google sheets.
Desiree skills: Shopify's apps - Matrixify, Mechanic

*No need for styling. Code should be formatted according to attached .eslintrc.json

2. Once you’ll apply to the job, we’ll send you a test to complete within 6 hours. We find it the best way to find the best developers for the job.

3. This is not mandatory but will definitely make you stand out from the crowd - You can create a short 2 minute video telling us why it is a good time for you to work with us and tell us a bit about yourself too (you can upload it to Youtube as “unlisted”).

Thank you and have a great one!
Related categories: PHP Shopify React.js LESS/Sass/SCSS Redux.js