We need a custom component built to bridge between a vendor supplied live updated product feed and the Eshop database on our website using the vendor supplied API.
Requirements are as follows:
1. Create an installable, stand-alone component/plugin/module as necessary for Joomla with administrator tools as required and detailed here. No editing of Joomla or Eshop files is allowed completely standalone component.
1a. Component must be able to read from a third-party vendors product feed using an API.
1b. Component must be able to inject products obtained in (1a) into the Eshop product database.
1c. Component must allow the mapping of those products to Eshop categories or create categories in Eshop which do not already exist. This will require an admin "tab" in the component page to display all API returned products in a list and provide a drop-down list of all Eshop categories next to each product so that the category the product should go into can be selected, as well as a field to create a new category for that product if needed. Once the category is selected any future import of this product will always go into this category until it is changed by the admin. Two checkboxes on each product line item should be on the form, 1 for "import" and one for "ignore".
1d. Component must add an admin configured "profit margin %" to each product which must be assigned by admin on a "per category" basis with the ability to over-ride this price increase on a "Per-Product" basis. (the price the API returns is the "API price" not the "price in eshop for that product". When products are updated in the database per the API, they will be ((API price)$[url removed, login to view] + (profit_margin % for that category) = (price in eshop for that product) $[url removed, login to view]). This will require a "tab" in the component to list all categories in Eshop and allow the admin to set a whole number % value to them, for example 15%. Only imported products from this component will be affected by this price increase, it will happen when products specific to this vendor are imported via the API.
1e. Component will list all products returned by the API and let the admin choose which are actually imported into Eshop. Not all products will be selected, Admin should choose which are imported from a list format with a checkbox to import it and a "Import Button" on that page of the component controller. Once imported the "SKU" number for that product is added to your tables to track that it is a product that should be updated in the Eshop database from that point forward, and all future api updates will include this product by default until removed by the admin in requirement(1f)
1f. Admin will need a tab in the component to list all products in the Eshop database that this component has imported (not ones added manually by the admin using Eshop menus) and remove a product from being included in the API import. It's "SKU" number will then be added to the "ignore" table in the components database and it will no longer be imported when the API CRON runs.
2. Create a CRON file which can be pointed to from the hosting company to run the API product updater on a set schedule, chosen by the amdin at the hosting company.
3. All files and naming should be titled "Chattanooga Shooting Supplies API for Eshop"
4. This project will require an Intellectual Property Agreement between the developer and myself. I will be listed as the author of the files.
5. Component should create any tables needed to do what needs to be done and follow Joomla table naming guidelines. So that someone working in the database can find the tables by name for this component.
6. The component should be able to do a database backup to a directory in the clients hosting plan BEFORE EVERY IMPORT.
7. all needed Eshop variables for products will be imported, image filename, description, etc.