У меня возникла небольшая проблема, связанная с процессом проверки 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 /
где у меня есть мой биллинг + доставка + способы оплаты
Я взял блоки из файла checkout.xml из папки макета из моего шаблона (шаблон по умолчанию) и добавил их на страницу категории
Основная проблема, с которой я сталкиваюсь, заключается в том, что при открытии страницы я не могу просмотреть способ доставки, пока не выберу продукт и не обновлю страницу.
Поле Штат / Провинция вообще не отображается, а также не отображаются способы оплаты.
В настоящее время я пытаюсь сделать так, чтобы оформление заказа отображалось на странице продукта, как в следующем потоке:
Выбор продукта -> Способ доставки -> Способ оплаты -> Способ оплаты
Это шаги, которые я сейчас пытаюсь поместить на одной странице (страница отображения продукта / страница категории)
Мне удалось найти лучший солютин в этом случае, используя стандартный xml для чек-аута magento iwd на одну страницу.
если вы хотите, чтобы страница оформления заказа находилась на той же странице, что и страница продукта,
в Каталоге-> Управление категориями выберите свою категорию, затем в настройках отображения выберите параметр Статические блоки и продукты.
На пользовательской вкладке «Дизайн» установите макет страницы без макета, а затем используйте блок-обертку и нужные вам блоки на странице.
Также не забудьте включить файлы 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>
Других решений пока нет …