バージョン選択

フォーラム

メニュー

オンライン状況

67 人のユーザが現在オンラインです。 (60 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 67
もっと...

サイト内検索

プラグイン > バグ報告・利用に関する質問 > AmazonPayでお届け日が正しく設定されない

バグ報告・利用に関する質問

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2019/7/30 9:50
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
AmazonPayでお届け日が正しく設定されない
EC-CUBE 3.0.16
AmazonPay 1.3.5
お届け日調整プラグイン 1.0.9

AmazonPayで決済するときに、お届け日調整プラグインで設定した都道府県別の発送日数が有効になりません。

これを解決するために、AmazonPayでのお届け先フォーム作成の PRE_SET_DATA に、お届け日調整プラグインのフォーム作成を追記しました。

しかし、AmazonPayの注文内容確認ページにお届け日がうまく反映されません。
本日が7/30で、各都道府県の発送日数が5日なので、お届け日の選択肢が8/4以降になってほしいのですが、7/30以降のままになってしまいます。
ページをリロードすると8/4以降になります。

デバッグを行うことで、お届け日調整プラグインで都道府県ごとの配送日数を取得するときのパラメーターで渡すお届け先の都道府県Prefが空になっていました。

AmazonPayでお届け先フォームを作成する時のShippingsを出力してみたところ、中身が空でした。
app/Plugin/AmazonPayments/Service/AmazonShoppingService.php
dump($Order->getShippings());
        $builder->add('shippings', 'collection', array(
            'type' => 'amazon_shipping_item',
            'data' => $Order->getShippings()
        ));


レンダリングされるときにはお届け先はしっかり表示されているようですが、Controllerで $Order->getShippings() エンティティが取得できないのはなぜでしょうか?
取得する方法をお教え願います。

app/Plugin/AmazonPayments/Form/Type/AmazonShippingItemType.php
        // お届け日調整プラグイン
        $builder
            ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($app) {
                /** @var \Eccube\Entity\Shipping $data */
                $data = $event->getData();
                /** @var \Symfony\Component\Form\Form $form */
                $form = $event->getForm();

                $delivery = $data->getDelivery();

                // お届け日を取得
                $emptyValue = '指定なし';
                $deliveryDates = $app['eccube.deliverydate.service.shopping']->getFormDeliveryDates($data, $delivery);
                if(empty($deliveryDates)){
                    $emptyValue = '指定不可';
                }

                $plgDelivery = $app['eccube.deliverydate.repository.delivery']->findOneBy(array('delivery_id' => $delivery->getId()));
                if($plgDelivery){
                    if($plgDelivery->getDeliveryDateFlg() == 1){
                        $emptyValue = '指定不可';
                        $deliveryDates = array();

                        $form
                            ->add('deliveryTime', 'entity', array(
                                'class' => 'Eccube\Entity\DeliveryTime',
                                'property' => 'deliveryTime',
                                'choices' => array(),
                                'required' => false,
                                'empty_value' => '指定不可',
                                'empty_data' => null,
                            ));
                    }
                }

                $form
                    ->add('shippingDeliveryDate', 'choice', array(
                        'choices' => $deliveryDates,
                        'required' => false,
                        'empty_value' => $emptyValue,
                        'mapped' => false,
                    ));
                });


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2019/7/30 11:53
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: AmazonPayでお届け日が正しく設定されない
AmazonPayではお届け先をAmazonから取得しているが、レンダリング前は情報を取得しておらず、都道府県情報が取得できないため各都道府県の発送日数が取得できないようです。
今回は発送日数が全都道府県共通だったため、固定の発送日数でハードコーディングすることで解決できました。

app/Plugin/DeliveryDate/Service/ShoppingService.php
において、Pref の値を固定化。

なお、根本解決するには、レンダリング後にAmazonから都道府県情報を取得するタイミングで、お届け日を変更する必要があると思われます。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,307名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.