質問 > 管理機能 > 教えてください。 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
m.masami |
投稿日時: 2020/4/14 12:26
対応状況: −−−
|
半人前 登録日: 2020/4/14 居住地: 投稿: 28 |
教えてください。 ▼テンプレート
[EC-CUBE] EC-CUBEのバージョン、新規インストールかアップデートか、等 [レンタルサーバ] xserver [OS] win 10 [PHP] 7.1 ECCUBE 初心者です。 送料の変更を依頼され、出来ずに困っております。 内容 現状 北海道と沖縄県のみ送料無料条件を外しており 540円➡550円に変更したいのですが、どこで変更するかわからなく困っております。 Shopping/index.twig では、 <dt>送料</dt> <dd>{{ Order.deliveryFeeTotal|price }}</dd> となっております。 色々調べまして、 ShoppingService.php でカスタマイズできるとありましたので、見てみたのですが // 商品ごとの配送料合計 $productDeliveryFeeTotal = 0; if ($this->BaseInfo->getOptionProductDeliveryFee() === Constant::ENABLED) { $productDeliveryFeeTotal = $ProductClass->getDeliveryFee() * $quantity; } $Shipping->setShippingDeliveryFee($Shipping->getShippingDeliveryFee() + $productDeliveryFeeTotal); $ShipmentItem->setShipping($Shipping) ->setOrder($Order) ->setProductClass($ProductClass) ->setProduct($Product) ->setProductName($Product->getName()) ->setProductCode($ProductClass->getCode()) ->setPrice($ProductClass->getPrice02()) ->setQuantity($quantity); $ClassCategory1 = $ProductClass->getClassCategory1(); if (!is_null($ClassCategory1)) { $ShipmentItem->setClasscategoryName1($ClassCategory1->getName()); $ShipmentItem->setClassName1($ClassCategory1->getClassName()->getName()); } $ClassCategory2 = $ProductClass->getClassCategory2(); if (!is_null($ClassCategory2)) { $ShipmentItem->setClasscategoryName2($ClassCategory2->getName()); $ShipmentItem->setClassName2($ClassCategory2->getClassName()->getName()); } $Shipping->addShipmentItem($ShipmentItem); $this->em->persist($ShipmentItem); return $ShipmentItem; } となってまして、見てるところが違うのかわからずです。 ご教授頂けますと助かります。 あと、ご説明が見当違いであれば、合わせて ご教授下さいませ。 何卒宜しくお願い致します。 |
468 |
投稿日時: 2020/4/14 18:19
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 教えてください。 >現状 北海道と沖縄県のみ送料無料条件を外しており
>540円➡550円に変更したいのですが、どこで変更するかわからなく困っております。 既に別の方がカスタマイズを加えられているという事でしょうか? そうなると、どこにどのような変更を加えられたのか 改修した人でないと分からないのではないでしょうか? あと、540円は管理画面の送料設定を参照しているのではないでしょうか? (管理画面ではそのような金額は登録されていないですか?) もし、プログラム中にハードコーディングされている可能性があるのであれば、 「540」という単語を検索すればヒットするのではないかと思います。
|
m.masami |
投稿日時: 2020/4/14 21:05
対応状況: −−−
|
半人前 登録日: 2020/4/14 居住地: 投稿: 28 |
Re: 教えてください。 468様 コメントありがとうございます。
おっしゃる通りで別の者がカスタマイズをして、今その者と連絡が取れない状況です。ですので、どこをカスタマイズしたかFTPからの日付を頼り修正してる状況です。 管理画面の配送方法設定も確認しましたが、無料条件に満たしてない送料のみ設定されてました。 単語検索ですが、お恥ずかしながらサーバからの検索方法がわかりませんでした。。。FFFTPからでも検索出来ますでしょうか?色々調べましたが、わからずじまいです。。 現状の配送方法設定ですが、①ヤマトネコポスと②宅配と2種あり、無料条件の金額に満たされていない送料が設定されております。①ヤマトネコポスの方は無料条件の金額に行ってれば全国無料なのですが、②宅配の方は無料条件の金額に行ってても、北海道と沖縄には、プラス540円が加算されるようになっております。その540円を550円に修正するだけなのですが。 簡素な説明で大変恐縮なのですが、何卒ご教授お願い致します。 |
468 |
投稿日時: 2020/4/15 8:15
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 教えてください。 カスタマイズされた内容の改修対応については、ここでのアドバイスは難しいかと思います。
(通常、弊社では他人がカスタマイズしたソースを改修する場合は調査を含めての有償対応としている為) 私が提案した単語検索ですが エディタに文字の検索機能というものは付いていませんか? どのエディタをご利用か分からないので何とも言い難いのですが ShoppingService.phpのソースをダウンロードして確認されているのかと思い発言しました。 ECCUBE内からカスタマイズされているソースを探すという話なのであれば、 ローカルPCにECCUBE一式をダウンロードして、何かしらのツールを利用して検索する事も可能とは思います。 (私はeclipseにプロジェクトとして取り込んでソース内検索を行いますが...) Linuxコマンドを使いなれているのであれば、 サーバにSSHで接続してgrep検索を実行すれば、指定したディレクトリ全体のソース検索を実行できるとは思います。 FTPで調査されているという事ですので更新日時の違いをチェックされているのだと思います。 その方法でも変更されたファイルは判断できると思います。 デフォルトのECCUBE3では 送料の無料条件判定は、ShoppingService.phpのfunction setDeliveryFreeAmount(), function setDeliveryFreeQuantity()で 行われていますので その辺りに何かカスタマイズの処理を追記されているのではないでしょうか?
|
m.masami |
投稿日時: 2020/4/15 10:55
対応状況: −−−
|
半人前 登録日: 2020/4/14 居住地: 投稿: 28 |
Re: 教えてください。 早速のご連絡ありがとうございます!!
教えて頂いたので、実行してみます。 結果ご報告させて頂ければ幸いです。 では、よろしくお願いいたします。 |
m.masami |
投稿日時: 2020/4/16 13:28
対応状況: −−−
|
半人前 登録日: 2020/4/14 居住地: 投稿: 28 |
Re: 教えてください。 468様
教えて頂きました方法で大体は確認致しました。 ShoppingService.phpソース含め、その他ソースも検索で送料の"540"で 検索しましたが、ヒットしませんでした。 ShoppingService.phpソースを確認しましたが、私のphp知識が無いせいだと思いますが、色々調べて確認しましたが、改修されてないような気がします。 /** * 配送料無料条件(合計金額)の条件を満たしていれば配送料金を0に設定 * * @param Order $Order */ public function setDeliveryFreeAmount(Order $Order) { // 配送料無料条件(合計金額) $deliveryFreeAmount = $this->BaseInfo->getDeliveryFreeAmount(); if (!is_null($deliveryFreeAmount)) { // 合計金額が設定金額以上であれば送料無料 if ($Order->getSubTotal() >= $deliveryFreeAmount) { $Order->setDeliveryFeeTotal(0); // お届け先情報の配送料も0にセット $shippings = $Order->getShippings(); foreach ($shippings as $Shipping) { $Shipping->setShippingDeliveryFee(0); } } } } /** * 配送料無料条件(合計数量)の条件を満たしていれば配送料金を0に設定 * * @param Order $Order */ public function setDeliveryFreeQuantity(Order $Order) { // 配送料無料条件(合計数量) $deliveryFreeQuantity = $this->BaseInfo->getDeliveryFreeQuantity(); if (!is_null($deliveryFreeQuantity)) { // 合計数量が設定数量以上であれば送料無料 if ($this->orderService->getTotalQuantity($Order) >= $deliveryFreeQuantity) { $Order->setDeliveryFeeTotal(0); // お届け先情報の配送料も0にセット $shippings = $Order->getShippings(); foreach ($shippings as $Shipping) { $Shipping->setShippingDeliveryFee(0); } } } } あと、データベースでdtb_delivery系も見ましたが、やはり送料の"540"が見当たらなかったです。 配送・送料系でプラグインは導入してないみたいです。 ShoppingService.phpに上書き記述した方がいいなど、なにかアドバイスを頂けますと助かります。 大変申し訳ございませんが、よろしくお願いいたします。 |
468 |
投稿日時: 2020/4/16 15:32
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 教えてください。 あくまでデフォルトではShoppingService.phpの中で送料計算を行っているというだけですので
やはりどこをどのように改修されたのかが分からないと対応は難しいと思います。 実装方法は技術者によって異なると思いますし、 プログラムだけで完結してるのか?DBを利用しているのか?も分からないかと思います。 540円という金額はフロントの「カートの中」→「注文内容のご確認」の時点で計算されているのでしょうか? あまり考えにくいと思いますが OrderEntityのfunction getDeliveryFeeTotal()辺りが変更されていたりする事はないでしょうか?
|
m.masami |
投稿日時: 2020/4/16 23:37
対応状況: −−−
|
半人前 登録日: 2020/4/14 居住地: 投稿: 28 |
Re: 教えてください。 ご連絡ありがとうございます。
おっしゃる通り、カート内の②ご注文内容確認の時点で、送料540円と出てきます。小計+送料 合計 っと言った感じになります。 ご注文内容確認画面で、送料無料条件に達してる場合は、配送方法を①ヤマトネコポス((北海道・沖縄・離島)でも無料)と②宅配(北海道・沖縄・離島の場合プラス540円)と選べまして、送り先が北海道・沖縄・離島で、②の宅配を選びますと、送料0円が→送料540円に変わります。 あと、管理画面→受注管理→注文者情報にも、送料540円と履歴が残るようになっております。 OrderEntityとは、src/Eccube/Entity/order.phpのことでよろしいでしょうか? order.phpとShoppingService.phpでは、getDeliveryFeeTotal()辺りに変更の形跡が無い気がしました。 ECCUBEの本を購入して勉強してましたが、なかなか理解がまだ出来ず知識不足で申し訳ございませんが、再度ご確認いただければ幸いです。 よろしくお願いいたします。 |
468 |
投稿日時: 2020/4/17 9:37
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 教えてください。 >OrderEntityとは、src/Eccube/Entity/order.phpのことでよろしいでしょうか?
はい。そのつもりで回答しました。 該当ファイルに変更が無いのであれば、あとはプラグイン周りが怪しいのではないかと思いますが 正直なところ、そこまで来ると本体のソースを簡易的にカスタマイズしたのではなくて、きちんと作り込まれているような気がします。 (ECCUBEのソースに影響が出ないようにカスタマイズされている) /app/Plugin/以下のファイルを確認してみては如何でしょうか? 時間はかかるかもしれませんが、全てのファイルを確認するのが良いかと思います。
|
m.masami |
投稿日時: 2020/4/18 13:08
対応状況: −−−
|
半人前 登録日: 2020/4/14 居住地: 投稿: 28 |
Re: 教えてください。 ご返信ありがとうございます。
order.phpとプラグインまわりを再度チェックしてみます。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |