在 Hybris Commerce 上的 AbstractOrder 中添加自定义值 - AddtoCartFunction
Add a Custom Value in AbstractOrder on Hybris Commerce - AddtoCartFunction
我正在尝试为 Hybris Commerce b2c 中的 addtocart 函数添加自定义值。是带有复选框的布尔值。
我已经在 core-items.xml 中添加了 bol 自定义值,但现在我需要在选中复选框时获取该值,然后再按下 addToCart 按钮,然后在结帐页面中显示该值。
我认为这不是一项短任务,但我只想了解此类流程的数据流,这是复杂的部分。
如果有人有时间解释一下,那将不胜感激!谢谢 !
<form:form method="post" id="addToCartForm" class="add_to_cart_form" action="${addToCartUrl}">
<div>
<div class="custom-control custom-checkbox">
<input path="trasiego" onclick="ACC.productDetail.enableMinusBtn()" type="checkbox" class="custom-control-input" id="trasiego">
<form:checkbox path="trasiego" value="true"/>
<spring:theme code="product.pdp.pedidoTrasiego"/>
</div>
</div>
<input type="hidden" maxlength="3" size="1" id="qty" name="qty" class="qty js-qty-selector-input" value="1">
<input class = "js-simulate-validate-link" type="hidden" name="productCodePost" value="${fn:escapeXml(product.code)}"/>
<ycommerce:testId code="simulateButton">
<button id="simulateButton" type="button" data-error-simulate-url="${fn:escapeXml(simulatePopup)}" data-simulate-title="<spring:theme code="text.simulate"/>" class="btn btn-default btn-block js-add-to-cart" disabled=disabled">
<spring:theme code="basket.simulate"/>
</button>
</ycommerce:testId>
<ycommerce:testId code="addToCartButton">
<button id="addToCartButton" type="submit" class="btn btn-primary btn-block" disabled=disabled>
<spring:theme code="basket.buy"/>
</button>
<br>
</ycommerce:testId>
</form:form>
如果您觉得有帮助,请点下面的几点,
I've add the bol custom value in core-items.xml......
当我读到上面的声明时有点困惑,因此想指出接触 OOB 扩展代码库是违反标准做法的。相反,您应该在项目 $extension-items.xml
中生成自定义扩展和 extend/update 项
I need to get that value when the checkbox is selected before press the addToCart Button and then show that value in the checkout page.
您可以通过以下步骤实现它:
步骤1-在你的项目扩展$extension-items.xml中,添加一个新的布尔属性到抽象顺序
<itemtype code="AbstractOrder" autocreate="false" generate="false" >
<attributes>
<attribute qualifier="code" type="java.lang.Boolean">
<persistence type="property" />
</attribute>
</attribute>
</itemtype>
步骤 2 -运行ant clean all
第 3 步 - 在您的项目店面扩展中,在 Jsp/Tag 文件中添加一个复选框
Step 4 -如果要在这个checkbox的select/deselect上持久化这个值的选择,可以在相应的JS文件中写一个onClick()事件.
在你的情况下你可以使用
/$storefornt-extension/web/webroot/WEB-INF/_ui-src/responsive/lib/ybase-0.1.0/js/acc.cart.js
步骤 5 - 在 Controller (MVC) 中创建相应的处理程序。您可以根据需要使用 AddToCartController.java 或 CartPageController
Step 6 -在对应的facade --> service中,将新字段值保存到model
步骤 7 - 在 AbstractOrderPopulator 或 CartPopulator 中,映射您的新字段以填充它从项目模型返回到 CartData。也可以用在下一页查看。
有了这个,您的字段值将被持久化并获取以在各个 hybris 层之间传输,您可以使用相应的数据对象。
希望对您有所帮助。
我正在尝试为 Hybris Commerce b2c 中的 addtocart 函数添加自定义值。是带有复选框的布尔值。
我已经在 core-items.xml 中添加了 bol 自定义值,但现在我需要在选中复选框时获取该值,然后再按下 addToCart 按钮,然后在结帐页面中显示该值。
我认为这不是一项短任务,但我只想了解此类流程的数据流,这是复杂的部分。
如果有人有时间解释一下,那将不胜感激!谢谢 !
<form:form method="post" id="addToCartForm" class="add_to_cart_form" action="${addToCartUrl}">
<div>
<div class="custom-control custom-checkbox">
<input path="trasiego" onclick="ACC.productDetail.enableMinusBtn()" type="checkbox" class="custom-control-input" id="trasiego">
<form:checkbox path="trasiego" value="true"/>
<spring:theme code="product.pdp.pedidoTrasiego"/>
</div>
</div>
<input type="hidden" maxlength="3" size="1" id="qty" name="qty" class="qty js-qty-selector-input" value="1">
<input class = "js-simulate-validate-link" type="hidden" name="productCodePost" value="${fn:escapeXml(product.code)}"/>
<ycommerce:testId code="simulateButton">
<button id="simulateButton" type="button" data-error-simulate-url="${fn:escapeXml(simulatePopup)}" data-simulate-title="<spring:theme code="text.simulate"/>" class="btn btn-default btn-block js-add-to-cart" disabled=disabled">
<spring:theme code="basket.simulate"/>
</button>
</ycommerce:testId>
<ycommerce:testId code="addToCartButton">
<button id="addToCartButton" type="submit" class="btn btn-primary btn-block" disabled=disabled>
<spring:theme code="basket.buy"/>
</button>
<br>
</ycommerce:testId>
</form:form>
如果您觉得有帮助,请点下面的几点,
I've add the bol custom value in core-items.xml......
当我读到上面的声明时有点困惑,因此想指出接触 OOB 扩展代码库是违反标准做法的。相反,您应该在项目 $extension-items.xml
中生成自定义扩展和 extend/update 项I need to get that value when the checkbox is selected before press the addToCart Button and then show that value in the checkout page.
您可以通过以下步骤实现它:
步骤1-在你的项目扩展$extension-items.xml中,添加一个新的布尔属性到抽象顺序
<itemtype code="AbstractOrder" autocreate="false" generate="false" >
<attributes>
<attribute qualifier="code" type="java.lang.Boolean">
<persistence type="property" />
</attribute>
</attribute>
</itemtype>
步骤 2 -运行ant clean all
第 3 步 - 在您的项目店面扩展中,在 Jsp/Tag 文件中添加一个复选框
Step 4 -如果要在这个checkbox的select/deselect上持久化这个值的选择,可以在相应的JS文件中写一个onClick()事件. 在你的情况下你可以使用 /$storefornt-extension/web/webroot/WEB-INF/_ui-src/responsive/lib/ybase-0.1.0/js/acc.cart.js
步骤 5 - 在 Controller (MVC) 中创建相应的处理程序。您可以根据需要使用 AddToCartController.java 或 CartPageController
Step 6 -在对应的facade --> service中,将新字段值保存到model
步骤 7 - 在 AbstractOrderPopulator 或 CartPopulator 中,映射您的新字段以填充它从项目模型返回到 CartData。也可以用在下一页查看。
有了这个,您的字段值将被持久化并获取以在各个 hybris 层之间传输,您可以使用相应的数据对象。
希望对您有所帮助。