2017 © Pedro PelΓ‘ez
 

library clientsdk

SDK for quick creation DDelivery client integration

image

ddelivery/clientsdk

SDK for quick creation DDelivery client integration

  • Saturday, July 2, 2016
  • by ddelivery
  • Repository
  • 2 Watchers
  • 2 Stars
  • 41 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 1 Open issues
  • 14 Versions
  • 5 % Grown

The README.md

Client SDK DDelivery

Client SDK - SDK для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ клиСнтских Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для сСрвиса доставки DDelivery., (*1)

ПАМ(панСль администрирования ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ) - рСсурс ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ модуля ΠΈ взаимодСйствуСт с Client SDK ΠΈ сСрвисом доставки DDelivery. Client SDK привязываСтся ΠΊ ПАМ посрСдством АПИ ΠΊΠ»ΡŽΡ‡Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ Π² Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅ cabinet.ddelivery.ru. Π’ дальнСйшСм Π² ПАМ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° доставки модуля., (*2)

SDK ID - ΠΈΠ½Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ доставки Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΡŒ., (*3)

DDelivery ID - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ заявки Π½Π° доставку сСрвиса., (*4)

АдаптСр - класс ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²ΡƒΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‡Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ CMS. ΠžΡ‚ Π½Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ свой класс. (для php ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ)., (*5)

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для систСм Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… PHP, смотритС Ρ€Π°Π·Π΄Π΅Π» этой инструкции "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ модуля Ρ‡Π΅Ρ€Π΅Π· API", Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡƒΠ½ΠΊΡ‚ "5. Π’Ρ‹Π²ΠΎΠ΄ модуля доставки Π½Π° страницС оформлСния доставки", (*6)

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ

  application/        Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ сдк
  example/            ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ

Client SDK содСрТит всС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько этапов:, (*7)

  1. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ example/ ., (*8)

  2. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса Adapter(ΠΏΡ€ΠΈΠΌΠ΅Ρ€ IntegratorAdapter.php), (*9)

  3. Учитывая ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ CMS, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ систСмныС скрипты для CMS ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Client SDK(ΠΏΡ€ΠΈΠΌΠ΅Ρ€ example/ajax.php)., (*10)

  4. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ локальноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° сторонС CMS Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ initStorage класса Business (Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈ установкС модуля Π² CMS), (*11)

  5. ΠŸΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Π°ΠΏΠΈ ΠΊΠ»ΡŽΡ‡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΊ ПАМ., (*12)

  6. ВывСсти способ доставки Π½Π° страницС оформлСния Π·Π°ΠΊΠ°Π·Π° CMS(ΠΏΡ€ΠΈΠΌΠ΅Ρ€ index.php). Для этого ΠΊ этой страницС checkout Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ js Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ js ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ SDK ID. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° доставки, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ способов ΠΎΠΏΠ»Π°Ρ‚Ρ‹ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π½Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ ΠΏΠ»Π°Ρ‚Π΅ΠΆ для ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² доставки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚., (*13)

  7. ΠŸΡ€ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ оформлСния Π·Π°ΠΊΠ°Π·Π° (Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ³Π΄Π° цмс вставляСт Π² Π‘Π” Π·Π°ΠΊΠ°Π· ΠΈ Π²Ρ‹Π±Ρ€Π°Π½ способ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ onCmsOrderFinish класса Business для привязки Π·Π°ΠΊΠ·Π° CMS ΠΈ SDK ID., (*14)

  8. ΠŸΡ€ΠΈ сохранСнии Π·Π°ΠΊΠ°Π·Π° ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… доставки Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ viewOrder класса Business ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SDK ID., (*15)

  9. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ статуса Π·Π°ΠΊΠ°Π·Π° ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒΡ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π·Π°ΠΊΠ°Π·Π° (onCmsChangeStatus ΠΈΠ»ΠΈ cmsSendOrder соотвСтствСнно) класса Business., (*16)

Запуск Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

Для запуска ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ сдк Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ находится ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. `````` example/IntegratorAdapter.php - класс Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, являСтся ΡΠ²ΡΠ·ΡƒΡŽΡ‰ΠΈΠΌ Π·Π²Π΅Π½ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Client SDK ΠΈ CMS. example/ajax.php - Ρ„Π°ΠΉΠ» ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° Π² CMS ΠΈ запускаСт Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Client SDK. example/index.php - ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ½ΠΎΠΏΠΊΠΈ для открытия модуля Π½Π° страницС оформлСния Π·Π°ΠΊΠ°Π·Π°. example/delivery.php - ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π·Π°ΠΊΠ°Π·Π°, ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². example/db.sqlite - Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Client SDK, (*17)

ЗапуститС Ρ„Π°ΠΉΠ» index.php Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ example/, для запуска ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ тСстовый Π°ΠΏΠΈ ΠΊΠ»ΡŽΡ‡.
Из ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля Π΄ΠΎΠ»ΠΆΠ΅Π½ запустится ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π² дальнСйшСм ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅
ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ рСкомСндуСтся руководствоватся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ· example/


1. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ  класса Adapter
-------------------------------------------------------
Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ  ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ
Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅.
Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°ΠΏΠΈ ΠΊΠ»ΡŽΡ‡ Π½Π° сайтС cabinet.ddelivery.ru


ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ ПАМ происходит ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ
Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎ ссылкС ajax.php?action=admin, ΠΏΡ€ΠΈ этом происходит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°
наличия ΠΏΡ€Π°Π² администратора CMS ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² ПАМ Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π³ΠΈΠ±ΠΊΡƒΡŽ настройку ΠΏΡ€Π°Π²ΠΈΠ» доставки

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°ΠΏΠΈ ΠΊΠ»ΡŽΡ‡ ΠΈΠ· настроСк

public function getApiKey(){ return 'api_key'; }, (*18)



ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€Π°Π² администратора CMS

public function isAdmin(){ if($_SESSION['admin'] == 1){ return true; } return false; }, (*19)



НазваниС CMS

public function getCmsName(){ return "Joomla"; return "Bitrix"; ... }, (*20)


ВСрсия CMS

public function getCmsVersion(){ return '1.1'; }, (*21)



ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТаниС ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ Π³Π΄Π΅ CMS Ρ…Ρ€Π°Π½ΠΈΡ‚ содСрТимоС ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹(сСссия, Π‘Π”, cookies), Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² массив ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ IntegratorAdapter.php

public function getProductCart(){ return array( array( "id"=>12, "name"=>"ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½", "width"=>10, "height"=>10, "length"=>10, "weight"=>1, "price"=>1110, "quantity"=>2, "sku"=>"app2" ), array( ... ); ); }, (*22)


ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ скидку для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π½ΡΡ‚ΡŒ Π΅Π΅ ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅ΠΉ стоимости Π·Π°ΠΊΠ°Π·Π°

public function getDiscount(){ return 50; }, (*23)




Client SDK прСдусматриваСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ статусов ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° со статусами DDelivery.ru ΠŸΡ€ΠΈ синхронизации статусов Π·Π°ΠΊΠ°Π·ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ произвСсти UPDATE ΠΏΠΎΠ»Π΅ΠΉ статуса Π·Π°ΠΊΠ°Π·Π° Π² Π‘Π” Π·Π°ΠΊΠ°Π·ΠΎΠ². Бинхронизация Π±ΡƒΠ΄Π΅Ρ‚ проводится 2 Ρ€Π°Π·Π° Π² сутки Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° пСрСдаСтся массив $order

array( 'id' => 'status', 'id2' => 'status2', );, (*24)

, Π³Π΄Π΅ 'id' - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°ΠΊΠ°Π·Π° CMS, 'status' - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ статуса для CMS(соотвСтствиС статусов
настраиваСтся Π² ПАМ, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Настройки CMS).

public function changeStatus(array $orders){ foreach($orders as $key=>$item){ $query = "UPDATE orders_table_cms SET status_cms=$item WHERE order_id=$key" } }, (*25)


ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ поля Π·Π°ΠΊΠ°Π·Π° ΠΈΠ· CMS ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ ЗначСния ΠΊΠ»ΡŽΡ‡Π΅ΠΉ: 'city' => Π³ΠΎΡ€ΠΎΠ΄ назначСния, 'payment' => Ρ‚ΠΈΠΏ ΠΎΠΏΠ»Π°Ρ‚Ρ‹, 'status' => статус Π·Π°ΠΊΠ°Π·Π°, 'sum' => сумма Π·Π°ΠΊΠ°Π·Π°, 'delivery' => ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ доставки

public function getOrder($id){ return array( 'city' => 'Π£Ρ€ΡŽΠΏΠΈΠ½ΡΠΊ', 'payment' => 22, 'status' => 'Бтатус', 'sum' => 2200, 'delivery' => 220, ); }, (*26)


ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ поля списка Π·Π°ΠΊΠ°Π·ΠΎΠ² Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ c $from $to Π·Π°ΠΊΠ°Π·Π° ΠΈΠ· CMS $from - строка Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 'Y.m.d' $to - строка Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 'Y.m.d'

public function getOrders($from, $to){ return array( array( 'city' => 'Π£Ρ€ΡŽΠΏΠΈΠ½ΡΠΊ', 'payment' => 22, 'status' => 'Бтатус', 'sum' => 2200, 'delivery' => 220, ), array( 'city' => 'Π³. Москва, Московская ΠΎΠ±Π»Π°ΡΡ‚ΡŒ', 'payment' => 'ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΠ»Π°Ρ‚Ρ‹', 'status' => 'Бтатус 222', 'sum' => 2100, 'delivery' => 120, ) ); }, (*27)


ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список ΠΏΠΎΠ»Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Π²ΠΈΠ΄Π΅ массива с ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ НСобходимо это для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ оформлСния Π·Π°ΠΊΠ°Π·Π° Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ поля заполнялись автоматичСски Если это зарСгистрированный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ CMS Ρ…Ρ€Π°Π½ΠΈΡ‚ значСния Π² сСссии, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΈΡ… ΠΎΡ‚Ρ‚ΡƒΠ΄ΠΎΠ²Π°, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· URL ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ модуля

public function getUserParams($request){ return array( self::USER_FIELD_STREET => 'Π¦Π²Π΅Ρ‚Π°Π΅Π²ΠΎΠΉ', self::USER_FIELD_COMMENT => 'ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ', self::USER_FIELD_HOUSE => '2Π°', self::USER_FIELD_FLAT => '123', self::USER_FIELD_ZIP => '10101' ); }, (*28)



ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список статусов Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈΠ· CMS - Π² дальнСйшСм ΠΎΠ½ΠΈ атоматичСски ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ПАМ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ соотвСтствиС статусов Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Настройки CMS

public function getCmsOrderStatusList(){ return array('10' => 'Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½', '11' => 'ΠšΡƒΠΏΠ»Π΅Π½'); }, (*29)



ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список способов ΠΎΠΏΠ»Π°Π½Ρ‹ для настройки Π² ПАМ, для Π²Ρ‹Π±ΠΎΡ€Π° способа ΠΎΠΏΠ»Π°Ρ‚Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡƒ ΠΏΠ»Π°Ρ‚Π΅ΠΆΡƒ (Ρ€Π°Π·Π΄Π΅Π» Настройки CMS Π² ПАМ)

public function getCmsPaymentList(){ return array('14' => 'Наличными', '17' => 'ΠšΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ'); }, (*30)




Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ свои кастомныС поля ΠΈ Π΄Π°Π»Π΅Π΅ Π² ПАМ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ значСния ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ значСния локально self::FIELD_TYPE_TEXT - тСкстовоС ΠΏΠΎΠ»Π΅ self::FIELD_TYPE_CHECKBOX - чСкбокс self::FIELD_TYPE_LIST - список

public function getCustomSettingsFields(){ return array( array( "title" => "НазваниС (ΠŸΡ€ΠΈΠΌΠ΅Ρ€ кастомного поля)", "type" => self::FIELD_TYPE_TEXT, "name" => "name", //"items" => getStatusList(), "default" => 0, "data_type" => array("string"), "required" => 1 ), array( "title" => "Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ способ доставки(ΠŸΡ€ΠΈΠΌΠ΅Ρ€ кастомного поля)", "type" => self::FIELD_TYPE_CHECKBOX, "name" => "checker", "default" => true, "data_type" => array("int"), "required" => 1 ) ); }, (*31)




ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ настройки Π‘Π”
public function getDbConfig(){
    return array(
                'pdo' => new \PDO('mysql:host=localhost;dbname=ddelivery', 'root', '0', array(\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")),
                'prefix' => '',
     );
}


Для рСдактирования Π·Π°ΠΊΠ°Π·Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ получСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π·Π°ΠΊΠ°Π·Π° ΠΈ скидки Π² административной ΠΏΠ°Π½Π΅Π»ΠΈ CMS
    public function getAdminDiscount(){
        //$this->getDiscount();
    }


    public function getAdminProductCart(){
        //$this->getProductCart();
    }

2.ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ учитывая ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ CMS Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ------------------------------------------------------- ΠŸΡ€ΠΈΠΌΠ΅Ρ€ хранится Π² Ρ„Π°ΠΉΠ»Π΅ example/ajax.php Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Client SDK, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ DDelivery\Adapter\Container - позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ класс Adapter

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter));, (*32)


НапримСр Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² Client SDK ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ render, $_REQUEST - массив с GET ΠΈ POST ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ запроса

$container->getUi()->render($_REQUEST);, (*33)


Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈ нСобходимости Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ этап 3 ΠΈΠ»ΠΈ 4, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Business ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, для этого создаСм ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness();, (*34)

Если Π½Π΅ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠ° Π±ΠΎΠ»Π΅Π΅ гибкаая настройка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰, Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ
ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Container ΠΈ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ 
согласно интСрфСйсов,  ClientSDK Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ

3.Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰
--------------------
Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля Π½Π° сторонС CMS Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.
Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π΅ настройки Π‘Π” ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄
initStorage() класса Business, возпользовавшись ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ:

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness();, (*35)

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° $business->initStorage();, (*36)

4.ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π°ΠΏΠΈ ΠΊΠ»ΡŽΡ‡Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° с Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ административной панСлью (CAP)
------------------------------------------------------------------------
Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ привязку Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ссылкС(ΠΏΡ€ΠΈ условии Ρ‡Ρ‚ΠΎ привязки
ΠΏΠΎ этому Π°ΠΏΠΈ ΠΊΠ»ΡŽΡ‡Ρƒ Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ), Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ url http://Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π°/ajax.php?action=admin .
НапримСр http://site/ddelivery/ajax.php?action=admin
Если привязка ΠΏΠΎ АПИ ΠΊΠ»ΡŽΡ‡Ρƒ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π°, Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ сброс привязки -
Ρ‡Π΅Ρ€Π΅Π· Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚ cabinet.ddelivery.ru


5. Π’Ρ‹Π²ΠΎΠ΄ модуля доставки Π½Π° страницС оформлСния доставки
--------------------------------------------------------
Для этого Π½Π° страницу оформлСния Π·Π°ΠΊΠ°Π·Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ скрипт

, (*37)

Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ инициализируСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

, (*38)

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ Π² js доступСн ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ DDeliveryModule, ΠΎΠ½ позволяСт ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ 
ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚Π° доставки.
Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ js  ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ  ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ
Π² Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ DDeliveryModule.init

params{ url: 'ajax.php?action=module', width: 550, height: 440, } callbacks = { resize_event:function(data){ // событиС ΠΏΡ€ΠΈ измСнСнию Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² модуля // Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ data Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ }, open: function(){ // Π₯ΡƒΠΊ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΎΠΊΠ½Π°; return true; }, change: function(data){ // Π₯ΡƒΠΊ Π½Π° ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ оформлСния Π·Π°ΠΊΠ°Π·Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°; }, close_map: function(data){ // Π₯ΡƒΠΊ Π½Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ }, price: function(data){ // Ρ…ΡƒΠΊ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅Π½Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ доставки ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ // ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ НПП Π² этом ΠΏΡƒΠ½ΠΊΡ‚Π΅ } }; // 'ddelivery_container_place' - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ div-a Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ инициализируСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ DDeliveryModule.init(params, callbacks, 'ddelivery_container_place');, (*39)

это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ оформлСния доставки ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ

ΠŸΡ€ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ оформлСния доставки Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° change(см. ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ callbacks) ΠΏΡ€ΠΈΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅
с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎ доставку Π² Π²ΠΈΠ΄Π΅ js ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

city: "151184" - id Π³ΠΎΡ€ΠΎΠ΄Π° доставки city_name: "Π³. Москва" - Π“ΠΎΡ€ΠΎΠ΄ доставки client_price: 281.49 - Π¦Π΅Π½Π° доставки company: "20" - id ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ доставки company_name: "DPD Parcel" - НазваниС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ доставки id: 1198 - SDK ID (Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с ID заявки Π½Π° ddelivery.ru) info: "ΠšΡƒΡ€ΡŒΠ΅Ρ€ΡΠΊΠ°Ρ доставка, ΡƒΠ». Π¦Π²Π΅Ρ‚Π°Π΅Π²Π°, 15, ΠΊΠ². 122, ID ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ:20, Π³. Москва" - описаниС Π² Π²ΠΈΠ΄Π΅ строки payment_availability: 1 - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ° point: 0 - id Ρ‚ΠΎΡ‡ΠΊΠΈ to_flat: "122" - ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π° to_house: "15" - Π΄ΠΎΠΌ to_street: "Π¦Π²Π΅Ρ‚Π°Π΅Π²Π°" - ΡƒΠ»ΠΈΡ†Π° type: 2 - Ρ‚ΠΈΠΏ доставки 1 - Π‘Π°ΠΌΠΎΠ²Ρ‹Π²ΠΎΠ·, 2 - ΠšΡƒΡ€ΡŒΠ΅Ρ€ΠΊΠ°, 3 - ΠŸΠΎΡ‡Ρ‚Π°, (*40)


Π’Π°ΠΆΠ½ΠΎ срСдствами CMS Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ id, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² дальнСйшСм ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π·Π°ΠΊΠ°Π·Π΅ ΠΏΠΎ этому id(для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ†Π΅Π½Ρ‹ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€). Π’ΠΎΠ΅ΡΡ‚ΡŒ Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 6, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ id, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² сСссии ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ страницами офрмлСния Π·Π°ΠΊΠ°Π·Π° Π² полях Ρ„ΠΎΡ€ΠΌΡ‹. 6. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° валидности Π΄Π°Π½Π½Ρ‹Ρ… доставки ---------------------------------------------------------------- Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ†Π΅Π½Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… полях доставки(Ρ‚Π΅ поля Ρ‡Ρ‚ΠΎ приходят Π² js ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ change ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ)

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness(); // $id - id заказа в сдк $business->viewOrder($id), (*41)


7. ΠŸΡ€ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ оформлСния Π·Π°ΠΊΠ°Π·Π° ----------------------------------------- Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ³Π΄Π° цмс вставляСт Π² Π‘Π” Π·Π°ΠΊΠ°Π· ΠΈ Π²Ρ‹Π±Ρ€Π°Π½ способ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ onCmsOrderFinish класса Business для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ привязку Π·Π°ΠΊΠ°Π·Π° CMS ΠΊ SDK ID .

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness(); //$payment - id способа ΠΎΠΏΠ»Π°Ρ‚Ρ‹ //$status - id статуса Π·Π°ΠΊΠ°Π·Π° //$id - id Π·Π°ΠΊΠ°Π·Π° Π² сдк //$cmsId - id Π·Π°ΠΊΠ°Π·Π° Π² CMS //$to_name - имя ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° //$to_phone - Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° //$to_email - email //$payment_price - Π½Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ»Π°Ρ‚Π΅ΠΆ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ бСрСтся ΠΈΠ· значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° настроСк Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΎΠΏΠ»Π°Ρ‚Ρ‹, //Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ $business->onCmsOrderFinish($sdkId, $cmsId, $payment, $status, $to_name, $to_phone, $to_email, $payment_price = null), (*42)



9. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° заявки Π½Π° доставку Π½Π° сСрвис DDelivery.ru ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ статуса Π·Π°ΠΊΠ°Π·Π° ---------------------------------------------------------------------------------- ΠŸΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройкС Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° Π² ПАМ, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "Настройки CMS" доступны настройки статуса Π·Π°ΠΊΠ°Π·Π° для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ заявки. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΡ€ΠΈ смСнС статуса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ onCmsChangeStatus класса Business.

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness(); //$id - id Π·Π°ΠΊΠ°Π·Π° Π² сдк //$cmsId - id Π·Π°ΠΊΠ°Π·Π° Π² CMS //$payment - id способа ΠΎΠΏΠ»Π°Ρ‚Ρ‹ //$status - id статуса Π·Π°ΠΊΠ°Π·Π° //$to_name - имя ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° //$to_phone - Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° //$to_email - email //$payment_price - Π½Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ»Π°Ρ‚Π΅ΠΆ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ бСрСтся ΠΈΠ· значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° настроСк Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΎΠΏΠ»Π°Ρ‚Ρ‹, //Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ $business->onCmsChangeStatus($id, $cmsId, $payment, $status, $to_name, $to_phone, $to_email, $payment_price = null);, (*43)

ΠΏΡ€ΠΈ этом ΠΌΠ΅Ρ‚ΠΎΠ΄ сравнит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ $status со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² настройках ПАМ ΠΈ Π² зависимости 
ΠΎΡ‚ этого ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ заявку

10. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° заявки Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ
---------------------------
ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° cmsSendOrder класса Business, отсылаСтся заявка Π½Π° сСрвСр DDelivery.ru.

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness(); //$id - id Π·Π°ΠΊΠ°Π·Π° Π² сдк //$cmsId - id Π·Π°ΠΊΠ°Π·Π° Π² CMS //$payment - id способа ΠΎΠΏΠ»Π°Ρ‚Ρ‹ //$status - id статуса Π·Π°ΠΊΠ°Π·Π° //$to_name - имя ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° //$to_phone - Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° //$to_email - email //$payment_price - Π½Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ»Π°Ρ‚Π΅ΠΆ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ бСрСтся ΠΈΠ· значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° настроСк Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΎΠΏΠ»Π°Ρ‚Ρ‹, //Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ $business->cmsSendOrder($id, $cmsId, $payment, $status, $to_name, $to_phone, $to_email, $payment_price = null);, (*44)


11. Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° ------------------------- Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° рСдактирования Π·Π°ΠΊΠ°Π·Π° Π² административной ΠΏΠ°Π½Π΅Π»ΠΈ CMS Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ getAdminProductCart ΠΈ getAdminDiscount Π² Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π΅ для получСния ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹ ΡƒΠΆΠ΅ ΠΈΠ· административной ΠΏΠ°Π½Π΅Π»ΠΈ CMS. ВстраиваниС Ρ„ΠΎΡ€ΠΌΡ‹ рСдактирования ΠΏΡƒΠ½ΠΊΡ‚Π° доставки Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π½ΠΈΡŽ модуля Π²Ρ‹Π±ΠΎΡ€Π° доставки, с Ρ€Π°Π·Π½ΠΈΡ†Π΅ΠΉ Π² js ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ…. params{ url: 'ajax.php?action=edit', width: 550, height: 440, } DDeliveryModule.init(params, callbacks, 'ddelivery_container_place'); Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ пригодится -------------------------- МоТно ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для настроСк ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² контСкстС Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля, Π³Π»Π°Π²Π½ΠΎΠ΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ поля Π² getCustomSettingsFields Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класа Adapter. Π­Ρ‚ΠΈ поля Π±ΡƒΠ΄ΡƒΡ‚ показыватся Π² ПАМ, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "Настройки CMS" ПослС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ПАМ, Π½Π° сторонС CMS Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΌΠ΅Ρ‚ΠΎΠ΄

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $container->getSettingStorage()->getParam('param_name'); ```, (*45)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ модуля посрСдством API

Π Π°Π·Π΄Π΅Π» Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, (*46)

The Versions

02/07 2016

dev-master

9999999-dev http://ddelivery.ru/

SDK for quick creation DDelivery client integration

  Sources   Download

MIT

sdk ddelivery

02/07 2016

dev-dev

dev-dev http://ddelivery.ru/

SDK for quick creation DDelivery client integration

  Sources   Download

MIT

sdk ddelivery

02/07 2016

1.4.3

1.4.3.0 http://ddelivery.ru/

SDK for quick creation DDelivery client integration

  Sources   Download

MIT

sdk ddelivery

27/04 2016

1.4.1

1.4.1.0 http://ddelivery.ru/

SDK for quick creation DDelivery client integration

  Sources   Download

MIT

sdk ddelivery

27/04 2016

1.4.2

1.4.2.0 http://ddelivery.ru/

SDK for quick creation DDelivery client integration

  Sources   Download

MIT

sdk ddelivery

27/04 2016

1.4.0

1.4.0.0 http://ddelivery.ru/

SDK for quick creation DDelivery client integration

  Sources   Download

MIT

sdk ddelivery

07/04 2016

1.3.0

1.3.0.0 http://ddelivery.ru/

SDK for quick creation DDelivery client integration

  Sources   Download

MIT

sdk ddelivery

18/08 2015

1.2.0

1.2.0.0 http://ddelivery.ru/

SDK for quick creation of client integration

  Sources   Download

MIT

sdk ddelivery

23/07 2015

1.1.0-stable

1.1.0.0 http://ddelivery.ru/

SDK for quick creation of client integration

  Sources   Download

MIT

sdk ddelivery

01/07 2015

1.0.1

1.0.1.0 http://ddelivery.ru/

SDK for quick creation of client integration

  Sources   Download

MIT

sdk ddelivery

18/06 2015

1.0.0

1.0.0.0 http://ddelivery.ru/

SDK for quick creation of client integration

  Sources   Download

MIT

sdk ddelivery

14/06 2015

0.93-beta

0.93.0.0-beta http://ddelivery.ru/

SDK for quick creation of client integration

  Sources   Download

MIT

sdk ddelivery

15/05 2015

v0.9.2-alpha

0.9.2.0-alpha http://ddelivery.ru/

SDK for quick creation of client integration

  Sources   Download

MIT

sdk ddelivery

29/04 2015

v0.9.1-alpha

0.9.1.0-alpha http://ddelivery.ru/

SDK for quick creation of client integration

  Sources   Download

MIT

sdk ddelivery