-
Notifications
You must be signed in to change notification settings - Fork 14
Print fulfilment delivery
During the purchase journeys of our 3 physical subscription product types (Paper voucher, paper home delivery and Guardian Weekly) we offer users a choice of "subscription start dates". The first day that their subscription can start (i.e. when they can first receive the voucher/product) varies depending on the day of purchase, the product type and the product option. The rules behind these fulfilment delays are not particularly consistent because the process for each product type is different.
The voucher fulfilment job is run on a Wednesday and sends a file to our delivery partners containing new subscriptions that are to be fulfilled beyond the next 2 weeks (to allow for printing, delivery etc.) For users this means they will be shown start dates starting 3-4 weeks in advance.
Home delivery can be fulfilled faster but we allow a minimum 3 day lead time, plus extra to allow for bank holidays on Fridays and Mondays.
Guardian Weekly deliveries are fulfilled by a number of local partners. They will take the list of new subscribers sometime between Thursday - Monday and deliver those for the following Friday. This means we require a minimum lead time of 9 days in the case someone takes out a new subscription on the Wednesday.
In a month starting on Monday 1st the above requirements give us the following delivery days for purchases made on the days Monday 1st-Sunday 7th.
Purchase day/Product | Everyday/Sixday | Saturday | Sunday |
---|---|---|---|
Mon 1st | 22nd | 27th | 28th |
Tues 2nd | 22nd | 27th | 28th |
Weds 3rd (before 6am) | 22nd | 27th | 28th |
Weds 3rd | 29th | 27th + 7 | 28th + 7 |
Thurs 4th | 29th | 27th + 7 | 28th + 7 |
Fri 5th | 29th | 27th + 7 | 28th + 7 |
Sat 6th | 29th | 27th + 7 | 28th + 7 |
Sun 7th | 29th | 27th + 7 | 28th + 7 |
Purchase day/Product | Everyday | Sixday | Weekend | Saturday | Sunday |
---|---|---|---|---|---|
Mon 1st | 4th | 4th | 6th | 6th | 7th |
Tues 2nd | 5th | 5th | 6th | 6th | 7th |
Weds 3rd | 6th | 6th | 6th | 6th | 7th |
Thurs 4th | 10th | 10th | 13th | 13th | 14th |
Fri 5th | 10th | 10th | 13th | 13th | 14th |
Sat 6th | 10th | 10th | 13th | 13th | 14th |
Sun 7th | 10th | 10th | 13th | 13th | 14th |
Purchase day/Product | G Weekly |
---|---|
Mon 1st | 12th |
Tues 2nd | 12th |
Weds 3rd | 12th |
Thurs 4th | 19th |
Fri 5th | 19th |
Sat 6th | 19th |
Sun 7th | 19th |
The fulfilment-date-calculator does some date calculations related to fulfilment, putting the results in a few files in S3:
- first available date for holiday stops
- target processing date for holiday stops
- delivery address change effective date
Could support-frontend call that to find candidate first delivery dates to offer users on the checkout?
This was explored in this trello card, with the conclusion that it canβt be: the file format is awkward to consume (and would require consuming multiple files in the frontend to establish the dates), and we need a 5-week lookahead, which the calculator canβt do.
However, Iβm not sure where the 5-week lookahead requirement came from, and suspect it might be a mistake. In the original PR introducing it there was some discussion of it, and itβs unclear whether this is an actual product requirement.
- Redux Glossary
- Why Redux Toolkit?
- Writing state slices with Redux Toolkit
- Handling action side effects in Redux
- Presentational and Container Components
- Scoped actions and reducers
- Server Side Rendering
- Form validation
- CI build process
- Post deployment testing
- Post deployment test runbook
- TIP Real User Testing
- Code testing and validation
- Visual testing
- Testing Apple Pay locally
- Test Users
- Deploying to CODE
- Automated IT tests
- Deploying Fastly VCL Snippets
- Archived Components
- Authentication
- Switchboard
- How to make a fake contribution
- The epic and banner
- Environments
- Tech stack
- Supported browsers
- Contributions Internationalisation
- Payment method internationalisation in Guardian Weekly
- Print fulfilment/delivery
- Updating the acquisitions model
- Runscope testing
- Scala Steward for dependency management
- Alarm Investigations
- Ticker data
- Ophan
- Quantum Metric
- [Google Tag Manager] (https://github.com/guardian/support-frontend/wiki/Google-Tag-Manager)