Skip to content
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

PurchaceFlowの実装 #2424

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
5992b47
purchaseFlow
Jul 3, 2017
694ed11
cart
Jul 3, 2017
52c07df
ValidatableItemProcessorを実装
kiy0taka Jul 3, 2017
2fe8b2e
Add StockValidator
nanasess Jul 3, 2017
3be3527
テスト修正
Jul 4, 2017
f4a4a46
テスト修正、StockValidatorを受注に対応
Jul 4, 2017
db5b9e5
例外からProcessResultへ変更
Jul 4, 2017
45f620d
失敗するテストを修正
kiy0taka Jul 4, 2017
30b379d
パッケージを変更
kiy0taka Jul 4, 2017
8371e45
PaymentTotalLimitValidatorを実装
kiy0taka Jul 4, 2017
fa358fc
DeliveryFeeProcessorを実装
kiy0taka Jul 4, 2017
58e5d75
Cartフローを定義
kiy0taka Jul 4, 2017
fa25f37
PurchaseFlow を Controller へ実装
nanasess Jul 4, 2017
f1cf119
使われてないルーティングの削除
Jul 6, 2017
9db9ba9
PurchaseFlow を受注管理に実装
nanasess Jul 6, 2017
ab1105c
商品の公開・非公開を制御するプロセッサを追加
Jul 6, 2017
e75d01d
カートの個数の加算
Jul 6, 2017
cb87b32
送料無料を制御するプロセッサを追加
Jul 6, 2017
2fcccfd
販売制限数のプロセッサを追加
Jul 6, 2017
b1b38fe
カートコントローラのつなぎ込み
Jul 6, 2017
98c3194
エラーがセッション中に保持され続けるため、クリアするように修正
Jul 6, 2017
d6e96d5
idが文字列で登録されている場合がある
Jul 6, 2017
33abbc1
CartServiceの在庫数、販売制限数のエラーチェックを無効化
Jul 6, 2017
5baf32e
集計ロジックの実装
nanasess Jul 6, 2017
326b183
Order::discount は正の整数, Discount な ShipmentItem は負の整数を登録するよう修正
nanasess Jul 6, 2017
f63234a
Order の場合は SubTotal を集計するよう修正
nanasess Jul 7, 2017
8f8a46d
カートコントローラのリファクタリング
Jul 7, 2017
a2f07a4
配送業者のチェック用プロセッサを追加
Jul 7, 2017
fd8e466
明細種別を判定するように修正
Jul 7, 2017
e213dbb
クラス名の誤りを修正
Jul 7, 2017
76cf6f2
削除済商品のバリデータを追加
Jul 10, 2017
49db40e
ShoppingControllerとPurchaseFlowの統合
kiy0taka Jul 6, 2017
ed770dc
同一支払方法を検知するプロセッサの追加
Jul 10, 2017
756ebc2
各合計金額の計算をPurchaseFlowで行うように修正
kiy0taka Jul 10, 2017
7ac6f14
ValidatableItemHolderProcessorインターフェイス変更
kiy0taka Jul 10, 2017
2054d4f
テストの修正
kiy0taka Jul 10, 2017
5c9b7aa
最後に追加した明細でハンドリングしないように修正
Jul 11, 2017
0df71b9
purcaseFlowの変更に伴う修正
Jul 11, 2017
751ed92
CartServiceの見直し
Jul 11, 2017
f5ad3a1
PurchaseFlowResultを使用するように変更
kiy0taka Jul 11, 2017
9d0700a
商品追加の実装
Jul 11, 2017
c476907
EditController へ組込み
nanasess Jul 11, 2017
549b8f9
重複したフィールドを削除
kiy0taka Jul 12, 2017
d90a469
PurchaseFlowエラーの表示
kiy0taka Jul 12, 2017
473fb6f
ソートを実装
nanasess Jul 12, 2017
e9b415f
購入処理の機構を実装
Jul 13, 2017
78471bd
不要なメソッドを削除
Jul 13, 2017
094fa44
カートコントローラの整理
Jul 13, 2017
9085a1b
ShoppingControllerの分割
kiy0taka Jul 13, 2017
8ac84d6
商品追加のコントローラを整理
Jul 13, 2017
24dd760
PurchaseFlowのProcessorをArrayCollectionで保持するように修正
Jul 14, 2017
57ba170
cartFlowのproccessorをdi化
Jul 14, 2017
06267a4
Fix typo
nanasess Jul 14, 2017
e8faad2
プラグインからの追加サンプル
Jul 14, 2017
e638056
受注編集画面の更新処理を PurchaseProcessor に移動
nanasess Jul 14, 2017
a0ef694
不要なコメント削除
nanasess Jul 18, 2017
7d8dffc
画面側でもソートされるよう修正
nanasess Jul 18, 2017
5a37a0d
Options で Items を渡すよう修正
nanasess Jul 18, 2017
4fcef7b
テストの修正
Jul 18, 2017
f6c2d5d
Processorの修正
Jul 18, 2017
e7203a5
型宣言を削除
Jul 19, 2017
a5bedca
PurchaseContextを追加
Jul 19, 2017
fc994f9
PurchaseContextを使用したインターフェイスに修正
kiy0taka Jul 19, 2017
9f9705d
FormExtensionのサンプル
Jul 19, 2017
5a89931
ValidatableItemProcessorインターフェイスのPurchaseContext対応
kiy0taka Jul 19, 2017
dc0a8c9
Controllerからの呼び出しを修正
kiy0taka Jul 19, 2017
6802a28
サンプルコードの修正
kiy0taka Jul 19, 2017
c0ed634
インターフェイス修正漏れ
kiy0taka Jul 19, 2017
4deb6ab
Remove toArray
nanasess Jul 20, 2017
808dab0
Customerが必要なのはカートのみのため、PurchaseContextのインターフェースを変更
Jul 20, 2017
d592868
PurchaseContextの階層を移動
Jul 20, 2017
9b66a7f
PurchaseFlowのnamespace変更に伴う修正
Jul 20, 2017
bcf9c11
PurchaseFlowのnamespace変更に伴う修正
Jul 20, 2017
b21b31c
php-cs-fixerを2.2系に更新
Jul 20, 2017
335bbdd
php-cs-fixer fix --rules=@Symfony
Jul 20, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions app/Plugin/FormExtension/Form/Extension/EntryTypeExtension.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace Plugin\FormExtension\Form\Extension;

use Eccube\Form\Type\Front\EntryType;
use Eccube\Form\Type\Master\JobType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints\NotBlank;

class EntryTypeExtension extends AbstractTypeExtension
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
// 職業を必須項目に変更するサンプル
$builder->remove('job');
$builder->add(
'job',
JobType::class,
[
'required' => true,
'constraints' => [
new NotBlank(),
],
]
);
}

/**
* {@inheritdoc}
*/
public function getExtendedType()
{
return EntryType::class;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace Plugin\FormExtension\ServiceProvider;

use Pimple\Container;
use Pimple\ServiceProviderInterface;
use Plugin\FormExtension\Form\Extension\EntryTypeExtension;

class FormExtensionServiceProvider implements ServiceProviderInterface
{
public function register(Container $app)
{
$app->extend(
'form.type.extensions',
function ($extensions) {
$extensions[] = new EntryTypeExtension();

return $extensions;
}
);
}
}
5 changes: 5 additions & 0 deletions app/Plugin/FormExtension/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: FormExtensionのサンプル
code: FormExtension
version: 1.0.0
service:
- FormExtensionServiceProvider
22 changes: 22 additions & 0 deletions app/Plugin/PurchaseProcessors/Processor/EmptyProcessor.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace Plugin\PurchaseProcessors\Processor;

use Eccube\Entity\ItemInterface;
use Eccube\Service\PurchaseFlow\ItemProcessor;
use Eccube\Service\PurchaseFlow\PurchaseContext;
use Eccube\Service\PurchaseFlow\ProcessResult;

class EmptyProcessor implements ItemProcessor
{
/**
* @param ItemInterface $item
* @param PurchaseContext $context
* @return ProcessResult
*/
public function process(ItemInterface $item, PurchaseContext $context)
{
log_info('empty processor executed', [__METHOD__]);
return ProcessResult::success();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Plugin\PurchaseProcessors\Processor;

use Eccube\Entity\ItemInterface;
use Eccube\Service\PurchaseFlow\ItemValidateException;
use Eccube\Service\PurchaseFlow\PurchaseContext;
use Eccube\Service\PurchaseFlow\ValidatableItemProcessor;

class ValidatableEmptyProcessor extends ValidatableItemProcessor
{
protected function validate(ItemInterface $item, PurchaseContext $context)
{
$error = false;
if ($error) {
throw new ItemValidateException('ValidatableEmptyProcessorのエラーです');
}
}

protected function handle(ItemInterface $item, PurchaseContext $context)
{
$item->setQuantity(100);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Plugin\PurchaseProcessors\ServiceProvider;

use Doctrine\Common\Collections\ArrayCollection;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
use Plugin\PurchaseProcessors\Processor\EmptyProcessor;
use Plugin\PurchaseProcessors\Processor\ValidatableEmptyProcessor;

class PurchaseProcessorsServiceProvider implements ServiceProviderInterface
{
public function register(Container $app)
{
$app->extend(
'eccube.purchase.flow.cart.item_processors',
function (ArrayCollection $processors, Container $app) {
$processors[] = new EmptyProcessor();
$processors[] = new ValidatableEmptyProcessor();
return $processors;
}
);
}
}
5 changes: 5 additions & 0 deletions app/Plugin/PurchaseProcessors/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: PurchaseFlowにProcessorを追加するサンプル
code: PurchaseProcessors
version: 1.0.0
service:
- PurchaseProcessorsServiceProvider
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
"fzaninotto/faker":"1.5.*",
"phing/phing": "2.*",
"symfony/browser-kit": "3.3.*",
"friendsofphp/php-cs-fixer": "^1.11",
"friendsofphp/php-cs-fixer": "^2.2",
"satooshi/php-coveralls": "2.0.x-dev"
},
"autoload": {
Expand Down
Loading