Drupal, PHP, MySQL, Angular
Challenges and Solutions:
Challenge: To manage the orders placed on Google Shopping Action through the Drupal admin and one other internal application built using Angular
Solution: At first, “Google Shopping Action” API details were used followed by integrating the Drupal eCommerce store to the Google Shopping Action merchant account. The client is then able to manage the orders and also insert tracking information to the orders from the Drupal admin panel; these changes are updated on the “Google Shopping Action” on a scheduled basis.
Challenge: To import the completed orders into the QuickBooks online
Solution: Usually the orders and the invoices are all maintained in Quickbooks online. The client wanted to store all this order information from Google Shopping into a Quickbooks account. Quickbook SDK was used and Quickbooks online was integrated into the Drupal store. A custom script was developed to filter “completed” orders and import them into the Quickbooks along with payment details. The token used in the SDK expires every 30 days. Quickbooks provides a refresh token that could be used to generate a new token after the expiration. As soon as a new token was generated, a new fresh token would be provided as well which could be used after 30 days to generate the next new token.
Challenge: To change the various stages of the order on the Drupal side, the orders would be moved to different stages based on rules, user actions, etc.
Solution: The client wanted to change the default order flow of Drupal and wanted to add the following to the Drupal order flow:
Handle Drop-ship Validation
Print Packing Slip
These stages were included in the application using the Drupal rule-set, executing the custom scripts via CRON jobs.
Challenge: To automate the Purchase Order (PO) for 3rd party vendors
Solution: The client has many 3rd party vendors whose products are being sold on the Drupal eCommerce store. Whenever an order is received for the 3rd party vendors, Drupal checks the inventory for stock availability, if the stocks are unavailable, then a Purchase Order (PO) is created and sent to the 3rd party vendors requesting for the stocks. After the stocks are piled up, the order is fulfilled through Drupal. The client wanted to automate this PO create/send process. A custom script was developed to track the orders with dropship status and create a PO and send an email with PO attached.
Challenge: To improve the performance of the Drupal website
Solution: Drupal performance was improved by separating the front-end from the backend. The Database has been kept as the core and the API endpoint has been introduced to the front end via Next JS. For the first level of the optimization, the data has been updated into Flat tables for caching. After this, the response of the API endpoint has been caught via Redis. These steps further helped in optimizing the performance of the website.