-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Streamlined Free Listings plus Paid Ads for the onboarding flow #1610
Comments
Hello hello, we need to do a small update to Step 1 (Connect accounts) of the FL+ Ads flow. Please see the original conversation here The update is to add a CSS disclaimer on the said step/page. As per Google: "Our requirement is that platform’s UI should include instructions on how to work with a third-party Comparison Shopping Service early in the onboarding flow. We have flexibility with the language, as long as it is clear to merchants." The change has been added into the design on Figma |
Objective
💡 We will create a shared branch
feature/1610-streamlined-onboarding
. All relevant developments should be branched from it and merged back into it. And open a PR to merge the shared branch to develop once the overall features get ready to release.Terminology
Technical - Frontend
The UI changes are mainly applied to the onboarding flow, and some shared components used in the Edit free listings page and Set up paid campaign page might be changed respectively.
Most requirements are listed in pcTzPl-Kc-p2#the-flow-breakdown and the related Figma document. This list only outlines other changes besides the p2 post.
📌 Adjust the setting sections in the onboarding steps
📌 Update other UI changes
Refer to Landing Page, Step 1: Set up accounts, Step 2: Configure product listings, Step 3: Confirm store requirements, and Submission Success in pcTzPl-Kc-p2#the-flow-breakdown
📌 Product feed status section
Refer to Step 4.1: Setting up Paid Ads in pcTzPl-Kc-p2#the-flow-breakdown
📌 Boost product listings section
Refer to Card 2 in Step 4: Complete your campaign with paid ads in pcTzPl-Kc-p2#the-flow-breakdown
Site logo: https://wordpress.com/support/site-logo/
📌 Google Ads account section
Refer to Step 4.1: Setting up Paid Ads in pcTzPl-Kc-p2#the-flow-breakdown
📌 Ads audience and budget sections
Refer to Step 4.1: Setting up Paid Ads in pcTzPl-Kc-p2#the-flow-breakdown
📌 Billing Ads card
Refer to Step 4.2: Set up Billing Ads in pcTzPl-Kc-p2#the-flow-breakdown
📌 Post-onboarding setup flow
📌 Client states management and API integration
📌 Event tracking
gla_onboarding_complete_button_click
for A and C with these properties:opened_paid_ads_setup
: yes | nogoogle_ads_account_status
: unknown | connected | disconnected | incompletebilling_method_status
: unknown | pending | approved | cancelledcampaign_form_validation
: unknown | valid | invalidgla_onboarding_open_paid_ads_setup_button_click
for Bgla_onboarding_complete_with_paid_ads_button_click
for D# Technical - Backend
# 📌 A new API for onboarding completedIn the previous onboarding flow the last API frontend calls is3.~mc/settings/sync
. It will set the timestamp to the optiongla_mc_setup_completed_at
. In the new onboarding flow, this API will be called again in step 4 to ensure all settings are updated if a merchant changes anything after they enter step 4 and then back to steps 1We decide to create a new APImc/setup/complete
and move the logic of setting the timestamp to the optiongla_mc_setup_completed_at
to this new API. (MC_SETUP_COMPLETED_AT
in PHP code)Create a new APIPOST mc/setup/complete
to set the timestamp to the optiongla_mc_setup_completed_at
.Payload: No payloadResponse:Status:201 Created
Data: No dataIn the APImc/settings/sync
, do not set the timestamp to the optiongla_mc_setup_completed_at
.# 📌 Extendsmc/product-statistics
API to return # of syncable productsIn the step 4 of the new onboarding flow, we will display Your product listings are ready to be uploaded • # products on the first card. The # in the wording is the number of products that are ready to be synced. After some discussion on the project post (pcTzPl-I1-p2#comment-1604) we decide the extend an existing API mc/product-statistics and return a new data syncable_products in the response data. We can reuse an existing method find_sync_ready_products in src/Product/ProductRepository.phpWe will create two new APIs, GET mc/syncable-products-count and POST mc/syncable-products-count for this requirement.In API mc/product-statistics, modify the logic to return the following new data:Revisit the logic of display product overview in the GLA product feed page. The sum of the products there should be the number of syncable products, rather the number of total products in WooCommerce.# 📌 Syncable Products Count
In the step 4 of the new onboarding flow, we will display Your product listings are ready to be uploaded • # products on the first card. The
#
in the wording is the number of products that are ready to be synced. We will create two new APIs,GET mc/syncable-products-count
andPOST mc/syncable-products-count
for this requirement.GET mc/syncable-products-count
- Free Listings + Paid Ads: Add two APIs to retrieve the syncable products count and schedule the job to calculate the count #1699POST mc/syncable-products-count
# 📌 Verify all the logics depend on
gla_ads_setup_completed_at
Frontend will call the API
ads/setup/complete
if merchants set up Paid Ads in step 4, and this API will set the timestamp to the optiongla_ads_setup_completed_at
. (ADS_SETUP_COMPLETED_AT
in PHP code)gla_ads_setup_completed_at
, update code if needed.# 📌 Update the step name logic returned by the API
mc/setup
Since some of the steps in the new onboarding flow are changed in order or merged together.
mc/setup
. Free Listings + Paid Ads: Add step 4 to the onboarding flow #1619# 📌 Return merchants key product data (e.g. bestselling)
If we aim at returning the bestselling product, we don’t need to add a new API for it. Instead, we can extend the existing API
mc/product-feed
and doing some extra meta query to get the product that has largest total sales. However, we would need to add extra returned data such as product image and price for the APImc/product-feed
. More information can be found in pcTzPl-I1-p2#comment-1533.mc/product-feed
API to be able to filter the bestselling product - Free Listings + Paid Ads: Update product feed API to return the bestselling product #1681total_sales
for the query parameterorderby
.per_page
=1
,orderby
=total_sales
, andorder
=desc
to get the bestselling product.Example:
siteLogoUrl
intoglaData
for frontend to use - Free Listings + Paid Ads: Update product feed API to return the bestselling product #1681Frontend needs to display the site logo, instead of putting it in
product-feed
AP, it's more appropriate to add it inglaData.siteLogoUrl
.Example on how to get the custom site logo url:
Note that if the site admin does not upload a custom site logo, the above code will return
false
.In
glaData.siteLogoUrl
it will benull
.Links
Project:
Figma:
The text was updated successfully, but these errors were encountered: