рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛
- Magento (рднрд╛рдЧ 1) рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореЗрд▓ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдБ, рдЬрд╣рд╛рдБ рд╣рдо Magento рдореЗрдВ рдПрдХ рдирдИ рдбрд┐рд▓реАрд╡рд░реА рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
- рд╣рдо Magento (рднрд╛рдЧ 2) рдХреЗ рд▓рд┐рдП "рдирдпрд╛ рдореЗрд▓" рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ , рдЬрд╣рд╛рдБ рд╣рдо Magento рдХреЛ рдирдП рдореЗрд▓ рдХреЗ рд╕рд╛рде рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпреВрдХреНрд░реЗрди рдХреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдорд╛рд▓ рд╡рд╛рд╣рдХ рдиреЛрд╡рд╛рдпрд╛ рдкреЛрдЪреНрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рд╛рде рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗред рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдорд╛рдВрдЧ рдореЗрдВ рд╣реИ, рддреЛ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддреН:
1. рдореБрдХреНрдд рдореЙрдбреНрдпреВрд▓ "рдирдпрд╛ рдореЗрд▓" Magento рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде;
2. рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рдПрдХ рд▓реЗрдЦред
рдпрд╣ рдЖрд▓реЗрдЦ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП Magento рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред GitHub рдкрд░ рд╕рднреА рд╕реНрд░реЛрдд рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
github.com/alexkuk/Ak_NovaPoshta , рд╡реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдкреВрд░рдХ рд╣реИрдВред
рддреЛ, рдЪрд▓реЛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрдпрд╛рди рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП:
1. Magento рдореЗрдВ рдПрдХ рдирдИ рд╢рд┐рдкрд┐рдВрдЧ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ;
2. рд╡рд┐рдзрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреБрд▓ рдкреИрдХреЗрдЬ рднрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рддрд░рдг рд▓рд╛рдЧрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП (рддрд╛рд▓рд┐рдХрд╛ рджрд░ рд╡рд┐рддрд░рдг рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ);
3. рдиреНрдпреВ рдореЗрд▓ рдХреЗ рд╕рд╛рде рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдмреЗрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛;
4. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╢рд╣рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдбрд┐рдкреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдХреЗ, рдПрдХ рдЖрджреЗрд╢ рд░рдЦрдиреЗ рдХреЗ рд╢рд┐рдкрд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХрджрдо рдкрд░ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ рдирдП рдореЗрд▓ рдбрд┐рдкреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд;
5. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреИрдирд▓ рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВред
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдиреНрдпреВ рдореЗрд▓ рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ TTNs рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдЖрдкрдХреА рдЕрдиреБрдорддрд┐ рд╕реЗ, рдореИрдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрд╛рдж рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЦрдВрдб 2 рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдПрдкреАрдЖрдИ рд╢рд┐рдкрд┐рдВрдЧ рд▓рд╛рдЧрдд рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдПрдВ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдореИрдВ рдПрдХ рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдСрд░реНрдбрд░ рдХреЗ рдХреБрд▓ рд╡рдЬрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдЯреЛрд░ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдбрд┐рд▓реАрд╡рд░реА рдХреА рд▓рд╛рдЧрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд┐рдХреНрд░реЗрддрд╛ рд╣рдореЗрд╢рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╡рдЬрди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╢рд┐рдкрд┐рдВрдЧ рд▓рд╛рдЧрдд рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЦреЗрд▓ рд╕рдХрддреА рд╣реИред рдмрд╛рдж рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧрдд рдЧрдгрдирд╛ рдЫреЛрдбрд╝ рджреЗрдВред
рдПрдХ рдирдИ рдбрд┐рд▓реАрд╡рд░реА рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ
рдЗрд╕рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдПрдХ рдирдИ рдбрд┐рд▓реАрд╡рд░реА рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВред рдореИрдВ Magento CE 1.7.0.2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдореЙрдбреНрдпреВрд▓ рдХреЛ Ak_NovaPoshta рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред Magento рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦреЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ Magento рджреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬрдм рд╣рдо рд╡рд┐рддрд░рдг рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпреЗ рд╢рд┐рдкрд┐рдВрдЧ рдХреИрд░рд┐рдпрд░ (рд╡рд╛рд╣рдХ) рдФрд░ рд╢рд┐рдкрд┐рдВрдЧ рддрд░реАрдХреЗ (рд╢рд┐рдкрд┐рдВрдЧ рддрд░реАрдХреЗ рдЬреЛ рд╡рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ) рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд╛рд╣рдХ рдиреНрдпреВ рдореЗрд▓ рд╣реИ, рд╣рдо рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдиреНрдпреВ рдореЗрд▓ рдбрд┐рдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╡рд╛рд╣рдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рддреАрди рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:
1. system.xml рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╡рд╛рд╣рдХ рдХреЗ рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ;
2. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдорд╛рди рдЬреЛрдбрд╝реЗрдВ, рд╕рд╛рде рд╣реА рд╡рд╛рд╣рдХ рдореЙрдбрд▓ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ, рдореЙрдбреНрдпреВрд▓ config.xml рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
<config> тАж <default> <carriers> <novaposhta> <active>0</active> <sallowspecific>1</sallowspecific> <specificcountry>UA</specificcountry> <model>novaposhta/carrier_novaPoshta</model> <title> </title> <specificerrmsg> . , , -.</specificerrmsg> </novaposhta> </carriers> </default> тАж </config>
3. рд╣рдорд╛рд░реЗ рдХреИрд░рд┐рдпрд░ рдореЗрдВ рдПрдХ рдХреНрд▓рд╛рд╕ рдореЙрдбрд▓ рдЬреЛрдбрд╝реЗрдВред
рдорд╛рд▓рд╡рд╛рд╣рдХ рдореЙрдбрд▓ рд╡рд░реНрдЧ Mage_Shipping_Model_Carrier_Abstract рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди Mage_Shipping_Model_Carrier_Interface рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Mage_Shipping_Model_Carrier_Abstract рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП getConfigData ($ рдлрд╝реАрд▓реНрдб) рд╡рд┐рдзрд┐ред рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдореЗрдВ, рд╣рдо рдореБрдЦреНрдп рд╡рд┐рдзрд┐ collectRates (Mage_Shipping_Model_Rate_Request $ request) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдкрд▓рдмреНрдз рд╡рд┐рддрд░рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛:
public function collectRates(Mage_Shipping_Model_Rate_Request $request) { if (!$this->getConfigFlag('active')) { return false; } $result = Mage::getModel('shipping/rate_result'); $shippingPrice = 1.00;
рдЬрдм рддрдХ рд╣рдордиреЗ рдЧреЛрджрд╛рдореЛрдВ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддрдм рддрдХ рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рддрд░рдг рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдирдВрдмрд░ 1ред рдХрд▓реЗрдХреНрдЯреЛрд░реЗрдЯреНрд╕ () рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░, Mage_Shipping_Model_Rate_Result рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдБ, рдФрд░ Mage_Shipping_Model_Rate_Result :: append () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ_age_Shipping_Model_Rate_Result_Method рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЬреЛрдбрд╝реЗрдВред
рдЕрдВрдд рдореЗрдВ, рд╣рдо рдореВрд▓ рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИред
public function isTrackingAvailable() { return true; }
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдорд╛рд░реА рд╡рд┐рддрд░рдг рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд┐рддрд░рдг рдХреА рд▓рд╛рдЧрдд рд╣рдореЗрд╢рд╛ 1.00 рд╣реЛрдЧреАред
рд╢рд┐рдкрд┐рдВрдЧ рд▓рд╛рдЧрдд рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝реЗрдВ
рдЕрдЧрд▓рд╛ рдХрджрдо рдХреБрд▓ рдСрд░реНрдбрд░ рд╡рдЬрди рдФрд░ рд╢рд┐рдкрд┐рдВрдЧ рд▓рд╛рдЧрдд рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдирддреАрдЬрддрди, рдореИрдВ рдЗрд╕ рдлреЙрд░реНрдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ system.xml рдореЗрдВ weight_price рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ:
тАж <weight_price translate="label"> <label>Shipping price</label> <frontend_model>novaposhta/config_field_weightPrice</frontend_model> <backend_model>adminhtml/system_config_backend_serialized_array</backend_model> <sort_order>110</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> </weight_price> тАж
рдмреИрдХреЗрдВрдб рдореЙрдбрд▓ рдПрдХ рдореЙрдбрд▓ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдлрд╝реАрд▓реНрдб рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдореЙрдбрд▓ Mage_Adminhtml_Model_System_Config_Backend_Serialized_Array рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдлреНрд░рдВрдЯреЗрдВрдб рдореЙрдбрд▓ рдПрдХ рдореЙрдбрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдПрдХ рдмреНрд▓реЙрдХ рд╣реИред рд╣рдо рдЕрдкрдирд╛ Ak_NovaPoshta_Block_Config_Field_WeightPrice рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝реЗрдВрдЧреЗ:
class Ak_NovaPoshta_Block_Config_Field_WeightPrice extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract { public function __construct() { $this->addColumn('weight', array( 'label' => Mage::helper('novaposhta')->__('Weight upper limit'), 'style' => 'width:120px', )); $this->addColumn('price', array( 'label' => Mage::helper('novaposhta')->__('Price'), 'style' => 'width:120px', )); $this->_addAfter = false; $this->_addButtonLabel = Mage::helper('novaposhta')->__('Add rate'); parent::__construct(); } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рд░ Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЙрд▓рдо рдФрд░ рдмрдЯрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░рд╣рддрд╛ рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝реАрд▓реНрдб рддреИрдпрд╛рд░ рд╣реИ, рдЕрдм рдСрд░реНрдбрд░ рдХреЗ рд╡рд┐рддрд░рдг рдХреА рд▓рд╛рдЧрдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реБрдП, рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╣рдХ рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рдореНрди рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:
protected function _getWeightPriceMap() { $weightPriceMap = $this->getConfigData('weight_price'); if (empty($weightPriceMap)) { return array(); } return unserialize($weightPriceMap); } protected function _getDeliveryPriceByWeight($packageWeight) { $weightPriceMap = $this->_getWeightPriceMap(); $resultingPrice = 0.00; if (empty($weightPriceMap)) { return $resultingPrice; } $minimumWeight = 1000000000; foreach ($weightPriceMap as $weightPrice) { if ($packageWeight <= $weightPrice['weight'] && $weightPrice['weight'] <= $minimumWeight) { $minimumWeight = $weightPrice['weight']; $resultingPrice = $weightPrice['price']; } } return $resultingPrice; }
рдФрд░ рдХрд▓реЗрдХреНрдЯреЛрд░реЗрдЯреНрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рд╣рдо рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
$shippingPrice = 1.00
рдЕрдзрд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЗ рд▓рд┐рдП
$shippingPrice = $this->_getDeliveryPriceByWeight($request->getPackageWeight());
рд╣реЛ рдЧрдпрд╛

рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рдиреНрдпреВ рдореЗрд▓ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдмреЗрд╕ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗ рдирд┐рдкрдЯреВрдВрдЧрд╛ред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!