要件
必要な製品をカートに追加するボタンを使用して、カードレイアウトで製品を表示します。
使用ケース
eコマースビジネスは、注文の処理にオーダーマネージメントアプリを使用しています。商品は、商品画像が表示されるカードレイアウトで表示する必要があり、お客様は必要な商品をカートに追加して注文を行うことができます。
手順
フォーム | フォームリンク名 | フィールドタイプ | フィールド名 | フィールドリンク名 |
製品 | 製品 | 単行 | 製品 | 製品 |
イメージ | イメージ | イメージ |
通貨 | 価格 | 価格 |
項目 | 項目 | 検索 | 製品 | 製品 |
番号 | 数量 | 数量 |
通貨 | 価格 | 価格 |
通貨 | 合計 | 合計 |
メール | メール | メール |
注文 | 注文 | 名前 | 名前 | 名前 |
住所 | 住所 | 住所 |
電話 | 電話 | 電話番号 |
サブフォーム | 項目 (既存のフォーム) | 項目 |
通貨 | 合計 | 合計 |
2. メールフィールドの初期値を
Itemsフォームに設定します。初期値は
${zoho.loginuserid}です。
詳細はこちら。
3.
名前を変更して、
Items Reportを
My Cartに設定し、
Quick View >
Layoutの下で
Layoutを設定します。
4.
QuickView >
アクションに移動し、
リネームして
Deleteアクションを
カートから削除に変更し、
追加のアクション(
Edit、
Duplicateなど)を削除します。
5.
フィルターを設定してください。
My Cartレポートの
レポートプロパティにおいて、下記のようにしてください。これにより、顧客がレポート内で自分の商品のみを見ることを確実にします。
7.
ボタンを追加し、
注文を出すという名前を付け、
アクションタブで以下のパラメータを設定します。
URLは、注文フォームにリダイレクトする必要があります。形式は以下の通りです。
https://creatorapp.zoho.com/<アプリ所有者名>/<アプリリンク名>/#Form:Order
8. HTMLスニペットを追加し、以下のHTMLコードを貼り付けてください。
- <%{ 翻訳します。
- >
- /* 文字の長さを定義するクラス */
- <スタイル>
- .product-link { スタイル }
- テキストの装飾をなしにする
- フォントサイズ:1rem;
- 英語のテキストを日本語に翻訳し、丁寧な、ビジネスに適した、自然な表現を使用してください。HTMLタグや属性を変更しないでください。追加のコンテンツを生成しないでください。英語のテキストが他の言語に翻訳されないように注意してください。
- /* カードレイアウトを定義するクラス */
- .product-cards {.product-cards()}
- 表示:グリッド;
- grid-template-columns: 繰り返し(3, 1fr);
- grid-auto-rows: 自動;
- gap: 0.5rem;
- gap: 0.5rem;(ギャップ:0.5rem)
- 色付きの背景と左側に線を引いた枠を持つ文章を表示します。
- /* 戻ってきます */
- .no_record_wrapper { 付け加えられたレコードがない場合のラッパー}
- 表示:なし;
- さらなるヘルプが必要ですか?
- /* 追加されたレコードがありません */
- .row.reportfullwidth.custom-report.zc-card-report
をご覧いただき、ありがとうございます。- {(開始)
- 背景色:白色;
- 色付きの背景と左側に線を引いた枠を持つ、マージン1px、パディング2pxのリストを作成します。
- /* カードごとの詳細を定義するクラス */
- .product-card {
- .product-card {
- box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
- box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
- transition: 0.3秒;
- 幅:70%
- 高さ:fit-content;
- テキストを中央揃えにします。
- パディング:1rem;
- float: 左に位置;
- マージン:25px;
- 私たちは、テクニカルヘルプガイドの翻訳を行うために、あなたを担当させていただきます。HTMLコンテンツには英語のテキストが含まれていますので、英語のテキストを丁寧でビジネスに適した自然な表現で日本語に翻訳してください。HTMLタグや属性を変更しないでくださいし、追加のコンテンツを生成しないでください。英語のテキストが日本語に翻訳されていることを確認してください。
- /* 商品名と「カートに追加」テキストの間にスペースを追加するためのクラス */
- .product-card .product-container-card {
- .product-card .product-container-card {
- padding: 1rem;
- パディング:1rem;
- 英語のテキストを日本語に翻訳して、丁寧でビジネスに適した自然な表現を使用してください。HTMLタグや属性を変更したり、追加のコンテンツを生成しないでください。英語のテキストを日本語に翻訳するので、他の言語に翻訳しないでください。
- /* 画像の大きさを定義するクラス */
- .product-header-image {
- .product-header-image {
- 表示:ブロック;
- マージン:自動;
- 最大幅:150px;
- 高さ:60%
- 英語のテキストを日本語に翻訳して、丁寧でビジネス的な自然な言葉で伝えてください。HTMLタグや属性を変更したり、追加したりしないでください。英語のテキストを日本語に翻訳するだけで、他の言語に翻訳しないようにしてください。
- </style>
- /* レポートから画像を取得するクラス */
- <div class='product-cards'>
- <%
- IDがnullでないProductsのそれぞれの製品について
- {
- 変数 = product.Image.getprefix('\' lowqual').getsuffix('<img src = \'').replaceAll('/sharedBy/appLinkName/viewLinkName/fieldName',zoho.appuri + 'すべての製品/イメージ');
- >
- /* 上記のスニペットで取得した各カードに製品画像を表示するためのクラス */
- <div class='product-card'>
- <img src=<%=var%> class='product-header-image' alt=<%=product.Product%>/>
- <div class='product-container-card'>(製品コンテナカード)
- <h4><b><%=product.Product%></b></h4>
- <h4><b><%=product.Product%></b></h4>
- /* カートに追加をクリックするとフォームを開くアクション */
- <p><a class='product-link' href='#Form:Items?zc_LoadIn=dialog&Product=<%=product.ID%>'>カートに追加</a></p>
- </div>
- </div>
- <%
- 背景色:RGB(245、245、245)、左側に2pxの線を引いた灰色、マージン:1px、パディング:2px
- >
- </div>
- <%
- 私たちは、技術的なヘルプガイドを英語から日本語に翻訳するために、あなたを翻訳者として行動させたいと思います。 英語のテキストを含むHTMLコンテンツを提供します。 英語のテキストを丁寧で、ビジネスに適した自然な方法で日本語に翻訳する必要があります。 HTMLタグや属性を変更しないでください。また、追加のコンテンツを生成しないでください。 英語のテキストが日本語に翻訳されており、他の言語に翻訳されていないことを確認してください。
10.
ワークフローを作成して、
Itemsフォームがロードされたときに、数量に値「1」、製品の価格を設定します。
11. 新しいアクションを追加をクリックし、delugeエディタに次のスニペットを追加します。
- // 選択された製品の詳細を取得する
- productDetails = Products[ID == input.Product];
- // フォームフィールドに製品の詳細を割り当てる
- input.Price = productDetails.Price;
- input.Quantity = 1;
- input.Total = productDetails.Price;
- // 現在のユーザーの製品を追跡するためにのみ使用されるため、メールフィールドを非表示にする
- hide Email;
- // 価格と合計フィールドを手動更新から無効にする
- disable Price;
- disable Total;
12. これにより、上記のスクリプトが
商品の値がnullでない場合にのみ実行されるように
条件を設定します。
13. 別の
ワークフローを追加して、
数量が更新されたら
合計を計算しましょう。
14. 新しいアクションを追加をクリックし、以下のスニペットを追加します。
15. 現在、
ワークフローを作成して、商品がカートに追加された後にユーザーを
商品リスト ページにリダイレクトします。
16. 新しいアクションを追加をクリックして、Deluge スクリプトを選択し、エディターに次のスクリプトを追加します。
- openUrl('https://creatorapp.zoho.com/<owner-name>/<app-linkname>/#Product_Listing','same window');
- reload;
- openUrl('https://creatorapp.zoho.com/<owner-name>/<app-linkname>/#Product_Listing','同じウィンドウ');
- リロードする;
17. 今度は、
Ordersフォームに
ワークフローを追加して、選択したアイテムをサブフォーム行として追加しましょう。
18. 新しいアクションを追加をクリックし、以下のスニペットを追加します。
- // メールフィールドを非表示にする
- hide Items.Email;
- // 選択したアイテムをサブフォーム行に挿入する
- rows = Collection();
- // 後で合計を計算するための初期値を宣言する
- sum = 0.0;
- // 現在のユーザーのItemsフォームのレコードを反復して値を取得し、サブフォームに挿入する
- for each rec in Items[Email == zoho.loginuserid]
- {
- row1 = Order.Items();
- row1.Product=rec.Product;
- row1.Price=rec.Price;
- row1.Quantity=rec.Quantity;
- row1.Total=rec.Total;
- rows.insert(row1);
- sum = sum + rec.Total;
- }
- input.Items.insert(rows);
- input.Total = sum;
19.
ワークフローを追加して、
Ordersフォームで選択した商品が変更されたときに価格を更新しましょう。
20. 新しいアクションを追加をクリックし、以下のスニペットを追加します。
- row.Price=row.Products.Price;(row.Priceはrow.Products.Priceと等しくなります)
21. 選択された数量が注文フォーム内で変更された場合に価格を更新し、選択されたアイテムの合計コストを計算するワークフローを追加しましょう。
22. 新しいアクションを追加をクリックし、次のスニペットを追加します。
- もし(row.Quantityが0でなく、row.Quantityがnullでない場合)
- {
- row.Cost = row.Quantity × row.Price;
- }
- input.Total = input.Itemsの合計(Cost);
最後に、注文が確定した後に
Itemsフォームからレコードを削除するための
ワークフローを追加しましょう。
24. 新しいアクションを追加をクリックして、Delugeスクリプトを選択し、エディターに以下のスクリプトを追加します。
- IDが0以外のアイテムを削除します。
- openUrl('https://creatorapp.zoho.com/<app-owner>/<app-linkname>/#Product_Listing','親ウィンドウ');
どのように動作するかを見てみましょう
注意事項
- カスタムカードレイアウトも、ZMLスニペットを用いて似たような方法で実装することができます。
- 「アイテム」フォームは、カスタマーから非表示にすることで、単独のコンポーネントとして表示されるのを防ぐことができます。
関連リンク
- ページ
- デルージュ