Add random product to cart, try to order - web-scraping

Let's say that I have random list of shops. For each of this shop I need to find random product (based on button "add to cart" for example), then navigate to cart, put my first/last name, e-mail etc. and try to order product without buying it (I just need to see what kind of delivery methods are avaliable to choose).
Problems:
Shops doesn't have the same UI
Shops doesn't work on the same "engine"
Some shops have multipages (shop 1 -> find random product -> add to cart -> go to cart -> order -> fill 5 fields -> get delivery methods, shop 2 -> find random product -> add to cart -> click order -> click create account -> fill 10 fields -> get delivery methods)
In your opinion, is it even possible to do? For now I'm trying webscrapping, UIPath, learning more about webcrawler. What in your opinion would be best methods to do it?
Thanks in advance!

what are you asking exactly? is it possible to write 1 code module to work with any of the sites? No, as UiPath recognition is based on UI, so for each UI you'll need to create separate sequence. you may split the whole flow into actions (for example, navigate, find product etc) where you accept element selectors/paths as arguments and reuse some of the workflows several times. it makes sense to create a separate workflow for some action if it's repeated many times in the same or very similar way and if this action is represented by several steps - I mean it doesn't make sense to create a modular workflow for input username as far as it is just one activity. but in general, as far as UiPath depends on the UI, I believe you'll need to code most of the shops separately.

Related

Google Analytics - Track Funnel With Loop

I've got a process on my website that I would like to track as a funnel, except I am unclear on how to do so since the process has a loop.
We are building a single-page tool that calculates the number of products the user needs for their home, which is based on how many rooms the home has and the details of each room. Here is an example workflow:
Create Home
Add Room 1, set details, click Save
Add Room 2, set details, click Save
Edit Room 1 details, click Save
Click Analyze
As you can see from steps 1 and 2, the user can add a variable number of rooms. From step 4 you can see that they can go back to edit a room after they've created it.
I would like to see where users drop off, so I'd like to see this funnel, minimally:
Create Home -> Save at least 1 room -> Click Analyze
If I track "Save Room" as a page view (/save-room) there will be a lot of drop off once users start to add more rooms: it will look like they exit the funnel at /save-room by going to /save-room... right? Should I control this with Javascript to make sure that the /save-room pageview is only sent once per process? Is there a better way?
Additionally, I would like to track whether people with larger homes (more rooms) drop off more frequently. So if I prevent additional /save-room page views from being sent, I would lose this visibility. Should I track all of these operations as events as well?
Thanks in advance!
Funnels do (literally) not have loops (that's one of the reasons Google introduced flow reports).
One possible way would be to create a session based custom metric. You set it to 1 at the first "save room" pageload, then instead of doing more "save room" pageviews you track an event for each additional room and increment the custom metric in the event (thus saving the number of rooms; you'd need to create a custom report, since custom metrics do not show up in standard reports, but you would get the info for the number of rooms and still be able to use the funnel visualization).

Best Way to Pass variable to Woocommerce Product?

Here is the setup.
Customer fills out form of information for product specifications. This creates an entry in the db with a unique detailsID.
They then are taken to a product page, with many variables. They select the variable product and checkout.
Now in the db they have an order as well as a separate table with the details of their request.
What is the best way to connect the product they bought with the detailsID?
I would like to basically pass the detailsID to the product page, then add this detailsID to the product. Or add the orderID back into the details table.
I keep going around whether to add this as meta data, or use a session, or just do post order logic to add the order ID back into the details table.
I really just need to link the two once the order completes but am not sure the best method to do this. I am pretty new to Woocommerce so don't know a lot of the hooks yet.
Thank you so much for your suggestions!
After a lot of research and experimenting here is the method I have decided on. This seems to add the information in a variety of places to make it easy to track orders and to insure that the customer is getting the customized product they want.
add custom data to woocommerce
I am using this method very close to how it is spelled out in this great article. This was really helpful for me being a woocommerce newb.

Adobe CQ / AEM: Customize the workflow on Activate

This is my current understanding of the events on pressing the Activate button:
If the user has replication permission, the content is sent to the dispatcher.
If the user does not have replicate, the Request for Activate workflow is run. Out of the Box this performs two steps which are both sent to the Administrators group.
If I change the OOB Request for Activation workflow to assign to another group then this group gets the message in their CQ Inbox instead.
My requirement is that I have multiple websites belonging to different divisions within the company, meaning that each has separate groups for users who can only author content and users who can Approve/Activate that content. In one case there is an additional requirement for the content in the careers section to be approved by the HR team only.
How can I alter the workflow to achieve these requirements?
I can think of two ways of doing this:
1) Change the OOB box workflow to use OR steps to switch to differnt groups based on the content path. This could get very complex when dealing with pages for both pages and assets, and the special conditions like the careers example.
2) Create a custom step that runs Java code that uses the AccessControlManager class to look for replicate permissions on the node, and if there aren't any then to traverse up the tree until it finds a node with permissions.
I've gone with option 1) for a similar problem.
If your main concern is having too many branches in your OR Split, maybe there's an opportunity to break down the workflow's decisions into multiple steps, instead of having one decision point where it branches out to many different paths.
For example, you might first split by what site the payload is on, and then split again based on user type, or section of the site. So, something like:
site 1
section 1
role 1
role 2
section 2
site 2
... and so on, where each level of indentation represents a separate OR Split.
If you use the Container Step to trigger a sub-workflow at each of these decision points, that may help keep your workflow more organised.
Because I didn't love the idea of changing the OOB Request for Activation workflow, I minimised that by making the first step an OR Split that does a generic check - basically:
Pseudo-code:
if (we're in one of the sites that's subject to my custom workflows) {
Container step that points to my main custom workflow;
} else {
Continue with the default Request for Activation workflow steps;
}
That way you make minimal changes to the OOB workflow, and leave yourself open to running the default workflow if you set up a new site on the same instance, and don't want it subject to your custom workflow.
We've created a custom property in each page, "page owner", which in fact is a pointer to a group (I wish we have made it inheritable through the tree since beginning). Then workflow was customized so that page owner group receives this in their inbox for approval.

Is that possible to filter the next activity based on the user group and show in the drop down box?

I have a scenario as given in the below workflow diagram using core service.
First step is manual step author will create/edit content and finish the activity and it is assigned to everyone.
In the second step, I want to do filter the users based on their groups.
In the third step, couple of scenario
a. If the user belongs to group "A" I want to list out all the next 3 available activities, User A can choose any one of these 3 activities.
b. If the user belongs to group "B", I want to list out "Reviewer" and "Approver" activity as next activity, user b can select any one of these 2.
Can any one give some idea to achieve this?
You should turn your problem around. Yes, it is possible, but the amount of knowledge required will be a huge barrier for you to implement.
So, instead think about it differently.
Change your "Filter Next activity" automated activity to an automatic decision, and have your code that determines the group membership also determine which activity should be next
have 2 forward paths from there - 1 for the users of Group A, other for the users of group B
on each forward path, have different selection options. You may try having links to the same activity from 2 different manual decisions, I don't know if that works though.
Worst case scenario you'll have repeated activities (not in name, but in function), and you saved yourself about 2 months of headaches trying to cope with the learning curve of doing CME extensions.
The simple answer to your initial question is: "no, this functionality is not out of the box".
But of course many things are possible by implementing critical parts yourself.
You'd probably need a GUI extension of some sorts to allow the user to pick from a list.
You'd need to store the information between phases of your custom solution.
And you'd then need some code in an automated workflow activity to implement the picking of the next activity.
Most of these steps have been covered in other questions already. Did you have a look for each of these? If so, you might want to share how far you already got and where you are stuck.

Multiple Prices for a product in ubercart?

My product is a book. Each books will be sold in 3 formats.
1) Print
2) Online
3) Print + Online
All the three prices for each book will be different.
If i add the book as different product. I have to add all the content like Index, Author details etc. 3 times for each book.
Is there any way where i can allow admin to add 3 prices for each product and user can select any one of the price?
Thanks & Regards,
Satya.
Kevin is right, but there is a problem relating to the purely hardcopy version.
You have to attach a "Feature" to the product, which is the digital asset, so that when they buy they get access to the download. I believe this is for the whole product.
So, if you're wrapping them all in one product you can only offer: Online or Online and Print.
But really there is no reason to just get the print version since it doesn't cost you anything to throw in the online version.
No, you do not need to create 3 different products, unless the SKU is different.
You can add Attributes for this product, lets call it 'Format'. You can then add 3 options to that attribute, Print, Online, Print + Online. Then when you edit the product, you can adjust the pricing for those options (ex. Print +$10).
The cost is added to the base price of the product. So, you could make the book $0, and let these options drive the cost. Example Print $35, Online $25, Print and Online $40.
There are a couple of ways you could solve this but this is how I would probably do it.
satya
You can use a default general pattern for all products while building attributes and later for each product you can override it by editing the product.
For each product you can vary the range.
You can actually set the digital portion to be attribute dependent.
Create an attribute called "Format" and give it your three options (Print, Online, Print and Online) with the appropriate price settings for each.
Add this attribute to your product.
You should see an "adjustments" subtab on the edit page for the product now, and here you can adjust the SKU depending on the Format that is selected.
On the Features tab, you can then specify the adjusted SKU's for the digital download (you may need to add the download feature twice, once for each SKU that should have it)

Resources