Jump to content

Recommended Posts

Posted

The orders placed 7 days ago are now saying fulfilled, those I tried to place the same day (last wed) but afterwards for the postal ones and late responding parents which were stuck on pending all week I've now managed to approve (logging in, opening 2 orders and clicking approve on each took over 45 minutes). But I can't upload this week's order. Every time I try to upload a csv it claims there are too many errors. When I managed to get the error report downloaded it says "Email template id - Does not match an email template id that we have in the system" or that the headers rows don't match. Both are not actually errors, the fault is at their end.

 

Obviously there isn't anything wrong with my upload - it is the same lists we uploaded last week, just consolidated.

 

If only there was some system whereby the number of FSM students and schools in the country could have been made known to the government and Edenred beforehand so they would know the size of demand to expect and ensure they could provision resources adequately. Like some sort of school census or something, done several times a year....

 

Teething troubles I can understand, but to be this unworkable for this long is truly graylingesque.

Posted

Just wondering if anyone can give experience on lead time from creating new order this week, to e-codes actually going out and the order showing as Fulfilled. I've seen 3 days on a small order.

Admin site responsiveness has clearly improved, but the issue will continue to be the FSM site that parents use. That Trustpilot page makes for painful reading on that side of it if you have a look!

Posted
Just wondering if anyone can give experience on lead time from creating new order this week, to e-codes actually going out and the order showing as Fulfilled. I've seen 3 days on a small order.

Admin site responsiveness has clearly improved, but the issue will continue to be the FSM site that parents use. That Trustpilot page makes for painful reading on that side of it if you have a look!

I put in an order for about 120 on Monday, they went to "fulfilled" status last night and today I am seeing some parents have manged to redeem them - so just over three working days.

Posted

Is anyone able to login today?

 

Our user keeps getting password error messages after about ten minutes of being sat at the login screen - but is certain the password is correct......

Posted

Yes - the site did that for a while on Saturday morning, when it appeared to be responding well first thing, then wouldn't accept a valid password mid morning but would happily allow a password reset then still not let you in, then sorted itself later. I assumed they were doing yet more maintenance at that time.

 

But today its bound to be load issues again. Good to see all those updates are having such a great effect!

Posted
Would be better if they had a queuing system like most retail websites are now doing. At least then you would know when you could get access to the site.
Posted

 

We asked the DFE that question and got the following reply back so I think we are OK to use alternatives.

 

Thank you for your email and apologies about the issues you have been receiving, as you can imagine the system is very busy at the moment and although a lot are having difficulties, Edenred are working day and night to provide help and support to schools in order to redeem vouchers.

 

Our guidance encourages schools to use the national voucher scheme wherever possible, but states that we will reimburse schools if they deceide to take an alternative approach.

 

You may also find the funding guidance (here) helps you in adapting an alternative process to enable funding towards children’s meals.

 

We hope this helps in assisting you to move things forward.

Posted

Most school and trust Finance bods will have looked at that exceptional costs funding guidance and the allowance limits, and decided to take a risk averse financial position of not wanting to commit expenditure direct to Wonde (or another) where there isn't a cast iron guarantee they will be re-reimbursed, when they can persevere with an approved system that doesn't require them to do that.

 

Considering the pain to those that should actually be benefiting right now, you could argue that to use the approved system in its current form is crazy when there may be an alternative that is better put together, but the above seems to be the factor that would influence their decision far more, don't you think?

Posted
Most school and trust Finance bods will have looked at that exceptional costs funding guidance and the allowance limits, and decided to take a risk averse financial position of not wanting to commit expenditure direct to Wonde (or another) where there isn't a cast iron guarantee they will be re-reimbursed, when they can persevere with an approved system that doesn't require them to do that.

Considering the pain to those that should actually be benefiting right now, you could argue that to use the approved system in its current form is crazy when there may be an alternative that is better put together, but the above seems to be the factor that would influence their decision far more, don't you think?

 

Possibly, but it depends on the context and how many of your pupils are entitled to FSM.

 

if I were in SLT in a 1,200 person school with 5% FSM and saw that the finance bods were prioritising the purse before prioritising FSM students were getting fed, I'm not entirely sure I'd be pleasant about that.

If it was a school with 30% FSM and they were doing that, I'd perhaps take it in a different context.

I've seen examples where parents have been issued the Edenred vouchers only to have them rejected at the till. I can't imagine how awful that must be to a parent who is already going through it enough to have to be put on the FSM register in the first place, to then be rejected like that.

Posted

Totally agree - would be a decision based on context. Was just highlighting that there is one major difference that could easily drive the decision to not be the one that those administrating the system would want to be taken, in the best interests of those in need. The gov ought to be taking steps to eliminate that dilemma, but they seem intent on pursuing with a system which, despite the positive "update" messages being put out, simply isn't fit for daily administrative use.

 

I see today they have put a queuing system in place. That surely should be on the order stage, not on the main login page? All i want to do today is log in and check if an order has gone to fulfilled, or check if any from a previous order have been redeemed, in order to deal with queries from parents. That's just all site traversal which should put virtually no load on any key processing part of the site surely? But no - you're not allowed on the site at all.

 

It's stuff like that which should make it a no brainer to ditch it in favour of an alternative method. But then that financial factor could force schools to be dictated by their trusts to persevere with the approved system, while we all wait and wait and wait!

Posted

The trouble is that the initial instructions were to the effect that you must use Edenred, and that reimbursement was only available for your own efforts prior to the official system being put in place. Hence everyone started down the Edenred path, and whilst the gov might be reversing their position a little now and hinting that you could be reimbursed for using alternative systems, we've already got a week's worth of vouchers out there from Edenred, and 4 weeks worth on order for whenever they feel like processing them, 2 weeks of that is for the Easter holidays, when families weren't expecting any free meals allowance until the government blurted out a change of policy in the midst of a press conference (I don't disagree with it, but I doubt it was thoroughly planned!). Given that we have no idea how long current circumstances will last (which is fair enough - I'm not expecting to know what date we're returning to school at the moment) I can't blame anyone for persisting with the system we're supposed to use, which we know will not hurt school funds, particularly as we're continually reassured how Edenred are getting it together and its always on the cusp of working properly.

 

I reiterate my earlier point, which is that all of this is unnecessary. The vouchers can only be used in person, not on online orders (fat lot of good that does if you're self isolating), they can only be used at 6 big supermarkets - surprisingly not many of our FSM families shop at M&S food (20 miles away), and there isn't a waitrose within 30 miles. Most of our poorer families shop at Lidl and Aldi, which the vouchers don't cover. What should have been done is that Child Benefit payments for school age children of those in receipt of universal credit should have been increased by £15 per week per child. No extra hoops to jump through, no codes to redeem, no waiting for weeks, no slice of profits going to Edenred, no parents unable to redeem codes because the website doesn't work, no rejection at the till, no human errors by school staff trying to quickly administer new systems.

  • Thanks 4
Posted (edited)

The function below essentually redeems the vouchers from the codes that they send over in the CSV file (if that's how you are manging it)

 

function Create-GiftCard{    [CmdletBinding(DefaultParameterSetName='Parameter Set 1',                   SupportsShouldProcess=$true,                   PositionalBinding=$false,                  HelpUri = 'http://www.yourhelppage.sch.uk',                  ConfirmImpact='Medium')]    [Alias()]    [OutputType([string])]    Param    (        # School Name         [Parameter(Mandatory=$true,                    ValueFromPipeline=$true,                   ValueFromPipelineByPropertyName=$true,                    ValueFromRemainingArguments=$false,                    Position=0,                   ParameterSetName='Parameter Set 1')]        [ValidateNotNull()]        [ValidateNotNullOrEmpty()]        [ValidateCount(0,5)]        [ValidateSet("Sch1", "Sch2", "Sch3", "Sch4")]        [Alias("SchName")]         $SchoolName,        # Voucher Partner        [Parameter(Mandatory=$true,                    ValueFromPipeline=$true,                   ValueFromPipelineByPropertyName=$true,                    ValueFromRemainingArguments=$false,                    Position=0,                   ParameterSetName='Parameter Set 1')]        [ValidateNotNull()]        [ValidateNotNullOrEmpty()]        [ValidateCount(0,10)]        [ValidateSet("JohnLewis", "MnS", "ASDA", "Morrisons", "Sainsburys" , "Tesco")]        [Alias("EVPar")]         $EVPartner,        # File Path        [Parameter(Mandatory=$true,                    ParameterSetName='Parameter Set 1')]        [AllowNull()]        [ValidateScript({            if(-Not ($_ | Test-Path) ){                throw "File or folder does not exist"            }            if(-Not ($_ | Test-Path -PathType Leaf) ){                throw "The Path argument must be a file. Folder paths are not allowed."            }            if($_ -notmatch "(\.csv)"){                throw "The file specified in the path argument must be a csv"            }            return $true         })]        [system.IO.FileInfo]$FilePath,        # Armed        [Parameter(Mandatory=$false,                    ParameterSetName='Parameter Set 1')]        [bool]$armed                   )    Switch ($SchoolName){        'HEA'{                $FirstName = 'Sch1'                $LastName = 'Academy'                $eMailAdd = '[email protected]'                $ScheMailAdd = '[email protected]'                $Phone = '0111234789'                $MPhone = '07959123789'            }        'BAB'{                $FirstName = 'Sch2'                $LastName = 'Academy'                $eMailAdd = '[email protected]'                $ScheMailAdd = '[email protected]'                $Phone = '01162123123'                $MPhone = '07959123789'            }        'LAN'{                $FirstName = 'Sch3'                $LastName = 'Academy'                $eMailAdd = '[email protected]'                $ScheMailAdd = '[email protected]'                $Phone = '0111234789'                $MPhone = '07959123789'            }        'WOO'{                $FirstName = 'Sch4'                $LastName = 'Academy'                $eMailAdd = '[email protected]'                $ScheMailAdd = '[email protected]'                $Phone = '0111234789'                $MPhone = '07959123789'            }                }#Get .CSV data$EVData = Import-Csv $FilePath#URL for FSM codes$EVBaseUrl = 'https://www.selectyourcompliment.co.uk/dfe'$EVData.ForEach({    $code = $_.Code    $code = $code.TrimStart("=",'"')    $code = $code.Trimend('"')    #Write-Host -fore green $code    Enter-SeUrl -Driver $driver -url $EVBaseUrl        # setup Selenium driver and load inital FSM site    $driver = Start-SeFirefox    Enter-SeUrl -Driver $driver -url $EVBaseUrl    # Added this to account for the queue on the redemtion phase of the process, that said it a quick fix and needs to really carry the cookies into the    # next iteration. This will avoid having to enter the queue on each pass.    $elementOnPage = $false    do{        $element = Find-SeElement -Driver $driver -XPath '//*[@id="wrapper"]/div/div/div/div/div/div/div/div[1]/div[1]/div/form/div[1]/input'        if(Find-SeElement -Driver $driver -XPath '//*[@id="wrapper"]/div/div/div/div/div/div/div/div[1]/div[1]/div/form/div[1]/input'){        $elementOnPage = $true        }    }    while($elementOnPage -eq $false)    Start-Sleep -Seconds 3    $element = Find-SeElement -Driver $driver -XPath '//*[@id="wrapper"]/div/div/div/div/div/div/div/div[1]/div[1]/div/form/div[1]/input'    # This sends the code that is fromthe CSV file downloaded before and sends the enter key press    Send-SeKeys -Element $Element -Keys $code    Send-SeKeys -Element $Element -Keys ([OpenQA.Selenium.Keys]::enter)    # PageLoad after accepted code - click the overlay button 'Start Shopping'    $element = Find-SeElement -Driver $driver -XPath '//*[@id="overlay"]/div/div[2]/button[1]'    Invoke-SeClick $element    # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)    Start-Sleep -Seconds 3        Switch ($EVPartner){        'JohnLewis'{                $elementJL = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[4]'                Invoke-SeClick $elementJL                #MNS Reward popup - enter Value and Add to basket                $elementPUJLVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'                Send-SeKeys -Element $elementPUJLVal -Keys '30'                $elementPUJLATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]'                 Invoke-SeClick $elementPUJLATB                # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)                Start-Sleep -Seconds 3                            }        'MnS'{            $elementMNS = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[5]'                Invoke-SeClick $elementMNS                #MNS Reward popup - enter Value and Add to basket                $elementPUMNSVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'                Send-SeKeys -Element $elementPUMNSVal -Keys '30'                $elementPUMNSATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]'                 Invoke-SeClick $elementPUMNSATB                # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)                Start-Sleep -Seconds 3                            }        'ASDA'{                #Select ASDA                $elementASDA = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[6]'                Invoke-SeClick $elementASDA                #Asda Reward popup - enter Value and Add to basket               $elementPUASDAVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'                Send-SeKeys -Element $elementPUASDAVal -Keys '30'                $elementPUASDAATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]'                 Invoke-SeClick $elementPUASDAATB                # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)                Start-Sleep -Seconds 3            }        'Morrisons'{                #Select Morrisons                $elementMorri = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[7]'                Invoke-SeClick $elementMorri                #Morrisons Reward popup - enter Value and Add to basket                $elementPUMorriVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'                Send-SeKeys -Element $elementPUMorriVal -Keys '30'                $elementPUMorriATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]'                 Invoke-SeClick $elementPUMorriATB                                # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)                Start-Sleep -Seconds 3            }        'Sainsburys'{                # Select Sainsburys                $elementSains = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[8]'                Invoke-SeClick $elementSains                #Sainsburys Reward popup - enter Value and Add to basket                $elementPUSainsVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'                Send-SeKeys -Element $elementPUSainsVal -Keys '30'                $elementPUSainsATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]'                 Invoke-SeClick $elementPUSainsATB                                # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)                Start-Sleep -Seconds 3            }        'Tesco'{                #Select TESCO                $elementTesco =  Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[9]'                Invoke-SeClick $elementTesco                #Tesco Reward popup - enter Value and Add to basket                $elementPUTescoVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'                Send-SeKeys -Element $elementPUTescoVal -Keys '30'                $elementPUTescoATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]'                Invoke-SeClick $elementPUTescoATB                # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)                Start-Sleep -Seconds 3            }    }    #Checkout    $elementCheckOut = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div[1]/div/div/div/div[2]/div/div[1]/div[2]/form/div/div/button'    Invoke-SeClick $elementCheckOut    # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)    Start-Sleep -Seconds 3        #Get form elements and fill out with vars    $elementFirstName = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[1]/div[2]/input'    Send-SeKeys -Element $elementFirstName -Keys $FirstName    $elementLastName = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[2]/div[2]/input'    Send-SeKeys -Element $elementLastName -Keys $LastName    $elementEmail = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[3]/div[2]/input'    Send-SeKeys -Element $elementEmail -Keys $eMailAdd    $elementConfEmail = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[4]/div[2]/input'    Send-SeKeys -Element $elementConfEmail -Keys $eMailAdd    $elementPhone = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[5]/div/input'    Send-SeKeys -Element $elementPhone -Keys $Phone    $elementMPhone = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[6]/div[2]/input'    Send-SeKeys -Element $elementMPhone -Keys $MPhone    $elementDelDetails = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[3]'    Invoke-SeClick $elementDelDetails    Start-Sleep -Seconds 3    if ($Armed){    $elementRedeem = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[3]/div/button[2]'    Invoke-SeClick -Element $elementRedeem    write-host -fore green "Script is armed, Code Number $($Code) has been redeemed. The voucher will be delivered to the $($eMailAdd) address."     Start-Sleep -Seconds 10    Stop-SeDriver $driver    $elementOnPage = $Null    }    Else{    Start-Sleep -Seconds 3    write-host -fore Cyan "Script is not armed, code will not be redeemed"    Stop-SeDriver $driver    $elementOnPage = $Null    }    })}

This is designed for my better 1/2 multi academy trust so they can select the school that is redeeming the voucher and it fills out the info on the Edenreds pages also lets you select any of the vouchers that are being offered. This could be refactored to take a CSV file with a list of parents/ carer info rather than having it delivered to a school address.

 

Dont know why the code keeps getting mashed....

Edited by HPlum78
  • 2 weeks later...
Posted

I've been waiting 5 days for my last order to be fullfilled - this was only for 1 voucher for someone whose email address was wrong.

 

If I order eCodes and distribute them myself do they come through any faster?

Posted
Our administrator emailed earlier to say she has managed to upload a CSV successfully for the first time today and is pouring herself a large gin. It comes to something when it's a surprise that a basic function actually works. She has had to manually add them before which wasted hours of time.
Posted
Don't know why the code keeps getting mashed....

In your Edugeek profile under General Settings, switch to the Standard editor and then when you paste the script in between the CODE tags, it will no longer get messed up. :)

 

jvK6vl.png

  • Thanks 1
Posted

I've been ordering on a Wednesday and receive them by Sunday / Monday morning ready for pushing out to parents directly. Initially I opted for the CSV upload but then (whilst I could see the order was fulfilled) there was a lag between that status change and the codes actually being sent to the parents by Edenred.

 

As such, I opted for E-codes as I could check individual serials for redemption, be fully aware of when they were sent to parents and better able to answer questions / re-issue the relevant E-code if the parent didn't receive etc. It also gave me codes that I could function test on the redemption site(esp in light of recent failures 27/28 Apr) - all seems to be running more smoothly (touch wood) currently.

Posted (edited)

Code un/de-mashed!

 

function Create-GiftCard
{
   [CmdletBinding(DefaultParameterSetName='Parameter Set 1', 
                 SupportsShouldProcess=$true, 
                 PositionalBinding=$false,
                 HelpUri = 'YourDomain.ac.uk',
                 ConfirmImpact='Medium')]
   [Alias()]
   [OutputType([string])]
   Param
   (
       # School Name 
       [Parameter(Mandatory=$true, 
                  ValueFromPipeline=$true,
                  ValueFromPipelineByPropertyName=$true, 
                  ValueFromRemainingArguments=$false, 
                  Position=0,
                  ParameterSetName='Parameter Set 1')]
       [ValidateNotNull()]
       [ValidateNotNullOrEmpty()]
       [ValidateCount(0,5)]
       [ValidateSet("SCH1", "SCH2", "SCH3", "SCH4")]
       [Alias("SchName")] 
       $SchoolName,

       # Voucher Partner
       [Parameter(Mandatory=$true, 
                  ValueFromPipeline=$true,
                  ValueFromPipelineByPropertyName=$true, 
                  ValueFromRemainingArguments=$false, 
                  Position=0,
                  ParameterSetName='Parameter Set 1')]
       [ValidateNotNull()]
       [ValidateNotNullOrEmpty()]
       [ValidateCount(0,10)]
       [ValidateSet("JohnLewis", "MnS", "ASDA", "Morrisons", "Sainsburys" , "Tesco")]
       [Alias("EVPar")] 
       $EVPartner,


       # File Path
       [Parameter(Mandatory=$true,
                   ParameterSetName='Parameter Set 1')]
       [AllowNull()]
       [ValidateScript({
           if(-Not ($_ | Test-Path) ){
               throw "File or folder does not exist"
           }
           if(-Not ($_ | Test-Path -PathType Leaf) ){
               throw "The Path argument must be a file. Folder paths are not allowed."
           }
           if($_ -notmatch "(\.csv)"){
               throw "The file specified in the path argument must be a csv"
           }
           return $true 
       })]
       [system.IO.FileInfo]$FilePath,

       # Armed
       [Parameter(Mandatory=$false,
                   ParameterSetName='Parameter Set 1')]
       [bool]$armed
              
   )

   Switch ($SchoolName){
       'SCH1'{
               $FirstName = 'SCH1'
               $LastName = 'Academy'
               $eMailAdd = '[email protected]'
               $ScheMailAdd = '[email protected]'
               $Phone = '01112123123'
               $MPhone = '07908854409'
           }
       'SCH2'{
               $FirstName = 'SCH2'
               $LastName = 'Academy'
               $eMailAdd = '[email protected]'
               $ScheMailAdd = '[email protected]'
               $Phone = '01112123123'
               $MPhone = '07908854409'
           }
       'SCH3'{
               $FirstName = 'SCH3'
               $LastName = 'Academy'
               $eMailAdd = '[email protected]'
               $ScheMailAdd = '[email protected]'
               $Phone = '01112123123'
               $MPhone = '07908854409'
           }
       'SCH4'{
               $FirstName = 'SCH4'
               $LastName = 'Academy'
               $eMailAdd = '[email protected]'
               $ScheMailAdd = '[email protected]'
               $Phone = '01112123123'
               $MPhone = '07908854409'
           }
           
   }

#Get .CSV data
$EVData = Import-Csv $FilePath

#URL for FSM codes
$EVBaseUrl = 'https://www.selectyourcompliment.co.uk/dfe'

$EVData.ForEach({
   $code = $_.Code
   $code = $code.TrimStart("=",'"')
   $code = $code.Trimend('"')

   #Write-Host -fore green $code
   # setup Selenium driver and load inital FSM site
   $driver = Start-SeFirefox
   Enter-SeUrl -Driver $driver -url $EVBaseUrl

   $elementOnPage = $false
   do{
       $element = Find-SeElement -Driver $driver -XPath '//*[@id="wrapper"]/div/div/div/div/div/div/div/div[1]/div[1]/div/form/div[1]/input'
       if(Find-SeElement -Driver $driver -XPath '//*[@id="wrapper"]/div/div/div/div/div/div/div/div[1]/div[1]/div/form/div[1]/input'){
       $elementOnPage = $true
       }
   }
   while($elementOnPage -eq $false)

   Start-Sleep -Seconds 3

   # Find the 'enter unique code' element on the initial page
   $element = Find-SeElement -Driver $driver -XPath '//*[@id="wrapper"]/div/div/div/div/div/div/div/div[1]/div[1]/div/form/div[1]/input'

   # This sends the code that is fromthe CSV file downloaded before and sends the enter key press
   Send-SeKeys -Element $Element -Keys $code
   Send-SeKeys -Element $Element -Keys ([OpenQA.Selenium.Keys]::enter)

   # PageLoad after accepted code - click the overlay button 'Start Shopping'
   $element = Find-SeElement -Driver $driver -XPath '//*[@id="overlay"]/div/div[2]/button[1]'
   Invoke-SeClick $element

   # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)
   Start-Sleep -Seconds 3

       Switch ($EVPartner){
       'JohnLewis'{
               $elementJL = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[4]'
               Invoke-SeClick $elementJL

               #MNS Reward popup - enter Value and Add to basket
               $elementPUJLVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'
               Send-SeKeys -Element $elementPUJLVal -Keys '30'
               $elementPUJLATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]' 
               Invoke-SeClick $elementPUJLATB

               # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)
               Start-Sleep -Seconds 3                
           }
       'MnS'{
           $elementMNS = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[5]'
               Invoke-SeClick $elementMNS

               #MNS Reward popup - enter Value and Add to basket
               $elementPUMNSVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'
               Send-SeKeys -Element $elementPUMNSVal -Keys '30'
               $elementPUMNSATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]' 
               Invoke-SeClick $elementPUMNSATB

               # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)
               Start-Sleep -Seconds 3                
           }
       'ASDA'{
               #Select ASDA
               $elementASDA = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[6]'
               Invoke-SeClick $elementASDA

               #Asda Reward popup - enter Value and Add to basket
              $elementPUASDAVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'
               Send-SeKeys -Element $elementPUASDAVal -Keys '30'
               $elementPUASDAATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]' 
               Invoke-SeClick $elementPUASDAATB

               # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)
               Start-Sleep -Seconds 3

           }
       'Morrisons'{
               #Select Morrisons
               $elementMorri = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[7]'
               Invoke-SeClick $elementMorri

               #Morrisons Reward popup - enter Value and Add to basket
               $elementPUMorriVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'
               Send-SeKeys -Element $elementPUMorriVal -Keys '30'
               $elementPUMorriATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]' 
               Invoke-SeClick $elementPUMorriATB
               
               # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)
               Start-Sleep -Seconds 3
           }
       'Sainsburys'{
               # Select Sainsburys
               $elementSains = Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[8]'
               Invoke-SeClick $elementSains

               #Sainsburys Reward popup - enter Value and Add to basket
               $elementPUSainsVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'
               Send-SeKeys -Element $elementPUSainsVal -Keys '30'
               $elementPUSainsATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]' 
               Invoke-SeClick $elementPUSainsATB
               
               # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)
               Start-Sleep -Seconds 3
           }
       'Tesco'{
               #Select TESCO
               $elementTesco =  Find-SeElement -Driver $driver -XPath '//*[@id="Container"]/div/div/div[3]/div[9]'
               Invoke-SeClick $elementTesco

               #Tesco Reward popup - enter Value and Add to basket
               $elementPUTescoVal = Find-SeElement -Driver $driver -XPath '//*[@id="inputValue"]'
               Send-SeKeys -Element $elementPUTescoVal -Keys '30'
               $elementPUTescoATB = Find-SeElement -Driver $driver -XPath '/html/body/div[5]/div/div/div[2]/div[2]/form/div[3]/div/button[2]'
               Invoke-SeClick $elementPUTescoATB

               # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)
               Start-Sleep -Seconds 3

           }
   }

   #Checkout
   $elementCheckOut = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div[1]/div/div/div/div[2]/div/div[1]/div[2]/form/div/div/button'
   Invoke-SeClick $elementCheckOut

   # Need to wait for the page to load (could do with a better way to deal with this but for testing this will do)
   Start-Sleep -Seconds 3
   
   #Get form elements and fill out with vars
   $elementFirstName = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[1]/div[2]/input'
   Send-SeKeys -Element $elementFirstName -Keys $FirstName

   $elementLastName = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[2]/div[2]/input'
   Send-SeKeys -Element $elementLastName -Keys $LastName

   $elementEmail = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[3]/div[2]/input'
   Send-SeKeys -Element $elementEmail -Keys $eMailAdd

   $elementConfEmail = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[4]/div[2]/input'
   Send-SeKeys -Element $elementConfEmail -Keys $eMailAdd

   $elementPhone = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[5]/div/input'
   Send-SeKeys -Element $elementPhone -Keys $Phone

   $elementMPhone = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[1]/div[6]/div[2]/input'
   Send-SeKeys -Element $elementMPhone -Keys $MPhone

   $elementDelDetails = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[3]'
   Invoke-SeClick $elementDelDetails

   Start-Sleep -Seconds 3

   if ($Armed){
   $elementRedeem = Find-SeElement -Driver $driver -XPath '/html/body/div[3]/div/div[2]/div/div/div/div/div/div/fieldset/div/div[2]/basket/div/div/form/div[2]/div[2]/div[3]/div/button[2]'
   Invoke-SeClick -Element $elementRedeem
   write-host -fore green "Script is armed, Code Number $($Code) has been redeemed. The voucher will be delivered to the $($eMailAdd) address." 
   Start-Sleep -Seconds 10
   Stop-SeDriver $driver
   }
   Else{
   Start-Sleep -Seconds 3
   write-host -fore Cyan "Script is not armed, code will not be redeemed"
   Stop-SeDriver $driver
   }
   
})

}

 

So it uses the selenium driver (install-module -name selenium) and I have set it to use FireFox (both of those will be needed to run the script) this allows you take the delivery of the vouchers out of Edenred's hands and allows you to send them out. As noted loads could be done to automate the rest of the process.

 

It has a param called -armed (a bool) by default its set to false so you can test the script with real codes safe in the knowledge that it will not redeem anything (after you are happy add -armed:$true)! You need to fill out/ remove the the school details as required (line 66). One last note this script was made to work before Edened put in the virtual queue on the redemption site, now I have come up with a really dirty solution to deal with this its around line 119 to 126 the do/ while. Problem is that this makes us sit in the queue on every iteration (far from ideal) what I (we) need to do is get the browser cookies and store them so they can be injected into the next iteration this in turn will stop us hitting the queue on each code that we are trying to redeem.

 

Oh and one more more last one... I hate that I have had to use start-sleep to allow the page to load and such, I would like to do something more well better but time pressure has not allowed me to refactor those parts of the script I see code that looks like the do/ while loop for dealing with the queue looking for an element to load on the page before continuing rather than those start-sleep lines.

Edited by HPlum78
Posted
Nice something else to add! Would need to check that the xpath's have not been changed due to that. (although in my mind that would make no sense) but never say never. Will update the script to account for additional shops and repost shortly. Thanks @Edu-IT (I think) :-P
Posted

Just wanted to check if anyone else has successfully had orders move to Fulfilled that were placed on 29/4 or later? We have 3 over the period 29/4 - 1/5 all still showing as Paid.

 

That's a full week delay on the first one.

 

Whilst something has clearly changed that means the queue lengths are right down on the admin site, and at times no queue at all, I can only see fulfilment has got worse. So just curious on others experiences in the past week.

 

And when are these cowboys going to realise that the biggest improvement they could make on the admin side is the ability to correct existing e-mail addresses on a pending or fulfilled order, so that the former goes to the right place first time when it finally goes out, and the latter e-code can be re-sent without having to cancel and re-order (and wait and wait etc etc).

Posted
Just wanted to check if anyone else has successfully had orders move to Fulfilled that were placed on 29/4 or later? We have 3 over the period 29/4 - 1/5 all still showing as Paid.

 

That's a full week delay on the first one.

 

Whilst something has clearly changed that means the queue lengths are right down on the admin site, and at times no queue at all, I can only see fulfilment has got worse. So just curious on others experiences in the past week.

 

And when are these cowboys going to realise that the biggest improvement they could make on the admin side is the ability to correct existing e-mail addresses on a pending or fulfilled order, so that the former goes to the right place first time when it finally goes out, and the latter e-code can be re-sent without having to cancel and re-order (and wait and wait etc etc).

 

We have experienced better wait times with logging on to admin site but have been waiting since 1st May for order to change from PAID to FULFILLED. 2 weeks ago it was a 48hr wait for fullfillment and for the self distributed vouchers it was immediate (bit of a shock).

 

Last week and this week it's just sat at PAID status.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...