рдЗрд╡реЗрдВрдЯ / рдСрдмреНрдЬрд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдЧрдиреЗрдЯреЛ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдирд╛

рдореИрдЧреЗрдВрдЯреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ 2 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдореИрдВ рдХрдИ рдмрд╛рд░ рдорд┐рд▓рд╛ рд╣реВрдВ рдЬрдм рдЙрдирдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдХреНрд╕рд░ рдореИрдЧреЗрдВрдЯреЛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрд╡рдпрдВ (рдмреНрд▓реЙрдХ, рдореЙрдбрд▓, рд╕рд╣рд╛рдпрдХ) рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред Magento рдПрдХ рдРрд╕рд╛ рдЙрддреНрдкрд╛рдж рд╣реИ рдЬреЛ рдореВрд▓ рддрд░реНрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрдзрди рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред


Magento рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмреНрд▓реЙрдХ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рд╕рдмрд╕реЗ рдЖрдо рддрд░реАрдХрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЖрдк рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдФрд░ рдПрдХ рдирдИ рдШрдЯрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реИред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдирд┐рдЧрд░рд╛рдиреА рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдВрдХрд▓рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдорд╛рдирдХ рддрд░реНрдХ рдХрд╛ рдкреВрд░рдХ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд░реНрдгрди рд╣реИрдмрд░ рдкрд░ рдХрдИ рдЕрдиреНрдп рд▓реЗрдЦреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рдкреВрд░реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЦреБрдж рдХреЛ рд╕рдмрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рддрдХ рд╕реАрдорд┐рдд рдХрд░реВрдВрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЙрддреНрдкрд╛рдж рдХреЛ рдХрд╛рд░реНрдб рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЪреЗрдХрдЖрдЙрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, ajax рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП json рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдВред

рд╣рдо рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рднрд╛рдЧ рдореЗрдВ config.xml рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<global> <events> <checkout_cart_add_product_complete> <observers> <ajax_addtocart_complete> <type>singleton</type> <class>ajaxcart/observer</class> <method>addToCartComplete</method> </ajax_addtocart_complete> </observers> </checkout_cart_add_product_complete> </events> </global> 


рдЖрдЗрдП рдЗрд╕ рднрд╛рдЧ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
 <events> 
- Magento рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ

 <type> 
- рд╕реЗрдЯ рдХрд░реЗрдВ рдХрд┐ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдореЙрдбрд▓ рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдореЙрдбрд▓ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

 <checkout_cart_add_product_complete> 
- рд╕рдВрдХреЗрдд рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕ рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирдирд╛ рд╣реИ

 <observers> 
- рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рд╣рдо рдЕрдкрдиреА рдШрдЯрдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

 <ajax_addtocart_complete> 
- рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдИрд╡реЗрдВрдЯ рдмрдирд╛рдПрдВ (рдХрд┐рд╕реА рднреА рдирд╛рдо рдкрд░ рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдП рдХрд┐ рд╣рдо рдЦреБрдж рдмрд╛рдж рдореЗрдВ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ)ред

 <class>ajaxcart/observer</class> 
- рдЙрд╕ рдореЙрдбрд▓ рдХрд╛ рдкрде рдЬрд╣рд╛рдВ рдШрдЯрдирд╛ рдореЗрдВ рд╣рдорд╛рд░рд╛ рддрд░реАрдХрд╛ рд╕реЗрдЯ рд╣реИ, рдЭреВрда рд╣реЛрдЧрд╛

 <method>addtocartcomplete</method> 
- рд╕реАрдзреЗ рдХрдХреНрд╖рд╛ рдореЗрдВ рд╣реА рд╡рд┐рдзрд┐, рдЬреЛ рдКрдкрд░ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╣реИред

рдпрд╣реА рд╣реИ, рдЗрд╕ рднрд╛рдЧ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдЬрдм "checkout_cart_add_product_complete" рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ ajaxcart / рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рд╕рд╛рде addToCartComplete рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдЧрд▓рд╛, рд╣рдо рдЕрдкрдиреЗ рдореЙрдбрд▓ рдХреЛ рдЕрдкрдиреЗ рдирдП рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

 <?php class My_Model_ObserverModel{ function addToCartComplete($observer){ Mage::getSingleton('checkout/session')->setNoCartRedirect(true); $response['sidebarcart'] = Mage::helper('helperName')->renderSidebarCart(); Mage::app()->getFrontController()->getResponse()->setBody(Mage::helper('core')->jsonEncode($response)); } } 


рдпрд╣рд╛рдВ рд╣рдо рдЪреЗрдХрдЖрдЙрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рдХреЙрд▓ рдЬреЛрдбрд╝рд╛, рдЬреЛ html рдореЗрдВ Mage_Checkout_Block_Cart_Sidebar рдмреНрд▓реЙрдХ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕ HTML рдХреЛ рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП json рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд┐рдП рдЙрд╕ рдШрдЯрдирд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо "checkout_cart_add_product_slus" рд╕реБрди рд░рд╣реЗ рд╣реИрдВред

рдЬрдм рдЙрддреНрдкрд╛рдж рдХреЛ рдХрд╛рд░реНрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝рдВрдХреНрд╢рди addAction () рдХреЛ Mage_Checkout_CartController рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рдпрджрд┐ рдЖрдЗрдЯрдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

 Mage::dispatchEvent('checkout_cart_add_product_complete', array('product' => $product, 'request' => $this->getRequest(), 'response' => $this->getResponse()) ); 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЗрд╕ рд╕рдордп, рд╕рднреА рдИрд╡реЗрдВрдЯ рдЙрди рд╕рднреА рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ 'checkout_cart_add_product_complete' рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рдереЗ рдФрд░ рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ Mage рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ :: dispatchEvent рдЖрдкрдХреЗ addToCartComplete рд╡рд┐рдзрд┐ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдореМрдЬреВрджрд╛ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдЙрддреНрдкрд╛рдж рдХрд╛ рд╕рд╕реБрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рд░рд┐рд╕реНрдкрд╛рдВрд╕ рдФрд░ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рднреАред рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдмрдирд╛рдП рдЧрдП рдИрд╡реЗрдВрдЯ рдореЗрдВ рдХреНрдпрд╛ рддрд░реНрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдЖрдкрдХреЛ рдЙрд╕ рдИрд╡реЗрдВрдЯ рдХрд╛ рдХреЙрд▓ рдвреВрдВрдврдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рд╕реБрди рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ Magento рдореЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рд┐рд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ рдЦреЛрдЬрдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдпрд╣ рдХреЗрд╡рд▓ рддрд░реНрдХ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рднрд╛рдЧ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдпрд╛ рдореЙрдбрд▓ рдХреЗ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рдЖрджрд┐рдо рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдХрд┐ рдЗрд╡реЗрдВрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдФрд░ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреА рдЬрдЧрд╣ рдкрд░ рдЖрдПрдВрдЧреЗред

Source: https://habr.com/ru/post/In138933/


All Articles