在产品页面上添加单页结帐
Adding the onepage checkout on product page
我在 magento 结帐过程中遇到了一个小问题。
目前我正在使用 list.phtml 文件将订单添加到购物车,并且在更改产品后,购物车被清空并添加了新选择的产品。我通过此功能执行此操作:
这是要删除的表格(我有表格键)
<form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="POST" name="emptyTheCart">
<?php echo $this->getBlockHtml('formkey'); ?>
<button type="submit" name="update_cart_action" value="empty_cart" style="display:none" title="<?php echo $this->__('Empty Cart'); ?>" id="empty_cart_button"></button>
</form>
$('.item').click(function() {
$(this).find('input:radio')[0].checked = true;
var formurl = $(this).find('input:radio').val();
var datafile=$("#product_addtocart_form").serialize();
var dataExecURL = "<?php echo $this->getUrl('checkout/cart/updatePost') ?>";
var datafiles=$("#emptyTheCart").serialize();
datafiles = datafiles + "&update_cart_action=empty_cart";
$.ajax({
type : 'POST',
data : datafiles,
url : dataExecURL,
success: function()
{
$.ajax({
type : 'POST',
data : datafile,
url : formurl
});
}
});
});
这部分效果很好。
问题是,在类别页面上,我在自定义布局更新中有以下自定义设计:
<block type="cms/block" name="opdracht_text" before="-">
<action method="setBlockId"><block_id>opdracht_text</block_id></action>
</block>
<block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" template="catalog/product/list.phtml" >
<block type="cms/block" name=" shipping_method" >
<action method="setBlockId"><block_id> shipping_method </block_id></action>
</block>
<block type="checkout/onepage_shipping_method_available" template="checkout/onepage/shipping_method/available.phtml"/>
<block type="cms/block" name="billing" >
<action method="setBlockId"><block_id>billing</block_id></action>
</block>
<block type="checkout/onepage_billing" name="checkout.onepage.billing" as="billing" template="checkout/onepage/billing.phtml"/>
<block type="cms/block" name="opdracht-delivery" >
<action method="setBlockId"><block_id>opdracht-delivery</block_id></action>
</block>
<block type="cms/block" name="payment_method" >
<action method="setBlockId"><block_id> payment_method </block_id></action>
</block>
<block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="checkout/onepage/payment.phtml">
<block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/info.phtml">
<action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
</block>
<block type="core/template" name="checkout.onepage.payment.additional" as="additional" />
<block type="core/template" name="checkout.onepage.payment.methods_additional" as="methods_additional" />
</block>
</reference>
作为单页结帐功能,我已将
的扩展程序添加到 magento
http://www.magentocommerce.com/magento-connect/one-page-checkout.html
当我导航到 store_url/chekout/cart
我可以清楚地看到购物车和运输方式并在那里更新价格,然后前往
的结帐页面
store_url/一页/
我在哪里有我的账单+运费+付款方式
我已经从我的模板(默认 rwd 模板)的布局文件夹中的 checkout.xml 文件中取出块,并将它们添加到类别页面
我遇到的主要问题是打开页面后我无法查看送货方式,直到我选择了产品并刷新了页面。
State/Province 字段根本没有显示,付款方式也没有显示。
我目前正在努力完成的事情是将结帐表格放在产品页面上,如下所示:
产品选择 -> 运输方式 -> 计费方式 -> 付款方式
这些是我目前尝试放在一个页面(产品展示页面/类别页面)中的步骤
在这种情况下,我通过使用默认的 xml 为 magento iwd 一页检查找到了最好的解决方案。
如果您希望结帐页面与产品页面位于同一页面上,
在“目录”->“管理类别”中,select 您的类别,然后在“显示设置”中选择“静态块和产品”选项。
在自定义设计选项卡中,将页面布局设置为无布局,然后在页面上使用包装块和所需的块。
另外,不要忘记在页面上包含 javascript 文件。
产品列表在同一页的单页结帐示例:
<reference name="head">
<action method="addItem"><type>skin_js</type><name>js/iwd/opc/checkout.js</name></action>
<action method="addItem"><type>skin_js</type><name>js/iwd/opc/extend.js</name></action>
<action method="addJs"><file>mage/directpost.js</file></action>
<action method="addItem"><type>skin_js</type><name>js/opcheckout.js</name></action>
<action method="addItem" ifconfig="opc/paypal/status"><type>skin_js</type><name>js/iwd/opc/lipp.js</name></action>
<action method="addJs" ifconfig="payment/braintree/active"><file>braintree/braintree-1.3.4.js</file></action>
<action method="addCss" ifconfig="payment/braintree/active"><stylesheet>braintree/css/braintree.css</stylesheet></action>
</reference>
<reference name="content">
<!-- Auguria Insurance -->
<block type="opc/wrapper" name="es.checkout.container" template="opc/wrapper.phtml">
<!-- SHIPPING METHODS FORM -->
<block type="checkout/onepage_shipping_method" name="checkout.onepage.shipping_method" as="shipping_method" template="opc/onepage/shipping_method.phtml">
<block type="checkout/onepage_shipping_method_available" name="checkout.onepage.shipping_method.available" as="available" template="checkout/onepage/shipping_method/available.phtml"/>
<block type="checkout/onepage_shipping_method_additional" name="checkout.onepage.shipping_method.additional" as="additional" template="checkout/onepage/shipping_method/additional.phtml"/>
</block>
<!-- Guest -->
<!-- BILLING FORM -->
<block type="opc/onepage_billing" name="checkout.onepage.billing" as="billing" template="opc/onepage/billing.phtml"/>
<!-- SHIPPING FORM -->
<block type="opc/onepage_shipping" name="checkout.onepage.shipping" as="shipping" template="opc/onepage/shipping.phtml"/>
<!-- COMMENT FORM -->
<block type="opc/onepage_comment" name="checkout.order.comment" as="customer.comment" />
<!-- PAYMENTS METHOD FORM -->
<block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="opc/onepage/payment.phtml">
<block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/methods.phtml">
<action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
</block>
</block>
<block type="checkout/agreements" name="checkout.onepage.agreements" as="agreements" template="opc/onepage/agreements.phtml"/>
<block type="opc/onepage_subscribed" template="opc/onepage/review/subscribed.phtml" name="opc.newsletters" />
</block>
</reference>
我在 magento 结帐过程中遇到了一个小问题。 目前我正在使用 list.phtml 文件将订单添加到购物车,并且在更改产品后,购物车被清空并添加了新选择的产品。我通过此功能执行此操作:
这是要删除的表格(我有表格键)
<form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="POST" name="emptyTheCart">
<?php echo $this->getBlockHtml('formkey'); ?>
<button type="submit" name="update_cart_action" value="empty_cart" style="display:none" title="<?php echo $this->__('Empty Cart'); ?>" id="empty_cart_button"></button>
</form>
$('.item').click(function() {
$(this).find('input:radio')[0].checked = true;
var formurl = $(this).find('input:radio').val();
var datafile=$("#product_addtocart_form").serialize();
var dataExecURL = "<?php echo $this->getUrl('checkout/cart/updatePost') ?>";
var datafiles=$("#emptyTheCart").serialize();
datafiles = datafiles + "&update_cart_action=empty_cart";
$.ajax({
type : 'POST',
data : datafiles,
url : dataExecURL,
success: function()
{
$.ajax({
type : 'POST',
data : datafile,
url : formurl
});
}
});
});
这部分效果很好。 问题是,在类别页面上,我在自定义布局更新中有以下自定义设计:
<block type="cms/block" name="opdracht_text" before="-">
<action method="setBlockId"><block_id>opdracht_text</block_id></action>
</block>
<block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" template="catalog/product/list.phtml" >
<block type="cms/block" name=" shipping_method" >
<action method="setBlockId"><block_id> shipping_method </block_id></action>
</block>
<block type="checkout/onepage_shipping_method_available" template="checkout/onepage/shipping_method/available.phtml"/>
<block type="cms/block" name="billing" >
<action method="setBlockId"><block_id>billing</block_id></action>
</block>
<block type="checkout/onepage_billing" name="checkout.onepage.billing" as="billing" template="checkout/onepage/billing.phtml"/>
<block type="cms/block" name="opdracht-delivery" >
<action method="setBlockId"><block_id>opdracht-delivery</block_id></action>
</block>
<block type="cms/block" name="payment_method" >
<action method="setBlockId"><block_id> payment_method </block_id></action>
</block>
<block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="checkout/onepage/payment.phtml">
<block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/info.phtml">
<action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
</block>
<block type="core/template" name="checkout.onepage.payment.additional" as="additional" />
<block type="core/template" name="checkout.onepage.payment.methods_additional" as="methods_additional" />
</block>
</reference>
作为单页结帐功能,我已将
的扩展程序添加到 magentohttp://www.magentocommerce.com/magento-connect/one-page-checkout.html
当我导航到 store_url/chekout/cart 我可以清楚地看到购物车和运输方式并在那里更新价格,然后前往
的结帐页面store_url/一页/
我在哪里有我的账单+运费+付款方式
我已经从我的模板(默认 rwd 模板)的布局文件夹中的 checkout.xml 文件中取出块,并将它们添加到类别页面
我遇到的主要问题是打开页面后我无法查看送货方式,直到我选择了产品并刷新了页面。 State/Province 字段根本没有显示,付款方式也没有显示。
我目前正在努力完成的事情是将结帐表格放在产品页面上,如下所示:
产品选择 -> 运输方式 -> 计费方式 -> 付款方式
这些是我目前尝试放在一个页面(产品展示页面/类别页面)中的步骤
在这种情况下,我通过使用默认的 xml 为 magento iwd 一页检查找到了最好的解决方案。
如果您希望结帐页面与产品页面位于同一页面上, 在“目录”->“管理类别”中,select 您的类别,然后在“显示设置”中选择“静态块和产品”选项。
在自定义设计选项卡中,将页面布局设置为无布局,然后在页面上使用包装块和所需的块。
另外,不要忘记在页面上包含 javascript 文件。
产品列表在同一页的单页结帐示例:
<reference name="head">
<action method="addItem"><type>skin_js</type><name>js/iwd/opc/checkout.js</name></action>
<action method="addItem"><type>skin_js</type><name>js/iwd/opc/extend.js</name></action>
<action method="addJs"><file>mage/directpost.js</file></action>
<action method="addItem"><type>skin_js</type><name>js/opcheckout.js</name></action>
<action method="addItem" ifconfig="opc/paypal/status"><type>skin_js</type><name>js/iwd/opc/lipp.js</name></action>
<action method="addJs" ifconfig="payment/braintree/active"><file>braintree/braintree-1.3.4.js</file></action>
<action method="addCss" ifconfig="payment/braintree/active"><stylesheet>braintree/css/braintree.css</stylesheet></action>
</reference>
<reference name="content">
<!-- Auguria Insurance -->
<block type="opc/wrapper" name="es.checkout.container" template="opc/wrapper.phtml">
<!-- SHIPPING METHODS FORM -->
<block type="checkout/onepage_shipping_method" name="checkout.onepage.shipping_method" as="shipping_method" template="opc/onepage/shipping_method.phtml">
<block type="checkout/onepage_shipping_method_available" name="checkout.onepage.shipping_method.available" as="available" template="checkout/onepage/shipping_method/available.phtml"/>
<block type="checkout/onepage_shipping_method_additional" name="checkout.onepage.shipping_method.additional" as="additional" template="checkout/onepage/shipping_method/additional.phtml"/>
</block>
<!-- Guest -->
<!-- BILLING FORM -->
<block type="opc/onepage_billing" name="checkout.onepage.billing" as="billing" template="opc/onepage/billing.phtml"/>
<!-- SHIPPING FORM -->
<block type="opc/onepage_shipping" name="checkout.onepage.shipping" as="shipping" template="opc/onepage/shipping.phtml"/>
<!-- COMMENT FORM -->
<block type="opc/onepage_comment" name="checkout.order.comment" as="customer.comment" />
<!-- PAYMENTS METHOD FORM -->
<block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="opc/onepage/payment.phtml">
<block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/methods.phtml">
<action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
</block>
</block>
<block type="checkout/agreements" name="checkout.onepage.agreements" as="agreements" template="opc/onepage/agreements.phtml"/>
<block type="opc/onepage_subscribed" template="opc/onepage/review/subscribed.phtml" name="opc.newsletters" />
</block>
</reference>