The shop installer bundles SilverStripe, the shop module, payment module, and required extras.
Today isn’t a particularly special day. I’ve previously had some un-founded hesitation to tag releases. If there are any cons to releasing, I think they are outweighed by the pros. Whilst I think in my mind, and when I look at Travis CI / Scruitinizer logs, that the module is fairly stable, I know there’s always going to be something else wrong. That’s what 1.0.1 is for. By starting to tag/release more often, there will be reference points to see where your code is vs where the project is.
I've rewritten the way the checkout operates to be seperated into 'components', which allows for much easier and more flexible checkout customisation.
Here are a few thoughts around what would be required to implement a shop member credit system.
Historically product popularity has been based purely on sales numbers. Popularity changes over time, so I've found an algorithm for working out popularity values that factor in the age of the product, and also the age of the sales made for that product.
I have created two customisable reports: Shop Sales, and Coupon Usage. Reports are a fundamental feature for a shopping system, and I hope to create more in future. The sales report has ability to group results by Year, Month, Week, or Day. Admins can also specify a date range to study. I'm also attempting to merge reusable code into a "ShopPeriodReport" class.
I'm needing discount coupons to be created and sent when an order is paid for. The completePayment function in OrderProcessor is currently triggered via ShopPayment->onAfterWrite(). It also needs to be triggered when an admin updates an order to paid, or something past it.
Thanks to much appreciated help from the developer community, the upgrade of shop to ss3 has begun!
Zones are an idea that I've borrowed Prestashop, but I've implemented it slightly different.
I've spent a fair bit of time trying to improve test code coverage. This is doing wonders for helping me understand the shop code base as a whole. More importantly, increasing code coverage gives me confidence in the code base, and allows me to make changes with instant notification of the consequences. I'm currently at ~50% coverage, and my goal is ~70%.