▼テンプレート
[EC-CUBE] 4.0.3
[レンタルサーバ] ローカル環境
[OS] macOS catalina 10.15.4
[PHP] 7.4
[データベース] postgreSQL 9.6
[WEBサーバ] apache
[ブラウザ] chrome
カートへ追加済みの商品の数量変更は標準で1個づつの増減しかできないのですがこれをセレクトボックスで任意の数量へ変更したいと思っています。
CartController.phpにカスタマイズで下記を追加しました。
/**
* カート明細の数量を直接変更する.
*
*
* @Route(
* path="/cart/change/{productClassId}/{quantity}",
* name="cart_change_item",
* methods={"PUT"},
* requirements={
* "productClassId": "\d+",
* "quantity": "\d+"
* }
* )
*/
public function changeCartItem($productClassId,$quantity)
{
log_info('カート明細操作開始', ['quantity' => $quantity, 'product_class_id' => $productClassId]);
$this->isTokenValid();
/** @var ProductClass $ProductClass */
$ProductClass = $this->productClassRepository->find($productClassId);
if (is_null($ProductClass)) {
log_info('商品が存在しないため、カート画面へredirect', ['quantity' => $quantity, 'product_class_id' => $productClassId]);
return $this->redirectToRoute('cart');
}
// 明細の変更
$this->cartService->addProduct($ProductClass, $quantity);
// カートを取得して明細の正規化を実行
$Carts = $this->cartService->getCarts();
$this->execPurchaseFlow($Carts);
log_info('カート演算処理終了', ['quantity' => $quantity, 'product_class_id' => $productClassId]);
return $this->redirectToRoute('cart');
}
javascriptを使ってテキストボックスに入力した任意の数値をaタグのリンクで数量変更することは出来たのですがセレクトボックスで変更したタイミングでpostする方法がわかりません。
どうかよろしくお願い申し上げます。