I have a site that is made in wordpress. I think it’s amazon too. I need fixes done in 15 days or less. I’m willing to pay $125-165 for this work.
Alot of the parts in the description have pictures. Message me I’ll send you a word doc with all the pictures in it.
What I need done is:
1. Association of post to product
So right now when a user comes to a post (either from an internal or external link) products for the category that the post belongs to are displayed. This happens via a custom table amazon_attributes that holds product information. WordPress categories and products are linked together via the product brand (cf. Appnedix for data model). This behaviour has to be changed.
There will be a many to many link table between WP posts and the products in the amazon_attributes table. This will link posts to products. Currently when the user gets to a post from a link the products for the brand/category that the post is in are displayed. In future the association between posts and product needs to be looked up from this new table.
The products to be displayed should be in the order determined by post_assortment_match table content related to the ID of the post.
This should be ordered from higest to lowest match_rank values, then sales rank (lowest to highest).
If there are no more products that meet the criteria, the remaining products should be displayed by their sales_rank column from amazon_attributes table.
In the example below there are only 3 products found related to the post so only 3 records there. The next items, 4th, 5th and so on, should the products from amazon_attributes except those 3 (not listed before) and based only on sales ranking.
JOIN References:
wp_posts.ID = post_assortment_match.ID
post_assortment_match.id_prod = amazon_attributes.asin
The illustrate better for post ID=6 this would be amazon_attributes records identical as result from the query:
SELECT amazon_attributes.*
FROM post_assortment_match
RIGHT OUTER
JOIN amazon_attributes
ON post_assortment_match.id_prod = amazon_attributes.asin
AND post_assortment_match.ID = 6
WHERE is_active=1
ORDER BY match_rank DESC, post_assortment_match.sales_rank, amazon_attributes.sales_rank
2. Product Filters
2.1 Overview
Currently there is only one filter for products set up. This is the brand filter. When a user clicks on a brand link in the right hand side bar the products will be filtered by this brand. Technically this is currently realised via a WordPress category. The category equals an Amazon product brand and products are held in a customised non WordPress table (amazon_attributes). When the user clicks on a brand, e.g. Example product 1 then all products where brand equals Example product 1 will be displayed. The product display is currently implemented using Ajax technology. I have attached the original spec for the site to help you better understand the objectives of the initial implementation.
The current limited filter logic has to be changed. We will now require multiple product filters such as shoe type, brand, colour etc. From a technical point of view the link between WordPress category and the product brand will be discontinued. The filter items will be based on customized tables outside the core WordPress schema (cf Appnedix for data model).
The filter system as defined in this section of the document is based on the filter system at Yo(remove_this)ox.com. So if you need to get a working example of what we are trying to achieve have a look there.
2.2 Implementation at the frontend
– The default search order is BESTSELLERS (sales_rank).
– When the user mouses over a filter item then the link needs to be underlined
– When the user clicks on a filter item checkbox then the product list based on the filter is retrieved. Subsequently the filter item checkbox is marked as black.
– Clear a selection. Beside each filter type an option in the form of a link needs to be given that will allow the selection to be cleared. This will contain the words Clear <name of filter type>
When the user clicks on the Clear categories all filters for the filter type are cleared. In the figure above the filter type for COIN PURSES will be cleared and the product display adapted accordingly.
The Clear categories link is underlined when the user mouses over it.
– The space for the right hand side bar needs to be expanded by about 10-15%. The space for the far right hand side bar needs to be reduced by about 10-15%.
– If the user selects multiple filter items across different filter types then all of the filters need to be applied, e.g. if he selects a price range between 180 and 200 and white as colour both filters need to be applied. Filters within a filter type need to be ORed, filters across filter types need to be ANDed, e.g. Size IN (‘M’,’L’) AND colours IN (‘Red’,’Black’).
– If there are more than 15 filter items in a product filter then those items need to be displayed in a scrollbar, e.g. the product filter categories in the above figure contains more than 15 filter items and they are displayed in a scrollbar.
– When a user selects a product filter, the product filters across all filter types need to dynamically adapt to the selection and only filter items where products exist for will be displayed, e.g. if the user selects filter item XXXL in the product filter SIZES then only filter items Grey and Green are displayed as only products for Grey and Green in combination with XXXL exist in the product table, cf. yoox.com for a working example.
– Reset search. When a user clicks on the Reset Search link then all filters will be removed and the full product list will be displayed ordered by BESTSELLERS (sales rank).
– When a user clicks on any of the top level navigation items (Home, Discounts, Bestsellers, Most Popular) then all filters will be removed and the product list will be displayed ordered as per current implementation. Items per page will be retained. Paging will be reset to page one.
– When a user clicks on one of the “Items per page links” then all filters and the sort order will be retained. Paging will be reset to Page one.
– If the user pages through a filtered product selection, e.g. if he pages to page three and then changes his filter selection by adding/removing a filter or resetting the search, then paging will be reset to page one, sort order will default back to BESTSELLERS
– If the user adds a filter and then pages through the product list and changes the sort order then the product list will be sorted by the selected sort order, the filters and Items per Page will be retained, and paging will be reset to page one.
2.3 Implementation at Backend
The product filter lists will need to be built up dynamically from table attribute_type.
At the frontend the filter types will be displayed as per the sequence no (column seq_no) defined in attribute_type, e.g if Categories has been given seq_no 1 then this will be displayed first. Sizes in the figure above has Seq No 2 and will be displayed as the second filter type. Only filter types that are set as active (column active = 1 in table attribute_type) are displayed.
Logging – SQL queries that are executed in relation to the product filter functionality need to be optionally logged. There needs to be a switch implemented as a WordPress plugin that enables or disables logging. Logging of SQL queries can either be written to a text file on the server or be stored in a database table. The logging functionality is needed for debugging reasons.
2.4 Price slider
A price slider needs to be introduced. For a working example with the functionality required, have a look at endless.com
The price slider will not be based on the filters plugin. It will be static and will always be displayed on the site. It displays the price range for the currently chosen product selection. The price filter will filter on the price column in the amazon_attributes table, cf. Appendix 1 for data model.
2.5 Technology
The product filter solution needs to be implemented as Ajax calls.
2.6 Related database tables
attribute_type – table keeps filter type information, e.g. Categories, Sizes
attribute – holds possible filter type values, e.g. Green, Black, M, L etc.
assortment_attribute – maintains the M:N relationship between products and their attribute values
amazon_attributes – holds product information
3. Product Visibility (Active flag)
Only the products with the flag is_active=1 set should be processed by all PHP scripts. In other words the not active (is_active=0) products should be ignored by all PHP scripts/mechanisms. This is a change to the current implementation and requires revisiting all the code and should be also applied as a condition to all changes described in this document, in particular:
– displaying products related to the posts
– filtering products
– displaying products on the site
4. Blog page (top level nav)
The following items should only appear on the blog page. They should appear on the right hand side.
– Add a tag cloud
– Add a most popular post feature (use an existing plugin)
– Add the blogroll widget
5. Align logo
Align logo with top level navigation
6. SORT BY filter
Remove SORT BY filter for Discounts, Bestsellers, or Most Popular
When the user clicks on one of the top level pages (Discounts, Bestsellers, Most Popular) then the SORT BY Filter should not be displayed anymore
7. Modify X of Y Shoes
Needs to be replaced by
8. Default to Bestsellers sort order, return to page one
When a user pages through the products and subsequently clicks on one of the following navigation elements the page number needs to be reset to page one:
– User clicks on Items per page. Currently selected sort order is kept. Product filters are kept.
– User changes a product filter. Currently selected sort order is kept. Items per page selection is kept.
– User selects Discounts, Bestsellers, Most Popular. Items per page selection is kept.
9. Browsers
Currently the following browsers are supported: Firefox >= 2, IE >= 7, Google Chrome >= 4, Safari. This needs to be retained.
10. Invoice
I need an invoice for the work performed.
11. Remove banner space at top
Change the look of one of the adverstisments.
12. Fix one bug in stylesheet
When a user comes from an external link to the site and starts paging through the records, the products are displayed incorrectly. Have a look at the site www.holida(remove_this)ys-in-ireland.com for sample links.
The stylesheet needs to be adapted to fix this.
13. is_active field in amazon_attributes
We have introduced an is_active indicator in the amazon_attributes table. As part of this change only products that have is_active = 1 should be displayed on the site.