Development of a WooCommerce Plugin with Multi Store Shopify Integration
Budget: -
HOURLY / PART_TIME
⭐ 0.00 (0)
wordpress, php, api-integration, javascript, mysql, woocommerce, shopify
# Development of a WooCommerce Plugin with Multi Store Shopify Integration, Secure Routing, and Correct Order Tracking
## Project Description
I am looking for a developer experienced in WordPress, WooCommerce, PHP, JavaScript, Shopify Admin API, webhooks, and web application architecture to rebuild from scratch an integration system between a main WooCommerce store and multiple Shopify stores.
The current system already has a functional flow, but it presents serious security, tracking, data integrity, and product identification failures in the orders. For this reason, I am not looking only for specific fixes. The objective is to develop a new solution that is documented, secure, testable, and ready for production.
The system must camouflage the traffic origin because Shopify must not have access to the main domain, which in this case is the WooCommerce store where the lead’s journey begins.
The current plugin follows this flow:
WooCommerce → intermediary domain → PageFly → Shopify cart → native checkout
The customer cannot go directly to the checkout because this triggers alerts for Shopify. Therefore, the customer lands on a PageFly page where there is a text and a button that redirects to the checkout, making the journey after arriving on Shopify appear more “natural.”
All real products that the customer can choose are registered in WooCommerce. They all have the same price per unit.
In Shopify, it is not necessary to register all these products again. There are only two generic products:
Generic product for 1 unit, with the value of one unit.
Generic product for 2 units, with the total value of two units.
When the customer selects one product in WooCommerce, the customer is directed to the generic 1 unit product in Shopify. When the customer selects two products, the customer is directed to the generic 2 unit product.
The IDs of the products selected in WooCommerce are sent together with the purchase and appear in the Shopify order information. In this way, Shopify processes only the payment, while the IDs show exactly which real products the customer purchased and which products must be shipped.
## Expected Flow
1. The customer accesses the main store developed in WooCommerce.
2. The customer selects one or several products, including variations and quantities.
3. The system selects one of the Shopify stores registered in the dashboard, following a configurable distribution rule.
4. When clicking to continue the purchase, the plugin redirects the customer to an intermediary domain where it must contain some type of blocking of headers, cookies, or any other information that could reveal the main WooCommerce domain after the customer is redirected to Shopify. This redirection may be performed in another way, provided that there is no sharing of the traffic origin.
5. The customer is directed to the page corresponding to the selected Shopify store, without sharing the origin of this access.
6. When continuing to the checkout, the system must maintain the exact association between the WooCommerce products, the quantities, the variations, and the order placed in Shopify.
7. After the purchase, the Shopify order must make it possible to identify with total clarity which products were originally purchased in WooCommerce.
## Main Objective
Create a reliable multi store system to operate several authorized Shopify stores from a single WordPress dashboard, maintaining the integrity of the order information and masking the access origin.
The solution must use signed sessions and secure communication.
## Administrative Dashboard Features
The plugin must have a dashboard inside WordPress with the following functions:
1. Register, edit, activate, and deactivate Shopify stores.
2. Configure an internal name for each store.
3. Configure the intermediary domain for each store.
4. Configure the final domain or address of the Shopify or PageFly page according to the number of items in the cart.
5. Configure distribution rules between the stores.
6. Allow sequential distribution, distribution by percentage weight, or distribution by configured capacity.
7. Allow a store to be paused automatically when it is unavailable.
8. Allow the active store to be changed manually.
9. Display the number of sessions sent to each store.
10. Have a diagnostics and logs area.
## Distribution Rules
The distribution cannot depend on a simple counter stored in the browser.
The control must be developed to prevent simultaneous accesses from being sent incorrectly.
The selected store must remain linked to that session until completion or expiration. Page refreshes, returning through the browser, or clicks.
## Correct Product Identification
This is one of the most important points of the project.
The system must support:
1. An unlimited quantity of products in the cart.
2. Simple products.
3. Variable products.
4. Different quantities of the same product.
5. WooCommerce product ID.
6. Unique session identifier.
The data cannot be limited to only two products.
The solution must not automatically duplicate the ID of the first product to represent two units or a second product.
## Recommended Architecture for Orders
The original cart must be saved in an immutable session.
Each session must receive a random and unpredictable identifier.
After the Shopify order is created, the system must associate:
1. Internal session ID.
2. WooCommerce order ID or purchase intention ID.
3. Shopify order ID.
4. Name of the Shopify store used.
5. Original products.
6. Quantities.
7. Date and time.
8. Reconciliation status.
The summarized information may be recorded in the Shopify order through compatible fields, such as order attributes, metafields, or an internal note.
The main source of the information must be the system database and not only a free text note.
## Privacy and Separation Between the Environments
The project must eliminate the sharing of the traffic origin between WooCommerce and Shopify. Under no circumstances may Shopify have access to the main domain because, if data is cross referenced, there is a risk of the accounts being banned. For this reason, the intermediary domain is used.
In addition to marking the IDs of the products that the customer selected in WooCommerce, the structure must avoid sending information such as Referer, Origin, HTTP headers, cookies, or any other attribution through which Shopify could gain access to the main domain.
The developer must clearly explain how to prevent the traffic origin from being shared and which information remains visible because of limitations of the browser, the network, or the platform itself.
## Database
The solution must use its own tables in the WordPress database or a separate database service.
The database must record at least:
1. Stores.
2. Distribution settings.
3. Sessions.
4. Items from each session.
5. Session events.
6. Related Shopify orders.
## Logs and Diagnostics
The dashboard must have searchable logs by:
1. Session ID.
2. WooCommerce product ID.
3. Shopify order ID.
4. Store used.
5. Date.
6. Status.
7. Error type.
## Mandatory Tests
Before delivery, the professional must test at least the following scenarios:
1. Purchase with one product.
2. Purchase with two different products.
3. Purchase with more than two products.
4. Purchase with several units of the same product.
5. Purchase with a variable product.
6. Purchase with two variable products.
7. Confirmation that the traffic origin is not shared.
8. Test the entire redirection system and ensure that Shopify does not have access to the main domain, WooCommerce.
9. Refreshing the intermediary page.
10. Refreshing PageFly.
11. Double clicking the button.
12. Slow internet connection.
13. Two simultaneous purchases.
14. A large volume of simultaneous accesses.
15. Rotation between all registered stores.
16. Store paused during a session.
17. Paid order with correct reconciliation.
18. Order without a match.
19. Confirmation that the traffic origin is not shared.
Open job