在产品页面上添加onepage checkout

时间:2015-02-16 15:17:04

标签: php magento checkout onepage-checkout

我遇到了关于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 / onepage /

我有我的结算+运费+付款方式

我从我的模板(默认rwd模板)的布局文件夹中取出checkout.xml文件中的块,并将它们添加到类别页面

我遇到的主要问题是,在我选择产品并刷新页面之后,在打开页面后我无法查看送货方式。 州/省领域根本没有显示,付款方式也没有出现。

我目前正在尝试完成的事情是结帐表单位于产品页面上,如下面的流程:

产品选择 - &gt;送货方式 - &gt;开票方法 - &gt;付款方式

这些是我目前尝试放在一个页面中的步骤(产品显示页面/类别页面)

1 个答案:

答案 0 :(得分:0)

在这种情况下,通过使用默认的xml for magento iwd one page chekout,我找到了最好的解决方案。

如果您想将结帐页面放在与产品页面相同的页面上, 在目录 - >管理类别中,选择您的类别,然后在显示设置上选择静态块和产品选项。

在自定义“设计”选项卡中,将页面布局设置为无布局,然后使用包装块和页面上所需的块。

另外,不要忘记在页面上包含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>